满减活动问题

分类Pid问题
This commit is contained in:
wangw 2025-10-23 16:31:39 +08:00
parent 0104323702
commit 7e6b791ac9
6 changed files with 29 additions and 8 deletions

View File

@ -15,7 +15,7 @@ import com.czg.market.entity.MkDiscountActivity;
public interface MkDiscountActivityService extends IService<MkDiscountActivity> { public interface MkDiscountActivityService extends IService<MkDiscountActivity> {
Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId); Page<MkDiscountActivityDTO> getActivityPage(TimeQueryParam param, Long shopId);
MkDiscountActivityDTO checkDiscountAct(Long shopId, boolean couponShare, boolean vipShare, boolean limitRateShare, boolean pointsShare); MkDiscountActivityDTO checkDiscountAct(Long discountActId, boolean couponShare, boolean vipShare, boolean limitRateShare, boolean pointsShare);
MkDiscountActivityDTO getActivityByShopId(Long shopId); MkDiscountActivityDTO getActivityByShopId(Long shopId);

View File

@ -76,6 +76,10 @@ public class CheckOrderPay implements Serializable {
* 满减活动抵扣金额 * 满减活动抵扣金额
*/ */
private BigDecimal discountActAmount; private BigDecimal discountActAmount;
/**
* 满减活动Id
*/
private Long discountActId;
/** /**
* 其它优惠券抵扣金额 * 其它优惠券抵扣金额
*/ */

View File

@ -62,8 +62,8 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
} }
@Override @Override
public MkDiscountActivityDTO checkDiscountAct(Long shopId, boolean couponShare, boolean vipShare, boolean limitRateShare, boolean pointsShare) { public MkDiscountActivityDTO checkDiscountAct(Long discountActId, boolean couponShare, boolean vipShare, boolean limitRateShare, boolean pointsShare) {
MkDiscountActivityDTO activityDTO = getActivityByShopId(shopId); MkDiscountActivityDTO activityDTO = getActivityById(discountActId);
AssertUtil.isNull(activityDTO, "店铺未配置满减活动"); AssertUtil.isNull(activityDTO, "店铺未配置满减活动");
//检查是否开启了优惠券抵扣 //检查是否开启了优惠券抵扣
if (couponShare && activityDTO.getCouponShare() == 0) { if (couponShare && activityDTO.getCouponShare() == 0) {
@ -105,6 +105,22 @@ public class MkDiscountActivityServiceImpl extends ServiceImpl<MkDiscountActivit
return activityDTO; return activityDTO;
} }
private MkDiscountActivityDTO getActivityById(Long discountActId) {
MkDiscountActivity activity = this.getById(discountActId);
if (activity == null) {
return null;
}
MkDiscountActivityDTO activityDTO = BeanUtil.toBean(activity, MkDiscountActivityDTO.class);
activityDTO.setThresholds(thresholdMapper.selectListByQuery(
new QueryWrapper()
.eq(MkDiscountThreshold::getActivityId, activity.getId())
.orderBy(MkDiscountThreshold::getFullAmount, false)
));
return activityDTO;
}
@Override @Override
public void addActivity(MkDiscountActivityDTO param) { public void addActivity(MkDiscountActivityDTO param) {
if (CollUtil.isEmpty(param.getThresholds())) { if (CollUtil.isEmpty(param.getThresholds())) {

View File

@ -11,9 +11,9 @@
AND is_del = 0 AND is_del = 0
AND status = 2 AND status = 2
AND NOW() BETWEEN valid_start_time AND valid_end_time AND NOW() BETWEEN valid_start_time AND valid_end_time
<!-- AND (use_time_type = 'all' OR AND (use_time_type = 'all' OR
# (use_time_type = 'custom' AND TIME(NOW()) BETWEEN use_start_time AND use_end_time)) (use_time_type = 'custom' AND TIME(NOW()) BETWEEN use_start_time AND use_end_time))
# AND use_days LIKE CONCAT('%', #{useDay}, '%') --> AND use_days LIKE CONCAT('%', #{useDay}, '%')
ORDER BY sort DESC, ORDER BY sort DESC,
update_time DESC, update_time DESC,
create_time DESC create_time DESC

View File

@ -352,7 +352,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
// 满减活动校验 不为霸王餐 霸王餐不参与满减 // 满减活动校验 不为霸王餐 霸王餐不参与满减
if (!param.isFreeDine() && param.getDiscountActAmount().compareTo(BigDecimal.ZERO) > 0) { if (!param.isFreeDine() && param.getDiscountActAmount().compareTo(BigDecimal.ZERO) > 0) {
//检查满减活动是否开启 //检查满减活动是否开启
discountAct = discountActService.checkDiscountAct(orderInfo.getShopId(), discountAct = discountActService.checkDiscountAct(param.getDiscountActId(),
CollUtil.isNotEmpty(param.getCouponList()), param.isVipPrice(), param.getLimitRate() != null, CollUtil.isNotEmpty(param.getCouponList()), param.isVipPrice(), param.getLimitRate() != null,
param.getPointsDiscountAmount().compareTo(BigDecimal.ZERO) > 0); param.getPointsDiscountAmount().compareTo(BigDecimal.ZERO) > 0);
} }

View File

@ -89,13 +89,14 @@ public class ShopProdCategoryServiceImpl extends ServiceImpl<ShopProdCategoryMap
@Override @Override
public void updateShopProdCategory(ShopProdCategoryDTO dto) { public void updateShopProdCategory(ShopProdCategoryDTO dto) {
Long shopId = StpKit.USER.getShopId(0L); Long shopId = StpKit.USER.getShopId();
dto.setShopId(shopId); dto.setShopId(shopId);
boolean exists = super.exists(query().eq(ShopProdCategory::getName, dto.getName()).eq(ShopProdCategory::getShopId, shopId).ne(ShopProdCategory::getId, dto.getId())); boolean exists = super.exists(query().eq(ShopProdCategory::getName, dto.getName()).eq(ShopProdCategory::getShopId, shopId).ne(ShopProdCategory::getId, dto.getId()));
if (exists) { if (exists) {
throw new CzgException("商品分类已存在"); throw new CzgException("商品分类已存在");
} }
ShopProdCategory entity = BeanUtil.copyProperties(dto, ShopProdCategory.class); ShopProdCategory entity = BeanUtil.copyProperties(dto, ShopProdCategory.class);
entity.setPid(0L);
super.updateById(entity); super.updateById(entity);
} }