diff --git a/crmeb-common/src/main/java/com/zbkj/common/constants/Constants.java b/crmeb-common/src/main/java/com/zbkj/common/constants/Constants.java index 5c1a8cd..451f9f2 100644 --- a/crmeb-common/src/main/java/com/zbkj/common/constants/Constants.java +++ b/crmeb-common/src/main/java/com/zbkj/common/constants/Constants.java @@ -416,7 +416,7 @@ public class Constants { public static final String ORDER_TASK_REDIS_KEY_AFTER_DELETE_BY_USER = "alterOrderDeleteByUser"; // 用户删除订单后续操作 public static final String ORDER_TASK_REDIS_KEY_AFTER_COMPLETE_BY_USER = "alterOrderCompleteByUser"; // 用户完成订单后续操作 public static final String ORDER_TASK_REDIS_KEY_AFTER_CANCEL_BY_USER = "alterOrderCancelByUser"; // 用户取消订单后续操作 - public static final String ORDER_TASK_REDIS_KEY_AFTER_REFUND_BY_USER = "alterOrderRefundByUser"; // 用户订单退款后续操作 + public static final String ORDER_TASK_REDIS_KEY_AFTER_REFUND_BY_USER = "alterOrderRefundByUser1"; // 用户订单退款后续操作 public static final String ORDER_STATUS_CACHE_CREATE_ORDER = "cache_key_create_order"; diff --git a/crmeb-common/src/main/java/com/zbkj/common/model/product/StoreProduct.java b/crmeb-common/src/main/java/com/zbkj/common/model/product/StoreProduct.java index 4918607..5147688 100644 --- a/crmeb-common/src/main/java/com/zbkj/common/model/product/StoreProduct.java +++ b/crmeb-common/src/main/java/com/zbkj/common/model/product/StoreProduct.java @@ -33,7 +33,11 @@ import java.math.BigDecimal; public class StoreProduct implements Serializable { private static final long serialVersionUID = 1L; + @ApiModelProperty(value = "每单限购数量") + private Integer orderProductNums; + @ApiModelProperty(value = "用户限购数量") + private Integer userProductNums; @ApiModelProperty(value = "商品id") @TableId(value = "id", type = IdType.AUTO) private Integer id; diff --git a/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java b/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java index 27f46cc..4d8fcc1 100644 --- a/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java +++ b/crmeb-common/src/main/java/com/zbkj/common/request/StoreProductAddRequest.java @@ -34,7 +34,12 @@ import java.util.List; public class StoreProductAddRequest implements Serializable { private static final long serialVersionUID = -452373239606480650L; + @ApiModelProperty(value = "每单限购数量") + private Integer orderProductNums; + + @ApiModelProperty(value = "每个用户限购数量") + private Integer userProductNums; @ApiModelProperty(value = "商品id|添加时不填,修改时必填") private Integer id; diff --git a/crmeb-service/src/main/java/com/zbkj/service/dao/StoreOrderInfoDao.java b/crmeb-service/src/main/java/com/zbkj/service/dao/StoreOrderInfoDao.java index f798e5a..ff73c3e 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/dao/StoreOrderInfoDao.java +++ b/crmeb-service/src/main/java/com/zbkj/service/dao/StoreOrderInfoDao.java @@ -19,7 +19,7 @@ import java.math.BigDecimal; * +---------------------------------------------------------------------- */ public interface StoreOrderInfoDao extends BaseMapper { - + int queryProductNums(@Param("productId") Integer id, @Param("uid") Integer uid); /** * 根据时间、商品id获取销售件数 * @param date 时间,格式'yyyy-MM-dd' diff --git a/crmeb-service/src/main/java/com/zbkj/service/dao/XsbuyDao.java b/crmeb-service/src/main/java/com/zbkj/service/dao/XsbuyDao.java index acddfc1..ea0a8ea 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/dao/XsbuyDao.java +++ b/crmeb-service/src/main/java/com/zbkj/service/dao/XsbuyDao.java @@ -10,6 +10,6 @@ import java.util.List; */ public interface XsbuyDao { List selectListNew(@Param("content") String content,@Param("pageIndex") long l,@Param("pageSize") Long pageSize); - + List selectBySkuNos (@Param("list") List skuNo); } diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderInfoService.java b/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderInfoService.java index 1e33244..22992df 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderInfoService.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderInfoService.java @@ -22,7 +22,7 @@ import java.util.List; * +---------------------------------------------------------------------- */ public interface StoreOrderInfoService extends IService { - + int queryProductNums(Integer id, Integer uid); HashMap> getMapInId(List orderIdList); List getOrderListByOrderId(Integer orderId); diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderService.java b/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderService.java index fced461..2bd1637 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderService.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/StoreOrderService.java @@ -27,7 +27,7 @@ import java.util.Map; * +---------------------------------------------------------------------- */ public interface StoreOrderService extends IService { - + int queryByProdcutId(Integer id, Integer uid); /** * 列表(PC) * @param request 请求参数 diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java index 7482c05..90e74d1 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java @@ -1560,6 +1560,18 @@ public class OrderServiceImpl implements OrderService { detailVoList = validatePreOrderVideo(detailRequest); orderInfoVo.setIsVideo(true); } + detailVoList.forEach(detailVo -> { + StoreProduct storeProduct1 = storeProductService.getById(detailVo.getProductId()); + if(detailVo.getPayNum()>storeProduct1.getOrderProductNums()){ + throw new CrmebException("商品:"+storeProduct1.getStoreName()+",每个订单限购"+storeProduct1.getOrderProductNums()+"件,订单提交失败"); + } + int oldByNum=storeOrderService.queryByProdcutId(storeProduct1.getId(),user.getUid()); + if((oldByNum+detailVo.getPayNum())>storeProduct1.getUserProductNums()){ + throw new CrmebException("商品:"+storeProduct1.getStoreName()+",每个用户限购"+storeProduct1.getUserProductNums()+"件,订单提交失败"); + } + }); + + orderInfoVo.setOrderDetailList(detailVoList); return orderInfoVo; } diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderInfoServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderInfoServiceImpl.java index 0d02a44..2e3140a 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderInfoServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderInfoServiceImpl.java @@ -42,7 +42,10 @@ public class StoreOrderInfoServiceImpl extends ServiceImpl id集合 diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java index 3b2bf94..857e5f6 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java @@ -168,7 +168,11 @@ public class StoreOrderServiceImpl extends ServiceImpl 0 ? systemAttachmentService.clearPrefix(request.getContent()) : ""); spd.setType(Constants.PRODUCT_TYPE_NORMAL); - + checkExistThirdPartySkuNo(new ArrayList<>(), attrValueList, null); Boolean execute = transactionTemplate.execute(e -> { save(storeProduct); @@ -386,7 +392,35 @@ public class StoreProductServiceImpl extends ServiceImpl attrValueAddList, List attrValueUpdateList, StoreProduct storeProduct) { + List allAttrValueAddList = CollUtil.newArrayList(); + allAttrValueAddList.addAll(attrValueAddList); + allAttrValueAddList.addAll(attrValueUpdateList); + List distinctSku = allAttrValueAddList.stream().map(StoreProductAttrValue::getBarCode).distinct().collect(Collectors.toList()); + if (distinctSku.size() != allAttrValueAddList.size()) { + throw new CrmebException("商品重复,请重新选择"); + } + Map skuInfoMap = xsbuyDao.selectBySkuNos(distinctSku).stream().collect(Collectors.toMap(XsSkuInfo::getSkuNo, Function.identity(), (v1, v2) -> v1)); + List list = storeProductAttrValueService.list(new LambdaQueryWrapper().in(StoreProductAttrValue::getBarCode, distinctSku).eq(StoreProductAttrValue::getIsDel, 0)); + if (CollUtil.isNotEmpty(list)) { + for (StoreProductAttrValue storeProductAttrValue : list) { + XsSkuInfo xsSkuInfo = skuInfoMap.get(storeProductAttrValue.getBarCode()); + if (xsSkuInfo == null) { + throw new CrmebException(String.format("商品编码未找到:%s", storeProductAttrValue.getBarCode())); + } + if (storeProduct == null) { + String msg = String.format("商品编号所填%s/%s已在商品id为%s中出现过", xsSkuInfo.getSkuName(), xsSkuInfo.getSkuNo(), storeProductAttrValue.getProductId()); + throw new CrmebException(msg); + } else { + if (storeProductAttrValue.getId().equals(storeProduct.getId())) { + String msg = String.format("商品编号所填%s/%s已在商品id为%s中出现过", xsSkuInfo.getSkuName(), xsSkuInfo.getSkuNo(), storeProductAttrValue.getProductId()); + throw new CrmebException(msg); + } + } + } + } + } /** * 商品sku * @param attrValue json字符串 @@ -454,7 +488,12 @@ public class StoreProductServiceImpl extends ServiceImpl 0 ? systemAttachmentService.clearPrefix(storeProductRequest.getContent()) : ""); spd.setType(Constants.PRODUCT_TYPE_NORMAL); spd.setProductId(storeProduct.getId()); - + checkExistThirdPartySkuNo(attrValueAddList, attrValueUpdateList, tempProduct); Boolean execute = transactionTemplate.execute(e -> { dao.updateById(storeProduct); diff --git a/crmeb-service/src/main/resources/mapper/store/StoreOrderInfoMapper.xml b/crmeb-service/src/main/resources/mapper/store/StoreOrderInfoMapper.xml index 103aed2..887a0fc 100644 --- a/crmeb-service/src/main/resources/mapper/store/StoreOrderInfoMapper.xml +++ b/crmeb-service/src/main/resources/mapper/store/StoreOrderInfoMapper.xml @@ -13,5 +13,7 @@ where order_id in (SELECT id FROM `eb_store_order` where paid = 1 and date_format(create_time, '%Y-%m-%d') = #{date}) and product_id = #{proId} - + diff --git a/crmeb-service/src/main/resources/mapper/store/XsSkuInfoMapper.xml b/crmeb-service/src/main/resources/mapper/store/XsSkuInfoMapper.xml index 6ba4b76..0c9c91e 100644 --- a/crmeb-service/src/main/resources/mapper/store/XsSkuInfoMapper.xml +++ b/crmeb-service/src/main/resources/mapper/store/XsSkuInfoMapper.xml @@ -14,5 +14,14 @@ ORDER BY id limit 20 +