|
@@ -19,7 +19,11 @@ import com.fs.his.mapper.FsStoreAfterSalesMapper;
|
|
|
import com.fs.his.service.IFsStoreOrderItemService;
|
|
|
import com.fs.his.service.IFsStoreOrderService;
|
|
|
import com.fs.his.service.IFsStoreProductService;
|
|
|
-import com.fs.his.vo.FsStoreOrderItemVO;
|
|
|
+import com.fs.hisStore.domain.FsStoreOrderItemScrm;
|
|
|
+import com.fs.hisStore.domain.FsStoreOrderScrm;
|
|
|
+import com.fs.hisStore.service.IFsStoreOrderItemScrmService;
|
|
|
+import com.fs.hisStore.service.IFsStoreOrderScrmService;
|
|
|
+import com.fs.hisStore.vo.FsStoreOrderItemVO;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.http.util.Asserts;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -41,11 +45,16 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
@Autowired
|
|
|
private IFsStoreOrderService fsStoreOrderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IFsStoreOrderScrmService fsStoreOrderScrmService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private FsJstAftersalePushMapper fsJstAftersalePushMapper;
|
|
|
|
|
|
@Autowired
|
|
|
private IFsStoreOrderItemService fsStoreOrderItemService;
|
|
|
+ @Autowired
|
|
|
+ private IFsStoreOrderItemScrmService fsStoreOrderItemScrmService;
|
|
|
|
|
|
@Autowired
|
|
|
private IFsStoreProductService fsStoreProductService;
|
|
@@ -207,6 +216,154 @@ public class JSTErpOrderServiceImpl implements IErpOrderService {
|
|
|
return erpOrderResponse;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public ErpOrderResponse addOrderScrm(ErpOrder order) {
|
|
|
+ FsStoreOrderScrm fsStoreOrder = fsStoreOrderScrmService.selectFsStoreOrderByOrderCode(order.getPlatform_code());
|
|
|
+
|
|
|
+ ErpOrderPayment erpOrderPayment = order.getPayments().get(0);
|
|
|
+
|
|
|
+ ShopOrderDTO shopOrderDTO = new ShopOrderDTO();
|
|
|
+
|
|
|
+ shopOrderDTO.setShopId(Long.valueOf(order.getShop_code()));
|
|
|
+ shopOrderDTO.setSoId(order.getPlatform_code());
|
|
|
+ shopOrderDTO.setOrderDate(order.getDeal_datetime());
|
|
|
+ // 待发货
|
|
|
+ shopOrderDTO.setShopStatus(OrderStatusEnum.WAIT_SELLER_SEND_GOODS.name());
|
|
|
+ // 买家账号
|
|
|
+ shopOrderDTO.setShopBuyerId(order.getBuyer_account());
|
|
|
+ // 收货人省份
|
|
|
+ shopOrderDTO.setReceiverState(order.getReceiver_province());
|
|
|
+ // 收货人城市
|
|
|
+ shopOrderDTO.setReceiverCity(order.getReceiver_city());
|
|
|
+ // 收货人区域
|
|
|
+ shopOrderDTO.setReceiverDistrict(order.getReceiver_district());
|
|
|
+ // 收货人详细地址
|
|
|
+ shopOrderDTO.setReceiverAddress(order.getReceiver_address());
|
|
|
+ // 收货人详细地址
|
|
|
+ shopOrderDTO.setReceiverName(order.getReceiver_name());
|
|
|
+ // 收货人电话
|
|
|
+ shopOrderDTO.setReceiverPhone(order.getReceiver_mobile());
|
|
|
+ // 支付金额
|
|
|
+ shopOrderDTO.setPayAmount(erpOrderPayment.getPayment());
|
|
|
+ // 运费 改
|
|
|
+// if(ObjectUtil.isNull(fsStoreOrder.getPayPostage())) {
|
|
|
+// shopOrderDTO.setFreight(Double.valueOf("0.00"));
|
|
|
+// } else {
|
|
|
+// shopOrderDTO.setFreight(fsStoreOrder.getPayPostage().doubleValue());
|
|
|
+// }
|
|
|
+ if (ObjectUtil.isNull(fsStoreOrder.getPayDelivery())) {
|
|
|
+ shopOrderDTO.setFreight(Double.valueOf("0.00"));
|
|
|
+ } else {
|
|
|
+ shopOrderDTO.setFreight(fsStoreOrder.getPayDelivery().doubleValue());
|
|
|
+ }
|
|
|
+ // 备注
|
|
|
+ shopOrderDTO.setRemark(order.getBuyer_memo());
|
|
|
+ // 买家留言
|
|
|
+ shopOrderDTO.setBuyerMessage(order.getBuyer_memo());
|
|
|
+
|
|
|
+ // 订单商品项列表
|
|
|
+ List<OrderItemDTO> itemDTOList = new ArrayList<>();
|
|
|
+ // 改
|
|
|
+// List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
|
|
|
+// for (FsStoreOrderItemVO item : fsStoreOrderItemVOS) {
|
|
|
+// OrderItemDTO orderItemDTO = new OrderItemDTO();
|
|
|
+// JSONObject jsonObject = JSON.parseObject(item.getJsonInfo());
|
|
|
+//
|
|
|
+// String barCode = jsonObject.getString("barCode");
|
|
|
+// String productName = jsonObject.getString("productName");
|
|
|
+//
|
|
|
+// orderItemDTO.setSkuId(barCode);
|
|
|
+// orderItemDTO.setShopSkuId(barCode);
|
|
|
+// orderItemDTO.setName(productName);
|
|
|
+//
|
|
|
+// FsStoreProduct fsStoreProduct = fsStoreProductService.selectFsStoreProductById(item.getProductId());
|
|
|
+//
|
|
|
+// orderItemDTO.setAmount(fsStoreProduct.getPrice());
|
|
|
+//
|
|
|
+// orderItemDTO.setQty(item.getNum().intValue());
|
|
|
+// orderItemDTO.setOuterOiId(String.format("%s%s",item.getOrderCode(),item.getItemId()));
|
|
|
+// itemDTOList.add(orderItemDTO);
|
|
|
+// }
|
|
|
+
|
|
|
+ List<FsStoreOrderItemVO> fsStoreOrderItemVOS = fsStoreOrderItemScrmService.selectFsStoreOrderItemListByOrderId(fsStoreOrder.getId());
|
|
|
+ for (FsStoreOrderItemVO item : fsStoreOrderItemVOS) {
|
|
|
+ OrderItemDTO orderItemDTO = new OrderItemDTO();
|
|
|
+ JSONObject jsonObject = JSON.parseObject(item.getJsonInfo());
|
|
|
+
|
|
|
+ String barCode = jsonObject.getString("barCode");
|
|
|
+ String productName = jsonObject.getString("productName");
|
|
|
+ String sku=jsonObject.getString("sku");
|
|
|
+
|
|
|
+ orderItemDTO.setSkuId(barCode);
|
|
|
+ orderItemDTO.setShopSkuId(barCode);
|
|
|
+ orderItemDTO.setName(productName);
|
|
|
+ orderItemDTO.setShopIId(orderItemDTO.getSkuId());//款式编码ID,当前没有这个目前就与SKU ID一致
|
|
|
+ orderItemDTO.setPropertiesValue(sku);//商品属性
|
|
|
+
|
|
|
+ FsStoreProduct fsStoreProduct = fsStoreProductService.selectFsStoreProductById(item.getProductId());
|
|
|
+
|
|
|
+ orderItemDTO.setAmount(fsStoreProduct.getPrice());
|
|
|
+
|
|
|
+ orderItemDTO.setQty(item.getNum().intValue());
|
|
|
+ orderItemDTO.setOuterOiId(String.format("%s%s",fsStoreOrder.getOrderCode(),item.getItemId()));
|
|
|
+ itemDTOList.add(orderItemDTO);
|
|
|
+ }
|
|
|
+ shopOrderDTO.setItems(itemDTOList);
|
|
|
+
|
|
|
+ // 实际支付金额
|
|
|
+ PaymentDTO paymentDTO = new PaymentDTO();
|
|
|
+ paymentDTO.setAmount(fsStoreOrder.getPayMoney().doubleValue());
|
|
|
+ paymentDTO.setOuterPayId(order.getPlatform_code());
|
|
|
+ paymentDTO.setPayDate(order.getDeal_datetime());
|
|
|
+ paymentDTO.setPayment("微信支付");
|
|
|
+ paymentDTO.setBuyerAccount(order.getBuyer_account());
|
|
|
+ paymentDTO.setSellerAccount("平台销售");
|
|
|
+ shopOrderDTO.setPay(paymentDTO);
|
|
|
+
|
|
|
+
|
|
|
+ // 如果是货到付款
|
|
|
+ if("2".equals(fsStoreOrder.getPayType()) || "3".equals(fsStoreOrder.getPayType())){
|
|
|
+ shopOrderDTO.setIsCod(true);
|
|
|
+ // 货到付款金额 = 物流代收金额-优惠金额
|
|
|
+ shopOrderDTO.setBuyerPaidAmount(fsStoreOrder.getPayDelivery());
|
|
|
+ shopOrderDTO.setPayAmount(fsStoreOrder.getPayPrice().doubleValue());
|
|
|
+
|
|
|
+ // 货到付款要推两次
|
|
|
+ PaymentDTO paymentDTO2 = new PaymentDTO();
|
|
|
+ // 物流代收金额
|
|
|
+ paymentDTO2.setAmount(fsStoreOrder.getPayDelivery().doubleValue());
|
|
|
+ paymentDTO2.setOuterPayId(String.format("%s%d",order.getPlatform_code(),1));
|
|
|
+ paymentDTO2.setPayDate(order.getDeal_datetime());
|
|
|
+ paymentDTO2.setPayment("货到付款");
|
|
|
+ paymentDTO2.setBuyerAccount(order.getBuyer_account());
|
|
|
+ paymentDTO2.setSellerAccount("平台销售");
|
|
|
+ shopOrderDTO.setPay(paymentDTO2);
|
|
|
+
|
|
|
+ FsJstCodPush fsJstCodPush = new FsJstCodPush();
|
|
|
+ fsJstCodPush.setOrderId(fsStoreOrder.getOrderCode());
|
|
|
+ fsJstCodPush.setType("0");
|
|
|
+ fsJstCodPush.setParams(JSON.toJSONString(shopOrderDTO));
|
|
|
+ fsJstCodPush.setRetryCount(0);
|
|
|
+ fsJstCodPush.setTaskStatus(TaskStatusEnum.PENDING.getCode());
|
|
|
+ fsJstCodPushMapper.insert(fsJstCodPush);
|
|
|
+
|
|
|
+ shopOrderDTO.setPay(paymentDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ ErpOrderResponseDTO upload = jstErpHttpService.upload(shopOrderDTO);
|
|
|
+
|
|
|
+ if(CollectionUtils.isEmpty(upload.getDatas())) {
|
|
|
+ log.info("推送ERP返回结果: {}",upload);
|
|
|
+ throw new IllegalArgumentException("推送ERP返回数不应该为0");
|
|
|
+ }
|
|
|
+ ErpOrderResponseDTO.OrderData orderData = upload.getDatas().get(0);
|
|
|
+
|
|
|
+ ErpOrderResponse erpOrderResponse = new ErpOrderResponse();
|
|
|
+ erpOrderResponse.setSuccess(true);
|
|
|
+ erpOrderResponse.setCode(String.valueOf(orderData.getOId()));
|
|
|
+ return erpOrderResponse;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|