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 | 5 | import cn.hutool.core.map.MapUtil; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; |
| 7 | 7 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 8 | +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | |
| 8 | 9 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityBaseVO; |
| 9 | 10 | import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO; |
| 10 | 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 | 19 | import cn.iocoder.yudao.module.promotion.util.PromotionUtils; |
| 19 | 20 | import jakarta.annotation.Resource; |
| 20 | 21 | import org.springframework.stereotype.Service; |
| 22 | +import org.springframework.transaction.annotation.Transactional; | |
| 21 | 23 | import org.springframework.validation.annotation.Validated; |
| 22 | 24 | |
| 23 | 25 | import java.time.LocalDateTime; |
| ... | ... | @@ -48,31 +50,30 @@ public class DiscountActivityServiceImpl implements DiscountActivityService { |
| 48 | 50 | |
| 49 | 51 | @Override |
| 50 | 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 | 56 | @Override |
| 57 | + @Transactional(rollbackFor = Exception.class) | |
| 57 | 58 | public Long createDiscountActivity(DiscountActivityCreateReqVO createReqVO) { |
| 58 | 59 | // 校验商品是否冲突 |
| 59 | 60 | validateDiscountActivityProductConflicts(null, createReqVO.getProducts()); |
| 60 | 61 | |
| 61 | 62 | // 插入活动 |
| 62 | 63 | DiscountActivityDO discountActivity = DiscountActivityConvert.INSTANCE.convert(createReqVO) |
| 63 | - // TODO @zhangshuai:这里的调用去掉哈,强制就是开启的; | |
| 64 | - .setStatus(PromotionUtils.calculateActivityStatus(createReqVO.getEndTime())); | |
| 64 | + .setStatus(CommonStatusEnum.ENABLE.getStatus()); | |
| 65 | 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 | 70 | discountProductMapper.insertBatch(discountProducts); |
| 71 | 71 | // 返回 |
| 72 | 72 | return discountActivity.getId(); |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | 75 | @Override |
| 76 | + @Transactional(rollbackFor = Exception.class) | |
| 76 | 77 | public void updateDiscountActivity(DiscountActivityUpdateReqVO updateReqVO) { |
| 77 | 78 | // 校验存在 |
| 78 | 79 | DiscountActivityDO discountActivity = validateDiscountActivityExists(updateReqVO.getId()); | ... | ... |