默认收货地址代码优化。

积分商品/砍价商品库存问题处理
This commit is contained in:
Chopper 2021-09-02 10:00:57 +08:00
parent fb006e13a0
commit a9f0eac6f7
5 changed files with 31 additions and 24 deletions

View File

@ -53,6 +53,8 @@ public class KanjiaGoodsActivityBuyerController {
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> 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));
}

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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<MemberAddressMapper, MemberAddress> implements MemberAddressService {
@Override
public IPage<MemberAddress> getAddressByMember(PageVO page,String memberId) {
public IPage<MemberAddress> getAddressByMember(PageVO page, String memberId) {
return this.page(PageUtil.initPage(page),
new QueryWrapper<MemberAddress>()
.eq("member_id", memberId));
@ -69,10 +67,6 @@ public class MemberAddressServiceImpl extends ServiceImpl<MemberAddressMapper, M
public MemberAddress updateMemberAddress(MemberAddress memberAddress) {
//判断当前地址是否为默认地址如果为默认需要将其他的地址修改为非默认
updateDefaultShippingAddress(memberAddress);
//修改会员地址
this.update(memberAddress,
new QueryWrapper<MemberAddress>()
.eq("id", memberAddress.getId()));
return memberAddress;
}
@ -85,21 +79,21 @@ public class MemberAddressServiceImpl extends ServiceImpl<MemberAddressMapper, M
/**
* 修改会员默认收件地址
*
* @param shippingAddress 收件地址
* @param memberAddress 收件地址
*/
private void updateDefaultShippingAddress(MemberAddress shippingAddress) {
//校验此地址是否为第一个会员地址 如果是默认是会员默认地址
List<MemberAddress> list = this.baseMapper.selectList(new QueryWrapper<MemberAddress>().eq("member_id", shippingAddress.getMemberId()));
if (list.size() == 1) {
shippingAddress.setIsDefault(true);
}
private void updateDefaultShippingAddress(MemberAddress memberAddress) {
//如果不是默认地址不需要处理
if (shippingAddress.getIsDefault()) {
if (memberAddress.getIsDefault()) {
//将会员的地址修改为非默认地址
LambdaUpdateWrapper<MemberAddress> 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<MemberAddress>()
.eq("id", memberAddress.getId()));
}
}