新增顺丰同城库存扣减
This commit is contained in:
parent
3ce2b7cbd6
commit
d886bb51ab
@ -24,6 +24,7 @@ import com.suisung.mall.common.domain.UserDto;
|
|||||||
import com.suisung.mall.common.exception.ApiException;
|
import com.suisung.mall.common.exception.ApiException;
|
||||||
import com.suisung.mall.common.modules.order.ShopOrderBase;
|
import com.suisung.mall.common.modules.order.ShopOrderBase;
|
||||||
import com.suisung.mall.common.modules.order.ShopOrderItem;
|
import com.suisung.mall.common.modules.order.ShopOrderItem;
|
||||||
|
import com.suisung.mall.common.modules.product.ShopProductItem;
|
||||||
import com.suisung.mall.common.modules.store.ShopMchEntry;
|
import com.suisung.mall.common.modules.store.ShopMchEntry;
|
||||||
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase;
|
import com.suisung.mall.common.modules.store.ShopStoreSameCityTransportBase;
|
||||||
import com.suisung.mall.common.modules.store.ShopStoreSfOrder;
|
import com.suisung.mall.common.modules.store.ShopStoreSfOrder;
|
||||||
@ -36,6 +37,7 @@ import com.suisung.mall.shop.order.service.ShopOrderBaseService;
|
|||||||
import com.suisung.mall.shop.order.service.ShopOrderInfoService;
|
import com.suisung.mall.shop.order.service.ShopOrderInfoService;
|
||||||
import com.suisung.mall.shop.order.service.ShopOrderItemService;
|
import com.suisung.mall.shop.order.service.ShopOrderItemService;
|
||||||
import com.suisung.mall.shop.order.service.ShopOrderReturnService;
|
import com.suisung.mall.shop.order.service.ShopOrderReturnService;
|
||||||
|
import com.suisung.mall.shop.product.service.ShopProductItemService;
|
||||||
import com.suisung.mall.shop.sfexpress.service.SFExpressApiService;
|
import com.suisung.mall.shop.sfexpress.service.SFExpressApiService;
|
||||||
import com.suisung.mall.shop.store.service.ShopMchEntryService;
|
import com.suisung.mall.shop.store.service.ShopMchEntryService;
|
||||||
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
|
import com.suisung.mall.shop.store.service.ShopStoreSameCityTransportBaseService;
|
||||||
@ -57,6 +59,8 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.suisung.mall.common.utils.I18nUtil._;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class SFExpressApiServiceImpl implements SFExpressApiService {
|
public class SFExpressApiServiceImpl implements SFExpressApiService {
|
||||||
private static final Logger logger = LoggerFactory.getLogger(SFExpressApiServiceImpl.class);
|
private static final Logger logger = LoggerFactory.getLogger(SFExpressApiServiceImpl.class);
|
||||||
@ -112,6 +116,9 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ShopOrderItemService shopOrderItemService;
|
private ShopOrderItemService shopOrderItemService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ShopProductItemService shopProductItemService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建顺丰同店铺-连锁店铺
|
* 创建顺丰同店铺-连锁店铺
|
||||||
*
|
*
|
||||||
@ -713,7 +720,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
shopStoreSfOrder.setStatus_desc("线上商城发起取消订单");
|
shopStoreSfOrder.setStatus_desc("线上商城发起取消订单");
|
||||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new ApiException(I18nUtil._("取消顺丰订单失败!"));
|
throw new ApiException(_("取消顺丰订单失败!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1067,7 +1074,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
|
|
||||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new ApiException(I18nUtil._("状态处理失败!"));
|
throw new ApiException(_("状态处理失败!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更改商城订单状态为:注意事务问题
|
// 更改商城订单状态为:注意事务问题
|
||||||
@ -1101,6 +1108,9 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
String order_id = shopStoreSfOrder.getShop_order_id();
|
String order_id = shopStoreSfOrder.getShop_order_id();
|
||||||
itemQueryWrapper.eq("order_id", order_id);
|
itemQueryWrapper.eq("order_id", order_id);
|
||||||
List<ShopOrderItem> order_item_rows = shopOrderItemService.find(itemQueryWrapper);
|
List<ShopOrderItem> order_item_rows = shopOrderItemService.find(itemQueryWrapper);
|
||||||
|
if(picking(order_item_rows)){
|
||||||
|
logger.info("顺丰发货商品扣减库存成功");
|
||||||
|
}
|
||||||
if (!order_item_rows.isEmpty()) {
|
if (!order_item_rows.isEmpty()) {
|
||||||
for (ShopOrderItem shopOrderItem : order_item_rows) {
|
for (ShopOrderItem shopOrderItem : order_item_rows) {
|
||||||
Map<String, Integer> stockDeltaMap = new HashMap<>();
|
Map<String, Integer> stockDeltaMap = new HashMap<>();
|
||||||
@ -1212,7 +1222,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
|
|
||||||
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
Boolean success = shopStoreSfOrderService.updateShopStoreSfOrderStatus(shopStoreSfOrder);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new ApiException(I18nUtil._("状态处理失败!"));
|
throw new ApiException(_("状态处理失败!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更改商城订单状态为:已完成,注意事务问题
|
// 更改商城订单状态为:已完成,注意事务问题
|
||||||
@ -1221,7 +1231,7 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
// success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_FINISH, 0, 0);
|
// success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_FINISH, 0, 0);
|
||||||
success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_RECEIVED, 0, 0);
|
success = shopOrderInfoService.changeOrderStatus(shopStoreSfOrder.getShop_order_id(), StateCode.ORDER_STATE_RECEIVED, 0, 0);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
throw new ApiException(I18nUtil._("状态处理失败!"));
|
throw new ApiException(_("状态处理失败!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
String orderId = shopStoreSfOrder.getShop_order_id();
|
String orderId = shopStoreSfOrder.getShop_order_id();
|
||||||
@ -1264,6 +1274,9 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
QueryWrapper<ShopOrderItem> itemQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<ShopOrderItem> itemQueryWrapper = new QueryWrapper<>();
|
||||||
itemQueryWrapper.eq("order_id", orderId);
|
itemQueryWrapper.eq("order_id", orderId);
|
||||||
List<ShopOrderItem> order_item_rows = shopOrderItemService.find(itemQueryWrapper);
|
List<ShopOrderItem> order_item_rows = shopOrderItemService.find(itemQueryWrapper);
|
||||||
|
if(picking(order_item_rows)){
|
||||||
|
logger.info("自行发货商品扣减库存成功");
|
||||||
|
}
|
||||||
if (!order_item_rows.isEmpty()) {
|
if (!order_item_rows.isEmpty()) {
|
||||||
for (ShopOrderItem shopOrderItem : order_item_rows) {
|
for (ShopOrderItem shopOrderItem : order_item_rows) {
|
||||||
Map<String, Integer> stockDeltaMap = new HashMap<>();
|
Map<String, Integer> stockDeltaMap = new HashMap<>();
|
||||||
@ -1299,7 +1312,36 @@ public class SFExpressApiServiceImpl implements SFExpressApiService {
|
|||||||
shopOrderBaseService.updateById(shopOrderBase);
|
shopOrderBaseService.updateById(shopOrderBase);
|
||||||
return CommonResult.success("操作成功");
|
return CommonResult.success("操作成功");
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 根据订单列表扣除商品库存
|
||||||
|
* @param order_item_rows
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean picking(List<ShopOrderItem> order_item_rows){
|
||||||
|
logger.info("出库商品扣除库存--开始");
|
||||||
|
List<ShopProductItem> updateProductItems = new ArrayList<>();
|
||||||
|
for (ShopOrderItem shopOrderItem : order_item_rows) {
|
||||||
|
Long item_id = Long.valueOf(shopOrderItem.getItem_src_id());
|
||||||
|
ShopProductItem productItem = shopProductItemService.get(item_id);
|
||||||
|
if (productItem == null) {
|
||||||
|
throw new ApiException(String.format(_("SKU【%s】不存在!"), item_id));
|
||||||
|
}
|
||||||
|
Integer item_change_quantity=shopOrderItem.getOrder_item_quantity()*-1;
|
||||||
|
Integer quantity = productItem.getItem_quantity() + item_change_quantity;
|
||||||
|
if (quantity.compareTo(0) < 0) {
|
||||||
|
quantity = 0;
|
||||||
|
}
|
||||||
|
productItem.setItem_quantity(quantity);
|
||||||
|
//防止负数
|
||||||
|
Integer tmp_quantity = productItem.getItem_quantity_frozen() + item_change_quantity.intValue();
|
||||||
|
if (tmp_quantity.compareTo(0) < 0) {
|
||||||
|
tmp_quantity = 0;
|
||||||
|
}
|
||||||
|
productItem.setItem_quantity_frozen(tmp_quantity);
|
||||||
|
updateProductItems.add(productItem);
|
||||||
|
}
|
||||||
|
return shopProductItemService.updateBatchById(updateProductItems,updateProductItems.size());
|
||||||
|
}
|
||||||
|
|
||||||
// 私有方法
|
// 私有方法
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user