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

Commit b51483f4 authored by 胡佳晨's avatar 胡佳晨

修改 mq 消费回滚限购

parent 23685fcf
...@@ -20,6 +20,7 @@ public class KylinUtils { ...@@ -20,6 +20,7 @@ public class KylinUtils {
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
/** /**
* @param userId 用户id * @param userId 用户id
* @param type 1新增 2修改 * @param type 1新增 2修改
...@@ -31,13 +32,13 @@ public class KylinUtils { ...@@ -31,13 +32,13 @@ public class KylinUtils {
KylinOrderListVo voItem = new KylinOrderListVo(); KylinOrderListVo voItem = new KylinOrderListVo();
KylinOrderTicketVo data; KylinOrderTicketVo data;
if (dataSingle == null) { if (dataSingle == null) {
data = (KylinOrderTicketVo)redisUtil.get(KylinRedisConst.ORDER + orderId); data = (KylinOrderTicketVo) redisUtil.get(KylinRedisConst.ORDER + orderId);
} else { } else {
data = dataSingle; data = dataSingle;
} }
BeanUtils.copyProperties(data, voItem); BeanUtils.copyProperties(data, voItem);
List<KylinOrderListVo> redisData = (List<KylinOrderListVo>) redisUtil.get(KylinRedisConst.ORDER_LIST + userId); List<KylinOrderListVo> redisData = (List<KylinOrderListVo>) redisUtil.get(KylinRedisConst.ORDER_LIST + userId);
if(type == 1) { if (type == 1) {
redisVo.add(voItem); redisVo.add(voItem);
if (redisData.size() > 0) { if (redisData.size() > 0) {
if (redisData.get(0).getOrderTicketsId().equals(orderId)) { if (redisData.get(0).getOrderTicketsId().equals(orderId)) {
...@@ -63,7 +64,7 @@ public class KylinUtils { ...@@ -63,7 +64,7 @@ public class KylinUtils {
if (redisVo.size() == 0) { if (redisVo.size() == 0) {
vo.add(voItem); vo.add(voItem);
} }
redisUtil.set(KylinRedisConst.ORDER_LIST + userId,vo); redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
return true; return true;
case 2: case 2:
for (int i = 0; i < redisVo.size(); i++) { for (int i = 0; i < redisVo.size(); i++) {
...@@ -76,7 +77,7 @@ public class KylinUtils { ...@@ -76,7 +77,7 @@ public class KylinUtils {
vo.add(redisVo.get(i)); vo.add(redisVo.get(i));
} }
} }
redisUtil.set(KylinRedisConst.ORDER_LIST + userId,vo); redisUtil.set(KylinRedisConst.ORDER_LIST + userId, vo);
return true; return true;
default: default:
return false; return false;
...@@ -116,56 +117,65 @@ public class KylinUtils { ...@@ -116,56 +117,65 @@ public class KylinUtils {
String ticketIdKey = redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId; String ticketIdKey = redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + ticketId;
String ticketUseTimeKey = ticketIdKey + ":" + KylinRedisConst.USE_TIME; String ticketUseTimeKey = ticketIdKey + ":" + KylinRedisConst.USE_TIME;
redisUtil.set(ticketUseTimeKey, useTime); redisUtil.set(ticketUseTimeKey, useTime);
if (buyCount > 0) { if (buyCount > 0) {
redisUtil.incr(ticketIdKey, buyCount); redisUtil.incr(ticketIdKey, buyCount);
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.incr(performanceIdKey, buyCount);
break;
}
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.incr(performanceIdKey, buyCount); redisUtil.incr(performanceIdKey, buyCount);
break;
}
}
}
} else {
redisUtil.incr(performanceIdKey, buyCount);
}
} else { } else {
redisUtil.decr(ticketIdKey, Math.abs(buyCount)); redisUtil.decr(ticketIdKey, Math.abs(buyCount));
if (1 == ticketType) {
int count = 0;
for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
String item = allTicketId.get(useTime).get(i);
if (allTicketId.get(useTime).size() == 1) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount)); redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
}
if (i == 0) {
count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
} else {
if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
break;
}
}
}
} else {
redisUtil.decr(performanceIdKey, Math.abs(buyCount));
}
} }
// if (buyCount > 0) {
// redisUtil.incr(ticketIdKey, buyCount);
// if (1 == ticketType) {
// int count = 0;
// for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
// String item = allTicketId.get(useTime).get(i);
// if (allTicketId.get(useTime).size() == 1) {
// redisUtil.incr(performanceIdKey, buyCount);
// break;
// }
// if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
// }
// if (i == 0) {
// count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
// } else {
// if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.incr(performanceIdKey, buyCount);
// break;
// }
// }
// }
// } else {
// redisUtil.incr(performanceIdKey, buyCount);
// }
// } else {
// redisUtil.decr(ticketIdKey, Math.abs(buyCount));
// if (1 == ticketType) {
// int count = 0;
// for (int i = 0; i < allTicketId.get(useTime).size(); i++) {
// String item = allTicketId.get(useTime).get(i);
// if (allTicketId.get(useTime).size() == 1) {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// break;
// }
// if (null == redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.set(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item, 0);
// }
// if (i == 0) {
// count = (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item);
// } else {
// if (count != (int) redisUtil.get(redisKey + ":" + KylinRedisConst.TICKET_ID + ":" + item)) {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// break;
// }
// }
// }
// } else {
// redisUtil.decr(performanceIdKey, Math.abs(buyCount));
// }
// }
} }
} }
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