Browse Source

更新bug

release_toaliyun_real
xiaohanzi 6 years ago
parent
commit
a9cffedcc4
4 changed files with 10 additions and 6 deletions
  1. +1
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java
  2. +5
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java
  3. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/utils/RedisLock.java

+ 1
- 1
mallinkCApi/src/main/java/com/iformall/controller/WxPressOrderController.java View File

@@ -147,7 +147,7 @@ public class WxPressOrderController extends BaseController {
return new ResultData(ErrorCode.COUPON_PRESS_HAD_FINISHED);
}

long time = System.currentTimeMillis() + RedisLock.TIMEOUT;
long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT;
String timeStr = String.valueOf(time);
if (!redisLock.lock(orderIdStr, timeStr)) {
logger.error("此砍价订单被锁定, orderId: " + orderIdStr);


+ 5
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxOrderGroupServiceImpl.java View File

@@ -88,7 +88,9 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
}
//锁住人数
boolean grouppeopleLock = redisLock.lock("grouppeopleLock_"+orderGroupId, String.valueOf(orderGroupId));
long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT;
String timeStr = String.valueOf(time);
boolean grouppeopleLock = redisLock.lock("grouppeopleLock_"+orderGroupId, timeStr);
if (!grouppeopleLock) {
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团锁定失败,请稍后再试。");
}
@@ -105,10 +107,10 @@ public class WxOrderGroupServiceImpl implements WxOrderGroupService {
//错误,更新状态,定时任务会发起退款,回滚库存
order.setOrderStatus(EnumOrderStatus.ORDER_STATUS_COOPERATING_UNPAID.getCode());
wxOrderMapper.updateById(order);
redisLock.unlock("grouppeopleLock_"+orderGroupId, String.valueOf(orderGroupId));
redisLock.unlock("grouppeopleLock_"+orderGroupId, timeStr);
throw new MallinkException(ErrorCode.ORDER_GROUP_COOPERATING_FAILD.getCode(),"参团失败,将稍后退款.");
}else {
redisLock.unlock("grouppeopleLock_"+orderGroupId, String.valueOf(orderGroupId));
redisLock.unlock("grouppeopleLock_"+orderGroupId, timeStr);
}

// 更新订单信息


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java View File

@@ -506,7 +506,7 @@ public class WxOrderServiceImpl implements WxOrderService {
* @param wxCouponSendVo
*/
private void stockMerchantReduce(WxCUser user, WxCoupon coupon, String couponIdStr, WxCouponSendVo wxCouponSendVo) {
long time = System.currentTimeMillis() + RedisLock.TIMEOUT;
long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT;
String timeStr = String.valueOf(time);
// 库存加锁
if (!redisLock.lock(couponIdStr, timeStr)) {
@@ -738,7 +738,7 @@ public class WxOrderServiceImpl implements WxOrderService {
Long couponId = updateOrder.getProductId();
String couponIdStr = "" + couponId;
//加锁
long time = System.currentTimeMillis() + 300*RedisLock.TIMEOUT;
long time = System.currentTimeMillis() + RedisLock.LONG_TIMEOUT;
String timeStr = String.valueOf(time);

if (!redisLock.lock(couponIdStr, timeStr)) {


+ 2
- 0
mallinkService/src/main/java/com/iformall/utils/RedisLock.java View File

@@ -27,6 +27,8 @@ public class RedisLock {

public static final int TIMEOUT = 10*1000;//超时时间 10s
public static final int LONG_TIMEOUT = 3600*1000;//超长超时时间,关键业务点失败不能再进行下去的时间点
/**
* 加锁
* @param key productId - 商品的唯一标志


Loading…
Cancel
Save