Răsfoiți Sursa

创客账户合计接口优化

mac 2 ani în urmă
părinte
comite
d9032bd43e

+ 2 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/UserAccountController.java

@@ -3,6 +3,7 @@ package com.kxs.user.biz.controller.kxsapp;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
+import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.user.api.dto.kxsapp.userAccount.PayRequestDTO;
 import com.kxs.user.api.dto.kxsapp.userAccount.UserAmountVariationListDTO;
 import com.kxs.user.api.dto.kxsapp.userAccount.WithdrawDepositDTO;
@@ -71,6 +72,7 @@ public class UserAccountController {
 
         return R.ok(kxsUserAdvanceService
                 .page(page, Wrappers.<KxsUserAdvance>lambdaQuery()
+                        .eq(KxsUserAdvance::getUserId, SecurityUtils.getUser().getId())
                 .eq(KxsUserAdvance::getStatus, UserAdvanceStatusEnum.ADVANCE_NOT_CHARGED.getType())));
     }
 

+ 18 - 6
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAmountServiceImpl.java

@@ -4,16 +4,19 @@ import cn.hutool.core.util.NumberUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.enums.KindTypeEnum;
+import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SysUtils;
 import com.kxs.common.mybatis.handler.MonthTableNameHandler;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.user.api.dto.kxsapp.userAccount.PayRequestDTO;
+import com.kxs.user.api.model.KxsUserAdvance;
 import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.user.api.model.KxsUserAmountLog;
 import com.kxs.user.api.model.KxsUserYuepay;
 import com.kxs.user.api.vo.kxsapp.userAccount.MyAccountVO;
 import com.kxs.user.biz.constant.enums.YuePayStatusEnum;
+import com.kxs.user.biz.mapper.KxsUserAdvanceMapper;
 import com.kxs.user.biz.mapper.KxsUserAmountMapper;
 import com.kxs.user.biz.service.KxsUserAmountLogService;
 import com.kxs.user.biz.service.KxsUserAmountService;
@@ -42,6 +45,8 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
 
     private final KxsUserYuepayService kxsUserYuepayService;
 
+    private final KxsUserAdvanceMapper kxsUserAdvanceMapper;
+
     @Override
     public MyAccountVO myAccount() {
 
@@ -51,8 +56,15 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
         MyAccountVO myAccountVO = new MyAccountVO();
         BeanUtils.copyProperties(userAmount, myAccountVO);
 
-        //余额减去预扣款金额
-        myAccountVO.setUseAmount(NumberUtil.sub(userAmount.getAmount(), userAmount.getAdvanceAmount()));
+        //预扣款
+        KxsUserAdvance advance = kxsUserAdvanceMapper.selectOne(Wrappers.<KxsUserAdvance>query()
+                .select("IFNULL(SUM(amount), 0) as amount")
+                .eq("user_id", SecurityUtils.getUser().getId())
+                .eq("status", UserAdvanceStatusEnum.ADVANCE_NOT_CHARGED.getType()));
+        if(advance != null){
+            //余额减去预扣款金额
+            myAccountVO.setUseAmount(NumberUtil.sub(userAmount.getAmount(), advance.getAmount()));
+        }
 
         return myAccountVO;
     }
@@ -68,7 +80,7 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
         //增加余额
         if (Objects.equals(userAmountLog.getKind(), KindTypeEnum.ADD.getType())) {
             afterAmount = NumberUtil.add(userAmount.getAmount(), userAmountLog.getAmount());
-        }else{
+        } else {
             afterAmount = NumberUtil.sub(userAmount.getAmount(), userAmountLog.getAmount());
         }
         userAmountLog.setAfterAmount(afterAmount);
@@ -91,11 +103,11 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
         Long userId = SecurityUtils.getUser().getId();
         KxsUserAmount userAmount = this.getOne(Wrappers.<KxsUserAmount>lambdaQuery()
                 .eq(KxsUserAmount::getUserId, userId));
-        if(BigDecimal.valueOf(payReq.getTotalAmount()).compareTo(userAmount.getAmount()) > 0){
+        if (BigDecimal.valueOf(payReq.getTotalAmount()).compareTo(userAmount.getAmount()) > 0) {
             return R.failed("余额不足");
         }
         long count = kxsUserYuepayService.count(Wrappers.<KxsUserYuepay>lambdaQuery().eq(KxsUserYuepay::getOutTradeNo, payReq.getOutTradeNo()));
-        if(count > 1){
+        if (count > 1) {
             return R.failed("该订单号已支付");
         }
 
@@ -107,7 +119,7 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
         kxsUserAmountLog.setRemark("购买" + payReq.getSubject());
         kxsUserAmountLog.setKind(KindTypeEnum.SUB.getType());
         Boolean b = this.userAmountChange(kxsUserAmountLog);
-        if(!b){
+        if (!b) {
             return R.failed("扣款失败");
         }
         //余额支付账单