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,12 +71,19 @@ public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> impleme
if(customer.getRealNameAuth() != 1){ if(customer.getRealNameAuth() != 1){
throw new CustomException("请补全个人资料后在发起贷款"); throw new CustomException("请补全个人资料后在发起贷款");
} }
RLock lock = redissonClient.getLock("borrow:lock:" + req.getCustomerId());
if(lock.isLocked()){
throw new CustomException("点击太快了,请稍等");
}
lock.lock(5, TimeUnit.SECONDS);
Borrow borrow;
try {
LoansSetting loansSetting = loansSettingService.getLoansSetting(); LoansSetting loansSetting = loansSettingService.getLoansSetting();
CalLoanReq calLoanReq = new CalLoanReq(); CalLoanReq calLoanReq = new CalLoanReq();
calLoanReq.setTotalLoanMoney(req.getTotalLoanMoney()); calLoanReq.setTotalLoanMoney(req.getTotalLoanMoney());
calLoanReq.setTotalMonth(req.getTotalMonth()); calLoanReq.setTotalMonth(req.getTotalMonth());
Loan loan = calLoanManager.calLoan(calLoanReq); Loan loan = calLoanManager.calLoan(calLoanReq);
Borrow borrow = BeanConvertUtil.convertTo(customerInfo, Borrow::new); borrow = BeanConvertUtil.convertTo(customerInfo, Borrow::new);
borrow.setId(null); borrow.setId(null);
borrow.setTradeNo(OrderTradeNoUtil.createOrder(OrderTradeNoUtil.BORROW)); borrow.setTradeNo(OrderTradeNoUtil.createOrder(OrderTradeNoUtil.BORROW));
borrow.setTotalLoanMoney(loan.getTotalLoanMoney()); borrow.setTotalLoanMoney(loan.getTotalLoanMoney());
@@ -95,6 +104,9 @@ public class BorrowServiceImpl extends ServiceImpl<BorrowMapper, Borrow> impleme
borrow.setFirstBackCardNum(borrow.getBackCardNum()); borrow.setFirstBackCardNum(borrow.getBackCardNum());
this.save(borrow); this.save(borrow);
customerService.dk(customer.getId()); customerService.dk(customer.getId());
}finally {
lock.unlock();
}
return borrow; return borrow;
} }