Преглед изворни кода

分仓和小分仓提现接口和额度接口优化和整理

mac пре 2 година
родитељ
комит
6b7b0837c7
14 измењених фајлова са 115 додато и 134 уклоњено
  1. 3 3
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantDetailVO.java
  2. 14 5
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java
  3. 7 12
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/kxsapp/storeLimit/ForAmountWithdrawDTO.java
  4. 0 12
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsWarehouseLimit.java
  5. 17 31
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeLimit/WarehouseAmountVO.java
  6. 15 32
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/userAdvance/AdvanceAmountVO.java
  7. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreLimitController.java
  8. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/UserAdvanceController.java
  9. 1 2
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsForAmountWithdrawService.java
  10. 27 27
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsForAmountWithdrawServiceImpl.java
  11. 16 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseLimitServiceImpl.java
  12. 1 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserAmountService.java
  13. 6 2
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAdvanceServiceImpl.java
  14. 6 4
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAmountServiceImpl.java

+ 3 - 3
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantDetailVO.java

@@ -146,10 +146,10 @@ public class MerchantDetailVO implements Serializable {
     private Integer downFeeFlag;
     private Integer downFeeFlag;
 
 
     /**
     /**
-     * 是否可调整费率 1是 0否
+     * 调整费率状态 0不可调 1可调 2审核中 3调整完成
      */
      */
-    @Schema(description = "是否可调整费率 1是 0否")
-    private Integer isChangeFee = 0;
+    @Schema(description = "调整费率状态 0不可调 1可调 2审核中 3调整完成")
+    private Integer changeFeeStatus;
 
 
     /**
     /**
      * 调升时间
      * 调升时间

+ 14 - 5
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java

@@ -112,12 +112,21 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
         merchantDetailVO.setDownFeeFlag(kxsMachine.getDownFeeFlag());
         merchantDetailVO.setDownFeeFlag(kxsMachine.getDownFeeFlag());
         merchantDetailVO.setMachineFee(kxsMachine.getMachineRatio());
         merchantDetailVO.setMachineFee(kxsMachine.getMachineRatio());
 
 
-        if(kxsMachine.getMachineRatio().compareTo(CommonConstants.FEE_63) == 0){
-            merchantDetailVO.setIsChangeFee(1);
+        //可调
+        if(kxsMachine.getUpFeeFlag() == 1 && kxsMachine.getMachineRatio().compareTo(CommonConstants.FEE_63) == 0){
+            merchantDetailVO.setChangeFeeStatus(1);
         }
         }
-        //如果在审核中则不可调
-        if (downFee != null &&downFee.getStatus() == 0) {
-            merchantDetailVO.setIsChangeFee(0);
+        //不可调
+        if(kxsMachine.getUpFeeFlag() == 0 && kxsMachine.getMachineRatio().compareTo(CommonConstants.FEE_60) == 0){
+            merchantDetailVO.setChangeFeeStatus(0);
+        }
+        //审核中
+        if (downFee != null && downFee.getStatus() == 0) {
+            merchantDetailVO.setChangeFeeStatus(2);
+        }
+        //调整完成
+        if (kxsMachine.getDownFeeFlag() == 1 && kxsMachine.getMachineRatio().compareTo(CommonConstants.FEE_60) == 0) {
+            merchantDetailVO.setChangeFeeStatus(3);
         }
         }
 
 
         if (kxsMachine.getBrandId() == 12 || kxsMachine.getBrandId() == 13 || kxsMachine.getBrandId() == 15)
         if (kxsMachine.getBrandId() == 12 || kxsMachine.getBrandId() == 13 || kxsMachine.getBrandId() == 15)

+ 7 - 12
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/kxsapp/storeLimit/ForAmountWithdrawDTO.java

@@ -21,24 +21,19 @@ public class ForAmountWithdrawDTO {
      */
      */
     @Schema(description = "银行卡提现金额")
     @Schema(description = "银行卡提现金额")
     @NotNull(message = "银行卡提现金额不能为空")
     @NotNull(message = "银行卡提现金额不能为空")
-    private Integer bankAmount;
+    private BigDecimal amount;
 
 
 
 
     /**
     /**
-     * 提现类型 0分仓 1小分仓
+     * 仓库类型 0分仓 1小分仓
      */
      */
-    @Schema(description = "提现类型 0分仓 1小分仓")
-    private Integer withdrawType;
-
+    @Schema(description = "仓库类型 0分仓 1小分仓")
+    private Integer whsType;
 
 
     /**
     /**
-     * 余额提现金额
+     * 提现方式 0余额 1银行卡
      */
      */
-    @Schema(description = "余额提现金额")
-    @NotNull(message = "余额提现金额不能为空")
-    private Integer yueAmount;
-
-
-
+    @Schema(description = "提现方式 0余额 1银行卡")
+    private Integer amountType;
 
 
 }
 }

