Browse Source

根据用户类型获取收款列表

chao 3 năm trước cách đây
mục cha
commit
87246b066e

+ 1 - 1
backup.sql

@@ -117,7 +117,7 @@ CREATE TABLE `cm_receipt_type` (
   PRIMARY KEY (`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='采美收款类型表';
 -- 初始数据
-INSERT  INTO `cm_receipt_permission`(`id`,`permission`) VALUES (1,'收款列表访问'),(2,'收款详情访问'),(3,'收款录入'),(4,'收款关联订单'),(5,'收款关联返佣'),(6,'收款关联供应商退款'),(7,'收款审核');
+INSERT  INTO `cm_receipt_permission`(`id`,`permission`) VALUES (1,'收款列表访问'),(2,'收款详情分享'),(3,'收款录入'),(4,'收款关联订单'),(5,'收款关联返佣'),(6,'收款关联供应商退款'),(7,'收款审核');
 INSERT  INTO `cm_receipt_type`(`id`,`type`) VALUES (1,'建设银行-7297'),(2,'广发银行-0115'),(3,'中信银行-7172'),(4,'中信银行-0897'),(5,'中信银行-0897-财付通'),(6,'中信银行-0897-支付宝'),(7,'线上-支付宝'),(8,'线上-微信支付'),(9,'线上-快钱支付'),(10,'口头返佣'),(11,'广发银行-5461'),(12,'企业网银'),(13,'微信支付'),(14,'支付宝'),(15,'微信支付'),(16,'余额抵扣'),(18,'建设银行-1854'),(19,'建设银行-6256');
 
 

+ 10 - 0
src/main/java/com/caimei365/order/controller/ReceiptApi.java

@@ -184,6 +184,16 @@ public class ReceiptApi {
         return receiptService.getReceiptDetailType(id, headers);
     }
 
+    /**
+     * 收款详情(分享)
+     */
+    @ApiOperation("收款详情(订单/非订单)")
+    @ApiImplicitParam(required = true, name = "id", value = "款项Id")
+    @GetMapping("/detail/share")
+    public ResponseJson<ReceiptVo> getReceiptDetailShare(Integer id, @RequestHeader HttpHeaders headers) {
+        return receiptService.getReceiptDetailShare(id, headers);
+    }
+
     /**
      * 收款详情(供应商退款)
      * crm:/api/user/shop/shopRefund

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

@@ -41,7 +41,7 @@ public interface ReceiptMapper {
      */
     void updateOpenidByMobile(String openid, String unionId, String mobile);
     /**
-     * 获取用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+     * 获取用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
      */
     List<Integer> getPermissionsByUserId(Integer userId);
     /**

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

@@ -46,14 +46,14 @@ public class ReceiptUserVo implements Serializable {
     @ApiModelProperty("密码")
     private String password;
     /**
-     * 用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+     * 用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
      */
-    @ApiModelProperty("用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核")
+    @ApiModelProperty("用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核")
     private Integer permission;
     /**
-     * 用户权限列表: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+     * 用户权限列表: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
      */
-    @ApiModelProperty("用户权限列表: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核")
+    @ApiModelProperty("用户权限列表: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核")
     private List<Integer> permissions;
     /**
      * 微信unionId

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

@@ -90,6 +90,11 @@ public interface ReceiptService {
      */
     ResponseJson<Map<String, Integer>> getReceiptDetailType(Integer id, HttpHeaders headers);
 
+    /**
+     * 收款详情(分享)
+     */
+    ResponseJson<ReceiptVo> getReceiptDetailShare(Integer id, HttpHeaders headers);
+
     /**
      * 收款详情(供应商退款)
      */

+ 65 - 67
src/main/java/com/caimei365/order/service/impl/ReceiptServiceImpl.java

@@ -88,7 +88,7 @@ public class ReceiptServiceImpl implements ReceiptService {
             // 收款用户
             ReceiptUserVo receiptUser = receiptMapper.getReceiptUserByOpenid(openid);
             if (null != receiptUser) {
-                // 用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+                // 用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
                 List<Integer> permissions = receiptMapper.getPermissionsByUserId(receiptUser.getId());
                 receiptUser.setPermissions(permissions);
                 return ResponseJson.success(receiptUser);
@@ -137,7 +137,7 @@ public class ReceiptServiceImpl implements ReceiptService {
                 } else {
                     return ResponseJson.error(appletsInfo.getMsg(), null);
                 }
-                // 用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+                // 用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
                 List<Integer> permissions = receiptMapper.getPermissionsByUserId(receiptUser.getId());
                 receiptUser.setPermissions(permissions);
                 return ResponseJson.success(receiptUser);
@@ -499,6 +499,22 @@ public class ReceiptServiceImpl implements ReceiptService {
             return ResponseJson.error("无权限操作!", null);
         }
         ReceiptParamsBo paramsBo = new ReceiptParamsBo();
+        PageInfo<ReceiptVo> emptyInfo = new PageInfo();
+        if (2 == receiptUser.getUserType()){
+            // 客服只能看到2待审核和3审核通过的订单款
+            if (!(2 == receiptStatus || 3 == receiptStatus)) {
+                return ResponseJson.success(emptyInfo);
+            }
+        } else if (1 == receiptUser.getUserType()) {
+            //协销人员不能能看到(2已确认(待审核)) 且 非自己名下机构的款项
+            if (2 == receiptStatus){
+                return ResponseJson.success(emptyInfo);
+            }
+            // 获取该协销收款用户下的机构userIds
+            Integer spId = receiptMapper.getServiceProviderId(receiptUser.getUnionId());
+            List<Integer> clubUserIds = receiptMapper.getClubUserIdBySpId(spId);
+            paramsBo.setUserIds(clubUserIds);
+        }
         if (StringUtils.isNotBlank(smsContent)) {
             // 短信内容隐藏余额
             String message = hiddenBalance(smsContent);
@@ -513,11 +529,6 @@ public class ReceiptServiceImpl implements ReceiptService {
             }
             paramsBo.setReceiptStatusArr(receiptStatusArr);
         }
-        // 用户openid
-        String openid = headers.getFirst("x-openid");
-        // 获取该收款用户下的机构userIds
-        List<Integer> clubUserIds = getReceiptClubUserIds(openid, receiptStatus);
-        paramsBo.setUserIds(clubUserIds);
         paramsBo.setReceiptType(receiptType);
         paramsBo.setStartDate(startDate);
         paramsBo.setEndDate(endDate);
@@ -541,7 +552,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<ReceiptVo> getReceiptDetail(Integer id, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(4, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -568,9 +579,14 @@ public class ReceiptServiceImpl implements ReceiptService {
                 // 用户openid
                 String openid = headers.getFirst("x-openid");
                 // 获取该收款用户下的机构userIds
-                List<Integer> clubUserIds = getReceiptClubUserIds(openid, receipt.getReceiptStatus());
+                List<Integer> clubUserIds = null;
+                if (1 == receiptUser.getUserType()) {
+                    // 获取该协销收款用户下的机构userIds
+                    Integer spId = receiptMapper.getServiceProviderId(receiptUser.getUnionId());
+                    clubUserIds = receiptMapper.getClubUserIdBySpId(spId);
+                }
                 for (OrderVo order : orderList) {
-                    if (4 == receiptUser.getUserType() || clubUserIds.contains(order.getUserId())) {
+                    if (4 == receiptUser.getUserType() || (null != clubUserIds && clubUserIds.contains(order.getUserId()))) {
                         // 收款详情是否可以查看
                         order.setAuthority(true);
                     }
@@ -588,7 +604,7 @@ public class ReceiptServiceImpl implements ReceiptService {
      */
     @Override
     public ResponseJson<Map<String, Integer>> getReceiptDetailType(Integer id, HttpHeaders headers) {
-        // 检查收款用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+        // 检查收款用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
         ReceiptUserVo receiptUser = checkPermissions(0, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
@@ -603,12 +619,31 @@ public class ReceiptServiceImpl implements ReceiptService {
         return ResponseJson.success(map);
     }
 
+    /**
+     * 收款详情(分享)
+     *
+     * @param id 款项Id
+     */
+    @Override
+    public ResponseJson<ReceiptVo> getReceiptDetailShare(Integer id, HttpHeaders headers) {
+        // 检查收款用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        if (null == receiptUser) {
+            return ResponseJson.error("无权限操作!", null);
+        }
+        ReceiptVo receipt = receiptMapper.getReceiptDetail(id);
+        if (null != receipt) {
+            setReceiptDetail(receipt);
+        }
+        return ResponseJson.success(receipt);
+    }
+
     /**
      * 收款详情(供应商退款)
      */
     @Override
     public ResponseJson<ReceiptVo> getReceiptRefundDetail(Integer id, HttpHeaders headers) {
-        // 检查收款用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+        // 检查收款用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
         ReceiptUserVo receiptUser = checkPermissions(6, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
@@ -625,7 +660,7 @@ public class ReceiptServiceImpl implements ReceiptService {
      */
     @Override
     public ResponseJson<ReceiptVo> getReceiptRebateDetail(Integer id, HttpHeaders headers) {
-        // 检查收款用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+        // 检查收款用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
         ReceiptUserVo receiptUser = checkPermissions(5, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
@@ -650,7 +685,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<PageInfo<OrderVo>> getReceiptOrderList(Integer id, Integer type, Integer organizeId, String orderReceiptStatus, String keyword, int pageNum, int pageSize, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(4, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -682,7 +717,12 @@ public class ReceiptServiceImpl implements ReceiptService {
         // 用户openid
         String openid = headers.getFirst("x-openid");
         // 获取该收款用户下的机构userIds
-        List<Integer> userIds = getReceiptClubUserIds(openid, receipt.getReceiptStatus());
+        List<Integer> userIds = null;
+        if (1 == receiptUser.getUserType()) {
+            // 获取该协销收款用户下的机构userIds
+            Integer spId = receiptMapper.getServiceProviderId(receiptUser.getUnionId());
+            userIds = receiptMapper.getClubUserIdBySpId(spId);
+        }
         String userName;
         Integer orderId = null;
         try {
@@ -753,7 +793,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<OrderVo> getReceiptOrderInfo(Integer orderId, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(4, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -796,7 +836,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<PageInfo<ShopOrderVo>> getRefundShopOrderList(Integer id, Integer confirmedType, String shopName, String keyword, int pageNum, int pageSize, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(6, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -840,7 +880,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<OrderVo> getRefundShopOrderInfo(Integer orderId, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(6, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -902,7 +942,7 @@ public class ReceiptServiceImpl implements ReceiptService {
     @Override
     public ResponseJson<PageInfo<ShopOrderVo>> getRebateShopOrderList(Integer id, String shopName, int pageNum, int pageSize, HttpHeaders headers) {
         // 检查收款用户权限
-        ReceiptUserVo receiptUser = checkPermissions(2, headers);
+        ReceiptUserVo receiptUser = checkPermissions(5, headers);
         if (null == receiptUser) {
             return ResponseJson.error("无权限操作!", null);
         }
@@ -1122,7 +1162,7 @@ public class ReceiptServiceImpl implements ReceiptService {
         receiptPo.setConfirmDate(time);
         receiptMapper.updateReceipt(receiptPo);
 
-        // 关联成功推送模板消息给指定人员(用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
+        // 关联成功推送模板消息给指定人员(用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
         List<String> openidList = receiptMapper.getOpenidListByPermission(Collections.singletonList(7));
         openidList.removeIf(Objects::isNull);
         double associateAmount = receiptMapper.countAssociateAmountById(receipt.getId());
@@ -1627,7 +1667,7 @@ public class ReceiptServiceImpl implements ReceiptService {
             String receiptTypeStr = receiptMapper.getReceiptTypeStrById(receipt.getPayType());
             String remarkText = "收款类型:"+ receiptTypeStr +";"+"审核时间:"+receiptPo.getReviewDate();
             double associateAmount = receiptMapper.countAssociateAmountById(receipt.getId());
-            // (用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
+            // (用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
             List<String> openidList = receiptMapper.getOpenidListByPermission(Collections.singletonList(4));
             openidList.removeIf(Objects::isNull);
             // 跳转到【普通款项待审核】页面
@@ -1652,7 +1692,7 @@ public class ReceiptServiceImpl implements ReceiptService {
         paramsBo.setStartDate("2022-01-01 00:00:00");
         List<ReceiptVo> list = receiptMapper.getReceiptList(paramsBo);
         list.removeIf(Objects::isNull);
-        // (用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
+        // (用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
         List<String> openidList = receiptMapper.getOpenidListByPermission(Arrays.asList(4,5,6));
         openidList.removeIf(Objects::isNull);
         String title = "超时未确认,请及时查看详情并确认关联!";
@@ -1695,7 +1735,7 @@ public class ReceiptServiceImpl implements ReceiptService {
         paramsBo.setStartDate("2022-01-01 00:00:00");
         List<ReceiptVo> list = receiptMapper.getReceiptList(paramsBo);
         list.removeIf(Objects::isNull);
-        // (用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
+        // (用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核)
         List<String> openidList = receiptMapper.getOpenidListByPermission(Collections.singletonList(7));
         openidList.removeIf(Objects::isNull);
         String title = "超时未审核,请及时查看详情并审核!";
@@ -1823,51 +1863,9 @@ public class ReceiptServiceImpl implements ReceiptService {
         receipt.setReceiptStatusText(ReceiptStatus.getTypeDesc(receipt.getReceiptStatus(), receipt.getReceiptType()));
     }
 
-    /**
-     * 获取该收款用户下的机构userIds
-     *
-     * @param openid        微信openid
-     * @param receiptStatus 收款状态:1待确认、2已确认(待审核)、3审核通过、4审核未通过、5收款撤销【线上支付成功为审核通过】
-     */
-    private List<Integer> getReceiptClubUserIds(String openid, Integer receiptStatus) {
-        // 收款用户
-        ReceiptUserVo receiptUser = receiptMapper.getReceiptUserByOpenid(openid);
-        List<Integer> userIds = null;
-        Integer userType = null;
-        String logTxt = "";
-        if (null != receiptUser) {
-            //用户类型:1协销人员,2客服,3财务,4超级管理员
-            userType = receiptUser.getUserType();
-            if (1 == userType) {
-                // 协销人员
-                Integer spId = receiptMapper.getServiceProviderId(receiptUser.getUnionId());
-                userIds = receiptMapper.getClubUserIdBySpId(spId);
-                logTxt = "协销";
-            } else if (2 == userType) {
-                // 客服,默认协销id:1342
-                userIds = receiptMapper.getClubUserIdBySpId(1342);
-                Integer spId = receiptMapper.getServiceProviderId(receiptUser.getUnionId());
-                if (null != spId && spId > 0) {
-                    userIds.addAll(receiptMapper.getClubUserIdBySpId(1342));
-                }
-                logTxt = "客服";
-            }
-        }
-        if (null == userIds && null != userType && 4 != userType) {
-            userIds = new ArrayList<>();
-            userIds.add(0);
-        }
-        if (null != userType && 2 == userType && null != receiptStatus && 2 == receiptStatus) {
-            // 客服可以查看所有待审核收款
-            userIds = null;
-        }
-        log.info("用户身份:" + logTxt + ">>>用户类型:" + userType + ">>>userIds:" + userIds);
-        return userIds;
-    }
-
     /**
      * 检查收款权限
-     * 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+     * 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
      *
      * @param permission 0:登录用户不需要权限,其他具体权限
      * @param headers    HttpHeaders
@@ -1880,7 +1878,7 @@ public class ReceiptServiceImpl implements ReceiptService {
             // 收款用户
             ReceiptUserVo receiptUser = receiptMapper.getReceiptUserByOpenid(openid);
             if (null != receiptUser) {
-                // 获取用户权限: 1收款列表访问,2收款详情访问,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
+                // 获取用户权限: 1收款列表访问,2收款详情分享,3收款录入,4收款关联订单,5收款关联返佣,6收款关联供应商退款,7收款审核
                 List<Integer> permissions = receiptMapper.getPermissionsByUserId(receiptUser.getId());
                 if (0 == permission || permissions.contains(permission)) {
                     receiptUser.setPermissions(permissions);