优化一段代码,去除无效的逻辑,增加一个秒杀活动错误码

This commit is contained in:
Chopper 2021-08-26 15:58:42 +08:00
parent 09af55fde1
commit 3a14e96c5d
4 changed files with 3 additions and 36 deletions

View File

@ -310,6 +310,7 @@ public enum ResultCode {
/**
* 秒杀
*/
SECKILL_NOT_START_ERROR(45000, "今日没有限时抢购活动,请明天再来看看吧。"),
SECKILL_NOT_EXIST_ERROR(45001, "当前参与的秒杀活动不存在!"),
SECKILL_UPDATE_ERROR(45002, "当前秒杀活动活动已经开始,无法修改!"),
SECKILL_PRICE_ERROR(45003, "活动价格不能大于商品原价"),

View File

@ -36,6 +36,7 @@ public class DateUtil {
/**
* 当天的开始时间
*
* @param date 时间
* @return 根据传入的时间获取开始时间
*/
@ -79,6 +80,7 @@ public class DateUtil {
/**
* 当天的结束时间
*
* @param date 传入日期
* @return 获得传入日期当天结束时间
*/

View File

@ -49,13 +49,6 @@ public interface PromotionGoodsService extends IService<PromotionGoods> {
*/
void updatePromotion(CartSkuVO cartSkuVO);
/**
* 获取购物车商品的促销活动
*
* @param cartSkuVO 购物车中的产品
*/
void getCartSkuPromotion(CartSkuVO cartSkuVO);
/**
* 获取某sku当日所有活动
*

View File

@ -148,35 +148,6 @@ public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper,
}
}
/**
* 获取购物车商品的促销活动
*
* @param cartSkuVO 购物车中的产品
*/
@Override
public void getCartSkuPromotion(CartSkuVO cartSkuVO) {
updatePromotion(cartSkuVO);
Date date = DateUtil.getCurrentDayEndTime();
LambdaQueryWrapper<PromotionGoods> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PromotionGoods::getSkuId, cartSkuVO.getGoodsSku().getId())
.eq(PromotionGoods::getPromotionStatus, PromotionStatusEnum.START.name())
.le(PromotionGoods::getStartTime, date);
//获取有效的促销活动
List<PromotionGoods> promotionGoods = this.list(queryWrapper);
//同步查询缓存中的促销活动商品的库存
for (PromotionGoods promotionGood : promotionGoods) {
Integer goodsStock = this.getPromotionGoodsStock(PromotionTypeEnum.valueOf(promotionGood.getPromotionType()), promotionGood.getPromotionId(), promotionGood.getSkuId());
promotionGood.setQuantity(goodsStock);
}
cartSkuVO.setPromotions(promotionGoods);
//下一次更新时间
cartSkuVO.setUpdatePromotionTime(date);
}
@Override
public List<PromotionGoods> getPromotionGoods(String skuId) {
long currTime = DateUtil.getDateline();