+ 0 - 12
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/model/KxsWarehouseLimit.java

@@ -52,72 +52,60 @@ public class KxsWarehouseLimit extends Model<KxsWarehouseLimit> implements Seria
     @Schema(description = "更新时间")
     @Schema(description = "更新时间")
     private LocalDateTime updateTime;
     private LocalDateTime updateTime;
 
 
-
     /**
     /**
      * 删除标记,0未删除,1已删除
      * 删除标记,0未删除,1已删除
      */
      */
     @Schema(description = "删除标记,0未删除,1已删除")
     @Schema(description = "删除标记,0未删除,1已删除")
     private String delFlag;
     private String delFlag;
 
 
-
     /**
     /**
      * 版本
      * 版本
      */
      */
     @Schema(description = "版本")
     @Schema(description = "版本")
     private Integer version;
     private Integer version;
 
 
-
     /**
     /**
      * 用户ID
      * 用户ID
      */
      */
     @Schema(description = "用户ID")
     @Schema(description = "用户ID")
     private Integer userId;
     private Integer userId;
 
 
-
     /**
     /**
      * 可用额度
      * 可用额度
      */
      */
     @Schema(description = "可用额度")
     @Schema(description = "可用额度")
     private BigDecimal validAmount;
     private BigDecimal validAmount;
 
 
-
     /**
     /**
      * 固定额度
      * 固定额度
      */
      */
     @Schema(description = "固定额度")
     @Schema(description = "固定额度")
     private BigDecimal fixedAmount;
     private BigDecimal fixedAmount;
 
 
-
     /**
     /**
      * 支付宝充值临时额度
      * 支付宝充值临时额度
      */
      */
     @Schema(description = "支付宝充值临时额度")
     @Schema(description = "支付宝充值临时额度")
     private BigDecimal forAmount;
     private BigDecimal forAmount;
 
 
-
     /**
     /**
      * 担保额度
      * 担保额度
      */
      */
     @Schema(description = "担保额度")
     @Schema(description = "担保额度")
     private BigDecimal creditAmount;
     private BigDecimal creditAmount;
 
 
-
     /**
     /**
      * 操作人
      * 操作人
      */
      */
     @Schema(description = "操作人")
     @Schema(description = "操作人")
     private String createBy;
     private String createBy;
 
 
-
-
-
     /**
     /**
      * 余额充值临时额度
      * 余额充值临时额度
      */
      */
     @Schema(description = "余额充值临时额度")
     @Schema(description = "余额充值临时额度")
     private BigDecimal yueForAmount;
     private BigDecimal yueForAmount;
 
 
-
     /**
     /**
      * 已用额度
      * 已用额度
      */
      */

+ 17 - 31
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeLimit/WarehouseAmountVO.java

