下单处理活动库存调整

This commit is contained in:
xuwenbo
2020-08-27 16:35:14 +08:00
parent 0b61a61c4b
commit 966e153f88
7 changed files with 44 additions and 11 deletions

View File

@ -1492,20 +1492,21 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl<StoreOrderMapper, Y
* @param cartInfo 购物车 * @param cartInfo 购物车
*/ */
public void deStockIncSale(List<YxStoreCartQueryVo> cartInfo) { public void deStockIncSale(List<YxStoreCartQueryVo> cartInfo) {
//todo 活动商品库存待处理
for (YxStoreCartQueryVo storeCartVO : cartInfo) { for (YxStoreCartQueryVo storeCartVO : cartInfo) {
Long combinationId = storeCartVO.getCombinationId(); Long combinationId = storeCartVO.getCombinationId();
Long seckillId = storeCartVO.getSeckillId(); Long seckillId = storeCartVO.getSeckillId();
Long bargainId = storeCartVO.getBargainId(); Long bargainId = storeCartVO.getBargainId();
if(combinationId != null && combinationId > 0){ if(combinationId != null && combinationId > 0){
combinationService.decStockIncSales(storeCartVO.getCartNum(),combinationId); productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(),
storeCartVO.getProductAttrUnique(),combinationId,"combination");
}else if(seckillId != null && seckillId > 0){ }else if(seckillId != null && seckillId > 0){
storeSeckillService.decStockIncSales(storeCartVO.getCartNum(),seckillId); productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(),
storeCartVO.getProductAttrUnique(),combinationId,"seckill");
}else if(bargainId != null && bargainId > 0){ }else if(bargainId != null && bargainId > 0){
storeBargainService.decStockIncSales(storeCartVO.getCartNum(),bargainId); storeBargainService.decStockIncSales(storeCartVO.getCartNum(),bargainId);
} else { } else {
productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(), productService.decProductStock(storeCartVO.getCartNum(),storeCartVO.getProductId(),
storeCartVO.getProductAttrUnique()); storeCartVO.getProductAttrUnique(),0l,"");
} }
} }
} }

View File

@ -37,7 +37,7 @@ public interface YxStoreProductAttrService extends BaseService<YxStoreProductAt
* @param productId 商品id * @param productId 商品id
* @param unique sku唯一值 * @param unique sku唯一值
*/ */
void decProductAttrStock(int num, Long productId, String unique); void decProductAttrStock(int num, Long productId, String unique,String type);
/** /**

View File

@ -43,7 +43,7 @@ public interface YxStoreProductService extends BaseService<YxStoreProduct>{
* @param productId 商品id * @param productId 商品id
* @param unique sku * @param unique sku
*/ */
void decProductStock(int num, Long productId, String unique); void decProductStock(int num, Long productId, String unique,Long activityId,String type);
YxStoreProduct getProductInfo(int id); YxStoreProduct getProductInfo(int id);

View File

@ -171,8 +171,15 @@ public class YxStoreProductAttrServiceImpl extends BaseServiceImpl<StoreProductA
* @param unique sku唯一值 * @param unique sku唯一值
*/ */
@Override @Override
public void decProductAttrStock(int num, Long productId, String unique) { public void decProductAttrStock(int num, Long productId, String unique,String type) {
int res = yxStoreProductAttrValueMapper.decStockIncSales(num,productId,unique); int res = 0;
if("combination".equals(type)){
res = yxStoreProductAttrValueMapper.decCombinationStockIncSales(num,productId,unique);
}else if("seckill".equals(type)){
res = yxStoreProductAttrValueMapper.decSeckillStockIncSales(num,productId,unique);
}else {
res = yxStoreProductAttrValueMapper.decStockIncSales(num,productId,unique);
}
if(res == 0) throw new YshopException("商品库存不足"); if(res == 0) throw new YshopException("商品库存不足");
} }

View File

@ -138,11 +138,19 @@ public class YxStoreProductServiceImpl extends BaseServiceImpl<StoreProductMappe
* @param unique sku * @param unique sku
*/ */
@Override @Override
public void decProductStock(int num, Long productId, String unique) { public void decProductStock(int num, Long productId, String unique,Long activityId,String type) {
if(StrUtil.isNotEmpty(unique)){ if(StrUtil.isNotEmpty(unique)){
yxStoreProductAttrService.decProductAttrStock(num,productId,unique); yxStoreProductAttrService.decProductAttrStock(num,productId,unique, type);
} }
int res = storeProductMapper.decStockIncSales(num,productId); int res = 0;
if("combination".equals(type)){
res = storeProductMapper.decCombinationStockIncSales(num,productId,activityId);
}else if("seckill".equals(type)){
res = storeProductMapper.decSeckillStockIncSales(num,productId,activityId);
}else {
res = storeProductMapper.decStockIncSales(num,productId);
}
if(res == 0) throw new YshopException("商品库存不足"); if(res == 0) throw new YshopException("商品库存不足");
} }

View File

@ -35,4 +35,12 @@ public interface StoreProductAttrValueMapper extends CoreMapper<YxStoreProductAt
" where product_id=#{productId} and `unique`=#{unique}") " where product_id=#{productId} and `unique`=#{unique}")
int incStockDecSales(@Param("num") int num,@Param("productId") Long productId, int incStockDecSales(@Param("num") int num,@Param("productId") Long productId,
@Param("unique") String unique); @Param("unique") String unique);
@Update("update yx_store_product_attr_value set stock=stock-#{num}, pink_stock=pink_stock-#{num} sales=sales+#{num}" +
" where product_id=#{productId} and `unique`=#{unique} and stock >= #{num} and pink_stock>=#{num}")
int decCombinationStockIncSales(int num, Long productId, String unique);
@Update("update yx_store_product_attr_value set stock=stock-#{num}, seckill_stock=seckill_stock-#{num} sales=sales+#{num}" +
" where product_id=#{productId} and `unique`=#{unique} and stock >= #{num} and seckill_stock>=#{num}")
int decSeckillStockIncSales(int num, Long productId, String unique);
} }

View File

@ -43,4 +43,13 @@ public interface StoreProductMapper extends CoreMapper<YxStoreProduct> {
@Update("update yx_store_product set is_show = #{status} where id = #{id}") @Update("update yx_store_product set is_show = #{status} where id = #{id}")
void updateOnsale(@Param("status") Integer status, @Param("id") Long id); void updateOnsale(@Param("status") Integer status, @Param("id") Long id);
//todo 拼团商品库存+—
@Update("update yx_store_combination set stock=stock-#{num}, sales=sales+#{num}" +
" where id=#{activityId} and stock >= #{num}")
int decCombinationStockIncSales(int num, Long productId,Long activityId);
//todo 拼团商品库存+—
@Update("update yx_store_seckill set stock=stock-#{num}, sales=sales+#{num}" +
" where id=#{activityId} and stock >= #{num}")
int decSeckillStockIncSales(int num, Long productId,Long activityId);
} }