|
@@ -1,12 +1,32 @@
|
|
|
package com.iamberry.rst.service.order;
|
|
|
|
|
|
-import com.alibaba.dubbo.config.annotation.Service;
|
|
|
-import com.iamberry.rst.core.order.OrderSyncLog;
|
|
|
+import com.iamberry.app.tool.util.MD5;
|
|
|
+import com.iamberry.rst.core.cm.SalesOrder;
|
|
|
+import com.iamberry.rst.core.cm.SalesOrderItem;
|
|
|
+import com.iamberry.rst.core.order.*;
|
|
|
+import com.iamberry.rst.faces.cm.SalesOrderService;
|
|
|
+import com.iamberry.rst.faces.order.OrderBatchService;
|
|
|
import com.iamberry.rst.faces.order.OrderSyncLogService;
|
|
|
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.util.GenerateKeyUtil;
|
|
|
+import org.apache.http.HttpResponse;
|
|
|
+import org.apache.http.HttpStatus;
|
|
|
+import org.apache.http.client.HttpClient;
|
|
|
+import org.apache.http.client.methods.HttpPost;
|
|
|
+import org.apache.http.entity.StringEntity;
|
|
|
+import org.apache.http.impl.client.HttpClients;
|
|
|
+import org.apache.http.util.EntityUtils;
|
|
|
+import org.json.JSONArray;
|
|
|
+import org.json.JSONObject;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.List;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* 同步记录
|
|
@@ -15,8 +35,31 @@ import java.util.List;
|
|
|
*/
|
|
|
@Service
|
|
|
public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(OrderSyncLogServiceImpl.class);
|
|
|
@Autowired
|
|
|
private OrderSyncLogMapper orderSyncLogMapper;
|
|
|
+ @Autowired
|
|
|
+ private OrderBatchService orderBatchService;
|
|
|
+ @Autowired
|
|
|
+ private ProductColorMapper productColorMapper;
|
|
|
+ @Autowired
|
|
|
+ private SalesOrderService salesOrderService;
|
|
|
+ @Autowired
|
|
|
+ private OrderSyncPlatformMapper orderSyncPlatformMapper;
|
|
|
+ @Autowired
|
|
|
+ private GenerateKeyUtil generateKeyUtil ;
|
|
|
+
|
|
|
+ private static final SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");
|
|
|
+ private static final int XYT_ID = 1; //小亚通,平台id
|
|
|
+ private static OrderSyncPlatform XYT_PLATFORM = null; //小亚通平台信息
|
|
|
+
|
|
|
+ private OrderSyncPlatform getXYTPlatform(){
|
|
|
+ if(XYT_PLATFORM == null){
|
|
|
+ XYT_PLATFORM = orderSyncPlatformMapper.getSyncPlatformById(XYT_ID);
|
|
|
+ }
|
|
|
+ return XYT_PLATFORM;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取集合
|
|
|
* @param orderSyncLog
|
|
@@ -26,6 +69,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
public List<OrderSyncLog> getSyncLogList(OrderSyncLog orderSyncLog){
|
|
|
return orderSyncLogMapper.getSyncLogList(orderSyncLog);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 查询单条数据
|
|
|
* @param id
|
|
@@ -35,6 +79,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
public OrderSyncLog getSyncLogById(Integer id){
|
|
|
return orderSyncLogMapper.getSyncLogById(id);
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 增加数据
|
|
|
* @param orderSyncLog
|
|
@@ -44,4 +89,588 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
public Integer save(OrderSyncLog orderSyncLog){
|
|
|
return orderSyncLogMapper.save(orderSyncLog);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 增加所有的订单
|
|
|
+ * 1:定时任务 2:手动同步
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Integer syncXYTOrder(Integer type,Date creatTime) {
|
|
|
+ OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ if(creatTime == null){
|
|
|
+// OrderSyncLog orderSyncLog = orderSyncLogMapper.getSyncLogLast(orderSyncPlatform.getSyncPlatId());
|
|
|
+// if(orderSyncLog == null){
|
|
|
+// logger.info("XYT拉取订单-调用接口失败-缺少开始时间");
|
|
|
+// return 0;
|
|
|
+// }
|
|
|
+ map.put("beginCreateTime", sdf.format(orderSyncPlatform.getSyncOrderLastTime()));//生成开始时间
|
|
|
+ }else{
|
|
|
+ map.put("beginCreateTime", sdf.format(creatTime));//生成开始时间
|
|
|
+ }
|
|
|
+ map.put("endCreateTime",sdf.format(new Date()));//生成结束时间
|
|
|
+// map.put("receiverName","");//收件人姓名
|
|
|
+// map.put("receiverMobile","");//收件人手机号码
|
|
|
+// map.put("outOrderId","");//原始订单号
|
|
|
+// map.put("orderId","");//系统订单号
|
|
|
+ String json = this.syncXYT("IOrderServce.query",map);
|
|
|
+
|
|
|
+ //添加订单
|
|
|
+ this.saveOrder(1,json);
|
|
|
+
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 单个订单拉取
|
|
|
+ * @param type
|
|
|
+ * @param orderId 小亚通订单账号
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Integer syncXYTOrderOne(Integer type, String orderId) {
|
|
|
+ String json = syncOrderOnce(orderId);
|
|
|
+ this.saveOrder(2,json);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 检测发货
|
|
|
+ * @param orderId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean syncXYTOrderShipInspec(String orderId) {
|
|
|
+ String json = syncOrderOnce(orderId);
|
|
|
+ JSONObject jsonObj = new JSONObject(json);//转化为json格式
|
|
|
+ String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ if(resultMsg.equals("success")){
|
|
|
+ //
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ logger.info("小亚通调用检测发货接口失败-拉取订单详情-失败原因:"+json);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 发货接口-小亚通
|
|
|
+ * @param orderId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public boolean syncXYTOrderShip(String orderId) {
|
|
|
+ //查询订单
|
|
|
+
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("orderId",orderId);//原始订单号
|
|
|
+ map.put("itemIds","");//订单项ID,如果为null 表示整个订单只有1 个包裹,否则只是部分订单项
|
|
|
+ map.put("companyCode","");//物流公司编码
|
|
|
+ map.put("deliveryNo","");//物流单号
|
|
|
+ map.put("deliveryTime","");//发货时间
|
|
|
+ String shipResultJson = this.syncXYT("IOrderServce.query",map);
|
|
|
+ JSONObject jsonObj = new JSONObject(shipResultJson);//转化为json格式
|
|
|
+ String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ if(resultMsg.equals("success")){
|
|
|
+ //
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ logger.info("小亚通调用发货接口失败-失败原因:"+shipResultJson);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 1:定时任务 2:手动同步
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private boolean saveOrder(Integer type,String json){
|
|
|
+ OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
+ String batchId = ""; //批次编号
|
|
|
+// JSONObject jsonObj = new JSONObject(json);//转化为json格式
|
|
|
+ JSONObject jsonObj = new JSONObject(Alljson);//转化为json格式
|
|
|
+ String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ if(resultMsg.equals("success")){
|
|
|
+
|
|
|
+ // 用户新建批次,系统自动新建
|
|
|
+ if("".equals(batchId)){
|
|
|
+ batchId = generateKeyUtil.getSalesBatchIdSX();
|
|
|
+ OrderBatch ob = new OrderBatch();
|
|
|
+ ob.setBatchId(batchId);
|
|
|
+ ob.setBatchStatus(1);
|
|
|
+ if(orderBatchService.save(ob) < 1){
|
|
|
+ throw new RuntimeException("XYT拉取订单-创建订单批次失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
+ JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
+ for(int i=0;i<beanListArray.length();i++){
|
|
|
+ JSONObject job = beanListArray.getJSONObject(i);
|
|
|
+ try{
|
|
|
+ JSONObject consigneeObj = job.getJSONObject("consignee"); //用户信息
|
|
|
+ JSONObject infoObj = job.getJSONObject("info"); //订单基本信息
|
|
|
+ JSONArray itemsArray = job.getJSONArray("items"); //订单项基本信息
|
|
|
+ JSONObject memoObj = job.getJSONObject("memo"); //备注信息
|
|
|
+
|
|
|
+ //订单项状态:0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
|
|
|
+ Integer itemStatus = infoObj.getInt("itemStatus");
|
|
|
+ if(itemStatus != 20){ //20 待发货
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ SalesOrder salesOrder = new SalesOrder();
|
|
|
+ salesOrder.setSalesOrderId(infoObj.getString("orderId")); //小亚通订单编号
|
|
|
+ salesOrder.setSalesDealCode(infoObj.getString("orderId")); //小亚通订单编号
|
|
|
+
|
|
|
+ //收货人信息
|
|
|
+ salesOrder.setSalesAddressPostcode(consigneeObj.getString("receiverZip"));//收件人邮政编码
|
|
|
+ salesOrder.setSalesAddressName(consigneeObj.getString("receiverName"));//收件人姓名
|
|
|
+ salesOrder.setSalesAddressTel(consigneeObj.getString("receiverMobile"));//收件人电话
|
|
|
+ //salesOrder.setSalesAddressDesc(consigneeObj.getString(""));//地址详情
|
|
|
+ String receiverState = consigneeObj.getString("receiverState");//省
|
|
|
+ String receiverCity = consigneeObj.getString("receiverCity");//市
|
|
|
+ String receiverDistrict = consigneeObj.getString("receiverDistrict");//区
|
|
|
+ String receiverAddress = consigneeObj.getString("receiverAddress");//地址
|
|
|
+ salesOrder.setSalesAddressInfo(receiverState+" "+receiverCity+" "+receiverDistrict+" "+receiverAddress);//详细地址
|
|
|
+
|
|
|
+ //平台
|
|
|
+ String platformId = infoObj.getString("platformId"); //SELF- 自身 TMALL- 天猫 KDT- 有赞 LJSW-生活作风
|
|
|
+ switch (platformId){
|
|
|
+ case "SELF":{
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "TMALL":{
|
|
|
+ salesOrder.setSalesStoreId(86); //天猫爱贝源旗舰店
|
|
|
+ salesOrder.setSalesCompanyId(1); //深圳爱贝源
|
|
|
+ salesOrder.setSalesPayType(5);//付款方式5:支付宝支付
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "KDT":{
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "LJSW":{
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ //支付金额
|
|
|
+ Double totalFee = infoObj.getDouble("totalFee");
|
|
|
+ totalFee = totalFee*100;
|
|
|
+ Integer amount = totalFee.intValue();
|
|
|
+ salesOrder.setSalesLastMoney(amount);//本次支付金额
|
|
|
+ salesOrder.setSalesPayMoney(amount);//已付金额-支付金额/折扣价
|
|
|
+ salesOrder.setSalesAmount(amount);//订单总金额
|
|
|
+
|
|
|
+ //优惠金额
|
|
|
+ Double discountFee = infoObj.getDouble("discountFee");
|
|
|
+ discountFee = discountFee*100;
|
|
|
+ Integer discountFeeInt = discountFee.intValue();
|
|
|
+ salesOrder.setSalesDiscountMoney(discountFeeInt);//优惠金额
|
|
|
+
|
|
|
+ //支付时间
|
|
|
+ String createTime = infoObj.getString("createTime");//创建时间
|
|
|
+ salesOrder.setSalesSalesTime(sdf.parse(createTime));//订购时间
|
|
|
+ salesOrder.setSalesPayTime(sdf.parse(createTime));//支付时间
|
|
|
+
|
|
|
+ //备注
|
|
|
+ String orderMemo = memoObj.getString("orderMemo"); //备注
|
|
|
+ String buyerMemo = memoObj.getString("buyerMemo"); //买方备注
|
|
|
+ String sellerMemo = memoObj.getString("sellerMemo"); //卖方备注
|
|
|
+ salesOrder.setSalesUserRemark(orderMemo+"-"+buyerMemo);//用户备注
|
|
|
+ salesOrder.setSalesAdminRemark(sellerMemo);//后台的备注--卖家备注
|
|
|
+
|
|
|
+ //邮费
|
|
|
+ Double postFee = memoObj.getDouble("postFee"); //邮费
|
|
|
+ postFee = postFee*100;
|
|
|
+ Integer postFeeInt = postFee.intValue();
|
|
|
+ salesOrder.setSalesPostageCost(postFeeInt);//邮费成本
|
|
|
+ salesOrder.setSalesShippingFee(postFeeInt);//邮费
|
|
|
+
|
|
|
+ //批次
|
|
|
+ salesOrder.setSalesBatchId(batchId);
|
|
|
+
|
|
|
+ //默认
|
|
|
+ salesOrder.setSalesWaitMoney(0);//待付金额
|
|
|
+ salesOrder.setSalesType(1);//订单类型1:购买2:租赁
|
|
|
+ salesOrder.setSalesOrderStatus(1);
|
|
|
+ salesOrder.setSalesPayStatus(2);
|
|
|
+ salesOrder.setIsSalesCustomerId(1);//是否绑定客诉(是否为售后订单)1:不是2:是
|
|
|
+ salesOrder.setSalesAddType(4);//增加订单方式1:手动增加2:Excel导入3:客诉增加订单
|
|
|
+ salesOrder.setSalesPledgeMoney(0);//押金金额
|
|
|
+ salesOrder.setSalesRemainDeposit(0);
|
|
|
+ salesOrder.setSalesWaitMoney(0);//待付金额
|
|
|
+
|
|
|
+ //状态信息
|
|
|
+ salesOrder.setSalesIsSend(0);//是否通知配货0:否1:是
|
|
|
+ salesOrder.setSalesIsLocked(0);//是否锁定0:否1:是
|
|
|
+ salesOrder.setSalesIsSeparate(0);//是否缺货0:否1:是
|
|
|
+ salesOrder.setSalesStatus(0); //确认状态0(未确认)
|
|
|
+ salesOrder.setSalesShippingStatus(0);////发货状态0(未发货)1(已发货,即已扫描出库)3(备货中)4(收货)11(已通知配货,后加)
|
|
|
+ salesOrder.setSalesDeliver(1); //出库状态1:未出库2:已出库
|
|
|
+ salesOrder.setSalesAdminId(1); //录入人id
|
|
|
+
|
|
|
+ List<SalesOrderItem> salesOrderItemList = new ArrayList<SalesOrderItem>();
|
|
|
+ for(int j=0;j<itemsArray.length();j++){
|
|
|
+ JSONObject item = itemsArray.getJSONObject(j);
|
|
|
+
|
|
|
+ SalesOrderItem salesOrderItem = new SalesOrderItem();
|
|
|
+
|
|
|
+ String extSkuId = memoObj.getString("extSkuId"); //sku - 69码
|
|
|
+
|
|
|
+ ProductColor productColor = productColorMapper.getProductColorByBar(extSkuId);
|
|
|
+
|
|
|
+ Integer num = memoObj.getInt("num"); //数量
|
|
|
+ Double itemDiscountFee = memoObj.getDouble("discountFee"); //折扣费
|
|
|
+ itemDiscountFee = itemDiscountFee*100;
|
|
|
+ Integer itemDiscountFeeInt = itemDiscountFee.intValue();
|
|
|
+ Integer itemTotal = itemDiscountFeeInt*num;
|
|
|
+
|
|
|
+ salesOrderItem.setItemProductPrice(itemDiscountFeeInt); //产品市场价
|
|
|
+ salesOrderItem.setItemProductDiscount(itemDiscountFeeInt); //产品折扣价
|
|
|
+ salesOrderItem.setItemTotal(itemTotal);//小结
|
|
|
+
|
|
|
+ //itemCost;//单个成本 itemCostTotal;//成本小结 确认操作计算
|
|
|
+
|
|
|
+ salesOrderItem.setItemNum(num); //产品数量
|
|
|
+ salesOrderItem.setItemColorBar(productColor.getColorBar()); //colorBar
|
|
|
+ salesOrderItem.setItemProductId(productColor.getColorProductId());//产品id
|
|
|
+ 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());//是否是水机 1:水机 2;其它产品
|
|
|
+ salesOrderItem.setItemIsSource(1);//产品来源 1:产品颜色表,2:配件表
|
|
|
+ salesOrderItemList.add(salesOrderItem);
|
|
|
+ }
|
|
|
+ salesOrder.setSalesOrderItemList(salesOrderItemList);
|
|
|
+ String[] detectIds = {};
|
|
|
+ salesOrderService.addRstOrderinfo(salesOrder,new ArrayList<SalesOrder>(),detectIds);
|
|
|
+
|
|
|
+ //添加操作跟踪记录
|
|
|
+ OrderTracking orderTracking = new OrderTracking();
|
|
|
+ orderTracking.setAdminId(1); //默认用户爱贝源自动拉取订单
|
|
|
+ orderTracking.setSalesDealCode(salesOrder.getSalesDealCode());
|
|
|
+ orderTracking.setTrackingDesc("创建订单(小亚通拉取订单)");
|
|
|
+ salesOrderService.addTracking(orderTracking);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.info("XYT拉取订单-添加订单错误-错误信息:"+e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ OrderSyncLog osl = new OrderSyncLog();
|
|
|
+ osl.setSyncPlatId(orderSyncPlatform.getSyncPlatId());
|
|
|
+ osl.setSyncLogType(1);
|
|
|
+ osl.setSyncLogMode(type); //更新模式 1:定时任务 2:手动同步
|
|
|
+ osl.setSyncLogRecentNum(0); //同步总数量
|
|
|
+ osl.setSyncLogErrorNum(0); //同步失败数量
|
|
|
+ osl.setSyncLogErrorMsg(resultMsg); //错误信息
|
|
|
+ osl.setSyncLogMsg("小亚通拉取订单失败");
|
|
|
+ orderSyncLogMapper.save(osl);
|
|
|
+ logger.info("XYT拉取订单-调用小亚通业务错误-错误信息:"+json);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 拉取单个订单,但是调用请走验证发货验证或者保存接口,此方法不公开
|
|
|
+ * @param orderId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String syncOrderOnce(String orderId) {
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("orderId",orderId);//原始订单号
|
|
|
+ String json = this.syncXYT("IOrderServce.query",map);
|
|
|
+ return json;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分开组装小亚通api接口
|
|
|
+ * @param type
|
|
|
+ * @param map
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String syncXYT(String type, Map<String,Object> map) {
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>();
|
|
|
+ String methodName = "";
|
|
|
+ switch (type){
|
|
|
+ case "allOrder":{ //订单查询
|
|
|
+ List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
+ for(String key:map.keySet()){//keySet获取map集合key的集合 然后在遍历key即可
|
|
|
+ Map<String,Object> conditionTypeMap = new HashMap<>();
|
|
|
+ conditionTypeMap.put(key,map.get(key).toString());
|
|
|
+ conditionTypeList.add(conditionTypeMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,Object> condMap = new HashMap<>();
|
|
|
+ condMap.put("pageNumber",1);
|
|
|
+ condMap.put("pageSize",20);
|
|
|
+ condMap.put("conditionType",conditionTypeList);
|
|
|
+
|
|
|
+ paramsMap.put("cond","");
|
|
|
+ paramsMap.put("fullMode",false); //fullMode Boolean 是 是否查询全部信息
|
|
|
+ paramsMap.put("includeArchive",false); //includeArchive Boolean 是 是否查询三个月前历史订单
|
|
|
+ methodName = "IOrderServce.query";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "oneOrder":{ //单个查询
|
|
|
+ List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
+ for(String key:map.keySet()){//keySet获取map集合key的集合 然后在遍历key即可
|
|
|
+ Map<String,Object> conditionTypeMap = new HashMap<>();
|
|
|
+ conditionTypeMap.put(key,map.get(key).toString());
|
|
|
+ conditionTypeList.add(conditionTypeMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String,Object> condMap = new HashMap<>();
|
|
|
+ condMap.put("pageNumber",1);
|
|
|
+ condMap.put("pageSize",20);
|
|
|
+ condMap.put("conditionType",conditionTypeList);
|
|
|
+
|
|
|
+
|
|
|
+ paramsMap.put("cond","");
|
|
|
+ paramsMap.put("fullMode",false); //fullMode Boolean 是 是否查询全部信息
|
|
|
+ paramsMap.put("includeArchive",false); //includeArchive Boolean 是 是否查询三个月前历史订单
|
|
|
+ methodName = "IOrderServce.query";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ case "delivery":{ //订单发货
|
|
|
+
|
|
|
+ methodName = "delivery";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+// case "IConvertService.submitOrder":{ //提交订单
|
|
|
+// break;
|
|
|
+// }
|
|
|
+ default:{
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
+ JSONObject jsonObject = this.syncXYTFormat(methodName,paramsMap,orderSyncPlatform);
|
|
|
+ String rspJson = doPost(jsonObject,orderSyncPlatform.getSyncPlatApi());
|
|
|
+ return rspJson;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装api接口
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private JSONObject syncXYTFormat(String apiCode, Map<String,Object> paramsMap, OrderSyncPlatform orderSyncPlatform){
|
|
|
+ JSONObject jsonObj = new JSONObject(paramsMap);//转化为json格式
|
|
|
+
|
|
|
+ String otherField = orderSyncPlatform.getSyncPlatOtherField(); //syncPlatOtherField
|
|
|
+ JSONObject jsonObject = new JSONObject(otherField);
|
|
|
+ String opId = (String) jsonObject.get("opId");
|
|
|
+
|
|
|
+ String timeStamp = sdf.format(new Date()); //-09-0522:22:32
|
|
|
+ String sign = String.format("%sapiCode%sappId%sopId%sparams%stimeStamp%s%s",
|
|
|
+ orderSyncPlatform.getSyncPlatAppSecret(),
|
|
|
+ apiCode,
|
|
|
+ orderSyncPlatform.getSyncPlatAppKey(),
|
|
|
+ opId,
|
|
|
+ jsonObj.toString(),
|
|
|
+ timeStamp,
|
|
|
+ orderSyncPlatform.getSyncPlatAppSecret()
|
|
|
+ );
|
|
|
+ sign = MD5.md5(sign);
|
|
|
+
|
|
|
+ JSONObject postData = new JSONObject();
|
|
|
+ postData.put("opId",opId);
|
|
|
+ postData.put("appId",orderSyncPlatform.getSyncPlatAppKey());
|
|
|
+ postData.put("sign",sign);
|
|
|
+ postData.put("apiCode",apiCode);
|
|
|
+ postData.put("timeStamp",timeStamp);
|
|
|
+ postData.put("params",paramsMap);
|
|
|
+ return postData;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * post请求
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private static String doPost(JSONObject date,String url) {
|
|
|
+
|
|
|
+ HttpClient client = HttpClients.createDefault();
|
|
|
+// DefaultHttpClient client = new DefaultHttpClient();
|
|
|
+
|
|
|
+ // 将接口地址和接口方法拼接起来
|
|
|
+ HttpPost post = new HttpPost(url);
|
|
|
+ JSONObject response = null;
|
|
|
+ String rsp= "";
|
|
|
+ try {
|
|
|
+ post.setEntity(new StringEntity(date.toString(),"UTF-8"));
|
|
|
+// post.addHeader("Accept", "application/json, text/plain, */*");
|
|
|
+// post.addHeader("Origin", "https://porder.shop.jd.com");
|
|
|
+// post.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36");
|
|
|
+ post.addHeader("Content-Type", "application/json;charset=UTF-8");
|
|
|
+
|
|
|
+// Cookie cookie = new Cookie("shshshfpa", "d9423d99-3936-1656-ce39-c4630942dec5-1544663920");
|
|
|
+// cookie.setPath("/" + NameUtils.getConfig("ROOT_PATH"));
|
|
|
+// cookie.setHttpOnly(true);
|
|
|
+// cookie.setDomain(NameUtils.getConfig(".jd.com"));
|
|
|
+
|
|
|
+ HttpResponse res = client.execute(post);
|
|
|
+ if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
|
|
|
+ rsp = EntityUtils.toString(res.getEntity());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ return rsp;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ static String Alljson = "{\n" +
|
|
|
+ " \"result_msg\": \"success\",\n" +
|
|
|
+ " \"data\": {\n" +
|
|
|
+ " \"amount\": 302,\n" +
|
|
|
+ " \"beanList\": [\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"consignee\": {\n" +
|
|
|
+ " \"consigneeId\": 100004219907,\n" +
|
|
|
+ " \"createOp\": 100000000001,\n" +
|
|
|
+ " \"createTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"doneTime\": \"2017-10-31 10:11:04\",\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"receiverAddress\": \"A\",\n" +
|
|
|
+ " \"receiverCity\": \"市辖区\",\n" +
|
|
|
+ " \"receiverDistrict\": \"和平区\",\n" +
|
|
|
+ " \"receiverMobile\": \"15757160000\",\n" +
|
|
|
+ " \"receiverName\": \"CG\",\n" +
|
|
|
+ " \"receiverPhone\": \"15757160000\",\n" +
|
|
|
+ " \"receiverState\": \"天津市\",\n" +
|
|
|
+ " \"receiverTown\": \"和平区\",\n" +
|
|
|
+ " \"receiverZip\": \"\",\n" +
|
|
|
+ " \"tenantId\": 100000000001\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"coupons\": [\n" +
|
|
|
+ " \n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"info\": {\n" +
|
|
|
+ " \"adjustFee\": 0,\n" +
|
|
|
+ " \"buyerId\": \"74\",\n" +
|
|
|
+ " \"buyerNick\": \"CG\",\n" +
|
|
|
+ " \"createOp\": 100000000001,\n" +
|
|
|
+ " \"createTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"discountFee\": 0,\n" +
|
|
|
+ " \"doneTime\": \"2017-10-31 10:11:04\",\n" +
|
|
|
+ " \"doneVersion\": 1,\n" +
|
|
|
+ " \"extOrderId\": \"150941583170874\",\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"orderKind\": 0,\n" +
|
|
|
+ " \"orderStatus\": 20,\n" +
|
|
|
+ " \"orderStatusReason\": 0,\n" +
|
|
|
+ " \"paidFee\": 1,\n" +
|
|
|
+ " \"paidPoints\": 0,\n" +
|
|
|
+ " \"payTime\": \"2017-10-31 10:10:41\",\n" +
|
|
|
+ " \"payType\": \"N/A\",\n" +
|
|
|
+ " \"platformId\": \"IMEIHAO\",\n" +
|
|
|
+ " \"postFee\": 0,\n" +
|
|
|
+ " \"revokeStatus\": 0,\n" +
|
|
|
+ " \"shippingType\": \"express\",\n" +
|
|
|
+ " \"shopId\": 100000041343,\n" +
|
|
|
+ " \"skuBrief\": \"博冠丨 Just Fit V2 云智能健康秤\",\n" +
|
|
|
+ " \"skuNum\": 1,\n" +
|
|
|
+ " \"supplierTenantId\": 100000000001,\n" +
|
|
|
+ " \"syncTime\": \"2017-10-31 10:00:29\",\n" +
|
|
|
+ " \"tenantId\": 100000000001,\n" +
|
|
|
+ " \"totalFee\": 16900,\n" +
|
|
|
+ " \"updateTime\": \"2017-10-31 10:10:41\",\n" +
|
|
|
+ " \"warrantyStatus\": 0\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"items\": [\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"adjustFee\": 0,\n" +
|
|
|
+ " \"catalogNature\": 0,\n" +
|
|
|
+ " \"createTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"discountFee\": 0,\n" +
|
|
|
+ " \"doneTime\": \"2017-10-31 10:11:04\",\n" +
|
|
|
+ " \"doneVersion\": 1,\n" +
|
|
|
+ " \"extItemId\": \"15094158317087400\",\n" +
|
|
|
+ " \"extNumIid\": \"107617669\",\n" +
|
|
|
+ " \"extOrderId\": \"150941583170874\",\n" +
|
|
|
+ " \"extSkuId\": \"MDMJ20170515ZNJKC\",\n" +
|
|
|
+ " \"extSkuTitle\": \"博冠丨 Just Fit V2 云智能健康秤\",\n" +
|
|
|
+ " \"imageUrl\": \"https://cdn.imeihao.shop/mall-imeihao/product/main-1507617610718spQCphtyyi_750_750.jpg\",\n" +
|
|
|
+ " \"isSplit\": 0,\n" +
|
|
|
+ " \"itemStatus\": 20,\n" +
|
|
|
+ " \"num\": 1,\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"orderItemId\": 100005685925,\n" +
|
|
|
+ " \"outerId\": \"A4939978A1DBB8D2CB1DC3495DA820E3\",\n" +
|
|
|
+ " \"paidFee\": 1,\n" +
|
|
|
+ " \"paidPoints\": 0,\n" +
|
|
|
+ " \"platformId\": \"IMEIHAO\",\n" +
|
|
|
+ " \"postFee\": 0,\n" +
|
|
|
+ " \"price\": 1,\n" +
|
|
|
+ " \"refundFee\": 0,\n" +
|
|
|
+ " \"skuId\": 100001278198,\n" +
|
|
|
+ " \"skuPoints\": 0,\n" +
|
|
|
+ " \"skuSpecChars\": \"智能健康秤\",\n" +
|
|
|
+ " \"skuTitle\": \"博冠丨 Just Fit V2 云智能健康秤\",\n" +
|
|
|
+ " \"tenantId\": 100000000001,\n" +
|
|
|
+ " \"totalFee\": 16900,\n" +
|
|
|
+ " \"warrantyStatus\": 0\n" +
|
|
|
+ " }\n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"logistics\": [\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"companyCode\": \"\",\n" +
|
|
|
+ " \"companyName\": \"\",\n" +
|
|
|
+ " \"createOp\": 100000000001,\n" +
|
|
|
+ " \"createTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"deliveryNo\": \"\",\n" +
|
|
|
+ " \"deliveryStatus\": 0,\n" +
|
|
|
+ " \"deliveryTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"doneTime\": \"2017-10-31 10:11:04\",\n" +
|
|
|
+ " \"logisticsId\": 100002780406,\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"tenantId\": 100000000001\n" +
|
|
|
+ " }\n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"logisticsTrackings\": [\n" +
|
|
|
+ " \n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"logs\": [\n" +
|
|
|
+ " \n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"memo\": {\n" +
|
|
|
+ " \"buyerMessage\": \"\",\n" +
|
|
|
+ " \"createOp\": 100000000001,\n" +
|
|
|
+ " \"createTime\": \"2017-10-31 10:10:31\",\n" +
|
|
|
+ " \"doneTime\": \"2017-10-31 10:11:04\",\n" +
|
|
|
+ " \"memoId\": 100004220937,\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"tenantId\": 100000000001\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"prints\": [\n" +
|
|
|
+ " \n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"promotions\": [\n" +
|
|
|
+ " \n" +
|
|
|
+ " ],\n" +
|
|
|
+ " \"specChar\": [\n" +
|
|
|
+ " {\n" +
|
|
|
+ " \"attributeValue\": \"智能健康秤\",\n" +
|
|
|
+ " \"orderCharId\": 100006152526,\n" +
|
|
|
+ " \"orderId\": 100004540881,\n" +
|
|
|
+ " \"specId\": 0,\n" +
|
|
|
+ " \"specName\": \"款式\",\n" +
|
|
|
+ " \"tenantId\": 100000000001\n" +
|
|
|
+ " }\n" +
|
|
|
+ " ]\n" +
|
|
|
+ " }\n" +
|
|
|
+ " ]\n" +
|
|
|
+ " },\n" +
|
|
|
+ " \"result_code\": \"0\"\n" +
|
|
|
+ "}";
|
|
|
}
|