Ver código fonte

增加部分权限校验和逻辑

xda 3 anos atrás
pai
commit
b4163d77ec

+ 0 - 2
src/main/java/com/winhc/repal/controller/RepalBillController.java

@@ -2,8 +2,6 @@ package com.winhc.repal.controller;
 
 import com.winhc.common.base.BeanResponse;
 import com.winhc.common.enums.CodeMsg;
-import com.winhc.repal.annotation.RolePermission;
-import com.winhc.repal.enums.PermissionEnum;
 import com.winhc.repal.model.dto.*;
 import com.winhc.repal.model.vo.RepalBillDetailVO;
 import com.winhc.repal.model.vo.RepalBillInfoVO;

+ 1 - 0
src/main/java/com/winhc/repal/enums/PermissionEnum.java

@@ -12,6 +12,7 @@ public enum PermissionEnum {
      */
     ROLE_SETUP("ROLE_SETUP", "角色设置"),
     MEMBER_MANAGER("MEMBER_MANAGER", "成员管理"),
+    BOOK_MANAGER("BOOK_MANAGER", "账本管理"),
     QUERY_ALL_RECEIVABLE("QUERY_ALL_RECEIVABLE", "查看全部应收"),
     ADD_RECEIVABLE("ADD_RECEIVABLE", "添加应收"),
     UPDATE_RECEIVABLE("UPDATE_RECEIVABLE", "编辑应收"),

+ 9 - 0
src/main/java/com/winhc/repal/service/RepalResponsiblePersonService.java

@@ -43,4 +43,13 @@ public interface RepalResponsiblePersonService extends IService<RepalResponsible
      */
     Boolean deletePersonByBookId(Long repalBookId);
 
+    /**
+     * 删除账本下所有账款对应的责任人
+     * @param repalBillId repalBillId
+     * @return java.lang.Boolean
+     * @author xda
+     * @date 2022/5/5 10:21
+     */
+    Boolean deletePersonByBillId(Long repalBillId);
+
 }

+ 6 - 6
src/main/java/com/winhc/repal/service/impl/RepalBillDiagnosisServiceImpl.java

@@ -83,13 +83,13 @@ public class RepalBillDiagnosisServiceImpl extends ServiceImpl<RepalBillDiagnosi
                 updateGrade(transfer);
             }
         }else {
-            RepalBill accountBill = repalBillService.getById(repalBillId);
-            RepalBook accountBook = repalBookService.getById(accountBill.getRepalBookId());
+            RepalBill repalBill = repalBillService.getById(repalBillId);
+            RepalBook repalBook = repalBookService.getById(repalBill.getRepalBookId());
             diagnosis.setDiagnosisStatus(DiagnosisStatusEnum.DIAGNOSIS_FAIL.getCode()).setTimeModified(now);
-            accountBill.setRefreshStatus(RefreshStatusEnum.REFRESH_FAIL.getCode()).setTimeModified(now);
-            accountBook.setRefreshStatus(RefreshStatusEnum.REFRESH_FAIL.getCode()).setTimeModified(now);
-            repalBillService.updateById(accountBill);
-            repalBookService.updateById(accountBook);
+            repalBill.setRefreshStatus(RefreshStatusEnum.REFRESH_FAIL.getCode()).setTimeModified(now);
+            repalBook.setRefreshStatus(RefreshStatusEnum.REFRESH_FAIL.getCode()).setTimeModified(now);
+            repalBillService.updateById(repalBill);
+            repalBookService.updateById(repalBook);
         }
         return diagnosis;
     }

+ 50 - 10
src/main/java/com/winhc/repal/service/impl/RepalBillServiceImpl.java

@@ -97,6 +97,13 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     @Autowired
     private RepalRemindReadInfoService repalRemindReadInfoService;
 
