记得上下班打卡 | git大法好,push需谨慎

Commit 2f9bc865 authored by 胡佳晨's avatar 胡佳晨

order相关 sql 提交

parent b9b8478b
...@@ -80,11 +80,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -80,11 +80,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
public ResponseDto<PayResultVo> checkCanOrder(PayOrderParam payOrderParam) { public ResponseDto<PayResultVo> checkCanOrder(PayOrderParam payOrderParam) {
boolean isDownGeneral = false; boolean isDownGeneral = false;
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
RLock lock = RedisLockUtil.lock("userId:" + uid, 2); if(!RedisLockUtil.tryLock("userId:" + uid,2,2)){
try {
if (lock.isLocked()) {
return ResponseDto.failure("请求频繁");//参数错误 return ResponseDto.failure("请求频繁");//参数错误
} }
RLock lock = RedisLockUtil.lock("userId:" + uid, 2);
try {
KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId()); KylinPerformanceVo performanceData = dataUtils.getPerformanceVo(payOrderParam.getPerformanceId());
KylinTicketTimesVo ticketTimesData = dataUtils.getTicketTimesVo(payOrderParam.getTimeId()); KylinTicketTimesVo ticketTimesData = dataUtils.getTicketTimesVo(payOrderParam.getTimeId());
KylinTicketVo ticketData = dataUtils.getTicketVo(payOrderParam.getTicketId()); KylinTicketVo ticketData = dataUtils.getTicketVo(payOrderParam.getTicketId());
...@@ -567,10 +567,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -567,10 +567,11 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
//支付时间 //支付时间
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
RLock lock = RedisLockUtil.lock("order_lock:" + syncOrderParam.getOrder_code(), 240); if(!RedisLockUtil.tryLock("order_lock:" + syncOrderParam.getOrder_code(),240,240)){
if (lock.isLocked()) { return "fail";//参数错误
return "fail";
} }
RLock lock = RedisLockUtil.lock("order_lock:" + syncOrderParam.getOrder_code(), 240);
String timePay = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String timePay = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrder_code())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrder_code())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
...@@ -774,10 +775,10 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM ...@@ -774,10 +775,10 @@ public class KylinOrderTicketsServiceImpl extends ServiceImpl<KylinOrderTicketsM
KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
for (KylinOrderTicketVo item : orderTicketVo) { for (KylinOrderTicketVo item : orderTicketVo) {
RLock lock = redisLockUtil.lock("order_lock:" + item.getOrderCode(), 2); if(!RedisLockUtil.tryLock("order_lock:" + item.getOrderCode(),240,240)){
if (lock.isLocked()) {
continue; continue;
} }
RLock lock = redisLockUtil.lock("order_lock:" + item.getOrderCode(), 240);
KylinOrderTicketVo itemData = dataUtils.getOrderTicketVo(item.getOrderTicketsId()); KylinOrderTicketVo itemData = dataUtils.getOrderTicketVo(item.getOrderTicketsId());
if (itemData.getStatus() == 0) { if (itemData.getStatus() == 0) {
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
......
package com.liquidnet.service.kylin.utils; package com.liquidnet.service.kylin.utils;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.google.zxing.common.detector.MathUtils;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.commons.lang.util.JsonUtils; import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.kylin.constant.KylinRedisConst;
...@@ -64,7 +65,11 @@ public class DataUtils { ...@@ -64,7 +65,11 @@ public class DataUtils {
* @return 普通剩余库存 * @return 普通剩余库存
*/ */
public int changeSurplusGeneral(String ticketId, int surplusGeneral) { public int changeSurplusGeneral(String ticketId, int surplusGeneral) {
if(surplusGeneral>0) {
return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, surplusGeneral); return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, surplusGeneral);
}else{
return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, Math.abs(surplusGeneral));
}
} }
/** /**
...@@ -95,7 +100,11 @@ public class DataUtils { ...@@ -95,7 +100,11 @@ public class DataUtils {
* @return 兑换剩余库存 * @return 兑换剩余库存
*/ */
public int changeSurplusExchange(String ticketId, int surplusExchange) { public int changeSurplusExchange(String ticketId, int surplusExchange) {
return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_GENERAL, surplusExchange); if(surplusExchange>0) {
return (int) redisUtil.incr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, surplusExchange);
}else{
return (int) redisUtil.decr(KylinRedisConst.PERFORMANCES_INVENTORY + ticketId + ":" + KylinRedisConst.SURPLUS_EXCHANGE, Math.abs(surplusExchange));
}
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment