|
@@ -21,6 +21,7 @@ import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
|
|
|
import com.iamberry.rst.service.order.mapper.OrderSyncLogMapper;
|
|
|
import com.iamberry.rst.service.order.mapper.OrderSyncPlatformMapper;
|
|
|
import com.iamberry.rst.service.product.mapper.ProductColorMapper;
|
|
|
+import com.iamberry.rst.service.product.mapper.ProductMapper;
|
|
|
import com.iamberry.rst.util.GenerateKeyUtil;
|
|
|
import org.apache.http.HttpResponse;
|
|
|
import org.apache.http.HttpStatus;
|
|
@@ -71,6 +72,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
private DealerProductService dealerProductService;
|
|
|
@Autowired
|
|
|
private AddressService addressService;
|
|
|
+ @Autowired
|
|
|
+ private ProductMapper productMapper;
|
|
|
|
|
|
|
|
|
static int maxSize = 20;
|
|
@@ -215,8 +218,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
orderSyncLog.setSyncLogErrorMsg(newErrorMsg);
|
|
|
}
|
|
|
|
|
|
- if(orderSyncLog.getSyncLogErrorMsg() != null && !"".equals(orderSyncLog.getSyncLogErrorMsg())
|
|
|
- && orderSyncLog.getSyncLogRecentNum() == 0){
|
|
|
+ if(orderSyncLog.getSyncLogRecentNum() != 0){
|
|
|
orderSyncLogMapper.save(orderSyncLog);
|
|
|
}
|
|
|
|
|
@@ -560,7 +562,15 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
Map<String,Object> deliveryInfosMap = new HashMap<>();
|
|
|
deliveryInfosMap.put("itemIds",itemIds);
|
|
|
deliveryInfosMap.put("companyCode",logisticsInfo.getLogisticsXytCode());
|
|
|
- deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());
|
|
|
+
|
|
|
+ if(logisticsInfo.getLogisticsXytCode().equals("CYS0000010")){
|
|
|
+
|
|
|
+ String postNum = salesOrder.getSalesPostNum();
|
|
|
+ postNum = postNum.substring(0,postNum.indexOf("-"));
|
|
|
+ deliveryInfosMap.put("deliveryNo",postNum);
|
|
|
+ }else{
|
|
|
+ deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());
|
|
|
+ }
|
|
|
deliveryInfosMap.put("deliveryTime",sdf.format(salesOrder.getSalesSendTime()));
|
|
|
maps[0]=deliveryInfosMap;
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
@@ -568,18 +578,24 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
map.put("deliveryInfos",maps);
|
|
|
|
|
|
String shipResultJson = this.syncXYT("delivery",map);
|
|
|
- JSONObject jsonObj = new JSONObject(shipResultJson);
|
|
|
- String resultMsg = jsonObj.getString("result_msg");
|
|
|
- if(resultMsg.equals("success")) {
|
|
|
-
|
|
|
- SalesOrder shipSalesOrder = new SalesOrder();
|
|
|
- shipSalesOrder.setSalesIsShip(1);
|
|
|
- shipSalesOrder.setSalesId(salesOrderId);
|
|
|
- salesOrderService.update(shipSalesOrder);
|
|
|
- successNum++;
|
|
|
- }else{
|
|
|
+ try{
|
|
|
+ JSONObject jsonObj = new JSONObject(shipResultJson);
|
|
|
+ String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ if(resultMsg.equals("success")) {
|
|
|
+
|
|
|
+ SalesOrder shipSalesOrder = new SalesOrder();
|
|
|
+ shipSalesOrder.setSalesIsShip(1);
|
|
|
+ shipSalesOrder.setSalesId(salesOrderId);
|
|
|
+ salesOrderService.update(shipSalesOrder);
|
|
|
+ successNum++;
|
|
|
+ }else{
|
|
|
+ errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:"+shipResultJson+";");
|
|
|
+ errorNum++;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:"+shipResultJson+";");
|
|
|
errorNum++;
|
|
|
+ e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -760,18 +776,64 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrder.setSalesOrderId(String.valueOf(otherOrderId));
|
|
|
salesOrder.setSalesDealCode(String.valueOf(otherOrderId));
|
|
|
salesOrder.setSalesExOrderId(otherExtOrderId);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String platformId = infoObj.getString("platformId");
|
|
|
+ Long shopId = infoObj.getLong("shopId");
|
|
|
+ String shopIdStr = String.valueOf(shopId);
|
|
|
+ switch (platformId){
|
|
|
+ case "TMALL":{
|
|
|
+
|
|
|
+ if("100239736885".equals(shopIdStr) ){
|
|
|
+ salesOrder.setSalesStoreId(86);
|
|
|
+ }else if("100239736886".equals(shopIdStr)){
|
|
|
+ salesOrder.setSalesStoreId(3);
|
|
|
+ }
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
+ salesOrder.setSalesPayType(5);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "JD":{
|
|
|
+
|
|
|
+ salesOrder.setSalesStoreId(40);
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
+ salesOrder.setSalesPayType(5);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "OFFLINE":
|
|
|
+ default:
|
|
|
+ salesOrder.setSalesStoreId(124);
|
|
|
+ salesOrder.setSalesCompanyId(1);
|
|
|
+ salesOrder.setSalesPayType(5);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
salesOrder.setSalesAddressName(consigneeObj.getString("receiverName"));
|
|
|
salesOrder.setSalesAddressTel(consigneeObj.getString("receiverMobile"));
|
|
|
-
|
|
|
- String receiverState = consigneeObj.getString("receiverState");
|
|
|
- String receiverCity = consigneeObj.getString("receiverCity");
|
|
|
- String receiverDistrict = consigneeObj.getString("receiverCountry");
|
|
|
- String receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
- if(receiverState.indexOf("上海")>-1 || receiverState.indexOf("北京")>-1
|
|
|
- || receiverState.indexOf("重庆")>-1 || receiverState.indexOf("天津")>-1 ){
|
|
|
- receiverDistrict = receiverCity;
|
|
|
- receiverCity = receiverState;
|
|
|
+
|
|
|
+
|
|
|
+ String receiverState = "",receiverCity="",receiverDistrict="",receiverAddress="";
|
|
|
+ if("JD".equals(platformId)){
|
|
|
+ receiverState = consigneeObj.getString("receiverState");
|
|
|
+ receiverCity = consigneeObj.getString("receiverCity");
|
|
|
+ receiverDistrict = consigneeObj.getString("receiverCountry");
|
|
|
+ receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
+ if(receiverState.indexOf("上海")>-1 || receiverState.indexOf("北京")>-1
|
|
|
+ || receiverState.indexOf("重庆")>-1 || receiverState.indexOf("天津")>-1 ){
|
|
|
+ receiverDistrict = receiverCity;
|
|
|
+ receiverCity = receiverState;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ receiverState = consigneeObj.getString("receiverState");
|
|
|
+ receiverCity = consigneeObj.getString("receiverCity");
|
|
|
+ receiverDistrict = consigneeObj.getString("receiverDistrict");
|
|
|
+ receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
}
|
|
|
String address = receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress;
|
|
|
salesOrder.setSalesAddressInfo(receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress);
|
|
@@ -860,41 +922,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- String platformId = infoObj.getString("platformId");
|
|
|
- Long shopId = infoObj.getLong("shopId");
|
|
|
- String shopIdStr = String.valueOf(shopId);
|
|
|
- switch (platformId){
|
|
|
- case "TMALL":{
|
|
|
-
|
|
|
- if("100239736885".equals(shopIdStr) ){
|
|
|
- salesOrder.setSalesStoreId(86);
|
|
|
- }else if("100239736886".equals(shopIdStr)){
|
|
|
- salesOrder.setSalesStoreId(3);
|
|
|
- }
|
|
|
- salesOrder.setSalesCompanyId(1);
|
|
|
- salesOrder.setSalesPayType(5);
|
|
|
- break;
|
|
|
- }
|
|
|
- case "JD":{
|
|
|
-
|
|
|
- salesOrder.setSalesStoreId(40);
|
|
|
- salesOrder.setSalesCompanyId(1);
|
|
|
- salesOrder.setSalesPayType(5);
|
|
|
- break;
|
|
|
- }
|
|
|
- case "OFFLINE":
|
|
|
- default:
|
|
|
- salesOrder.setSalesStoreId(124);
|
|
|
- salesOrder.setSalesCompanyId(1);
|
|
|
- salesOrder.setSalesPayType(5);
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
Long totalFee = infoObj.getLong("totalFee");
|
|
|
Integer amount = totalFee.intValue();
|
|
@@ -964,7 +991,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
|
|
|
for(int j=0;j<itemsArray.length();j++){
|
|
|
JSONObject item = itemsArray.getJSONObject(j);
|
|
|
- SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
|
|
|
|
|
|
Integer itemStatus = item.getInt("itemStatus");
|
|
@@ -973,10 +999,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesWarrantyStatus = 1;
|
|
|
}
|
|
|
|
|
|
- salesOrderItem.setItemWarrantyStatus(itemWarrantyStatus);
|
|
|
-
|
|
|
String extSkuId = item.getString("outerId");
|
|
|
-
|
|
|
ProductColor productColor = productColorMapper.getProductColorByBar(extSkuId);
|
|
|
if(productColor == null){
|
|
|
logger.info("商城订单编号:"+otherExtOrderId+"-订单项中的SKU未匹配到本地,SKU编号:"+extSkuId+"; ");
|
|
@@ -985,33 +1008,85 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
|
|
|
Long orderItemId = item.getLong("orderItemId");
|
|
|
- salesOrderItem.setItemOtherId(String.valueOf(orderItemId));
|
|
|
-
|
|
|
Integer num = item.getInt("num");
|
|
|
Long totalFeeLong = item.getLong("totalFee");
|
|
|
Integer totalFeeInt = totalFeeLong.intValue();
|
|
|
|
|
|
- Integer itemDiscountFeeInt = totalFeeInt/num;
|
|
|
-
|
|
|
- salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
- salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
- salesOrderItem.setItemTotal(totalFeeInt);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- salesOrderItem.setItemNum(num);
|
|
|
- salesOrderItem.setItemColorBar(productColor.getColorBar());
|
|
|
- salesOrderItem.setItemProductId(productColor.getColorProductId());
|
|
|
- salesOrderItem.setItemColorId(productColor.getColorId());
|
|
|
- salesOrderItem.setItemProductType(productColor.getProductType());
|
|
|
- salesOrderItem.setItemProductName(productColor.getProductName());
|
|
|
- salesOrderItem.setItemProductColor(productColor.getColorName());
|
|
|
- salesOrderItem.setProductAbbreviation(productColor.getProductAbbreviation());
|
|
|
- salesOrderItem.setColorAbbreviation(productColor.getColorAbbreviation());
|
|
|
- salesOrderItem.setColorIsWeight(productColor.getColorIsWeight());
|
|
|
- salesOrderItem.setColorIsMachine(productColor.getColorIsMachine());
|
|
|
- salesOrderItem.setItemIsSource(1);
|
|
|
- salesOrderItemList.add(salesOrderItem);
|
|
|
+
|
|
|
+ if(productColor.getProductIsSplit() == 1){
|
|
|
+ List<ProductCombinatInfo> productCombinatList = productMapper.combinatList(productColor.getColorProductId());
|
|
|
+ if(productCombinatList == null || productCombinatList.size() < 1){
|
|
|
+ logger.info("商城订单编号:"+otherExtOrderId+"-订单项中的SKU未查询到组合产品,SKU编号:"+extSkuId+"; ");
|
|
|
+ errorMsg.append(otherExtOrderId+"-订单项中的SKU未查询到组合产品,SKU编号:"+extSkuId+";");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ Integer advProductCombinatFree = totalFeeInt/productCombinatList.size();
|
|
|
+ for (int m = 0;m<productCombinatList.size();m++) {
|
|
|
+ ProductCombinatInfo productCombinatInfo = productCombinatList.get(m);
|
|
|
+
|
|
|
+ ProductColor sonPc = productColorMapper.getProductColorByBar(productCombinatInfo.getColorBar());
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
+ salesOrderItem.setItemWarrantyStatus(itemWarrantyStatus);
|
|
|
+
|
|
|
+ salesOrderItem.setItemOtherId(String.valueOf(orderItemId));
|
|
|
+
|
|
|
+ Integer sonNum = num*productCombinatInfo.getCombinatItemNum();
|
|
|
+
|
|
|
+
|
|
|
+ Integer itemDiscountAllFeeInt = 0;
|
|
|
+ if((m+1) >= productCombinatList.size()){
|
|
|
+ itemDiscountAllFeeInt = totalFeeInt;
|
|
|
+ }else{
|
|
|
+ itemDiscountAllFeeInt = advProductCombinatFree;
|
|
|
+ totalFeeInt = totalFeeInt - itemDiscountAllFeeInt;
|
|
|
+ }
|
|
|
+ Integer itemDiscountFeeInt = itemDiscountAllFeeInt/sonNum;
|
|
|
+
|
|
|
+ salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
+ salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
+ salesOrderItem.setItemTotal(itemDiscountAllFeeInt);
|
|
|
+
|
|
|
+ salesOrderItem.setItemNum(sonNum);
|
|
|
+ salesOrderItem.setItemColorBar(sonPc.getColorBar());
|
|
|
+ salesOrderItem.setItemProductId(sonPc.getColorProductId());
|
|
|
+ salesOrderItem.setItemColorId(sonPc.getColorId());
|
|
|
+ salesOrderItem.setItemProductType(sonPc.getProductType());
|
|
|
+ salesOrderItem.setItemProductName(sonPc.getProductName());
|
|
|
+ salesOrderItem.setItemProductColor(sonPc.getColorName());
|
|
|
+ salesOrderItem.setProductAbbreviation(sonPc.getProductAbbreviation());
|
|
|
+ salesOrderItem.setColorAbbreviation(sonPc.getColorAbbreviation());
|
|
|
+ salesOrderItem.setColorIsWeight(sonPc.getColorIsWeight());
|
|
|
+ salesOrderItem.setColorIsMachine(sonPc.getColorIsMachine());
|
|
|
+ salesOrderItem.setItemIsSource(1);
|
|
|
+ salesOrderItemList.add(salesOrderItem);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
+ salesOrderItem.setItemWarrantyStatus(itemWarrantyStatus);
|
|
|
+ salesOrderItem.setItemOtherId(String.valueOf(orderItemId));
|
|
|
+
|
|
|
+ Integer itemDiscountFeeInt = totalFeeInt/num;
|
|
|
+
|
|
|
+ salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
+ salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
+ salesOrderItem.setItemTotal(totalFeeInt);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ salesOrderItem.setItemNum(num);
|
|
|
+ salesOrderItem.setItemColorBar(productColor.getColorBar());
|
|
|
+ salesOrderItem.setItemProductId(productColor.getColorProductId());
|
|
|
+ salesOrderItem.setItemColorId(productColor.getColorId());
|
|
|
+ salesOrderItem.setItemProductType(productColor.getProductType());
|
|
|
+ salesOrderItem.setItemProductName(productColor.getProductName());
|
|
|
+ salesOrderItem.setItemProductColor(productColor.getColorName());
|
|
|
+ salesOrderItem.setProductAbbreviation(productColor.getProductAbbreviation());
|
|
|
+ salesOrderItem.setColorAbbreviation(productColor.getColorAbbreviation());
|
|
|
+ salesOrderItem.setColorIsWeight(productColor.getColorIsWeight());
|
|
|
+ salesOrderItem.setColorIsMachine(productColor.getColorIsMachine());
|
|
|
+ salesOrderItem.setItemIsSource(1);
|
|
|
+ salesOrderItemList.add(salesOrderItem);
|
|
|
+ }
|
|
|
}
|
|
|
if(salesOrderItemList.size() < 1){
|
|
|
errorMsg.append(otherOrderId+"添加订单,订单项出现错误;");
|