Kaynağa Gözat

add account freezd amount

Mr.qian 4 hafta önce
ebeveyn
işleme
572cbe7bc1

+ 8 - 0
cif-service/src/main/java/com/txz/cif/dao/AccountFreezdMapper.java

@@ -2,6 +2,14 @@ package com.txz.cif.dao;
 
 import com.txz.cif.core.Mapper;
 import com.txz.cif.model.AccountFreezd;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.math.BigDecimal;
 
 public interface AccountFreezdMapper extends Mapper<AccountFreezd> {
+    
+    @Select("SELECT SUM(amount) - SUM(unfreeze_amount) FROM c_account_freezd WHERE type = 2 AND user_id = #{userId}")
+    BigDecimal sumFreezdForRefundByUserId(@Param("userId") Long userId);
+    
 }

+ 0 - 3
cif-service/src/main/java/com/txz/cif/dubbo/impl/AccountDubboServiceImpl.java

@@ -6,8 +6,6 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.txz.cif.configurer.LocalUtil;
-import com.txz.cif.core.ResultCode;
-import com.txz.cif.core.ResultGenerator;
 import com.txz.cif.core.ServiceException;
 import com.txz.cif.dto.AccountDTO;
 import com.txz.cif.dto.Result;
@@ -21,7 +19,6 @@ import com.txz.cif.web.para.RedEnvelopeParam;
 import com.txz.operating.dto.ConfigDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
-import org.apache.dubbo.config.annotation.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;

+ 38 - 0
cif-service/src/main/java/com/txz/cif/enums/AccountFreezdTypeEnum.java

@@ -0,0 +1,38 @@
+package com.txz.cif.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author: MTD®️
+ * @date: 2025/10/20
+ */
+@AllArgsConstructor
+public enum AccountFreezdTypeEnum {
+    
+    /**
+     * 提现冻结
+     */
+    WITHDRAWAL_FREEZE(1, "WITHDRAWAL_FREEZE"),
+    
+    /**
+     * 退款冻结
+     */
+    REFUND_FREEZE(2, "REFUND_FREEZE"),
+    
+    ;
+    
+    @Setter
+    @Getter
+    @EnumValue
+    private Integer code;
+    
+    @Setter
+    @Getter
+    @JsonValue
+    private String desc;
+    
+}

+ 19 - 2
cif-service/src/main/java/com/txz/cif/model/AccountFreezd.java

@@ -1,12 +1,13 @@
 package com.txz.cif.model;
 
+import com.txz.cif.enums.AccountFreezdTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
 
+import javax.persistence.*;
 import java.math.BigDecimal;
 import java.util.Date;
-import javax.persistence.*;
 
 @Getter
 @Setter
