提交 9421212e 作者: 张小凤

NotRepeat(update)

上级 4065807d
......@@ -88,25 +88,27 @@ public class NotRepeatSubmitConfig extends BaseController {
log.info(map+"");
CommonPaymentVO commonPaymentsVO = (CommonPaymentVO) map.get("commonPaymentVO");
String json1 = stringRedisTemplate.opsForValue().get(commonPaymentsVO.getOrderNumber());
GetOrderNumberDTO getOrderNumberDTO1= JSONObject.parseObject(json1, GetOrderNumberDTO.class);
Integer requirementsInfoId = getOrderNumberDTO1.getRequirementsInfoId();
ServiceRequirementsDO rep = repertory(requirementsInfoId,request);
Integer repertory2 = rep.getRepertory();
if (repertory2<=0){
return ResultBody.error("需求已被人抢走");
}
String accountUriLockKey=null;
if (requirementsInfoId!=null){
accountUriLockKey = requirementsInfoId + "-" + request.getServletPath();
}else {
accountUriLockKey = userAccountId + "-" + request.getServletPath();
} if (requirementsInfoId!=null && repertory2!=0){
accountUriLockKey=requirementsInfoId +repertory2+ "-" + request.getServletPath();
}
Integer requirementsInfoId=null;
if (json1!=null){
GetOrderNumberDTO getOrderNumberDTO1= JSONObject.parseObject(json1, GetOrderNumberDTO.class);
requirementsInfoId = getOrderNumberDTO1.getRequirementsInfoId();
ServiceRequirementsDO rep = repertory(requirementsInfoId,request);
Integer repertory2 = rep.getRepertory();
if (repertory2<=0){
return ResultBody.error("需求已被人抢走");
}
if (requirementsInfoId!=null){
accountUriLockKey = requirementsInfoId + "-" + request.getServletPath();
}else {
accountUriLockKey = userAccountId + "-" + request.getServletPath();
} if (requirementsInfoId!=null && repertory2!=0){
accountUriLockKey=requirementsInfoId +repertory2+ "-" + request.getServletPath();
}
}
// 设置锁定资源名称,accountUriLock改为userid+uri作为标识,作为测试写死
// String accountUriLockKey = "accountUriLock";
RLock accountUriLock = redissonClient.getLock(accountUriLockKey);
boolean tryLock;
......@@ -114,18 +116,18 @@ public class NotRepeatSubmitConfig extends BaseController {
Method method = signature.getMethod();
String name = method.getDeclaringClass().getName();
String[] parameterNames = signature.getParameterNames();
//尝试获取分布式锁
//-1为永久 leaseTime 最多等待几秒 上锁以后leaseTime秒自动解锁
tryLock = accountUriLock.tryLock(-1, leaseTime, TimeUnit.MILLISECONDS);
log.info("tryLock:" + tryLock);
if (tryLock) {
try {
ServiceRequirementsDO repertory = repertory(requirementsInfoId,request);
Integer repertory1 = repertory.getRepertory();
if (repertory1<=0){
return ResultBody.error("需求已被人抢走");
if (requirementsInfoId!=null){
ServiceRequirementsDO repertory = repertory(requirementsInfoId,request);
Integer repertory1 = repertory.getRepertory();
if (repertory1<=0){
return ResultBody.error("需求已被人抢走");
}
}
String orderNumber = commonPaymentsVO.getOrderNumber();
String json = stringRedisTemplate.opsForValue().get(orderNumber);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论