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

Commit 8fc91746 authored by wangyifan's avatar wangyifan

增加partner 退款分布式锁

parent 8d6488fa
......@@ -455,6 +455,12 @@ public class GoblinRedisConst {
*/
public static final String SQB_GOBLIN_ORDER_SN_KEY = PREFIX.concat("sqb:orderSn:");
/**
* 订单退款分布式锁
* {goblin:refund:lock:${orderId}, 1}
*/
public static final String REFUND_ORDER_LOCK = PREFIX.concat("refund:lock:");
/**
* 收钱吧 用户订单列表
*/
......
......@@ -8,6 +8,7 @@ import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.candy.constant.CandyRedisConst;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinBackOrder;
......@@ -291,6 +292,13 @@ public class GoblinStoreBackOrderServiceImpl implements IGoblinStoreBackOrderSer
if (!orderVo.getMixId().isEmpty()) {
return ResponseDto.failure("组合购商品暂不支持退款");
}
// 分布式锁防并发重复退款
String lockKey = GoblinRedisConst.REFUND_ORDER_LOCK + param.getOrderId();
if (!redisUtils.redisUtil.lock(lockKey, 1, 30)) {
return ResponseDto.failure("退款处理中,请勿重复操作");
}
try {
if (hasProcessingBackOrder(orderVo.getOrderId())) {
return ResponseDto.failure("已有退款处理中");
}
......@@ -312,6 +320,9 @@ public class GoblinStoreBackOrderServiceImpl implements IGoblinStoreBackOrderSer
return ResponseDto.failure("请选择退款商品");
}
return createStoreRefundOrder(orderVo, refundSkuVos, beforeShip, param, uid, now, nowStr);
} finally {
redisUtils.redisUtil.uLock(lockKey);
}
}
@Override
......
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