diff --git a/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java index 7383582f..e1c70780 100644 --- a/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java +++ b/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java @@ -53,6 +53,8 @@ public class KanjiaGoodsActivityBuyerController { public ResultMessage> kanjiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) { // 会员端查询到的肯定是已经开始的活动商品 kanjiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name()); + kanjiaActivityGoodsParams.setStartTime(System.currentTimeMillis()); + kanjiaActivityGoodsParams.setEndTime(System.currentTimeMillis()); return ResultUtil.data(kanJiaActivityGoodsService.kanjiaGoodsVOPage(kanjiaActivityGoodsParams, page)); } diff --git a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java index 25bc98a6..88b8b2d0 100644 --- a/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java +++ b/consumer/src/main/java/cn/lili/event/impl/StockUpdateExecute.java @@ -204,7 +204,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { cache.put(cacheKey, kanjiaActivityGoodsService.getKanJiaGoodsBySku(orderItem.getSkuId()).getStock().intValue()); return; case POINTS_GOODS: - cache.put(cacheKey, pointsGoodsService.getPointsGoodsVOByMongo(orderItem.getSkuId()).getActiveStock().intValue()); + cache.put(cacheKey, pointsGoodsService.getPointsGoodsVOByMongo(orderItem.getSkuId()).dgetActiveStock().intValue()); return; case SECKILL: case PINTUAN: @@ -275,6 +275,7 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { //循环订单 for (OrderItem orderItem : order.getOrderItems()) { skuKeys.add(GoodsSkuService.getStockCacheKey(orderItem.getSkuId())); + GoodsSku goodsSku = new GoodsSku(); goodsSku.setId(orderItem.getSkuId()); goodsSku.setGoodsId(orderItem.getGoodsId()); @@ -282,18 +283,22 @@ public class StockUpdateExecute implements OrderStatusChangeEvent { if (null != orderItem.getPromotionType() && null != orderItem.getPromotionId() && PromotionTypeEnum.haveStock(orderItem.getPromotionType())) { //如果促销有库存信息 PromotionTypeEnum promotionTypeEnum = PromotionTypeEnum.valueOf(orderItem.getPromotionType()); - List promotionStocks = cache.multiGet(promotionKey); + //修改砍价商品库存 if (promotionTypeEnum.equals(PromotionTypeEnum.KANJIA)) { KanjiaActivity kanjiaActivity = kanjiaActivityService.getById(orderItem.getPromotionId()); KanjiaActivityGoodsDTO kanjiaActivityGoodsDTO = kanjiaActivityGoodsService.getKanjiaGoodsDetail(kanjiaActivity.getKanjiaActivityGoodsId()); - kanjiaActivityGoodsDTO.setStock(Convert.toInt(promotionStocks.get(0).toString())); + + Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString()); + kanjiaActivityGoodsDTO.setStock(stock); + kanjiaActivityGoodsService.updateById(kanjiaActivityGoodsDTO); this.mongoTemplate.save(kanjiaActivityGoodsDTO); //修改积分商品库存 } else if (promotionTypeEnum.equals(PromotionTypeEnum.POINTS_GOODS)) { PointsGoodsVO pointsGoodsVO = pointsGoodsService.getPointsGoodsDetail(orderItem.getPromotionId()); - pointsGoodsVO.setActiveStock(Convert.toLong(promotionStocks.get(0).toString())); + Integer stock = Integer.parseInt(cache.get(PromotionGoodsService.getPromotionGoodsStockCacheKey(promotionTypeEnum, orderItem.getPromotionId(), orderItem.getSkuId())).toString()); + pointsGoodsVO.setActiveStock(stock); pointsGoodsService.updateById(pointsGoodsVO); this.mongoTemplate.save(pointsGoodsVO); } else { diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/PointsGoods.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/PointsGoods.java index 87916a77..bf622f95 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/PointsGoods.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/PointsGoods.java @@ -37,7 +37,7 @@ public class PointsGoods extends BasePromotion { private String pointsGoodsCategoryName; @ApiModelProperty(value = "活动库存数量") - private Long activeStock; + private Integer activeStock; @ApiModelProperty(value = "兑换积分") private Long points; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java index 82900494..bb817150 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java @@ -2,6 +2,8 @@ package cn.lili.modules.promotion.entity.vos.kanjia; import cn.hutool.core.text.CharSequenceUtil; +import cn.lili.common.security.context.UserContext; +import cn.lili.common.security.enums.UserEnums; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.annotations.ApiModelProperty; @@ -53,10 +55,14 @@ public class KanjiaActivityGoodsParams implements Serializable { queryWrapper.eq("promotion_status", promotionStatus); } if (startTime != null) { - queryWrapper.ge("start_time", new Date(startTime)); + queryWrapper.le("start_time", new Date(startTime)); } if (endTime != null) { - queryWrapper.le("end_time", new Date(endTime)); + queryWrapper.ge("end_time", new Date(endTime)); + } + if (UserContext.getCurrentUser() != null && UserContext.getCurrentUser().getRole().equals(UserEnums.MEMBER)) { + + queryWrapper.gt("stock", 0); } queryWrapper.eq("delete_flag", false); return queryWrapper; diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberAddressServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberAddressServiceImpl.java index ca80e933..1272fc18 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberAddressServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/MemberAddressServiceImpl.java @@ -1,11 +1,11 @@ package cn.lili.modules.promotion.serviceimpl; import cn.lili.common.security.context.UserContext; -import cn.lili.mybatis.util.PageUtil; import cn.lili.common.vo.PageVO; import cn.lili.modules.member.entity.dos.MemberAddress; import cn.lili.modules.member.mapper.MemberAddressMapper; import cn.lili.modules.promotion.service.MemberAddressService; +import cn.lili.mybatis.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -14,8 +14,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; - /** * 收货地址业务层实现 * @@ -27,7 +25,7 @@ import java.util.List; public class MemberAddressServiceImpl extends ServiceImpl implements MemberAddressService { @Override - public IPage getAddressByMember(PageVO page,String memberId) { + public IPage getAddressByMember(PageVO page, String memberId) { return this.page(PageUtil.initPage(page), new QueryWrapper() .eq("member_id", memberId)); @@ -69,10 +67,6 @@ public class MemberAddressServiceImpl extends ServiceImpl() - .eq("id", memberAddress.getId())); return memberAddress; } @@ -85,21 +79,21 @@ public class MemberAddressServiceImpl extends ServiceImpl list = this.baseMapper.selectList(new QueryWrapper().eq("member_id", shippingAddress.getMemberId())); - if (list.size() == 1) { - shippingAddress.setIsDefault(true); - } + private void updateDefaultShippingAddress(MemberAddress memberAddress) { //如果不是默认地址不需要处理 - if (shippingAddress.getIsDefault()) { + if (memberAddress.getIsDefault()) { //将会员的地址修改为非默认地址 LambdaUpdateWrapper lambdaUpdateWrapper = Wrappers.lambdaUpdate(); lambdaUpdateWrapper.set(MemberAddress::getIsDefault, false); - lambdaUpdateWrapper.eq(MemberAddress::getMemberId, shippingAddress.getMemberId()); + lambdaUpdateWrapper.eq(MemberAddress::getMemberId, memberAddress.getMemberId()); this.update(lambdaUpdateWrapper); + + //修改会员地址 + this.update(memberAddress, + new QueryWrapper() + .eq("id", memberAddress.getId())); } }