This commit is contained in:
dute7liang
2024-01-04 00:11:18 +08:00
parent 5b04a92a55
commit c05f290df7

View File

@@ -1,7 +1,5 @@
package com.bashi.dk.service.impl; package com.bashi.dk.service.impl;
import cn.hutool.core.lang.hash.Hash;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -31,6 +29,8 @@ import com.bashi.dk.util.MoneyUtil;
import com.bashi.dk.util.OrderTradeNoUtil; import com.bashi.dk.util.OrderTradeNoUtil;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -41,6 +41,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit;
@Service @Service
public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> implements BorrowService { public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> implements BorrowService {
@@ -53,7 +54,8 @@ public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> impleme
private CalLoanManager calLoanManager; private CalLoanManager calLoanManager;
@Autowired @Autowired
private LoansSettingService loansSettingService; private LoansSettingService loansSettingService;
@Autowired
private RedissonClient redissonClient;
@Override @Override
@@ -69,32 +71,42 @@ public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> impleme
if(customer.getRealNameAuth() != 1){ if(customer.getRealNameAuth() != 1){
throw new CustomException("请补全个人资料后在发起贷款"); throw new CustomException("请补全个人资料后在发起贷款");
} }
LoansSetting loansSetting = loansSettingService.getLoansSetting(); RLock lock = redissonClient.getLock("borrow:lock:" + req.getCustomerId());
CalLoanReq calLoanReq = new CalLoanReq(); if(lock.isLocked()){
calLoanReq.setTotalLoanMoney(req.getTotalLoanMoney()); throw new CustomException("点击太快了,请稍等");
calLoanReq.setTotalMonth(req.getTotalMonth()); }
Loan loan = calLoanManager.calLoan(calLoanReq); lock.lock(5, TimeUnit.SECONDS);
Borrow borrow = BeanConvertUtil.convertTo(customerInfo, Borrow::new); Borrow borrow;
borrow.setId(null); try {
borrow.setTradeNo(OrderTradeNoUtil.createOrder(OrderTradeNoUtil.BORROW)); LoansSetting loansSetting = loansSettingService.getLoansSetting();
borrow.setTotalLoanMoney(loan.getTotalLoanMoney()); CalLoanReq calLoanReq = new CalLoanReq();
borrow.setTotalMonth(loan.getTotalMonth()); calLoanReq.setTotalLoanMoney(req.getTotalLoanMoney());
borrow.setLoanMonthRate(loan.getLoanRateMonth()); calLoanReq.setTotalMonth(req.getTotalMonth());
borrow.setLoanYearRate(loan.getLoanRate()); Loan loan = calLoanManager.calLoan(calLoanReq);
borrow.setTotalInterest(loan.getTotalInterest()); borrow = BeanConvertUtil.convertTo(customerInfo, Borrow::new);
borrow.setTotalRepayment(loan.getTotalRepayment()); borrow.setId(null);
borrow.setFirstRepayment(loan.getFirstRepayment()); borrow.setTradeNo(OrderTradeNoUtil.createOrder(OrderTradeNoUtil.BORROW));
borrow.setAvgRepayment(loan.getAvgRepayment()); borrow.setTotalLoanMoney(loan.getTotalLoanMoney());
borrow.setDueDate(loansSetting.getDueDate()); borrow.setTotalMonth(loan.getTotalMonth());
borrow.setNoteRemark(req.getNoteRemark()); borrow.setLoanMonthRate(loan.getLoanRateMonth());
borrow.setBorrowName("审核中"); borrow.setLoanYearRate(loan.getLoanRate());
borrow.setBorrowNameStyle("black"); borrow.setTotalInterest(loan.getTotalInterest());
borrow.setBorrowRemark("审核中..."); borrow.setTotalRepayment(loan.getTotalRepayment());
borrow.setInfoJson(JsonUtils.toJsonString(loan)); borrow.setFirstRepayment(loan.getFirstRepayment());
borrow.setFirstBankType(borrow.getBankType()); borrow.setAvgRepayment(loan.getAvgRepayment());
borrow.setFirstBackCardNum(borrow.getBackCardNum()); borrow.setDueDate(loansSetting.getDueDate());
this.save(borrow); borrow.setNoteRemark(req.getNoteRemark());
customerService.dk(customer.getId()); borrow.setBorrowName("审核中");
borrow.setBorrowNameStyle("black");
borrow.setBorrowRemark("审核中...");
borrow.setInfoJson(JsonUtils.toJsonString(loan));
borrow.setFirstBankType(borrow.getBankType());
borrow.setFirstBackCardNum(borrow.getBackCardNum());
this.save(borrow);
customerService.dk(customer.getId());
}finally {
lock.unlock();
}
return borrow; return borrow;
} }