Commit 783a13a2 by hanghang.wang

一次性卖券调整

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