@@ -37,24 +37,23 @@ public class WarehouseAmountVO implements Serializable {
 
 
 
 
     /**
     /**
-     * 临时额度
+     * 支付宝充值额度
      */
      */
-    @Schema(description = "临时额度")
+    @Schema(description = "支付宝充值额度")
     private BigDecimal forAmount;
     private BigDecimal forAmount;
 
 
-
     /**
     /**
-     * 担保额度
+     * 余额充值临时额度
      */
      */
-    @Schema(description = "担保额度")
-    private BigDecimal creditAmount;
+    @Schema(description = "余额充值临时额度")
+    private BigDecimal yueForAmount;
 
 
 
 
     /**
     /**
-     * 已用额度
+     * 担保额度
      */
      */
-    @Schema(description = "已用额度")
-    private BigDecimal usedAmount;
+    @Schema(description = "担保额度")
+    private BigDecimal creditAmount;
 
 
 
 
     /**
     /**
@@ -65,37 +64,24 @@ public class WarehouseAmountVO implements Serializable {
 
 
 
 
     /**
     /**
-     * 为他人担保额度
-     */
-    @Schema(description = "为他人担保额度")
-    private Object toCreditAmount;
-
-    /**
-     * 银行卡充值总额度
-     */
-    @Schema(description = "银行卡充值总额度")
-    private BigDecimal bankRechargeAmount;
-
-
-    /**
-     * 余额充值总额
+     * 总临时额度
      */
      */
-    @Schema(description = "余额充值总额")
-    private BigDecimal yueRechargeAmount;
+    @Schema(description = "总临时额度")
+    private BigDecimal totalForAmt;
 
 
 
 
     /**
     /**
-     * 银行卡提现总额
+     * 为他人担保额度
      */
      */
-    @Schema(description = "银行卡提现总额")
-    private BigDecimal bankWithdrawAmount;
+    @Schema(description = "为他人担保额度")
+    private Object toCreditAmount;
 
 
 
 
     /**
     /**
-     * 余额提现总额
+     * 最多可调低额度
      */
      */
-    @Schema(description = "余额提现总额")
-    private BigDecimal yueWithdrawAmount;
+    @Schema(description = "最多可调低额度")
+    private BigDecimal maxSubAmt;
 
 
 
 
 
 

+ 15 - 32
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/userAdvance/AdvanceAmountVO.java

@@ -2,6 +2,7 @@ package com.kxs.store.api.vo.kxsapp.userAdvance;
 
 
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.io.Serial;
 import java.io.Serial;
@@ -35,52 +36,34 @@ public class AdvanceAmountVO implements Serializable {
     @Schema(description = "固定额度")
     @Schema(description = "固定额度")
     private BigDecimal fixedAmount;
     private BigDecimal fixedAmount;
 
 
-
     /**
     /**
-     * 临时额度
+     * 临时额度
      */
      */
-    @Schema(description = "临时额度")
-    private BigDecimal forAmount;
-
+    @Schema(description = "总临时额度")
+    private BigDecimal totalForAmt;
 
 
     /**
     /**
-     * 银行卡充值总额度
+     * 总额度
      */
      */
-    @Schema(description = "银行卡充值总额度")
-    private BigDecimal bankRechargeAmount;
-
+    @Schema(description = "总额度")
+    private Object totalAmount;
 
 
     /**
     /**
-     * 余额充值总额
+     * 最多可调低额度
      */
      */
-    @Schema(description = "余额充值总额")
-    private BigDecimal yueRechargeAmount;
-
+    @Schema(description = "最多可调低额度")
+    private BigDecimal maxSubAmt;
 
 
     /**
     /**
-     * 银行卡提现总额
+     * 支付宝充值额度
      */
      */
-    @Schema(description = "银行卡提现总额")
-    private BigDecimal bankWithdrawAmount;
-
-
-    /**
-     * 余额提现总额
-     */
-    @Schema(description = "余额提现总额")
-    private BigDecimal yueWithdrawAmount;
+    private BigDecimal forAmount;
 
 
 
 
     /**
     /**
-     * 已用额度
+     * 余额充值临时额度
      */
      */
-    @Schema(description = "已用额度")
-    private BigDecimal usedAmount;
-
-
-
-
-
-	
+    @Schema(description = "余额充值临时额度")
+    private BigDecimal yueForAmount;
 
 
 }
 }

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreLimitController.java

