diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopConsumeDiscountRecordService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopConsumeDiscountRecordService.java index 8fca1cfa3..eece1bf3d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopConsumeDiscountRecordService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkShopConsumeDiscountRecordService.java @@ -22,6 +22,8 @@ public interface MkShopConsumeDiscountRecordService extends IService randomList = consumeDiscountVO.getRandomDiscountList(); + if ("RANDOM".equals(consumeDiscountVO.getDiscountType()) && (randomList == null || randomList.isEmpty()) ){ + throw new ApiNotPrintException("随机立减配置错误"); + } + return consumeDiscountVO; + } + + @Override + public boolean canUseDiscount(Long shopId, Long userId, BigDecimal amount) { + checkOpen(shopId); + ShopUser shopUser = shopUserService.getShopUserInfo(shopId, userId); + long count = orderInfoService.count(new QueryWrapper().eq(OrderInfo::getUserId, shopUser.getUserId()) + .eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getStatus, OrderStatusEnums.DONE)); + if (count > 0) { + return false; + } + + long recordCount = count(new QueryWrapper().eq(MkShopConsumeDiscountRecord::getShopId, shopId).eq(MkShopConsumeDiscountRecord::getShopUserId, shopUser.getId()) + .eq(MkShopConsumeDiscountRecord::getIsUse, 1)); + + + return recordCount <= 0; + } + @Override public void useDiscount(Long recordId, Long shopUserId, Long orderId, BigDecimal amount) { AssertUtil.isTrue(recordId == null || shopUserId == null || orderId == null || amount == null, "参数不能为空"); ShopUser shopUser = shopUserService.getById(shopUserId); - long count = orderInfoService.count(new QueryWrapper().eq(OrderInfo::getUserId, shopUser.getUserId()) - .eq(OrderInfo::getShopId, shopUser.getSourceShopId()).eq(OrderInfo::getStatus, OrderStatusEnums.DONE)); - if (count > 0) { - throw new CzgException("新客立减仅新用户可用"); - } + MkShopConsumeDiscountRecord discountRecord = getOne(new QueryWrapper().eq(MkShopConsumeDiscountRecord::getId, recordId) .eq(MkShopConsumeDiscountRecord::getShopUserId, shopUserId) .eq(MkShopConsumeDiscountRecord::getOrderId, orderId)); @@ -74,11 +107,12 @@ public class MkShopConsumeDiscountRecordServiceImpl extends ServiceImpl 0) { + throw new ApiNotPrintException("新客立减仅新用户可用"); } + MkConsumeDiscountVO consumeDiscountVO = checkOpen(shopId); DateTime now = DateUtil.date();