bug--修复首页虚拟销量和相关产品枚举处理

This commit is contained in:
taochengbo
2020-11-02 23:28:46 +08:00
parent cdd541a576
commit e3bb9f434d
6 changed files with 61 additions and 36 deletions

View File

@ -18,6 +18,7 @@ import co.yixiang.api.YshopException;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.ProductTypeEnum;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.enums.SpecTypeEnum;
import co.yixiang.exception.BadRequestException;
@ -218,7 +219,7 @@ public class YxStoreCombinationServiceImpl extends BaseServiceImpl<YxStoreCombin
//获取查看拼团产品人数
combinationDTO.setCountPeopleBrowse(yxStoreVisitMapper.selectCount(new LambdaQueryWrapper<YxStoreVisit>()
.eq(YxStoreVisit::getProductId,combinationDTO.getId())
.eq(YxStoreVisit::getProductType,"combination")));
.eq(YxStoreVisit::getProductType, ProductTypeEnum.COMBINATION.getValue())));
}
Map<String, Object> map = new LinkedHashMap<>(2);
map.put("content",combinationDTOS);

View File

@ -16,13 +16,10 @@ import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.CartTypeEnum;
import co.yixiang.enums.OrderInfoEnum;
import co.yixiang.enums.ProductTypeEnum;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.modules.activity.domain.YxStoreBargain;
import co.yixiang.modules.activity.domain.YxStoreCombination;
import co.yixiang.modules.activity.domain.YxStoreSeckill;
import co.yixiang.modules.activity.service.YxStoreBargainService;
import co.yixiang.modules.activity.service.YxStoreCombinationService;
import co.yixiang.modules.activity.service.YxStoreSeckillService;
import co.yixiang.modules.activity.service.mapper.YxStoreBargainMapper;
import co.yixiang.modules.activity.service.mapper.YxStoreCombinationMapper;
import co.yixiang.modules.activity.service.mapper.YxStoreSeckillMapper;
@ -32,8 +29,6 @@ import co.yixiang.modules.cart.service.dto.YxStoreCartDto;
import co.yixiang.modules.cart.service.dto.YxStoreCartQueryCriteria;
import co.yixiang.modules.cart.service.mapper.StoreCartMapper;
import co.yixiang.modules.cart.vo.YxStoreCartQueryVo;
import co.yixiang.modules.order.domain.YxStoreOrder;
import co.yixiang.modules.order.service.YxStoreOrderService;
import co.yixiang.modules.order.service.dto.CountDto;
import co.yixiang.modules.product.domain.YxStoreProduct;
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
@ -81,20 +76,13 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
private YxStoreBargainMapper yxStoreBargainMapper;
@Autowired
private YxStoreCombinationMapper storeCombinationMapper;
@Autowired
private YxStoreProductService productService;
@Autowired
private YxStoreProductAttrService productAttrService;
@Autowired
private YxStoreCombinationService storeCombinationService;
@Autowired
private YxStoreSeckillService storeSeckillService;
@Autowired
private YxStoreBargainService storeBargainService;
@Autowired
private YxStoreOrderService storeOrderService;
@Autowired
private YxUserService userService;
@ -362,7 +350,7 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
throw new YshopException("该产品已下架或删除");
}
int stock = productService.getProductStock(productId, productAttrUnique, "pink");
int stock = productService.getProductStock(productId, productAttrUnique, ProductTypeEnum.PINK.getValue());
if (stock < cartNum) {
throw new YshopException(product.getStoreName() + "库存不足" + cartNum);
}
@ -376,7 +364,7 @@ public class YxStoreCartServiceImpl extends BaseServiceImpl<StoreCartMapper, YxS
throw new YshopException("该产品已下架或删除");
}
int stock = productService.getProductStock(productId, productAttrUnique, "seckill");
int stock = productService.getProductStock(productId, productAttrUnique, ProductTypeEnum.SECKILL.getValue());
if (stock < cartNum) {
throw new YshopException(product.getStoreName() + "库存不足" + cartNum);
}

View File