@@ -108,7 +108,7 @@ public class StoreLimitController {
      */
      */
     @PostMapping("/subFixedAmount")
     @PostMapping("/subFixedAmount")
     public R subFixedAmount(@RequestBody ForAmountWithdrawDTO param) {
     public R subFixedAmount(@RequestBody ForAmountWithdrawDTO param) {
-        return R.ok(kxsForAmountWithdrawService.forAmountWithdraw(param, 0));
+        return R.ok(kxsForAmountWithdrawService.forAmountWithdraw(param));
     }
     }
 
 
 
 

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/UserAdvanceController.java

@@ -82,7 +82,7 @@ public class UserAdvanceController {
     @PostMapping("/forAmountWithdraw")
     @PostMapping("/forAmountWithdraw")
     public R forAmountWithdraw(@RequestBody ForAmountWithdrawDTO param) {
     public R forAmountWithdraw(@RequestBody ForAmountWithdrawDTO param) {
 
 
-        return kxsForAmountWithdrawService.forAmountWithdraw(param, 1);
+        return kxsForAmountWithdrawService.forAmountWithdraw(param);
     }
     }
 
 
 
 

+ 1 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsForAmountWithdrawService.java

@@ -19,10 +19,9 @@ public interface KxsForAmountWithdrawService extends IService<KxsForAmountWithdr
      * 临额提现
      * 临额提现
      *
      *
      * @param param        参数
      * @param param        参数
-     * @param withdrawType 提款类型 0分仓 1小分仓
      * @return {@link R}
      * @return {@link R}
      */
      */
-    R forAmountWithdraw(ForAmountWithdrawDTO param, Integer withdrawType);
+    R forAmountWithdraw(ForAmountWithdrawDTO param);
 
 
 
 
 
 

+ 27 - 27
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsForAmountWithdrawServiceImpl.java

@@ -13,6 +13,7 @@ import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.store.api.dto.kxsapp.storeLimit.ForAmountWithdrawDTO;
 import com.kxs.store.api.dto.kxsapp.storeLimit.ForAmountWithdrawDTO;
 import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.store.biz.constant.enums.StoreErrorTypeEnum;
 import com.kxs.store.biz.constant.enums.StoreErrorTypeEnum;
+import com.kxs.store.biz.constant.enums.WarehouseLimitTypeEnum;
 import com.kxs.store.biz.mapper.KxsForAmountWithdrawMapper;
 import com.kxs.store.biz.mapper.KxsForAmountWithdrawMapper;
 import com.kxs.store.api.model.KxsForAmountWithdraw;
 import com.kxs.store.api.model.KxsForAmountWithdraw;
 import com.kxs.store.biz.mapper.KxsWarehouseLimitMapper;
 import com.kxs.store.biz.mapper.KxsWarehouseLimitMapper;
@@ -26,6 +27,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Objects;
 
 
 /**
 /**
  * 客小爽仓库临额提现申请表(KxsForAmountWithdraw)表服务实现类
  * 客小爽仓库临额提现申请表(KxsForAmountWithdraw)表服务实现类
@@ -43,7 +45,7 @@ public class KxsForAmountWithdrawServiceImpl extends ServiceImpl<KxsForAmountWit
 
 
     @Override
     @Override
     @GlobalTransactional
     @GlobalTransactional
-    public R forAmountWithdraw(ForAmountWithdrawDTO param, Integer withdrawType) {
+    public R forAmountWithdraw(ForAmountWithdrawDTO param) {
 
 
         Long userId = SecurityUtils.getUser().getId();
         Long userId = SecurityUtils.getUser().getId();
 
 
@@ -61,32 +63,30 @@ public class KxsForAmountWithdrawServiceImpl extends ServiceImpl<KxsForAmountWit
         kxsForAmountWithdraw.setUserCode(realUserInfoVO.getUserCode());
         kxsForAmountWithdraw.setUserCode(realUserInfoVO.getUserCode());
         kxsForAmountWithdraw.setBankName(realUserInfoVO.getBankName());
         kxsForAmountWithdraw.setBankName(realUserInfoVO.getBankName());
         kxsForAmountWithdraw.setBankPhone(realUserInfoVO.getPhone());
         kxsForAmountWithdraw.setBankPhone(realUserInfoVO.getPhone());
-        kxsForAmountWithdraw.setWithdrawType(withdrawType);
+        kxsForAmountWithdraw.setAmountType(param.getAmountType());
+        kxsForAmountWithdraw.setWithdrawType(param.getWhsType());
 
 
         KxsWarehouseLimit userLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
         KxsWarehouseLimit userLimit = kxsWarehouseLimitMapper.selectOne(Wrappers.<KxsWarehouseLimit>lambdaQuery()
-                .eq(KxsWarehouseLimit::getWarehouseType, param.getWithdrawType())
+                .eq(KxsWarehouseLimit::getWarehouseType, param.getWhsType())
                 .eq(KxsWarehouseLimit::getUserId, userId));
                 .eq(KxsWarehouseLimit::getUserId, userId));
 
 
-        BigDecimal forAmount;
-        //小分仓提现
-        if(withdrawType == 1){
-            //可提现临时额度 可用额度-固定额度 = 可提现临时额度
-            forAmount = NumberUtil.sub(userLimit.getValidAmount(), userLimit.getFixedAmount());
-        }else{
-            //仓库提现 可提现临时额度 = 临时额度 - (已用额度 - 担保额度 < 0 ? 0: )
-            BigDecimal sub = NumberUtil.sub(userLimit.getUsedAmount(), userLimit.getCreditAmount());
-            forAmount = NumberUtil.sub(userLimit.getForAmount(), sub.compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : sub);
+        //临时额度总和
+        BigDecimal totalForAmt = NumberUtil.add(userLimit.getYueForAmount(), userLimit.getForAmount());
+
+        if(param.getAmount().compareTo(userLimit.getValidAmount()) > 0){
+            return R.failed("可用额度不足");
         }
         }
 
 
-        if(forAmount.compareTo(NumberUtil.add(param.getBankAmount(),param.getYueAmount())) < 0){
+        if(param.getAmount().compareTo(totalForAmt) > 0){
             return R.failed("临额不足");
             return R.failed("临额不足");
         }
         }
         //余额提现
         //余额提现
-        if(param.getYueAmount() != null && param.getYueAmount() > 0){
+        if(param.getAmountType() == 0){
+
             yueWithdrawAmount(kxsForAmountWithdraw, param, userLimit);
             yueWithdrawAmount(kxsForAmountWithdraw, param, userLimit);
         }
         }
         //银行卡提现
         //银行卡提现
-        if(param.getBankAmount() != null && param.getBankAmount() > 0){
+        if(param.getAmountType() == 1){
             bankWithdrawAmount(kxsForAmountWithdraw, param, userLimit);
             bankWithdrawAmount(kxsForAmountWithdraw, param, userLimit);
         }
         }
 
 
@@ -106,15 +106,15 @@ public class KxsForAmountWithdrawServiceImpl extends ServiceImpl<KxsForAmountWit
         //银行卡最大提现金额
         //银行卡最大提现金额
         BigDecimal bankCashAmount = userLimit.getForAmount();
         BigDecimal bankCashAmount = userLimit.getForAmount();
         //银行卡提现
         //银行卡提现
-        if(param.getBankAmount() > bankCashAmount.intValue()){
+        if(param.getAmount().compareTo(bankCashAmount) > 0){
             throw new GlobalCustomerException("提现到银行卡超出限额");
             throw new GlobalCustomerException("提现到银行卡超出限额");
         }
         }
-        kxsForAmountWithdraw.setAmount(BigDecimal.valueOf(param.getBankAmount()));
+        kxsForAmountWithdraw.setAmount(param.getAmount());
         baseMapper.insert(kxsForAmountWithdraw);
         baseMapper.insert(kxsForAmountWithdraw);
 
 
         //扣减可用余额,扣减临额
         //扣减可用余额,扣减临额
-        userLimit.setForAmount(NumberUtil.sub(userLimit.getForAmount(),param.getBankAmount()));
-        userLimit.setValidAmount(NumberUtil.sub(userLimit.getValidAmount(),param.getBankAmount()));
+        userLimit.setForAmount(NumberUtil.sub(userLimit.getForAmount(),param.getAmount()));
+        userLimit.setValidAmount(NumberUtil.sub(userLimit.getValidAmount(),param.getAmount()));
         kxsWarehouseLimitMapper.updateById(userLimit);
         kxsWarehouseLimitMapper.updateById(userLimit);
 
 
     }
     }
@@ -131,30 +131,30 @@ public class KxsForAmountWithdrawServiceImpl extends ServiceImpl<KxsForAmountWit
         //余额最大提现金额
         //余额最大提现金额
         BigDecimal yueCashAmount = userLimit.getYueForAmount();
         BigDecimal yueCashAmount = userLimit.getYueForAmount();
         //余额提现
         //余额提现
-        if(param.getYueAmount() > yueCashAmount.intValue()){
+        if(param.getAmount().compareTo(yueCashAmount) > 0){
             throw new GlobalCustomerException("提现到余额超出限额");
             throw new GlobalCustomerException("提现到余额超出限额");
         }
         }
-        kxsForAmountWithdraw.setAmount(BigDecimal.valueOf(param.getYueAmount()));
+        kxsForAmountWithdraw.setAmount(param.getAmount());
         kxsForAmountWithdraw.setStatus(1);
         kxsForAmountWithdraw.setStatus(1);
         baseMapper.insert(kxsForAmountWithdraw);
         baseMapper.insert(kxsForAmountWithdraw);
 
 
         //扣减可用余额,扣减临额
         //扣减可用余额,扣减临额
-        userLimit.setYueForAmount(NumberUtil.sub(userLimit.getForAmount(),param.getYueAmount()));
-        userLimit.setValidAmount(NumberUtil.sub(userLimit.getValidAmount(),param.getYueAmount()));
+        userLimit.setYueForAmount(NumberUtil.sub(userLimit.getYueForAmount(), param.getAmount()));
+        userLimit.setValidAmount(NumberUtil.sub(userLimit.getValidAmount(), param.getAmount()));
         kxsWarehouseLimitMapper.updateById(userLimit);
         kxsWarehouseLimitMapper.updateById(userLimit);
 
 
         KxsUserAmountLog userAmountLog = new KxsUserAmountLog();
         KxsUserAmountLog userAmountLog = new KxsUserAmountLog();
         userAmountLog.setUserId(kxsForAmountWithdraw.getUserId());
         userAmountLog.setUserId(kxsForAmountWithdraw.getUserId());
         userAmountLog.setKind(KindTypeEnum.ADD.getType());
         userAmountLog.setKind(KindTypeEnum.ADD.getType());
         //分仓临时额度提现
         //分仓临时额度提现
-        if(kxsForAmountWithdraw.getWithdrawType() == 0){
+        if(Objects.equals(param.getWhsType(), WarehouseLimitTypeEnum.FC.getType())){
             userAmountLog.setVariationType(AmountLogChangeTypesEnum.FOR_WILL_BE_REFUNDED.getType());
             userAmountLog.setVariationType(AmountLogChangeTypesEnum.FOR_WILL_BE_REFUNDED.getType());
-            userAmountLog.setVariationCause(AmountLogChangeTypesEnum.FOR_WILL_BE_REFUNDED.getDescription());
+            userAmountLog.setRemark(AmountLogChangeTypesEnum.FOR_WILL_BE_REFUNDED.getDescription());
         }else{
         }else{
             userAmountLog.setVariationType(AmountLogChangeTypesEnum.ADVANCE_ISSUANCE_TEMPORARY_QUOTA_REFUND.getType());
             userAmountLog.setVariationType(AmountLogChangeTypesEnum.ADVANCE_ISSUANCE_TEMPORARY_QUOTA_REFUND.getType());
-            userAmountLog.setVariationCause(AmountLogChangeTypesEnum.ADVANCE_ISSUANCE_TEMPORARY_QUOTA_REFUND.getDescription());
+            userAmountLog.setRemark(AmountLogChangeTypesEnum.ADVANCE_ISSUANCE_TEMPORARY_QUOTA_REFUND.getDescription());
         }
         }
-        userAmountLog.setAmount(BigDecimal.valueOf(param.getYueAmount()));
+        userAmountLog.setAmount(param.getAmount());
 
 
         R<Boolean> booleanR = remoteKxsUserService.userAmountChange(userAmountLog, SecurityConstants.FROM_IN);
         R<Boolean> booleanR = remoteKxsUserService.userAmountChange(userAmountLog, SecurityConstants.FROM_IN);
         if(booleanR.getStatus() == 1 && !booleanR.getData()){
         if(booleanR.getStatus() == 1 && !booleanR.getData()){

+ 16 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseLimitServiceImpl.java

@@ -91,6 +91,14 @@ public class KxsWarehouseLimitServiceImpl extends ServiceImpl<KxsWarehouseLimitM
 
 
         BeanUtils.copyProperties(kxsWarehouseLimit, advanceAmountVO);
         BeanUtils.copyProperties(kxsWarehouseLimit, advanceAmountVO);
 
 
+        advanceAmountVO.setTotalForAmt(NumberUtil.add(kxsWarehouseLimit.getForAmount(), kxsWarehouseLimit.getYueForAmount()));
+        //可用额度大于等于临时总额度那就临时额度都可以提现 否则只能提现可用额度
+        if(kxsWarehouseLimit.getValidAmount().compareTo(advanceAmountVO.getTotalForAmt()) >= 0){
+            advanceAmountVO.setMaxSubAmt(advanceAmountVO.getTotalForAmt());
+        }else{
+            advanceAmountVO.setMaxSubAmt(kxsWarehouseLimit.getValidAmount());
+        }
+        advanceAmountVO.setTotalAmount(NumberUtil.add(kxsWarehouseLimit.getFixedAmount(), advanceAmountVO.getTotalForAmt()));
         return advanceAmountVO;
         return advanceAmountVO;
     }
     }
 
 
@@ -113,8 +121,15 @@ public class KxsWarehouseLimitServiceImpl extends ServiceImpl<KxsWarehouseLimitM
         if(creditUserAmount != null){
         if(creditUserAmount != null){
             warehouseAmountVO.setToCreditAmount(creditUserAmount.getCreditAmount());
             warehouseAmountVO.setToCreditAmount(creditUserAmount.getCreditAmount());
         }
         }
+        warehouseAmountVO.setTotalForAmt(NumberUtil.add(kxsWarehouseLimit.getForAmount(), kxsWarehouseLimit.getYueForAmount()));
 
 
-        warehouseAmountVO.setTotalAmount(NumberUtil.add(kxsWarehouseLimit.getCreditAmount(), kxsWarehouseLimit.getForAmount(), kxsWarehouseLimit.getFixedAmount()));
+        //可用额度大于等于临时总额度那就临时额度都可以提现 否则只能提现可用额度
+        if(kxsWarehouseLimit.getValidAmount().compareTo(warehouseAmountVO.getTotalForAmt()) >= 0){
+            warehouseAmountVO.setMaxSubAmt(warehouseAmountVO.getTotalForAmt());
+        }else{
+            warehouseAmountVO.setMaxSubAmt(kxsWarehouseLimit.getValidAmount().compareTo(BigDecimal.ZERO) > 0 ? kxsWarehouseLimit.getValidAmount() : BigDecimal.ZERO);
+        }
+        warehouseAmountVO.setTotalAmount(NumberUtil.add(kxsWarehouseLimit.getCreditAmount(), warehouseAmountVO.getTotalForAmt(), kxsWarehouseLimit.getFixedAmount()));
         return warehouseAmountVO;
         return warehouseAmountVO;
     }
     }
 
 

+ 1 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserAmountService.java

@@ -28,7 +28,7 @@ public interface KxsUserAmountService extends IService<KxsUserAmount> {
      * @param userAmountLog 变动日志
      * @param userAmountLog 变动日志
      * @return {@link R}
      * @return {@link R}
      */
      */
-    R userAmountChange(KxsUserAmountLog userAmountLog);
+    Boolean userAmountChange(KxsUserAmountLog userAmountLog);
 
 
     /**
     /**
      * 余额支付
      * 余额支付

+ 6 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAdvanceServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.enums.AmountLogChangeTypesEnum;
 import com.kxs.common.core.constant.enums.AmountLogChangeTypesEnum;
 import com.kxs.common.core.constant.enums.KindTypeEnum;
 import com.kxs.common.core.constant.enums.KindTypeEnum;
+import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
 import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
@@ -53,9 +54,12 @@ public class KxsUserAdvanceServiceImpl extends ServiceImpl<KxsUserAdvanceMapper,
         userAmountLog.setKind(KindTypeEnum.ADD.getType());
         userAmountLog.setKind(KindTypeEnum.ADD.getType());
         userAmountLog.setVariationType(AmountLogChangeTypesEnum.INCREASED_LABOR.getType());
         userAmountLog.setVariationType(AmountLogChangeTypesEnum.INCREASED_LABOR.getType());
         userAmountLog.setRemark("预发机预扣款返还");
         userAmountLog.setRemark("预发机预扣款返还");
-        userAmountLog.setVariationCause("预发机预扣款返还");
         userAmountLog.setAmount(advance.getAmount());
         userAmountLog.setAmount(advance.getAmount());
-        kxsUserAmountService.userAmountChange(userAmountLog);
+        Boolean b = kxsUserAmountService.userAmountChange(userAmountLog);
+        if (!b){
+            throw new GlobalCustomerException("预发机预扣款返还失败");
+        }
+
         return R.ok();
         return R.ok();
     }
     }
 }
 }

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

@@ -58,7 +58,7 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
     }
     }
 
 
     @Override
     @Override
-    public R userAmountChange(KxsUserAmountLog userAmountLog) {
+    public Boolean userAmountChange(KxsUserAmountLog userAmountLog) {
 
 
         KxsUserAmount userAmount = this.getOne(Wrappers.<KxsUserAmount>lambdaQuery()
         KxsUserAmount userAmount = this.getOne(Wrappers.<KxsUserAmount>lambdaQuery()
                 .eq(KxsUserAmount::getUserId, userAmountLog.getUserId()).last("FOR UPDATE"));
                 .eq(KxsUserAmount::getUserId, userAmountLog.getUserId()).last("FOR UPDATE"));
@@ -81,8 +81,7 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
 
 
         this.updateById(userAmount);
         this.updateById(userAmount);
 
 
-
-        return R.ok(Boolean.FALSE);
+        return Boolean.TRUE;
     }
     }
 
 
     @Override
     @Override
@@ -107,7 +106,10 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
         kxsUserAmountLog.setVariationType(20);
         kxsUserAmountLog.setVariationType(20);
         kxsUserAmountLog.setRemark("购买" + payReq.getSubject());
         kxsUserAmountLog.setRemark("购买" + payReq.getSubject());
         kxsUserAmountLog.setKind(KindTypeEnum.SUB.getType());
         kxsUserAmountLog.setKind(KindTypeEnum.SUB.getType());
-        this.userAmountChange(kxsUserAmountLog);
+        Boolean b = this.userAmountChange(kxsUserAmountLog);
+        if(!b){
+            return R.failed("扣款失败");
+        }
         //余额支付账单
         //余额支付账单
         String tradeNo = SysUtils.generatePaymentId(userId);
         String tradeNo = SysUtils.generatePaymentId(userId);
         KxsUserYuepay kxsUserYuepay = new KxsUserYuepay();
         KxsUserYuepay kxsUserYuepay = new KxsUserYuepay();