xda il y a 2 ans
Parent
commit
318280737f

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

@@ -319,6 +319,7 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Boolean settleRepalBillById(SettleRepalBillDTO dto) {
+        long userId = UserContextUtil.getUser().getUserId();
         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())) {
@@ -331,20 +332,26 @@ public class RepalBillServiceImpl extends ServiceImpl<RepalBillMapper, RepalBill
             dto.setMoney(repalBill.getReceivable());
             success = true;
         }
-        // 重新计算金额
-        repalBill.setReceivable(success ? BigDecimal.ZERO : repalBill.getReceivable().subtract(dto.getMoney()));
-        repalBill.setReceipt(success ? repalBill.getTotalMoney() : repalBill.getReceipt().add(dto.getMoney()));
+        RepalGroupMember member = repalGroupMemberService.getOne(Wrappers.lambdaQuery(RepalGroupMember.class)
+                .eq(RepalGroupMember::getRepalGroupId, repalGroupMemberService.getUserGroupId(userId))
+                .eq(RepalGroupMember::getUserId, userId)
+                .eq(RepalGroupMember::getDeleted, DeletedStatusEnum.NORMAL.getCode()));
+        if (Objects.isNull(member)) {
+            throw new CommonException(CodeMsg.FAILED, "成员信息错误");
+        }
         RepalChangeRecord changeRecord = new RepalChangeRecord();
         changeRecord.setRepalBookId(repalBill.getRepalBookId());
         changeRecord.setRepalBillId(repalBill.getId());
         changeRecord.setAfterMoney(repalBill.getTotalMoney().subtract(repalBill.getReceipt()));
         changeRecord.setPreMoney(repalBill.getReceivable());
         changeRecord.setTransMoney(dto.getMoney());
-        changeRecord.setOperUserId(UserContextUtil.getUser().getUserId());
+        changeRecord.setOperUserId(userId);
         changeRecord.setRecordDate(dto.getRecordDate());
-        UserExt userExt = userExtService.getById(changeRecord.getOperUserId());
-        changeRecord.setOperUserName(userExt.getUserName());
+        changeRecord.setOperUserName(member.getMemberUserName());
         repalChangeRecordService.save(changeRecord);
+        // 重新计算金额
+        repalBill.setReceivable(success ? BigDecimal.ZERO : repalBill.getReceivable().subtract(dto.getMoney()));
+        repalBill.setReceipt(success ? repalBill.getTotalMoney() : repalBill.getReceipt().add(dto.getMoney()));
         this.update(Wrappers.lambdaUpdate(RepalBill.class)
                 .eq(RepalBill::getId, repalBill.getId())
                 .set(success, RepalBill::getRepalBillStatus, RepalBillStatusEnum.SUCCESS.getCode())