Browse Source

提现修改

liweifan 3 years ago
parent
commit
858f259e2a

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/sdk/WithdrawSdk.java

@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
@@ -250,7 +251,7 @@ public class WithdrawSdk {
      * 查询商户余额(单位为:分,范围:1~10000000000)
      * @return
      */
-    public String balanceQuery(){
+    public BigDecimal balanceQuery(){
         Map<String, Object> requestMap = new HashMap<>();
         requestMap.put("outMemberNo", memberNo);
         requestMap.put("charset", "UTF-8");
@@ -275,7 +276,7 @@ public class WithdrawSdk {
 
             String decryptStr = RSA.decryptPri(resultJsonStr, privateKey);
             Map stringToMap =  JSONObject.parseObject(decryptStr);
-            return String.valueOf(stringToMap.get("balance"));
+            return new BigDecimal(String.valueOf(stringToMap.get("balance"))).divide(new BigDecimal("100"));
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 7 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserWithdrawalServiceImpl.java

@@ -197,18 +197,22 @@ public class UserWithdrawalServiceImpl extends ServiceImpl<UserWithdrawalDao, Us
     @Transactional(rollbackFor = Exception.class)
     public HttpResponseResult<Boolean> batchAuth(AuthOperaReq authOperaReq, SysUser sysUser) {
         Long[] ids = StringUtil.toLongArray(StringPool.COMMA, authOperaReq.getId());
-        //todo 先判断三方余额是否充足,不足直接抛异常
+        //先判断三方余额是否充足
         List<UserWithdrawal> userWithdrawals = baseMapper.selectList(Wrappers.<UserWithdrawal>lambdaQuery()
                 .in(UserWithdrawal::getId, ids)
                 .ne(UserWithdrawal::getAuthStatus, AuthStatusEnum.DOING));
         //总提现金额
         BigDecimal totalAmount = BigDecimal.ZERO;
         for (UserWithdrawal withdrawal : userWithdrawals) {
-            if(null != withdrawal.getActualAmount()
-                    && BigDecimal.ZERO.compareTo(withdrawal.getActualAmount())<=0){
+            if (null != withdrawal.getActualAmount()
+                    && BigDecimal.ZERO.compareTo(withdrawal.getActualAmount()) <= 0) {
                 totalAmount = totalAmount.add(withdrawal.getActualAmount());
             }
         }
+        BigDecimal useDecimal = withdrawSdk.balanceQuery();
+        if (useDecimal.compareTo(totalAmount) < 0) {
+            return HttpResponseResult.failed("账户余额不足");
+        }
 
         for (Long id : ids) {
             AuthOperaReq param = new AuthOperaReq();