+    @Autowired
+    private RepalBillOperLogService repalBillOperLogService;
+
+    @Autowired
+    private UserExtService userExtService;
+
+
     @Override
     public RepalBillInfoVO getRepalBillPage(GetRepalBillPageDTO dto) {
         if (ObjectUtil.hasEmpty(dto.getRepalGroupId(), dto.getRepalBookId())) {
@@ -276,18 +283,28 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean deleteRepalBillById(DeleteRepalBillDTO dto) {
-        // 权限判断 todo 日志
+        RepalBill repalBill = this.getById(dto.getRepalBillId());
+        if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
+                RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
+            throw new CommonException(CodeMsg.FAILED, "无对应权限");
+        }
         this.update(Wrappers.lambdaUpdate(RepalBill.class).eq(RepalBill::getId, dto.getRepalBillId())
                 .set(RepalBill::getDeleted, DeletedStatusEnum.DELETE.getCode()));
+        // 删除关联人
+        repalResponsiblePersonService.deletePersonByBillId(dto.getRepalBillId());
         return true;
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean settleRepalBillById(SettleRepalBillDTO dto) {
-        // todo 权限,日志
         RepalBill repalBill = this.getById(dto.getRepalBillId());
+        if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
+                RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
+            throw new CommonException(CodeMsg.FAILED, "无对应权限");
+        }
         // 结清tag
         boolean success = false;
         // 金额溢出
@@ -305,7 +322,8 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         changeRecord.setPreMoney(repalBill.getReceivable());
         changeRecord.setTransMoney(repalBill.getReceivable());
         changeRecord.setOperUserId(UserContextUtil.getUser().getUserId());
-        // changeRecord.setOperUserName(); 组织用户名称?用户名称?
+        UserExt userExt = userExtService.getById(changeRecord.getOperUserId());
+        changeRecord.setOperUserName(userExt.getUserName());
         repalChangeRecordService.save(changeRecord);
         this.update(Wrappers.lambdaUpdate(RepalBill.class)
                 .eq(RepalBill::getId, repalBill.getId())
@@ -323,17 +341,23 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         if (Objects.isNull(customer)) {
             throw new CommonException(CodeMsg.FAILED, "客户信息错误");
         }
-        boolean companyIdFlag = CustPropertyEnum.COMPANY.getCode().equals(customer.getCustProperty()) || CustPropertyEnum.GOV.getCode().equals(customer.getCustProperty());
-        if (companyIdFlag && StrUtil.isBlank(customer.getCompanyId())) {
+        // 评级flag
+        boolean diagnosisFlag = (CustPropertyEnum.COMPANY.getCode().equals(customer.getCustProperty()) || CustPropertyEnum.GOV.getCode().equals(customer.getCustProperty()))
+                        && RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType());
+        if (diagnosisFlag && StrUtil.isBlank(customer.getCompanyId())) {
             throw new CommonException(CodeMsg.FAILED, "公司信息错误");
         }
-        // 权限判断 todo 日志
+        if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
+                RepalBillTypeEnum.RECEIVABLE.getCode().equals(dto.getRepalBillType()) ? PermissionEnum.ADD_RECEIVABLE.getCode() : PermissionEnum.ADD_RECEIPT.getCode())) {
+            throw new CommonException(CodeMsg.FAILED, "无对应权限");
+        }
         if (Objects.isNull(dto.getRepalBookId())) {
             // 新建账本
             RepalBook repalBook = new RepalBook();
             repalBook.setRepalGroupId(dto.getRepalGroupId());
             repalBook.setCustomerId(customer.getCustId());
             repalBook.setCustomerName(customer.getCustName());
+            repalBook.setRepalBookName(customer.getCustName());
             repalBook.setCompanyId(customer.getCompanyId());
             repalBook.setUserId(UserContextUtil.getUser().getUserId());
             repalBookService.save(repalBook);
@@ -347,10 +371,11 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
         if (CollUtil.isNotEmpty(dto.getContractUrlList())) {
             repalBill.setContractUrl(String.join(";", dto.getContractUrlList()));
         }
-        if (companyIdFlag) {
-            // 评分 todo
-        }
         this.save(repalBill);
+        if (diagnosisFlag) {
+            // 非个人 & 应收,才会评级
+            repalBillDiagnosisService.addRepalBillDiagnosis(repalBill.getUserId(), repalBill.getId(), dto.getTotalMoney(), Collections.singletonList(customer.getCustName()));
+        }
         // 负责人
         repalResponsiblePersonService.saveBatch(dto.getResponsiblePersonIdList().stream().map(t -> {
             RepalResponsiblePerson person = new RepalResponsiblePerson();
@@ -364,8 +389,16 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean breakRepalBill(BreakRepalBillDTO dto) {
-        // 权限 todo 日志
+        RepalBill repalBill = this.getById(dto.getRepalBillId());
+        if (Objects.isNull(repalBill)) {
+            throw new CommonException(CodeMsg.FAILED, "账款错误");
+        }
+        if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
+                RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
+            throw new CommonException(CodeMsg.FAILED, "无对应权限");
+        }
         this.update(Wrappers.lambdaUpdate(RepalBill.class)
                 .eq(RepalBill::getId, dto.getRepalBillId())
                 .set(RepalBill::getRepalBillStatus, RepalBillStatusEnum.END.getCode())
@@ -376,6 +409,13 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean updateRepalBill(UpdateRepalBillDTO dto) {
+        RepalBill repalBill = this.getById(dto.getRepalBillId());
+        if (repalRolePermissionService.checkUserPermission(UserContextUtil.getUser().getUserId(),
+                RepalBillTypeEnum.RECEIVABLE.getCode().equals(repalBill.getRepalBillType()) ? PermissionEnum.UPDATE_RECEIVABLE.getCode() : PermissionEnum.UPDATE_RECEIPT.getCode())) {
+            throw new CommonException(CodeMsg.FAILED, "无对应权限");
+        }
+
+
         return true;
     }
 

+ 9 - 0
src/main/java/com/winhc/repal/service/impl/RepalResponsiblePersonServiceImpl.java

@@ -56,4 +56,13 @@ public class RepalResponsiblePersonServiceImpl extends ServiceImpl<RepalResponsi
                 .set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
         return true;
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean deletePersonByBillId(Long repalBillId) {
+        this.update(Wrappers.lambdaUpdate(RepalResponsiblePerson.class)
+                .eq(RepalResponsiblePerson::getRepalBillId, repalBillId)
+                .set(RepalResponsiblePerson::getDeleted, DeletedStatusEnum.DELETE.getCode()));
+        return true;
+    }
 }