|
|
|
@ -14,9 +14,7 @@ import com.doudian.open.api.supplyCenter_refund_operate.param.SkuRefundInfosItem
|
|
|
|
|
import com.doudian.open.api.supplyCenter_refund_operate.param.SupplyCenterRefundOperateParam;
|
|
|
|
|
import com.ms.biz.consts.DsMessageConst;
|
|
|
|
|
import com.ms.biz.consts.PurchaseOrderConst;
|
|
|
|
|
import com.ms.biz.consts.Refund1688Const;
|
|
|
|
|
import com.ms.biz.consts.StatusConst;
|
|
|
|
|
import com.ms.biz.dto.openspi.request.SkuOrder;
|
|
|
|
|
import com.ms.biz.service.DsMessageConsumerBufferService;
|
|
|
|
|
import com.ms.biz.service.DsMessageConsumerQueueService;
|
|
|
|
|
import com.ms.biz.service.DsMessageService;
|
|
|
|
@ -27,7 +25,6 @@ import com.ms.dal.entity.*;
|
|
|
|
|
import com.ms.dal.mapper.*;
|
|
|
|
|
import lombok.AllArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
|
|
|
|
import org.springframework.lang.Nullable;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
@ -228,29 +225,22 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
Map<Long, PlatformPurchaseOrderSku> skuIdAndPlatformPurchaseOrderSkuMap = platformPurchaseOrderSkus.stream().collect(Collectors.toMap(PlatformPurchaseOrderSku::getSkuId, x->x));
|
|
|
|
|
|
|
|
|
|
String purchaseOrderStatus = purchaseOrderDTO.getPurchaseOrderStatus();
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Date messageCreateTime;
|
|
|
|
|
try {
|
|
|
|
|
messageCreateTime = dateFormat.parse(messageDTO.getGmtMessageCreate());
|
|
|
|
|
} catch (java.text.ParseException e) {
|
|
|
|
|
throw new RuntimeException("时间格式错误");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
handlePurchaseOrderRefund(purchaseOrderDTO, purchaseOrder, skuIdAndPlatformPurchaseOrderSkuMap);
|
|
|
|
|
|
|
|
|
|
if (!Objects.equals(purchaseOrder.getPurchaseOrderStatus(),purchaseOrderStatus)){
|
|
|
|
|
switch (purchaseOrderStatus) {
|
|
|
|
|
case PurchaseOrderConst.PURCHASE_ORDER_STATUS_WAIT_SEND:
|
|
|
|
|
handlePurchaseOrderAfterPay(purchaseOrderDTO, messageCreateTime, purchaseOrder, skuIdAndPlatformPurchaseOrderSkuMap);
|
|
|
|
|
handlePurchaseOrderAfterPay(purchaseOrderDTO, purchaseOrder, skuIdAndPlatformPurchaseOrderSkuMap);
|
|
|
|
|
break;
|
|
|
|
|
case PurchaseOrderConst.PURCHASE_ORDER_STATUS_WAIT_CONFIRM:
|
|
|
|
|
handlePurchaseOrderAfterSend(purchaseOrderDTO, purchaseOrder);
|
|
|
|
|
break;
|
|
|
|
|
case PurchaseOrderConst.PURCHASE_ORDER_STATUS_FINISHED:
|
|
|
|
|
handlePurchaseOrderAfterFinish(purchaseOrderDTO, messageCreateTime, purchaseOrder);
|
|
|
|
|
handlePurchaseOrderAfterFinish(purchaseOrderDTO, purchaseOrder);
|
|
|
|
|
break;
|
|
|
|
|
case PurchaseOrderConst.PURCHASE_ORDER_STATUS_CANCEL:
|
|
|
|
|
handlePurchaseOrderAfterCancel(purchaseOrderDTO, messageCreateTime, purchaseOrder);
|
|
|
|
|
handlePurchaseOrderAfterCancel(purchaseOrderDTO, purchaseOrder);
|
|
|
|
|
platformPurchaseOrder.setStatus(StatusConst.delete); // TODO 多单?精选
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -268,12 +258,14 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handlePurchaseOrderAfterPay(PurchaseOrderDTO purchaseOrderDTO, Date messageCreateTime, PurchaseOrder purchaseOrder, Map<Long, PlatformPurchaseOrderSku> skuIdAndPlatformPurchaseOrderSkuMap) {
|
|
|
|
|
private void handlePurchaseOrderAfterPay(PurchaseOrderDTO purchaseOrderDTO, PurchaseOrder purchaseOrder, Map<Long, PlatformPurchaseOrderSku> skuIdAndPlatformPurchaseOrderSkuMap) {
|
|
|
|
|
purchaseOrder.setPurchaseOrderPayment(new BigDecimal(purchaseOrderDTO.getPurchaseOrderPayment()));
|
|
|
|
|
|
|
|
|
|
Date payTime = CommonTool.parseDate(purchaseOrderDTO.getPurchaseOrderPayTime());
|
|
|
|
|
|
|
|
|
|
SupplyCenterOrderPayParam param = new SupplyCenterOrderPayParam();
|
|
|
|
|
param.setPayAmount((long)(Double.parseDouble(purchaseOrderDTO.getPurchaseOrderPayment()) * 100));
|
|
|
|
|
param.setPayTime(messageCreateTime.getTime());
|
|
|
|
|
param.setPayTime(payTime.getTime());
|
|
|
|
|
param.setPurOrderId(purchaseOrder.getPurOrderId());
|
|
|
|
|
param.setPostAmount(0L);
|
|
|
|
|
List<SkuOrderPayInfosItem> skuOrderPayInfosItems = new ArrayList<>();
|
|
|
|
@ -289,15 +281,7 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handlePurchaseOrderAfterSend(PurchaseOrderDTO purchaseOrderDTO, PurchaseOrder purchaseOrder) {
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
Date purchaseOrderSendTime = null;
|
|
|
|
|
try {
|
|
|
|
|
if (StringUtils.isNotBlank(purchaseOrderDTO.getPurchaseOrderSendTime())) {
|
|
|
|
|
purchaseOrderSendTime = dateFormat.parse(purchaseOrderDTO.getPurchaseOrderSendTime());
|
|
|
|
|
}
|
|
|
|
|
} catch (java.text.ParseException e) {
|
|
|
|
|
throw new RuntimeException("时间格式错误");
|
|
|
|
|
}
|
|
|
|
|
Date purchaseOrderSendTime = CommonTool.parseDate(purchaseOrderDTO.getPurchaseOrderSendTime());
|
|
|
|
|
purchaseOrder.setPurchaseOrderSendTime(purchaseOrderSendTime);
|
|
|
|
|
purchaseOrder.setPurchaseOrderLogisticsName(purchaseOrder.getPurchaseOrderLogisticsName());
|
|
|
|
|
purchaseOrder.setPurchaseOrderWaybillCode(purchaseOrder.getPurchaseOrderWaybillCode());
|
|
|
|
@ -311,18 +295,20 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
DDApi.supplyCenterOrderLogistics(param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handlePurchaseOrderAfterFinish(PurchaseOrderDTO purchaseOrderDTO, Date messageCreateTime, PurchaseOrder purchaseOrder) {
|
|
|
|
|
private void handlePurchaseOrderAfterFinish(PurchaseOrderDTO purchaseOrderDTO, PurchaseOrder purchaseOrder) {
|
|
|
|
|
Date updateTime = CommonTool.parseDate(purchaseOrderDTO.getPurchaseOrderUpdateTime());
|
|
|
|
|
SupplyCenterOrderConfirmParam param = new SupplyCenterOrderConfirmParam();
|
|
|
|
|
param.setPurOrderId(purchaseOrder.getPurOrderId());
|
|
|
|
|
param.setConfirmTime(messageCreateTime.getTime());
|
|
|
|
|
param.setConfirmTime(updateTime.getTime());
|
|
|
|
|
DDApi.supplyCenterOrderConfirm(param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void handlePurchaseOrderAfterCancel(PurchaseOrderDTO purchaseOrderDTO, Date messageCreateTime, PurchaseOrder purchaseOrder) {
|
|
|
|
|
private void handlePurchaseOrderAfterCancel(PurchaseOrderDTO purchaseOrderDTO, PurchaseOrder purchaseOrder) {
|
|
|
|
|
Date updateTime = CommonTool.parseDate(purchaseOrderDTO.getPurchaseOrderUpdateTime());
|
|
|
|
|
purchaseOrder.setStatus(StatusConst.delete);
|
|
|
|
|
SupplyCenterOrderCancelParam param = new SupplyCenterOrderCancelParam();
|
|
|
|
|
param.setPurOrderId(purchaseOrder.getPurOrderId());
|
|
|
|
|
param.setCancelTime(messageCreateTime.getTime());
|
|
|
|
|
param.setCancelTime(updateTime.getTime());
|
|
|
|
|
DDApi.supplyCenterOrderCancel(param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -334,23 +320,28 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
param.setPurOrderId(purchaseOrderDTO.getPlatformOrderId());
|
|
|
|
|
List<SkuRefundInfosItem> skuRefundInfosItems = new ArrayList<>();
|
|
|
|
|
for (Map.Entry<String, RefundInfoDTO> entry: purchaseOrderDTO.getRefundInfo().entrySet()) {
|
|
|
|
|
RefundInfoDTO refundInfo = entry.getValue();
|
|
|
|
|
Address address = new Address();
|
|
|
|
|
address.setUserName(refundInfo.getSellerRealName());
|
|
|
|
|
address.setDetail(refundInfo.getSellerReceiveAddress());
|
|
|
|
|
address.setMobile(refundInfo.getSellerMobile());
|
|
|
|
|
SkuRefundInfosItem skuRefundInfosItem = new SkuRefundInfosItem();
|
|
|
|
|
skuRefundInfosItem.setPurSkuOrderId("");
|
|
|
|
|
skuRefundInfosItem.setRejectReason(refundInfo.getRejectReason());
|
|
|
|
|
skuRefundInfosItem.setAddress(address);
|
|
|
|
|
skuRefundInfosItem.setCloseReason("");
|
|
|
|
|
skuRefundInfosItem.setOperationType(1);
|
|
|
|
|
SkuRefundInfosItem skuRefundInfosItem = buildSkuRefundInfosItem(entry.getValue());
|
|
|
|
|
skuRefundInfosItems.add(skuRefundInfosItem);
|
|
|
|
|
}
|
|
|
|
|
param.setSkuRefundInfos(skuRefundInfosItems);
|
|
|
|
|
DDApi.supplyCenterRefundOperate(param);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static SkuRefundInfosItem buildSkuRefundInfosItem(RefundInfoDTO refundInfo) {
|
|
|
|
|
Address address = new Address();
|
|
|
|
|
address.setUserName(refundInfo.getSellerRealName());
|
|
|
|
|
address.setDetail(refundInfo.getSellerReceiveAddress());
|
|
|
|
|
address.setMobile(refundInfo.getSellerMobile());
|
|
|
|
|
SkuRefundInfosItem skuRefundInfosItem = new SkuRefundInfosItem();
|
|
|
|
|
skuRefundInfosItem.setPurSkuOrderId("");
|
|
|
|
|
skuRefundInfosItem.setRejectReason(refundInfo.getRejectReason());
|
|
|
|
|
skuRefundInfosItem.setAddress(address);
|
|
|
|
|
skuRefundInfosItem.setCloseReason("");
|
|
|
|
|
skuRefundInfosItem.setOperationType(1);
|
|
|
|
|
skuRefundInfosItem.setAftersaleType(1L);
|
|
|
|
|
return skuRefundInfosItem;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private int getOperateType(String refundStatus) {
|
|
|
|
|
/*Refund1688Const.REFUND_STATUS_WAIT_SELLER_AGREE 0
|
|
|
|
|
Refund1688Const.REFUND_STATUS_WAIT_BUYER_SEND 2
|
|
|
|
@ -379,7 +370,7 @@ public class DsMessageServiceImpl implements DsMessageService {
|
|
|
|
|
PlatformPurchaseOrderSku platformPurchaseOrderSku = skuIdAndPlatformPurchaseOrderSkuMap.get(item.getSkuId());
|
|
|
|
|
SkuOrdersItem skuOrdersItem = new SkuOrdersItem();
|
|
|
|
|
skuOrdersItem.setPurSkuOrderId(platformPurchaseOrderSku.getPurSkuOrderId());
|
|
|
|
|
skuOrdersItem.setSupplierSkuOrderId(""); // TODO 上游没值
|
|
|
|
|
skuOrdersItem.setSupplierSkuOrderId(item.getSubItemId());
|
|
|
|
|
}
|
|
|
|
|
param.setSkuOrders(skuOrders);
|
|
|
|
|
DDApi.supplyCenterOrderSyncSupplierInfo(param);
|
|
|
|
|