提交 2420f070 authored 作者: huyufan's avatar huyufan

bug处理

上级 fdb4932a
...@@ -12,4 +12,7 @@ public class RedissonConstants { ...@@ -12,4 +12,7 @@ public class RedissonConstants {
public static final String ORDER_CHILD_LOAN_OWNER_USERID_LOCK = "clx-performance:orderChild:loan:ownerUserId:"; public static final String ORDER_CHILD_LOAN_OWNER_USERID_LOCK = "clx-performance:orderChild:loan:ownerUserId:";
public static final String ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK = "clx-performance:loanRecord:loanNo:";
} }
package com.clx.performance.controller.pc.loan.carrier; package com.clx.performance.controller.pc.loan.carrier;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.constant.RedissonConstants;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.param.pc.loan.carrier.*; import com.clx.performance.param.pc.loan.carrier.*;
import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam; import com.clx.performance.param.pc.loan.owner.ExportPaymentApplicationFormParam;
import com.clx.performance.service.loan.OwnerLoanRecordService; import com.clx.performance.service.loan.OwnerLoanRecordService;
...@@ -10,17 +12,21 @@ import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO; ...@@ -10,17 +12,21 @@ import com.clx.performance.vo.pc.loan.carrier.OwnerLoanRecordVO;
import com.clx.performance.vo.pc.loan.carrier.CarrierTransferPaymentDetailVO; import com.clx.performance.vo.pc.loan.carrier.CarrierTransferPaymentDetailVO;
import com.msl.common.base.PageData; import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert; import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.exception.ServiceSystemException;
import com.msl.common.result.Result; import com.msl.common.result.Result;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.concurrent.TimeUnit;
@Slf4j @Slf4j
@RestController @RestController
...@@ -32,6 +38,8 @@ public class CarrierOwnerLoanRecordController { ...@@ -32,6 +38,8 @@ public class CarrierOwnerLoanRecordController {
private final OwnerLoanRecordService ownerLoanRecordService; private final OwnerLoanRecordService ownerLoanRecordService;
private final RedissonClient redissonClient;
@ApiOperation(value = "借款审批列表",notes = "<br>By:刘海泉") @ApiOperation(value = "借款审批列表",notes = "<br>By:刘海泉")
@PostMapping("/pageOwnerLoanRecord") @PostMapping("/pageOwnerLoanRecord")
...@@ -44,7 +52,23 @@ public class CarrierOwnerLoanRecordController { ...@@ -44,7 +52,23 @@ public class CarrierOwnerLoanRecordController {
@ApiOperation(value = "借款审批(虚拟币直接增加,资金需要跳收银台提交申请)",notes = "<br>By:胡宇帆") @ApiOperation(value = "借款审批(虚拟币直接增加,资金需要跳收银台提交申请)",notes = "<br>By:胡宇帆")
@PostMapping("/ownerLoanRecordApprove") @PostMapping("/ownerLoanRecordApprove")
public Result<Object> ownerLoanRecordApprove(@RequestBody @Validated CarrierOwnerLoanRecordApproveParam param) { public Result<Object> ownerLoanRecordApprove(@RequestBody @Validated CarrierOwnerLoanRecordApproveParam param) {
ownerLoanRecordService.ownerLoanRecordApprove(param); RLock lock = null;
try {
lock = redissonClient.getLock(RedissonConstants.ORDER_CHILD_LOAN_RECORD_LOAN_NO_LOCK + param.getLoanNo());
boolean flag = lock.tryLock(3, 5, TimeUnit.SECONDS);
if (!flag) {
throw new ServiceSystemException(PerformanceResultEnum.OWNER_LOAN_PAYMENT_STATUS_ERROR);
}
ownerLoanRecordService.ownerLoanRecordApprove(param);
} catch (Exception e) {
throw new ServiceSystemException(PerformanceResultEnum.OWNER_LOAN_PAYMENT_STATUS_ERROR, e.getMessage());
} finally {
if (lock != null && lock.isLocked() && lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
return Result.ok(); return Result.ok();
} }
......
...@@ -181,6 +181,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService { ...@@ -181,6 +181,7 @@ public class OwnerLoanRecordServiceImpl implements OwnerLoanRecordService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void ownerLoanRecordApprove(CarrierOwnerLoanRecordApproveParam param) { public void ownerLoanRecordApprove(CarrierOwnerLoanRecordApproveParam param) {
OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getOneByField(OwnerLoanRecord::getLoanNo, param.getLoanNo()).get(); OwnerLoanRecord ownerLoanRecord = ownerLoanRecordDao.getOneByField(OwnerLoanRecord::getLoanNo, param.getLoanNo()).get();
if (!ownerLoanRecord.getStatus().equals(OwnerLoanRecordEnum.Status.APPROVE_WAIT.getCode())) { if (!ownerLoanRecord.getStatus().equals(OwnerLoanRecordEnum.Status.APPROVE_WAIT.getCode())) {
throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND); throw new ServiceSystemException(PerformanceResultEnum.DATA_NOT_FIND);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论