|
@@ -6,6 +6,7 @@ import com.txz.cif.dao.FlowMapper;
|
|
import com.txz.cif.dto.Result;
|
|
import com.txz.cif.dto.Result;
|
|
import com.txz.cif.model.Account;
|
|
import com.txz.cif.model.Account;
|
|
import com.txz.cif.model.AccountFlow;
|
|
import com.txz.cif.model.AccountFlow;
|
|
|
|
+import com.txz.cif.model.AccountFreezd;
|
|
import com.txz.cif.model.Flow;
|
|
import com.txz.cif.model.Flow;
|
|
import com.txz.cif.param.*;
|
|
import com.txz.cif.param.*;
|
|
import com.txz.cif.service.AccountFlowService;
|
|
import com.txz.cif.service.AccountFlowService;
|
|
@@ -18,6 +19,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.math.BigDecimal;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -39,69 +41,69 @@ public class FlowServiceImpl extends AbstractService<Flow> implements FlowServic
|
|
@Resource
|
|
@Resource
|
|
private AccountFreezdService accountFreezdService;
|
|
private AccountFreezdService accountFreezdService;
|
|
|
|
|
|
-// @Override
|
|
|
|
-// public Result freeze(FreezdParam param) {
|
|
|
|
-// try{
|
|
|
|
-// Account account = accountService.findById(param.getAccountId());
|
|
|
|
-// if (account == null){
|
|
|
|
-// return Result.genFailResult("账号未找到");
|
|
|
|
-// }
|
|
|
|
-// if (account.getEffectiveBalance().subtract(param.getAmount()).compareTo(BigDecimal.ZERO) < 0){
|
|
|
|
-// return Result.genFailResult("冻结金额不足");
|
|
|
|
-// }
|
|
|
|
-// 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(param.getAccountId()).creditAccount(param.getAccountId())
|
|
|
|
-// .bizId(param.getBizId()).type(4)
|
|
|
|
-// .build();
|
|
|
|
-// saveUseGeneratedKeys(flow);
|
|
|
|
-// accountService.deal(AccountFlow.builder().accountId(param.getAccountId()).amount(flow.getAmount())
|
|
|
|
-// .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(param.getTransTime())
|
|
|
|
-// .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(param.getAccountId()).flowId(flow.getId())
|
|
|
|
-// .amount(param.getAmount()).createTime(today).unfreezeAmount(BigDecimal.ZERO)
|
|
|
|
-// .updateTime(today).status(1).build();
|
|
|
|
-// accountFreezdService.saveUseGeneratedKeys(freezd);
|
|
|
|
-// return Result.genSuccessResult(freezd.getId());
|
|
|
|
-// }catch (Exception e){
|
|
|
|
-// log.error("冻结异常",e);
|
|
|
|
-// return Result.genFailResult("冻结异常",e);
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public Result freeze(FreezdParam param) {
|
|
|
|
+ try{
|
|
|
|
+ Account account = accountService.getAccount(param.getUserId(),param.getAccountType());
|
|
|
|
+ if (account == null){
|
|
|
|
+ return Result.genFailResult("账号未找到");
|
|
|
|
+ }
|
|
|
|
+ if (account.getEffectiveBalance().subtract(param.getAmount()).compareTo(BigDecimal.ZERO) < 0){
|
|
|
|
+ return Result.genFailResult("冻结金额不足");
|
|
|
|
+ }
|
|
|
|
+ Date today = DateUtil.date();
|
|
|
|
|
|
-// @Override
|
|
|
|
-// public Result unFreeze(Long freezdId) {
|
|
|
|
-// AccountFreezd freezd = accountFreezdService.findById(freezdId);
|
|
|
|
-// if (freezd == null){
|
|
|
|
-// return Result.genFailResult("冻结记录未找到");
|
|
|
|
-// }
|
|
|
|
-// Flow oldFlow = findById(freezd.getFlowId());
|
|
|
|
-// if (oldFlow == null){
|
|
|
|
-// return Result.genFailResult("冻结记录未找到");
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// Account account = accountService.findById(freezd.getAccountId());
|
|
|
|
-// if (account == null){
|
|
|
|
-// return Result.genFailResult("冻结账号未找到");
|
|
|
|
-// }
|
|
|
|
-// Date today = DateUtil.date();
|
|
|
|
-// Flow flow = Flow.builder().amount(freezd.getAmount()).bizType(5001)
|
|
|
|
-// .bizNo(oldFlow.getBizNo()).createTime(today).updateTime(today).transTime(today)
|
|
|
|
-// .debitAccount(oldFlow.getDebitAccount()).creditAccount(oldFlow.getCreditAccount())
|
|
|
|
-// .bizId(oldFlow.getBizId()).type(5)
|
|
|
|
-// .build();
|
|
|
|
-// saveUseGeneratedKeys(flow);
|
|
|
|
-// accountService.deal(AccountFlow.builder().accountId(oldFlow.getDebitAccount()).amount(flow.getAmount())
|
|
|
|
-// .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(today)
|
|
|
|
-// .bizNo(flow.getBizNo()).balance(account.getBalance()).freezeAmount(account.getFreezeAmount().subtract(oldFlow.getAmount()))
|
|
|
|
-// .flowType(5).type(2).bizType(flow.getBizType()).flowId(flow.getId()).build());
|
|
|
|
-// accountFreezdService.update(AccountFreezd.builder().id(freezdId).status(3).unfreezeAmount(oldFlow.getAmount()).build());
|
|
|
|
-// return Result.genSuccessResult();
|
|
|
|
-// }
|
|
|
|
|
|
+ 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())
|
|
|
|
+ .bizId(param.getBizId()).type(4)
|
|
|
|
+ .build();
|
|
|
|
+ saveUseGeneratedKeys(flow);
|
|
|
|
+ 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()).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)
|
|
|
|
+ .updateTime(today).status(1).build();
|
|
|
|
+ accountFreezdService.saveUseGeneratedKeys(freezd);
|
|
|
|
+ return Result.genSuccessResult(freezd.getId());
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ log.error("冻结异常",e);
|
|
|
|
+ return Result.genFailResult("冻结异常",e);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public Result unFreeze(Long freezdId) {
|
|
|
|
+ AccountFreezd freezd = accountFreezdService.findById(freezdId);
|
|
|
|
+ if (freezd == null){
|
|
|
|
+ return Result.genFailResult("冻结记录未找到");
|
|
|
|
+ }
|
|
|
|
+ Flow oldFlow = findById(freezd.getBizId());
|
|
|
|
+ if (oldFlow == null){
|
|
|
|
+ return Result.genFailResult("冻结记录未找到");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Account account = accountService.findById(freezd.getAccountId());
|
|
|
|
+ if (account == null){
|
|
|
|
+ return Result.genFailResult("冻结账号未找到");
|
|
|
|
+ }
|
|
|
|
+ Date today = DateUtil.date();
|
|
|
|
+ Flow flow = Flow.builder().amount(freezd.getAmount()).bizType(5001)
|
|
|
|
+ .bizNo(oldFlow.getBizNo()).createTime(today).updateTime(today).transTime(today)
|
|
|
|
+ .debitAccount(oldFlow.getDebitAccount()).creditAccount(oldFlow.getCreditAccount())
|
|
|
|
+ .bizId(oldFlow.getBizId()).type(5)
|
|
|
|
+ .build();
|
|
|
|
+ saveUseGeneratedKeys(flow);
|
|
|
|
+ accountService.deal(AccountFlow.builder().accountId(oldFlow.getDebitAccount()).amount(flow.getAmount())
|
|
|
|
+ .bizId(flow.getBizId()).aliases(account.getAliases()).transTime(today)
|
|
|
|
+ .bizNo(flow.getBizNo()).balance(account.getBalance()).freezeAmount(account.getFreezeAmount().subtract(oldFlow.getAmount()))
|
|
|
|
+ .flowType(5).type(2).bizType(flow.getBizType()).flowId(flow.getId()).build());
|
|
|
|
+ accountFreezdService.update(AccountFreezd.builder().id(freezdId).status(3).unfreezeAmount(oldFlow.getAmount()).build());
|
|
|
|
+ return Result.genSuccessResult();
|
|
|
|
+ }
|
|
|
|
|
|
// @Override
|
|
// @Override
|
|
// public Result trans(TransParam param) {
|
|
// public Result trans(TransParam param) {
|