@@ -21,6 +22,11 @@ public class AccountFreezd {
     @ApiModelProperty(value="id")
     private Long id;
 
+    /**
+     * 用户id
+     */
+    private Long userId;
+    
     /**
      * 账户id
      */
@@ -67,6 +73,17 @@ public class AccountFreezd {
     @Column(name = "update_time")
     @ApiModelProperty(value="updateTime更新时间")
     private Date updateTime;
-
+    
+    private String version;
+    
+    /**
+     * 类型 1提现冻结 2退款冻结
+     */
+    private AccountFreezdTypeEnum type;
+    
+    /**
+     * 解冻时间
+     */
+    private Date unfreezeTime;
 
 }

+ 4 - 0
cif-service/src/main/java/com/txz/cif/service/AccountFreezdService.java

@@ -2,10 +2,14 @@ package com.txz.cif.service;
 import com.txz.cif.model.AccountFreezd;
 import com.txz.cif.core.Service;
 
+import java.math.BigDecimal;
+
 
 /**
  * Created by CodeGenerator on 2022/11/19.
  */
 public interface AccountFreezdService extends Service<AccountFreezd> {
 
+    BigDecimal sumFreezdForRefundByUserId(Long userId);
+    
 }

+ 1 - 1
cif-service/src/main/java/com/txz/cif/service/FlowService.java

@@ -4,7 +4,7 @@ import com.txz.cif.model.Flow;
 import com.txz.cif.core.Service;
 import com.txz.cif.model.RedEnvelope;
 import com.txz.cif.param.*;
-import tk.mybatis.mapper.entity.Condition;
+import com.txz.cif.web.para.FreezdParam;
 
 import java.util.HashMap;
 

+ 7 - 1
cif-service/src/main/java/com/txz/cif/service/impl/AccountFreezdServiceImpl.java

@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 
 
 /**
@@ -16,7 +17,12 @@ import javax.annotation.Resource;
 @Service
 @Transactional
 public class AccountFreezdServiceImpl extends AbstractService<AccountFreezd> implements AccountFreezdService {
+    
     @Resource
     private AccountFreezdMapper cAccountFreezdMapper;
-
+    
+    @Override
+    public BigDecimal sumFreezdForRefundByUserId(Long userId) {
+        return cAccountFreezdMapper.sumFreezdForRefundByUserId(userId);
+    }
 }

+ 130 - 111
cif-service/src/main/java/com/txz/cif/service/impl/FlowServiceImpl.java

@@ -6,6 +6,7 @@ import com.txz.cif.constants.MyConstants;
 import com.txz.cif.core.ServiceException;
 import com.txz.cif.dao.FlowMapper;
 import com.txz.cif.dto.Result;
+import com.txz.cif.enums.AccountFreezdTypeEnum;
 import com.txz.cif.enums.BizTypeEnum;
 import com.txz.cif.model.*;
 import com.txz.cif.param.*;
@@ -14,6 +15,7 @@ import com.txz.cif.service.AccountFreezdService;
 import com.txz.cif.service.AccountService;
 import com.txz.cif.service.FlowService;
 import com.txz.cif.core.AbstractService;
+import com.txz.cif.web.para.FreezdParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -32,28 +34,28 @@ import java.util.HashMap;
 public class FlowServiceImpl extends AbstractService<Flow> implements FlowService {
     @Resource
     private FlowMapper cFlowMapper;
-
+    
     @Resource
     private AccountService accountService;
-
+    
     @Resource
     private AccountFlowService accountFlowService;
-
+    
     @Resource
     private AccountFreezdService accountFreezdService;
-
+    
     @Override
     public Result freeze(FreezdParam param) {
-        try{
-            Account account = accountService.getAccount(param.getUserId(),param.getAccountType());
-            if (account == null){
+        try {
+            Account account = accountService.getAccount(param.getUserId(), param.getAccountType());
+            if (account == null) {
                 return Result.genFailResult(LocalUtil.get("account.not.found"));
             }
-            if (account.getEffectiveBalance().subtract(param.getAmount()).compareTo(BigDecimal.ZERO) < 0){
+            if (account.getEffectiveBalance().subtract(param.getAmount()).compareTo(BigDecimal.ZERO) < 0) {
                 return Result.genFailResult(LocalUtil.get("insufficient.frozen.amount"));
             }
             Date today = DateUtil.date();
-
+            
             Flow flow = Flow.builder().amount(param.getAmount()).bizType(param.getBizType())
                     .bizNo(param.getBizNo()).createTime(today).updateTime(today).transTime(param.getTransTime())
                     .debitAccount(account.getId()).creditAccount(account.getId())
@@ -65,33 +67,33 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                     .bizNo(flow.getBizNo()).balance(account.getBalance()).freezeAmount(account.getFreezeAmount().add(param.getAmount()))
                     .flowType(4).type(1).bizType(param.getBizType()).flowId(flow.getId()).build());
             AccountFreezd freezd = AccountFreezd.builder().accountId(account.getId()).bizId(flow.getId())
-                    .amount(param.getAmount()).createTime(today).unfreezeAmount(BigDecimal.ZERO)
+                    .amount(param.getAmount()).createTime(today).unfreezeAmount(BigDecimal.ZERO).type(param.getType())
                     .updateTime(today).status(1).build();
             accountFreezdService.saveUseGeneratedKeys(freezd);
             return Result.genSuccessResult(freezd.getId());
-        }catch (Exception e){
-            log.error("冻结异常",e);
-            return Result.genFailResult(LocalUtil.get("freezing.exception"),e);
+        } catch (Exception e) {
+            log.error("冻结异常", e);
+            return Result.genFailResult(LocalUtil.get("freezing.exception"), e);
         }
-
+        
     }
-
+    
     @Override
     public Result unFreeze(Long freezdId) {
         AccountFreezd freezd = accountFreezdService.findById(freezdId);
-        if (freezd == null){
+        if (freezd == null) {
             return Result.genFailResult(LocalUtil.get("frozen.record.not.found"));
         }
-        if (freezd.getStatus() != 1){
+        if (freezd.getStatus() != 1) {
             return Result.genFailResult(LocalUtil.get("frozen.status.is.abnormal"));
         }
         Flow oldFlow = findById(freezd.getBizId());
-        if (oldFlow == null){
+        if (oldFlow == null) {
             return Result.genFailResult(LocalUtil.get("frozen.record.not.found"));
         }
-
+        
         Account account = accountService.findById(freezd.getAccountId());
-        if (account == null){
+        if (account == null) {
             return Result.genFailResult(LocalUtil.get("frozen.account.not.found"));
         }
         Date today = DateUtil.date();
@@ -108,49 +110,49 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
         accountFreezdService.update(AccountFreezd.builder().id(freezdId).status(3).unfreezeAmount(oldFlow.getAmount()).build());
         return Result.genSuccessResult();
     }
-
-//    @Override
-//    public Result trans(TransParam param) {
-//        switch (param.getBizType()){
-//            case 1001:
-//                RechargeParam p1 = BeanUtil.toBean(param,RechargeParam.class);
-//                p1.setAccountId(param.getCreditAccount());
-//                return recharge(p1);
-//            case 2001:
-//                FeeParam p2 = BeanUtil.toBean(param,FeeParam.class);
-//                p2.setAccountId(param.getDebitAccount());
-//                return fee(p2);
-//            case 2002:
-//                CommissionParam p3 = BeanUtil.toBean(param,CommissionParam.class);
-//                p3.setAccountId(param.getCreditAccount());
-//                return commission(p3);
-//        }
-//        return null;
-//    }
-
-//    @Override
-//    public Result unFreezeAndTrans(UnFreezdAndTransParam param) {
-//        unFreeze(param.getFreezdId());
-//        if (CollUtil.isNotEmpty(param.getTrans())){
-//            for (TransParam p: param.getTrans()) {
-//                Result r = trans(p);
-//                if (r == null || !StrUtil.equals(r.getCode() , "200")){
-//                    throw new ServiceException(ResultCode.INTERNAL_SERVER_ERROR);
-//                }
-//            }
-//        }
-//        return Result.genSuccessResult();
-//    }
-
-
+    
+    //    @Override
+    //    public Result trans(TransParam param) {
+    //        switch (param.getBizType()){
+    //            case 1001:
+    //                RechargeParam p1 = BeanUtil.toBean(param,RechargeParam.class);
+    //                p1.setAccountId(param.getCreditAccount());
+    //                return recharge(p1);
+    //            case 2001:
+    //                FeeParam p2 = BeanUtil.toBean(param,FeeParam.class);
+    //                p2.setAccountId(param.getDebitAccount());
+    //                return fee(p2);
+    //            case 2002:
+    //                CommissionParam p3 = BeanUtil.toBean(param,CommissionParam.class);
+    //                p3.setAccountId(param.getCreditAccount());
+    //                return commission(p3);
+    //        }
+    //        return null;
+    //    }
+    
+    //    @Override
+    //    public Result unFreezeAndTrans(UnFreezdAndTransParam param) {
+    //        unFreeze(param.getFreezdId());
+    //        if (CollUtil.isNotEmpty(param.getTrans())){
+    //            for (TransParam p: param.getTrans()) {
+    //                Result r = trans(p);
+    //                if (r == null || !StrUtil.equals(r.getCode() , "200")){
+    //                    throw new ServiceException(ResultCode.INTERNAL_SERVER_ERROR);
+    //                }
+    //            }
+    //        }
+    //        return Result.genSuccessResult();
+    //    }
+    
+    
     @Override
     public Result recharge(RechargeParam param) {
-        Account account = accountService.getAccount(param.getUserId(),1);
-        if (account == null){
+        Account account = accountService.getAccount(param.getUserId(), 1);
+        if (account == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Account innerCapitalAccount = accountService.findById(MyConstants.INNER_MARKETING);
-        if (innerCapitalAccount == null){
+        if (innerCapitalAccount == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Date today = DateUtil.date();
@@ -160,24 +162,24 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .bizId(param.getBizId()).type(1).userId(param.getUserId())
                 .build();
         saveUseGeneratedKeys(flow);
-        //借 :平台营销账户(负债类)xx元  平台营销账户(负债类)+钱
+        // 借 :平台营销账户(负债类)xx元  平台营销账户(负债类)+钱
         accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_MARKETING).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(innerCapitalAccount.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(innerCapitalAccount.getBalance().add(flow.getAmount()))
                 .freezeAmount(innerCapitalAccount.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(1).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
-        //贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
+        // 贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
         accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(account.getBalance().add(flow.getAmount()))
                 .freezeAmount(account.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(1).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
-
-
-        if (param.getDiscount().compareTo(BigDecimal.ZERO) > 0){
-            //充值返点
+        
+        
+        if (param.getDiscount().compareTo(BigDecimal.ZERO) > 0) {
+            // 充值返点
             Account innerRebateAccount = accountService.findById(MyConstants.INNER_REBATE);
-            if (innerCapitalAccount == null){
+            if (innerCapitalAccount == null) {
                 return Result.genFailResult(LocalUtil.get("account.not.found"));
             }
             flow = Flow.builder().amount(param.getDiscount()).bizType(BizTypeEnum.REFUND_RECHARGE.getKey())
@@ -187,53 +189,59 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                     .bizId(param.getBizId()).type(10)
                     .build();
             saveUseGeneratedKeys(flow);
-            //借 :平台资金银行xx元  内部户1(资产类:借方账户)+钱
+            // 借 :平台资金银行xx元  内部户1(资产类:借方账户)+钱
             accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_REBATE).amount(flow.getAmount())
                     .bizId(flow.getBizId()).aliases(innerRebateAccount.getAliases()).transTime(param.getTransTime())
                     .bizNo(flow.getBizNo()).balance(innerRebateAccount.getBalance().add(flow.getAmount()))
                     .freezeAmount(innerRebateAccount.getFreezeAmount()).userId(flow.getUserId())
                     .flowType(1).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
-            //贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
+            // 贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
             accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                     .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
                     .bizNo(flow.getBizNo()).balance(account.getBalance().add(flow.getAmount()))
                     .freezeAmount(account.getFreezeAmount()).userId(flow.getUserId())
                     .flowType(1).type(2).bizType(10).flowId(flow.getId()).build());
         }
-
-
+        
+        
         return Result.genSuccessResult();
     }
-
+    
     @Override
     public Result pay(PayParam param) {
-
-        Account account = accountService.getAccount(param.getUserId(),1);
-        if (account == null){
+        
+        Account account = accountService.getAccount(param.getUserId(), 1);
+        if (account == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Account innerIncomeAccount = accountService.findById(MyConstants.INNER_INCOME);
-        if (innerIncomeAccount == null){
+        if (innerIncomeAccount == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
-
-        //借:个人账户钱包(贷)     -500元
-        //贷:平台主营收入(贷)   +500元
+        
+        // 冻结金额
+        BigDecimal sumFreezdAmount = accountFreezdService.sumFreezdForRefundByUserId(param.getUserId());
+        if (account.getBalance().subtract(account.getFreezeAmount()).add(sumFreezdAmount).compareTo(param.getAmount()) == -1) {
+            return Result.genFailResult(LocalUtil.get("account.not.found"));
+        }
+        
+        // 借:个人账户钱包(贷)     -500元
+        // 贷:平台主营收入(贷)   +500元
         Date today = DateUtil.date();
         Flow flow = Flow.builder().amount(param.getAmount()).bizType(param.getBizType())
                 .userId(param.getUserId())
                 .bizNo(param.getBizNo()).createTime(today).updateTime(today).transTime(param.getTransTime())
-                .debitAccount(account.getId()).creditAccount(MyConstants.INNER_INCOME).createUser(param.getUserId()+"")
+                .debitAccount(account.getId()).creditAccount(MyConstants.INNER_INCOME).createUser(param.getUserId() + "")
                 .bizId(param.getBizId()).type(6)
                 .build();
         saveUseGeneratedKeys(flow);
-        //借:个人账户钱包(贷)     -500元
+        // 借:个人账户钱包(贷)     -500元
         accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(account.getBalance().subtract(flow.getAmount()))
                 .freezeAmount(account.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(6).type(1).bizType(param.getBizType()).flowId(flow.getId()).build());
-        //贷:平台主营收入(贷)   +500元
+        // 贷:平台主营收入(贷)   +500元
         accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_INCOME).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(innerIncomeAccount.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(innerIncomeAccount.getBalance().add(flow.getAmount()))
@@ -241,19 +249,19 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .flowType(6).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
         return Result.genSuccessResult();
     }
-
+    
     @Override
     public Result refund(RefundParam param) {
-
-        //借:主营支出-退款(借)     +100元
-        //贷:个人账户    (贷)     +100元
-
-        Account account = accountService.getAccount(param.getUserId(),1);
-        if (account == null){
+        
+        // 借:主营支出-退款(借)     +100元
+        // 贷:个人账户    (贷)     +100元
+        
+        Account account = accountService.getAccount(param.getUserId(), 1);
+        if (account == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Account innerRefundAccount = accountService.findById(MyConstants.INNER_REFUND);
-        if (innerRefundAccount == null){
+        if (innerRefundAccount == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Date today = DateUtil.date();
@@ -261,16 +269,27 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .userId(param.getUserId())
                 .bizNo(param.getBizNo()).createTime(today).updateTime(today).transTime(param.getTransTime())
                 .debitAccount(MyConstants.INNER_REFUND).creditAccount(account.getId())
-                .bizId(param.getBizId()).type(9).createUser(param.getUserId()+"")
+                .bizId(param.getBizId()).type(9).createUser(param.getUserId() + "")
                 .build();
+        freeze(FreezdParam.builder()
+                .accountType(account.getType())
+                .amount(param.getAmount())
+                .bizType(param.getBizType())
+                .bizId(param.getBizId())
+                .bizNo(param.getBizNo())
+                .transTime(param.getTransTime())
+                .userId(param.getUserId())
+                .type(AccountFreezdTypeEnum.REFUND_FREEZE)
+                .build()
+        );
         saveUseGeneratedKeys(flow);
-        //借:主营支出-退款(借)     +100元
+        // 借:主营支出-退款(借)     +100元
         accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_REFUND).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(innerRefundAccount.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(innerRefundAccount.getBalance().add(flow.getAmount()))
                 .freezeAmount(innerRefundAccount.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(7).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
-        //贷:个人账户(贷)  +100元
+        // 贷:个人账户(贷)  +100元
         accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(account.getBalance().add(flow.getAmount()))
@@ -278,19 +297,19 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .flowType(7).type(2).bizType(param.getBizType()).flowId(flow.getId()).build());
         return Result.genSuccessResult();
     }
-
+    
     @Override
     public Result withdraw(WithdrawParam param) {
-
-        Account account = accountService.getAccount(param.getUserId(),param.getAccountType());
-        if (account == null){
+        
+        Account account = accountService.getAccount(param.getUserId(), param.getAccountType());
+        if (account == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
         Account innerCapitalAccount = accountService.findById(MyConstants.INNER_CAPITAL);
-        if (innerCapitalAccount == null){
+        if (innerCapitalAccount == null) {
             return Result.genFailResult(LocalUtil.get("account.not.found"));
         }
-
+        
         Date today = DateUtil.date();
         Flow flow = Flow.builder().amount(param.getAmount()).bizType(param.getBizType())
                 .userId(param.getUserId())
@@ -299,14 +318,14 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .bizId(param.getBizId()).type(3)
                 .build();
         saveUseGeneratedKeys(flow);
-
-        //借 :客户资金账户xx元 客户账号(负债类:贷方账户)-钱
+        
+        // 借 :客户资金账户xx元 客户账号(负债类:贷方账户)-钱
         accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(account.getBalance().subtract(flow.getAmount()))
                 .freezeAmount(account.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(3).type(1).bizType(param.getBizType()).flowId(flow.getId()).build());
-        //贷 :资金应收-渠道款-银行xx元  内部户1(资产类:借方账户)-钱
+        // 贷 :资金应收-渠道款-银行xx元  内部户1(资产类:借方账户)-钱
         accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_CAPITAL).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(innerCapitalAccount.getAliases()).transTime(param.getTransTime())
                 .bizNo(flow.getBizNo()).balance(innerCapitalAccount.getBalance().subtract(flow.getAmount()))
@@ -314,31 +333,31 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .flowType(3).type(1).bizType(param.getBizType()).flowId(flow.getId()).build());
         return Result.genSuccessResult();
     }
-
+    
     @Override
     public Result settle(RedEnvelope redEnvelope) {
         Account account = accountService.getAccount(redEnvelope.getUserId(), 2);
-        if (account == null){
-            throw  new ServiceException(LocalUtil.get("income.account.not.found"));
+        if (account == null) {
+            throw new ServiceException(LocalUtil.get("income.account.not.found"));
         }
         Account innerCapitalAccount = accountService.findById(MyConstants.INNER_RED);
-        if (innerCapitalAccount == null){
-            throw  new ServiceException(LocalUtil.get("account.not.found"));
+        if (innerCapitalAccount == null) {
+            throw new ServiceException(LocalUtil.get("account.not.found"));
         }
         Date today = DateUtil.date();
         Flow flow = Flow.builder().amount(redEnvelope.getAmount()).bizType(redEnvelope.getBizType())
                 .bizNo(redEnvelope.getOrderNo()).createTime(today).updateTime(today).transTime(redEnvelope.getTransTime())
                 .debitAccount(MyConstants.INNER_RED).creditAccount(account.getId())
-                .bizId(redEnvelope.getId()+"").type(1).userId(redEnvelope.getUserId())
+                .bizId(redEnvelope.getId() + "").type(1).userId(redEnvelope.getUserId())
                 .build();
         saveUseGeneratedKeys(flow);
-        //借 :主营业务支出-红包(损益类)xx元  主营业务支出-红包(损益类)+钱
+        // 借 :主营业务支出-红包(损益类)xx元  主营业务支出-红包(损益类)+钱
         accountService.deal(AccountFlow.builder().accountId(MyConstants.INNER_RED).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(innerCapitalAccount.getAliases()).transTime(redEnvelope.getTransTime())
                 .bizNo(flow.getBizNo()).balance(innerCapitalAccount.getBalance().add(flow.getAmount()))
                 .freezeAmount(innerCapitalAccount.getFreezeAmount()).userId(flow.getUserId())
                 .flowType(1).type(2).bizType(redEnvelope.getBizType()).flowId(flow.getId()).build());
-        //贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
+        // 贷 :客户资金账户xx元 客户账号(负债类:贷方账户)+钱
         accountService.deal(AccountFlow.builder().accountId(account.getId()).amount(flow.getAmount())
                 .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(redEnvelope.getTransTime())
                 .bizNo(flow.getBizNo()).balance(account.getBalance().add(flow.getAmount()))
@@ -346,11 +365,11 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
                 .flowType(1).type(2).bizType(redEnvelope.getBizType()).flowId(flow.getId()).build());
         return Result.genSuccessResult();
     }
-
+    
     @Override
     public Integer countByUserId(HashMap map) {
         return cFlowMapper.countByUserId(map);
     }
-
-
+    
+    
 }

+ 12 - 9
cif-service/src/main/java/com/txz/cif/service/impl/WithdrawRecordServiceImpl.java

@@ -12,14 +12,14 @@ import com.txz.cif.configurer.LocalUtil;
 import com.txz.cif.constants.MyConstants;
 import com.txz.cif.core.AbstractService;
 import com.txz.cif.core.ServiceException;
-import com.txz.cif.dao.UserMapper;
 import com.txz.cif.dao.WithdrawRecordMapper;
 import com.txz.cif.dto.BizLogDTO;
 import com.txz.cif.dto.Result;
 import com.txz.cif.dto.tfpay.TFWithdrawDTO;
+import com.txz.cif.enums.AccountFreezdTypeEnum;
 import com.txz.cif.enums.BizTypeEnum;
 import com.txz.cif.model.*;
-import com.txz.cif.param.FreezdParam;
+import com.txz.cif.web.para.FreezdParam;
 import com.txz.cif.param.WithdrawParam;
 import com.txz.cif.service.*;
 import com.txz.cif.util.TFPayUtil;
@@ -41,7 +41,7 @@ import java.util.Map;
 @Slf4j
 @Transactional
 public class WithdrawRecordServiceImpl extends AbstractService<WithdrawRecord> implements WithdrawRecordService {
-
+    
     @Resource
     private WithdrawRecordMapper withdrawRecordMapper;
     @Resource
@@ -73,11 +73,14 @@ public class WithdrawRecordServiceImpl extends AbstractService<WithdrawRecord> i
         saveUseGeneratedKeys(withdrawRecord);
         Account account = accountService.getAccount(withdrawRecord.getUserId(), withdrawRecord.getAccountType());
         // 冻结金额+手续费
-        Result freeze = flowService.freeze(FreezdParam.builder().accountType(withdrawRecord.getAccountType())
+        Result freeze = flowService.freeze(FreezdParam.builder()
+                .accountType(withdrawRecord.getAccountType())
                 .amount(withdrawRecord.getAmount().add(withdrawRecord.getFee())).bizType(BizTypeEnum.WITHDRAW.getKey())
-                .bizId(withdrawRecord.getId() + "").bizNo(withdrawRecord.getOrderNo())
+                .bizId(withdrawRecord.getId() + "")
+                .bizNo(withdrawRecord.getOrderNo())
                 .transTime(withdrawRecord.getTransTime())
                 .userId(withdrawRecord.getUserId())
+                .type(AccountFreezdTypeEnum.WITHDRAWAL_FREEZE)
                 .build());
         update(WithdrawRecord.builder().id(withdrawRecord.getId()).freezeId(Long.valueOf(freeze.getData().toString())).build());
     }
@@ -185,14 +188,14 @@ public class WithdrawRecordServiceImpl extends AbstractService<WithdrawRecord> i
         }
         update(WithdrawRecord.builder().id(record.getId()).status(5).build());
     }
-
+    
     @Override
     public Integer countByUserId(HashMap map) {
-        return withdrawRecordMapper.countByUserId( map);
+        return withdrawRecordMapper.countByUserId(map);
     }
-
+    
     @Override
     public BigDecimal sumByStatus(HashMap map) {
-        return withdrawRecordMapper.sumByStatus( map);
+        return withdrawRecordMapper.sumByStatus(map);
     }
 }

+ 26 - 21
cif-api/src/main/java/com/txz/cif/param/FreezdParam.java → cif-service/src/main/java/com/txz/cif/web/para/FreezdParam.java

@@ -1,11 +1,12 @@
 /*
-*
-* FreezdParam.java
-* Copyright(C) 2017-2020 fendo公司
-* @date 2022-11-02
-*/
-package com.txz.cif.param;
-
+ *
+ * FreezdParam.java
+ * Copyright(C) 2017-2020 fendo公司
+ * @date 2022-11-02
+ */
+package com.txz.cif.web.para;
+
+import com.txz.cif.enums.AccountFreezdTypeEnum;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -20,50 +21,54 @@ import java.util.Date;
 @AllArgsConstructor
 @NoArgsConstructor
 public class FreezdParam implements Serializable {
-
-
+    
+    
     /**
      * 业务编号
      */
     private String bizNo;
-
+    
     /**
      * 业务Id
      */
     private String bizId;
-
+    
     /**
      * 冻结账户
      */
     private Long userId;
-
+    
     /**
      * 冻结金额
      */
     private BigDecimal amount;
-
+    
     /**
      * 类型 1001充值 2001提现  3001开团支付 3002参团支付  4001未成团退款 4002成团退款 5001开团红包收益 5002参团红包收益 5003签到红包收益 5004下级红包佣金 5005下下级红包佣金 6001充值返点 7001提现手续费 8001冻结 9001解冻
      */
     private Integer bizType;
-
+    
     /**
      * 账户类型 1钱包账户 2收益账户
      */
     private Integer accountType;
-
-
+    
+    
     /**
      * 交易时间
      */
     private Date transTime;
-
+    
+    
+    /**
+     * 类型 1提现冻结 2退款冻结
+     */
+    private AccountFreezdTypeEnum type;
+    
     /**
      * c_flow
      */
     private static final long serialVersionUID = 1L;
-
-
-
-
+    
+    
 }