浏览代码

搜索关键词(客户名称/订单号)

chao 3 年之前
父节点
当前提交
15e8dbed80

+ 9 - 8
src/main/java/com/caimei365/order/controller/ReceiptApi.java

@@ -119,15 +119,16 @@ public class ReceiptApi {
     }
 
     /**
-     * 操作收款信息(作废,设为返佣/普通/供应商退款)
+     * 操作收款信息(作废,设为返佣/普通/供应商退款/非订单款
      *
      * @param receiptDto {
      *                  id:收款Id
      *                  receiptType: 1订单款,2非订单款,3返佣款 4订单款或者非订单款(因财务阶段无法区分订单非订单), 5供应商退款
+     *                  noOrderReason: 非订单款说明
      *                  delFlag: 作废标记: 0否,其余是
      * }
      */
-    @ApiOperation("操作收款信息(作废,设为返佣/普通/供应商退款)")
+    @ApiOperation("操作收款信息(作废,设为返佣/普通/供应商退款/非订单款)")
     @PostMapping("/operate")
     public ResponseJson<ReceiptPo> operateReceipt(ReceiptDto receiptDto) {
         return receiptService.operateReceipt(receiptDto);
@@ -187,7 +188,7 @@ public class ReceiptApi {
             @ApiImplicitParam(required = false, name = "type", value = "类型:0商品订单(默认),1订金订单"),
             @ApiImplicitParam(required = false, name = "organizeId", value = "组织ID"),
             @ApiImplicitParam(required = false, name = "orderReceiptStatus", value = "订单收款状态:1待收款,2部分收款,3已收款"),
-            @ApiImplicitParam(required = false, name = "userName", value = "客户名称"),
+            @ApiImplicitParam(required = false, name = "keyword", value = "搜索关键词(客户名称/订单号)"),
             @ApiImplicitParam(required = false, name = "openid", value = "微信openid"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
@@ -197,14 +198,14 @@ public class ReceiptApi {
                                                                Integer type,
                                                                Integer organizeId,
                                                                String orderReceiptStatus,
-                                                               String userName,
+                                                               String keyword,
                                                                String openid,
                                                                @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (!StringUtils.hasLength(openid)) {
             return ResponseJson.error("微信openid不能为空!", null);
         }
-        return receiptService.getReceiptOrderList(id, type, organizeId, orderReceiptStatus, userName, openid, pageNum, pageSize);
+        return receiptService.getReceiptOrderList(id, type, organizeId, orderReceiptStatus, keyword, openid, pageNum, pageSize);
     }
 
     /**
@@ -215,7 +216,7 @@ public class ReceiptApi {
             @ApiImplicitParam(required = false, name = "id", value = "返佣收款ID"),
             @ApiImplicitParam(required = false, name = "confirmedType", value = "0待确认,2已确认子订单"),
             @ApiImplicitParam(required = false, name = "shopName", value = "供应商名称"),
-            @ApiImplicitParam(required = false, name = "userName", value = "客户名称"),
+            @ApiImplicitParam(required = false, name = "keyword", value = "搜索关键词(客户名称/订单号)"),
             @ApiImplicitParam(required = false, name = "openid", value = "微信openid"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
@@ -224,14 +225,14 @@ public class ReceiptApi {
     public ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id,
                                                                       Integer confirmedType,
                                                                       String shopName,
-                                                                      String userName,
+                                                                      String keyword,
                                                                       String openid,
                                                                       @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                       @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (!StringUtils.hasLength(openid)) {
             return ResponseJson.error("微信openid不能为空!", null);
         }
-        return receiptService.getRefundShopOrderList(id, confirmedType, shopName, userName, openid, pageNum, pageSize);
+        return receiptService.getRefundShopOrderList(id, confirmedType, shopName, keyword, openid, pageNum, pageSize);
     }
 
     /**

+ 1 - 1
src/main/java/com/caimei365/order/mapper/ReceiptMapper.java

@@ -124,7 +124,7 @@ public interface ReceiptMapper {
     /**
      * 搜索子订单进行关联
      */
-    List<ShopOrderVo> getRefundShopOrders(Integer confirmedType, String shopName, String userName);
+    List<ShopOrderVo> getRefundShopOrders(Integer confirmedType, String shopName, String userName, Integer orderId);
     /**
      * 返佣订单付款总金额
      */

+ 1 - 0
src/main/java/com/caimei365/order/model/bo/ReceiptParamsBo.java

@@ -50,6 +50,7 @@ public class ReceiptParamsBo implements Serializable {
      * 订单Id
      */
     private Integer orderId;
+    private Integer excludeOrderId;
     /**
      * 订单类型:0商品订单(默认),1订金订单
      */

+ 5 - 1
src/main/java/com/caimei365/order/model/dto/ReceiptDto.java

@@ -81,5 +81,9 @@ public class ReceiptDto implements Serializable {
      */
     @ApiModelProperty("订单标识")
     private String orderFlag;
-
+    /**
+     * 非订单款说明(适用协销确认的时候区分订单和非订单款)
+     */
+    @ApiModelProperty("非订单款说明")
+    private String noOrderReason;
 }

+ 6 - 0
src/main/java/com/caimei365/order/model/vo/ReceiptUserVo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * Description
@@ -49,6 +50,11 @@ public class ReceiptUserVo implements Serializable {
      */
     @ApiModelProperty("用户权限: 1录入收款权限,2收款确认权限,3收款审核权限 4返佣管理权限 5供应商退款管理权限")
     private Integer permission;
+    /**
+     * 用户权限列表:1协销人员,2客服,3财务,4超级管理员
+     */
+    @ApiModelProperty("用户权限列表: 1录入收款权限,2收款确认权限,3收款审核权限 4返佣管理权限 5供应商退款管理权限")
+    private List<Integer> permissions;
     /**
      * 微信unionId
      */

+ 5 - 4
src/main/java/com/caimei365/order/service/ReceiptService.java

@@ -58,6 +58,7 @@ public interface ReceiptService {
      * @param receiptDto {
      *                  id:收款Id
      *                  receiptType: 1订单款,2非订单款,3返佣款 4订单款或者非订单款(因财务阶段无法区分订单非订单), 5供应商退款
+     *                  noOrderReason: 非订单款说明
      *                  delFlag: 作废标记: 0否,其余是
      * }
      */
@@ -91,23 +92,23 @@ public interface ReceiptService {
      * @param id                 收款ID
      * @param organizeId         组织ID
      * @param orderReceiptStatus 订单收款状态:1待收款,2部分收款,3已收款
-     * @param userName           客户名称
+     * @param keyword            搜索关键词(客户名称/订单号)
      * @param openid             微信openid
      * @param pageNum            页码
      * @param pageSize           每页数量
      */
-    ResponseJson<PageInfo<OrderVo>> getReceiptOrderList(Integer id, Integer type, Integer organizeId, String orderReceiptStatus, String userName, String openid, int pageNum, int pageSize);
+    ResponseJson<PageInfo<OrderVo>> getReceiptOrderList(Integer id, Integer type, Integer organizeId, String orderReceiptStatus, String keyword, String openid, int pageNum, int pageSize);
 
     /**
      * @param id            返佣收款ID
      * @param confirmedType 0待确认,2已确认子订单
      * @param shopName      供应商名称
-     * @param userName      客户名称搜索使用
+     * @param keyword       搜索关键词(客户名称/订单号)
      * @param openid        微信openid
      * @param pageNum       页码
      * @param pageSize      每页数量
      */
-    ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id, Integer confirmedType, String shopName, String userName, String openid, int pageNum, int pageSize);
+    ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id, Integer confirmedType, String shopName, String keyword, String openid, int pageNum, int pageSize);
 
     /**
      * 获取收款订单详情

+ 35 - 8
src/main/java/com/caimei365/order/service/impl/ReceiptServiceImpl.java

@@ -85,6 +85,9 @@ public class ReceiptServiceImpl implements ReceiptService {
             // 收款用户
             ReceiptUserVo receiptUser = receiptMapper.getReceiptUserByOpenid(openid);
             if (null != receiptUser) {
+                // 获取用户权限: 1录入收款权限,2收款确认权限,3收款审核权限 4返佣管理权限 5供应商退款管理权限
+                List<Integer> permissions = receiptMapper.getPermissionsByUserId(receiptUser.getId());
+                receiptUser.setPermissions(permissions);
                 return ResponseJson.success(receiptUser);
             }
         }
@@ -118,6 +121,9 @@ public class ReceiptServiceImpl implements ReceiptService {
                 } else {
                     return ResponseJson.error(appletsInfo.getMsg(), null);
                 }
+                // 获取用户权限: 1录入收款权限,2收款确认权限,3收款审核权限 4返佣管理权限 5供应商退款管理权限
+                List<Integer> permissions = receiptMapper.getPermissionsByUserId(receiptUser.getId());
+                receiptUser.setPermissions(permissions);
                 return ResponseJson.success(receiptUser);
             }
         }
@@ -400,11 +406,12 @@ public class ReceiptServiceImpl implements ReceiptService {
     }
 
     /**
-     * 操作收款信息(作废,设为返佣/普通/供应商退款)
+     * 操作收款信息(作废,设为返佣/普通/供应商退款/
      *
      * @param receiptDto {
      *                   id:收款Id
      *                   receiptType: 1订单款,2非订单款,3返佣款 4订单款或者非订单款(因财务阶段无法区分订单非订单), 5供应商退款
+     *                   noOrderReason: 非订单款说明
      *                   delFlag: 作废标记: 0否,其余是
      *                   }
      */
@@ -441,6 +448,7 @@ public class ReceiptServiceImpl implements ReceiptService {
         receiptPo.setReceiptType(receiptDto.getReceiptType());
         // 收款款项类型receiptType:2非订单款
         if ("2".equals(receiptDto.getReceiptType())) {
+            receiptPo.setNoOrderReason(receiptDto.getNoOrderReason());
             receiptPo.setReceiptStatus("2");
             receiptPo.setConfirmUserPermissionId(receiptUser.getId());
             receiptPo.setConfirmDate(time);
@@ -549,13 +557,13 @@ public class ReceiptServiceImpl implements ReceiptService {
      * @param id                 收款ID
      * @param organizeId         组织ID
      * @param orderReceiptStatus 订单收款状态:1待收款,2部分收款,3已收款
-     * @param userName           客户名称
+     * @param keyword            搜索关键词(客户名称/订单号)
      * @param openid             微信openid
      * @param pageNum            页码
      * @param pageSize           每页数量
      */
     @Override
-    public ResponseJson<PageInfo<OrderVo>> getReceiptOrderList(Integer id, Integer type, Integer organizeId, String orderReceiptStatus, String userName, String openid, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<OrderVo>> getReceiptOrderList(Integer id, Integer type, Integer organizeId, String orderReceiptStatus, String keyword, String openid, int pageNum, int pageSize) {
         // 操作用户
         ReceiptUserVo receiptUser = checkPermissions(1, openid);
         if (null == receiptUser) {
@@ -568,9 +576,9 @@ public class ReceiptServiceImpl implements ReceiptService {
         if (null == receipt) {
             return ResponseJson.error("收款数据异常!", null);
         }
-        Integer orderId = null;
+        Integer excludeOrderId = null;
         try {
-            orderId = Integer.parseInt(receipt.getOrderFlag());
+            excludeOrderId = Integer.parseInt(receipt.getOrderFlag());
         } catch (NumberFormatException e) {
             log.info("---------此收款无订单标注------");
         }
@@ -588,9 +596,20 @@ public class ReceiptServiceImpl implements ReceiptService {
         }
         // 获取该收款用户下的机构userIds
         List<Integer> userIds = getReceiptClubUserIds(openid, receipt.getReceiptStatus().toString());
+        String userName = null;
+        Integer orderId = null;
+        try {
+            orderId = Integer.parseInt(keyword);
+        } catch (NumberFormatException ignored) {}
+        if (null != orderId && orderId.toString().length() == keyword.length()) {
+            userName = "";
+        } else {
+            userName = keyword;
+        }
         ReceiptParamsBo params = new ReceiptParamsBo();
         params.setUserIds(userIds);
         params.setOrderId(orderId);
+        params.setExcludeOrderId(excludeOrderId);
         params.setReceiptStatusArr(receiptStatusArr);
         params.setOrderStatus(orderStatus);
         params.setUserName(userName);
@@ -640,13 +659,13 @@ public class ReceiptServiceImpl implements ReceiptService {
      * @param id            返佣收款ID
      * @param confirmedType 0待确认,2已确认子订单
      * @param shopName      供应商名称
-     * @param userName      客户名称搜索使用
+     * @param keyword       搜索关键词(客户名称/订单号)
      * @param openid        微信openid
      * @param pageNum       页码
      * @param pageSize      每页数量
      */
     @Override
-    public ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id, Integer confirmedType, String shopName, String userName, String openid, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id, Integer confirmedType, String shopName, String keyword, String openid, int pageNum, int pageSize) {
         // 操作用户
         ReceiptUserVo receiptUser = checkPermissions(1, openid);
         if (null == receiptUser) {
@@ -661,9 +680,17 @@ public class ReceiptServiceImpl implements ReceiptService {
                 setReceiptedAmount(shopOrder);
             }
         } else {
+            String userName = keyword;
+            Integer orderId = null;
+            try {
+                orderId = Integer.parseInt(keyword);
+            } catch (NumberFormatException ignored) {}
+            if (null != orderId && orderId.toString().length() == keyword.length()) {
+                userName = "";
+            }
             //没有关联子订单,根据shopName搜索子订单进行关联
             //这里的子订单  必须满足 它的主订单只进行过返佣收款或者主订单根本没有收过款
-            shopOrderList = receiptMapper.getRefundShopOrders(confirmedType, shopName, userName);
+            shopOrderList = receiptMapper.getRefundShopOrders(confirmedType, shopName, userName, orderId);
             for (ShopOrderVo shopOrder : shopOrderList) {
                 setReceiptedAmount(shopOrder);
                 if (confirmedType != null && confirmedType == 2) {

+ 7 - 1
src/main/resources/mapper/ReceiptMapper.xml

@@ -454,8 +454,11 @@
         LEFT JOIN user u ON o.userID = u.userID
         LEFT JOIN cm_order_product cop ON o.orderID = cop.orderID
         <where>
+            <if test="excludeOrderId != null and excludeOrderId != ''">
+                AND o.orderID != #{excludeOrderId}
+            </if>
             <if test="orderId != null and orderId != ''">
-                AND o.orderID != #{orderId}
+                AND o.orderID = #{orderId}
             </if>
             AND o.delFlag = '0'
             AND o.organizeID = #{organizeId}
@@ -649,6 +652,9 @@
         LEFT JOIN user u ON u.userID = cso.userID
         WHERE cso.delFlag = 0
         AND (cror.delFlag = 0 OR cror.id IS NULL)
+        <if test="shopName != null">
+            AND cso.orderID = #{orderId}
+        </if>
         <if test="shopName != null and shopName != ''">
             AND s.name LIKE CONCAT('%',#{shopName},'%')
         </if>