Commit 783a13a2 by hanghang.wang

一次性卖券调整

parent d97f0e45
......@@ -26,13 +26,13 @@ public class BuyProductOnceManager {
//用户限购:每人每单限购一次 / 禁用
public ResponseResult checkBuyProductOnce(List<ProductInfo> products, String partnerId, String userId) {
List productsCheck = products.stream().filter(product -> product.getIsLimitNumProduct() == 1).collect(Collectors.toList());
List<ProductInfo> productsCheck = products.stream().filter(product -> product.getIsLimitNumProduct() == 1).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(productsCheck)) {
//每人每单限购一次
if (productsCheck.size() > 1) {
return ResponseResult.USER_BUY_PRODUCT_MORE_THAN_THE_NUMBER;
}
String key = this.getCheckBuyProductOnceKey(partnerId, userId);
String key = this.getCheckBuyProductOnceKey(partnerId, userId,productsCheck.get(0).getPid());
if (redisTemplate.hasKey(key)) {
return ResponseResult.USER_BUY_PRODUCT_ALREADY;
}
......@@ -43,17 +43,19 @@ public class BuyProductOnceManager {
return ResponseResult.SUCCESS;
}
public String getCheckBuyProductOnceKey(String partnerId, String userId) {
public String getCheckBuyProductOnceKey(String partnerId, String userId,String pid) {
StringBuilder key = new StringBuilder(RedisKeyConstant.USER_BUY_PRODUCT_ONCE)
.append(partnerId)
.append(":")
.append(userId);
.append(userId)
.append(":")
.append(pid);
return key.toString();
}
//清掉key
public boolean removeCheckBuyProductOnceKey(String partnerId, String userId) {
String key = this.getCheckBuyProductOnceKey(partnerId, userId);
public boolean removeCheckBuyProductOnceKey(String partnerId, String userId,String pid) {
String key = this.getCheckBuyProductOnceKey(partnerId, userId,pid);
redisTemplate.delete(key);
return true;
}
......
......@@ -2032,7 +2032,7 @@ public class OrderServiceImpl implements Orderservice {
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
//取消支付时,清理key.此处不做校验是否限制次数的单子,卖券订单直接清理
if(Objects.equals(BizTypeEnum.APP_COUPON.getBizType(),orderBean.getBizType())){
buyProductOnceManager.removeCheckBuyProductOnceKey(orderBean.getCompanyId(),orderBean.getUserId());
buyProductOnceManager.removeCheckBuyProductOnceKey(orderBean.getCompanyId(),orderBean.getUserId(),orderBean.getProductList().get(0).getProductId());
}
return ResponseUtil.success();
}
......@@ -2079,7 +2079,7 @@ public class OrderServiceImpl implements Orderservice {
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
//取消支付时,清理key.此处不做校验是否限制次数的单子,卖券订单直接清理
if(Objects.equals(BizTypeEnum.APP_COUPON.getBizType(),orderBean.getBizType())){
buyProductOnceManager.removeCheckBuyProductOnceKey(orderBean.getCompanyId(),orderBean.getUserId());
buyProductOnceManager.removeCheckBuyProductOnceKey(orderBean.getCompanyId(),orderBean.getUserId(),orderBean.getProductList().get(0).getProductId());
}
return ResponseUtil.success();
}
......
......@@ -255,7 +255,7 @@ public class SellCouponOrderServiceImpl {
AfterSalesType.SYSTEM_CANCEL, "商品库存不足", "", null);
BaseOrderResponse orderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
//异常清理掉key
buyProductOnceManager.removeCheckBuyProductOnceKey(partnerId,userId);
buyProductOnceManager.removeCheckBuyProductOnceKey(partnerId,userId,orderBean.getProductList().get(0).getProductId());
return ResponseUtil.error(baseResponse.getCode(),"商品库存不足");
}
}
......
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