Authored by chenchao

fix 寄存转寄存交易成功,寄存商品未正确转到买家头上

... ... @@ -1925,12 +1925,7 @@ public class AppraiseService {
LOGGER.warn("in processInstockDepositOrderAfterDeliver transferGoodsMoneyWhenPass fail orderCode {} sellerUid {}",
orderCode, sellerUid, ex);
}
try {
depositService.changeOwner(sellerUid, skup, orderCode, buyerUid, true);
}catch (Exception ex){
LOGGER.warn("deliver 2 depot successful, processInstockDepositOrderAfterDeliver invoke depositService.changeOwner fail, sellerUid {}, orderCode {},skup {}",
sellerUid, orderCode, skup);
}
}
}
... ...
... ... @@ -1050,11 +1050,29 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
String depositCode = dscNode.getDepositCode();
StorageDeposit psd = dscNode.getPsd();
Integer ownerUid = psd.getOwnerUid();
logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {}", orderCode, depositCode);
Integer sellerUid = buyerOrder.getSellerUid();
Integer skup;
boolean isExistSkup = Objects.nonNull(skup = psd.getNewSkup()) && skup>0;
logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} skup {}", orderCode, depositCode, skup);
//寄存商品 出库准备
int rows = depositService.updateDepositWaitToPick(ownerUid, depositCode, orderCode, Optional.ofNullable(preparedData.getBuyerOrderGoods())
.map(BuyerOrderGoods::getSkup).orElse(0));
logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} updateDepositWaitToPick {}", orderCode, depositCode, rows);
int rows = 0;
boolean isInstockDepositOrder = dscNode.isInstockDepositOrder();
if (isInstockDepositOrder){
if(isExistSkup)
try {
rows = depositService.changeOwner(sellerUid, skup, orderCode, buyerUid, true) ? 1 : 0;
}catch (Exception ex){
logger.warn("processOrderDeliverByDepositGoods fail, processInstockDepositOrderAfterDeliver invoke depositService.changeOwner fail, sellerUid {}, orderCode {},skup {}",
sellerUid, orderCode, skup, ex);
rows = 0;
}
}else {
rows = depositService.updateDepositWaitToPick(ownerUid, depositCode, orderCode, Optional.ofNullable(preparedData.getBuyerOrderGoods())
.map(BuyerOrderGoods::getSkup).orElse(0));
logger.info("processOrderDeliverByDepositGoods orderCode {} depositCode {} updateDepositWaitToPick {}", orderCode, depositCode, rows);
}
if (rows>0){
//bind deposit code 2 buyer order
buyerOrderMetaService.saveDepositCode(depositCode, buyerUid, orderCode);
... ... @@ -1064,10 +1082,8 @@ public class BuyerOrderServiceImpl implements IBuyerOrderService {
//互斥:申请一个分布锁,锁定订单,防止与发货后取消并发
//skup 下架
Integer skup;
Integer productId;
//skup 竟然在数据库有默认值0,什么鬼!!!
if (Objects.nonNull(skup = psd.getNewSkup()) && skup>0){
if (isExistSkup){
// 减库存
asyncExecutePrdTask(psd);
//
... ...