默认收货地址代码优化。
积分商品/砍价商品库存问题处理
This commit is contained in:
parent
fb006e13a0
commit
a9f0eac6f7
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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()));
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user