Commit b7554e935c8af173f2c40a9610c39ce8c6f19681
1 parent
3f7e99c9
【修复】商城系统:优惠活动中的限时活动,添加活动报错系统异常
Showing
1 changed file
with
9 additions
and
8 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java
| @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; | @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; | ||
| 5 | import cn.hutool.core.map.MapUtil; | 5 | import cn.hutool.core.map.MapUtil; |
| 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; | 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||
| 8 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityBaseVO; | 9 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityBaseVO; |
| 9 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO; | 10 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO; |
| 10 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO; | 11 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO; |
| @@ -18,6 +19,7 @@ import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnu | @@ -18,6 +19,7 @@ import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnu | ||
| 18 | import cn.iocoder.yudao.module.promotion.util.PromotionUtils; | 19 | import cn.iocoder.yudao.module.promotion.util.PromotionUtils; |
| 19 | import jakarta.annotation.Resource; | 20 | import jakarta.annotation.Resource; |
| 20 | import org.springframework.stereotype.Service; | 21 | import org.springframework.stereotype.Service; |
| 22 | +import org.springframework.transaction.annotation.Transactional; | ||
| 21 | import org.springframework.validation.annotation.Validated; | 23 | import org.springframework.validation.annotation.Validated; |
| 22 | 24 | ||
| 23 | import java.time.LocalDateTime; | 25 | import java.time.LocalDateTime; |
| @@ -48,31 +50,30 @@ public class DiscountActivityServiceImpl implements DiscountActivityService { | @@ -48,31 +50,30 @@ public class DiscountActivityServiceImpl implements DiscountActivityService { | ||
| 48 | 50 | ||
| 49 | @Override | 51 | @Override |
| 50 | public List<DiscountProductDO> getMatchDiscountProductList(Collection<Long> skuIds) { | 52 | public List<DiscountProductDO> getMatchDiscountProductList(Collection<Long> skuIds) { |
| 51 | - // TODO @zhangshuai:这里是不是可以直接 return discountProductMapper.getMatchDiscountProductList(skuIds); 一般来说,如果 idea 报“黄色”的警告,尽量都处理下哈;原则是,一切警告,皆为异常(错误),这样可以写出更好的代码。 | ||
| 52 | - List<DiscountProductDO> matchDiscountProductList = discountProductMapper.getMatchDiscountProductList(skuIds); | ||
| 53 | - return matchDiscountProductList; | 53 | + return discountProductMapper.getMatchDiscountProductList(skuIds); |
| 54 | } | 54 | } |
| 55 | 55 | ||
| 56 | @Override | 56 | @Override |
| 57 | + @Transactional(rollbackFor = Exception.class) | ||
| 57 | public Long createDiscountActivity(DiscountActivityCreateReqVO createReqVO) { | 58 | public Long createDiscountActivity(DiscountActivityCreateReqVO createReqVO) { |
| 58 | // 校验商品是否冲突 | 59 | // 校验商品是否冲突 |
| 59 | validateDiscountActivityProductConflicts(null, createReqVO.getProducts()); | 60 | validateDiscountActivityProductConflicts(null, createReqVO.getProducts()); |
| 60 | 61 | ||
| 61 | // 插入活动 | 62 | // 插入活动 |
| 62 | DiscountActivityDO discountActivity = DiscountActivityConvert.INSTANCE.convert(createReqVO) | 63 | DiscountActivityDO discountActivity = DiscountActivityConvert.INSTANCE.convert(createReqVO) |
| 63 | - // TODO @zhangshuai:这里的调用去掉哈,强制就是开启的; | ||
| 64 | - .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime())); | 64 | + .setStatus(CommonStatusEnum.ENABLE.getStatus()); |
| 65 | discountActivityMapper.insert(discountActivity); | 65 | discountActivityMapper.insert(discountActivity); |
| 66 | // 插入商品 | 66 | // 插入商品 |
| 67 | - // TODO @zhangshuai:activityStatus 最好代码里,也做下设置噢。 | ||
| 68 | - List<DiscountProductDO> discountProducts = convertList(createReqVO.getProducts(), | ||
| 69 | - product -> DiscountActivityConvert.INSTANCE.convert(product).setActivityId(discountActivity.getId())); | 67 | + List<DiscountProductDO> discountProducts = BeanUtils.toBean(createReqVO.getProducts(), DiscountProductDO.class, |
| 68 | + product -> product.setActivityId(discountActivity.getId()).setActivityStatus(discountActivity.getStatus()) | ||
| 69 | + .setActivityStartTime(createReqVO.getStartTime()).setActivityEndTime(createReqVO.getEndTime())); | ||
| 70 | discountProductMapper.insertBatch(discountProducts); | 70 | discountProductMapper.insertBatch(discountProducts); |
| 71 | // 返回 | 71 | // 返回 |
| 72 | return discountActivity.getId(); | 72 | return discountActivity.getId(); |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | @Override | 75 | @Override |
| 76 | + @Transactional(rollbackFor = Exception.class) | ||
| 76 | public void updateDiscountActivity(DiscountActivityUpdateReqVO updateReqVO) { | 77 | public void updateDiscountActivity(DiscountActivityUpdateReqVO updateReqVO) { |
| 77 | // 校验存在 | 78 | // 校验存在 |
| 78 | DiscountActivityDO discountActivity = validateDiscountActivityExists(updateReqVO.getId()); | 79 | DiscountActivityDO discountActivity = validateDiscountActivityExists(updateReqVO.getId()); |