@ -28,6 +28,7 @@ import co.yixiang.enums.OrderInfoEnum;
import co.yixiang.enums.OrderLogEnum;
import co.yixiang.enums.OrderStatusEnum;
import co.yixiang.enums.PayTypeEnum;
import co.yixiang.enums.ProductTypeEnum;
import co.yixiang.enums.ShippingTempEnum;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.event.TemplateBean;
@ -901,7 +902,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
yxStoreOrderMapper.updateById(storeOrder);
//增加状态
orderStatusService.create(order.getId(),"user_take_delivery","用户已收货");
orderStatusService.create(order.getId(),OrderLogEnum.TAKE_ORDER_DELIVERY.getValue(),OrderLogEnum.TAKE_ORDER_DELIVERY.getDesc());
//奖励积分
this.gainUserIntegral(order);
@ -963,7 +964,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
yxStoreOrderMapper.updateById(storeOrder);
//增加状态
orderStatusService.create(order.getId(),"user_take_delivery","已核销");
orderStatusService.create(order.getId(),OrderLogEnum.TAKE_ORDER_DELIVERY.getValue(),"已核销");
//奖励积分
this.gainUserIntegral(orderQueryVo);
@ -1584,10 +1585,10 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
Long bargainId = storeCartVO.getBargainId();
if(combinationId != null && combinationId > 0){
productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(),
storeCartVO.getProductAttrUnique(),combinationId,"combination");
storeCartVO.getProductAttrUnique(),combinationId,ProductTypeEnum.COMBINATION.getValue());
}else if(seckillId != null && seckillId > 0){
productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(),
storeCartVO.getProductAttrUnique(),seckillId,"seckill");
storeCartVO.getProductAttrUnique(),seckillId, ProductTypeEnum.SECKILL.getValue());
}else if(bargainId != null && bargainId > 0){
storeBargainService.decStockIncSales(storeCartVO.getCartNum(),bargainId);
} else {
@ -1679,9 +1680,9 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
YxStoreCartQueryVo cart = JSONObject.parseObject(cartInfo.getCartInfo()
,YxStoreCartQueryVo.class);
if(order.getCombinationId() != null && order.getCombinationId() > 0){//拼团
productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getCombinationId(),"combination");
productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getCombinationId(),ProductTypeEnum.COMBINATION.getValue());
}else if(order.getSeckillId() != null && order.getSeckillId() > 0){//秒杀
productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getSeckillId(),"seckill");
productService.incProductStock(cart.getCartNum(),cart.getProductId(),cart.getProductAttrUnique(),order.getSeckillId(),ProductTypeEnum.SECKILL.getValue());
}else if(order.getBargainId() != null && order.getBargainId() > 0){//砍价
storeBargainService.incStockDecSales(cart.getCartNum(),order.getBargainId());
}else{

View File

@ -16,6 +16,7 @@ import co.yixiang.api.BusinessException;
import co.yixiang.api.YshopException;
import co.yixiang.common.service.impl.BaseServiceImpl;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.ProductTypeEnum;
import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.product.domain.YxStoreProductAttr;
import co.yixiang.modules.product.domain.YxStoreProductAttrValue;
@ -165,9 +166,9 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl<StoreProductA
@Override
public void incProductAttrStock(Integer num, Long productId, String unique, String type ) {
if("combination".equals(type)){
if(ProductTypeEnum.COMBINATION.getValue().equals(type)){
yxStoreProductAttrValueMapper.incCombinationStockDecSales(num,productId,unique);
}else if("seckill".equals(type)){
}else if(ProductTypeEnum.SECKILL.getValue().equals(type)){
yxStoreProductAttrValueMapper.incSeckillStockDecSales(num,productId,unique);
}else {
yxStoreProductAttrValueMapper.incStockDecSales(num,productId,unique);
@ -183,9 +184,9 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl<StoreProductA
@Override
public void decProductAttrStock(int num, Long productId, String unique,String type) {
int res = 0;
if("combination".equals(type)){
if(ProductTypeEnum.COMBINATION.getValue().equals(type)){
res = yxStoreProductAttrValueMapper.decCombinationStockIncSales(num,productId,unique);
}else if("seckill".equals(type)){
}else if(ProductTypeEnum.SECKILL.getValue().equals(type)){
res = yxStoreProductAttrValueMapper.decSeckillStockIncSales(num,productId,unique);
}else {
res = yxStoreProductAttrValueMapper.decStockIncSales(num,productId,unique);

View File

@ -21,6 +21,7 @@ import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.CommonEnum;
import co.yixiang.enums.ProductEnum;
import co.yixiang.enums.ProductTypeEnum;
import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.enums.SortEnum;
import co.yixiang.enums.SpecTypeEnum;
@ -127,9 +128,9 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
//先处理商品库存,活动商品也要处理,因为共享库存
storeProductMapper.incStockDecSales(num, productId);
//处理商品外层显示的库存
if ("combination".equals(type)) {
if (ProductTypeEnum.COMBINATION.getValue().equals(type)) {
storeProductMapper.incCombinationStockIncSales(num, productId, activityId);
} else if ("seckill".equals(type)) {
} else if (ProductTypeEnum.SECKILL.getValue().equals(type)) {
storeProductMapper.incSeckillStockIncSales(num, productId, activityId);
}
//todo 处理砍价商品库存
@ -154,12 +155,12 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
throw new YshopException("共享商品库存不足");
}
//处理商品外层显示的库存
if ("combination".equals(type)) {
if (ProductTypeEnum.COMBINATION.getValue().equals(type)) {
int combinationRes = storeProductMapper.decCombinationStockIncSales(num, productId, activityId);
if (combinationRes == 0) {
throw new YshopException("拼团商品库存不足");
}
} else if ("seckill".equals(type)) {
} else if (ProductTypeEnum.SECKILL.getValue().equals(type)) {
int seckillRes = storeProductMapper.decSeckillStockIncSales(num, productId, activityId);
if (seckillRes == 0) {
throw new YshopException("秒杀商品库存不足");
@ -212,9 +213,9 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
if (storeProductAttrValue == null) {
return 0;
}
if ("pink".equals(type)) {
if (ProductTypeEnum.PINK.getValue().equals(type)) {
return storeProductAttrValue.getPinkStock();
} else if ("seckill".equals(type)) {
} else if (ProductTypeEnum.SECKILL.getValue().equals(type)) {
return storeProductAttrValue.getSeckillStock();
}
return storeProductAttrValue.getStock();
@ -408,27 +409,36 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
// order
switch (ProductEnum.toType(order)) {
//精品推荐
case TYPE_1:
wrapper.eq(YxStoreProduct::getIsBest,
ShopCommonEnum.IS_STATUS_1.getValue()); //精品推荐
ShopCommonEnum.IS_STATUS_1.getValue());
break;
//首发新品
case TYPE_3:
wrapper.eq(YxStoreProduct::getIsNew,
ShopCommonEnum.IS_STATUS_1.getValue());//// 首发新品
ShopCommonEnum.IS_STATUS_1.getValue());
break;
// 猜你喜欢
case TYPE_4:
wrapper.eq(YxStoreProduct::getIsBenefit,
ShopCommonEnum.IS_STATUS_1.getValue()); //// 猜你喜欢
ShopCommonEnum.IS_STATUS_1.getValue());
break;
// 热门榜单
case TYPE_2:
wrapper.eq(YxStoreProduct::getIsHot,
ShopCommonEnum.IS_STATUS_1.getValue());//// 热门榜单
ShopCommonEnum.IS_STATUS_1.getValue());
break;
}
Page<YxStoreProduct> pageModel = new Page<>(page, limit);
IPage<YxStoreProduct> pageList = storeProductMapper.selectPage(pageModel, wrapper);
//处理虚拟销量
for (YxStoreProduct vo: pageList.getRecords()) {
vo.setSales(vo.getSales()+vo.getFicti());
}
return generator.convert(pageList.getRecords(), YxStoreProductQueryVo.class);
}