提交 9421212e 作者: 张小凤

NotRepeat(update)

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