|
@@ -1,5 +1,6 @@
|
|
|
package com.iamberry.rst.service.order;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.iamberry.app.tool.util.MD5;
|
|
|
import com.iamberry.redis.RedisUtils;
|
|
@@ -29,6 +30,8 @@ import com.iamberry.rst.service.product.mapper.ProductMapper;
|
|
|
import com.iamberry.rst.service.sys.mapper.SysConfigMapper;
|
|
|
import com.iamberry.rst.util.GenerateKeyUtil;
|
|
|
import com.iamberry.rst.util.PageUtil;
|
|
|
+import com.iamberry.wechat.tools.DateTimeUtil;
|
|
|
+import com.iamberry.wechat.tools.HttpClient431Util;
|
|
|
import com.iamberry.wechat.tools.StrUtils;
|
|
|
import com.iamberry.wechat.tools.payUtil.StringUtil;
|
|
|
import org.apache.http.HttpResponse;
|
|
@@ -92,7 +95,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
private Map<String, JSONObject> orderJsonMap = new LinkedHashMap<String, JSONObject>(){
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
@Override
|
|
|
- protected boolean removeEldestEntry(java.util.Map.Entry<String, JSONObject> pEldest) {
|
|
|
+ protected boolean removeEldestEntry(Map.Entry<String, JSONObject> pEldest) {
|
|
|
return size() > maxSize;
|
|
|
}
|
|
|
};
|
|
@@ -159,7 +162,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
public synchronized Integer syncXYTOrder(Integer type,String sta,Date creatTime) {
|
|
|
if(type == 1){
|
|
|
SysConfig sysConfig = sysConfigMapper.getSysConfigAllLock(CONFIG_ID);
|
|
|
- Date date = new Date();
|
|
|
+ Date date = null;
|
|
|
try {
|
|
|
date = SYS_CONFIG_SDF.parse(sysConfig.getConfigRemarks());
|
|
|
} catch (ParseException e) {
|
|
@@ -167,7 +170,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
logger.info("获取配置文件失败!");
|
|
|
return 0;
|
|
|
}
|
|
|
- Long timeDifference = date.getTime() - new Date().getTime();
|
|
|
+ long timeDifference = date.getTime() - System.currentTimeMillis();
|
|
|
timeDifference = Math.abs(timeDifference);
|
|
|
if(timeDifference < 270000){
|
|
|
Integer configParameter = Integer.valueOf(sysConfig.getConfigParameter());
|
|
@@ -183,39 +186,24 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
logger.info("小亚通接口已关闭!");
|
|
|
return 0;
|
|
|
}
|
|
|
- Map<String,Object> paramsMap = new HashMap<>();
|
|
|
- List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
- Map<String,Object> beginCreateTimeMap = new HashMap<>();
|
|
|
- beginCreateTimeMap.put("condType","beginCreateTime");
|
|
|
- String[] condValueCreatImes = new String[1];
|
|
|
+ // 参数集合
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>(1);
|
|
|
+ String startCreateTime = null;
|
|
|
if(creatTime == null){
|
|
|
- condValueCreatImes[0] = sdf.format(orderSyncPlatform.getSyncOrderLastTime());
|
|
|
+ startCreateTime = sdf.format(orderSyncPlatform.getSyncOrderLastTime());
|
|
|
}else{
|
|
|
- condValueCreatImes[0] = sdf.format(creatTime);
|
|
|
+ startCreateTime = sdf.format(creatTime);
|
|
|
}
|
|
|
- beginCreateTimeMap.put("condValue", condValueCreatImes);//生成开始时间
|
|
|
- conditionTypeList.add(beginCreateTimeMap);
|
|
|
-
|
|
|
- //结束时间
|
|
|
+ paramsMap.put("startCreateTime", startCreateTime);
|
|
|
Date endCreateTime = new Date();
|
|
|
- Map<String,Object> endCreateTimeMap = new HashMap<>();
|
|
|
- endCreateTimeMap.put("condType","endCreateTime"); //receiverName 收件人姓名 //receiverMobile收件人手机号码 //outOrderId原始订单号 //orderId系统订单号
|
|
|
- String[] condValueEndCreateTimes = new String[1];
|
|
|
- condValueEndCreateTimes[0] = sdf.format(endCreateTime);
|
|
|
- endCreateTimeMap.put("condValue",condValueEndCreateTimes);//生成结束时间
|
|
|
- conditionTypeList.add(endCreateTimeMap);
|
|
|
-
|
|
|
- //订单状态 只获取代发货的订单
|
|
|
+ paramsMap.put("endCreateTime", sdf.format(endCreateTime));
|
|
|
if(sta != null && !"".equals(sta)){
|
|
|
- Map<String,Object> statusTimeMap = new HashMap<>();
|
|
|
- statusTimeMap.put("condType","orderStatus"); //receiverName 收件人姓名 //receiverMobile收件人手机号码 //outOrderId原始订单号 //orderId系统订单号
|
|
|
- String[] condValueStatuss = new String[1];
|
|
|
- condValueStatuss[0] = sta; //只查询待发货
|
|
|
- statusTimeMap.put("condValue",condValueStatuss);//生成结束时间
|
|
|
- conditionTypeList.add(statusTimeMap);
|
|
|
+ paramsMap.put("orderStatus", sta);
|
|
|
}
|
|
|
+ paramsMap.put("size", 20);
|
|
|
|
|
|
- StringBuffer stringBuffer = new StringBuffer();
|
|
|
+ // 异常返回值,用于记录
|
|
|
+ StringBuilder stringBuffer = new StringBuilder();
|
|
|
Integer amountAllNum = 0; //同步总数量
|
|
|
Integer amountSuccessAllNum = 0; //同步成功总数量
|
|
|
String batchId = ""; //批次id
|
|
@@ -224,15 +212,15 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
boolean pullFlag = true;
|
|
|
Integer pageNumber = 1,pageSize=20; //控制分页
|
|
|
while (pullFlag){
|
|
|
- Map<String,Object> condMap = new HashMap<>();
|
|
|
- condMap.put("pageNumber",pageNumber);
|
|
|
- condMap.put("pageSize",pageSize);
|
|
|
- condMap.put("conditionType",conditionTypeList);
|
|
|
- paramsMap.put("cond",condMap);
|
|
|
- String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
-
|
|
|
+ // 请求页数
|
|
|
+ paramsMap.put("index",pageNumber);
|
|
|
+ // 发起请求
|
|
|
+ logger.info("小亚通请求的参数:{}", com.alibaba.fastjson.JSONObject.toJSONString(paramsMap));
|
|
|
+ String json = pullOrderNew(paramsMap);
|
|
|
+ logger.info("小亚通同步的数据:{}", json);
|
|
|
//添加订单
|
|
|
Map<String,Object> map = this.saveOrder(1,json,batchId);
|
|
|
+ // 判断返回数据
|
|
|
Integer status = (Integer) map.get("status");
|
|
|
batchId = (String) map.get("batchId"); //批次ID
|
|
|
Integer amountNum = (Integer) map.get("amountNum"); //拉取订单数量
|
|
@@ -366,13 +354,17 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
|
|
|
Map<String,Object> paramsMap = new HashMap<>();
|
|
|
- List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
+ /*List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
Map<String,Object> beginCreateTimeMap = new HashMap<>();
|
|
|
beginCreateTimeMap.put("condType","beginCreateTime");
|
|
|
String[] condValueCreatImes = new String[1];
|
|
|
condValueCreatImes[0] = sdf.format(calendar.getTime());
|
|
|
beginCreateTimeMap.put("condValue", condValueCreatImes);//生成开始时间
|
|
|
- conditionTypeList.add(beginCreateTimeMap);
|
|
|
+ conditionTypeList.add(beginCreateTimeMap);*/
|
|
|
+
|
|
|
+ paramsMap.put("startCreateTime", sdf.format(calendar.getTime()));
|
|
|
+ paramsMap.put("shopId", "100206182446");
|
|
|
+ paramsMap.put("size", 20);
|
|
|
|
|
|
//结束时间
|
|
|
// Date endCreateTime = new Date();
|
|
@@ -391,12 +383,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
// statusTimeMap.put("condValue",condValueStatuss);
|
|
|
// conditionTypeList.add(statusTimeMap);
|
|
|
|
|
|
- Map<String,Object> shopMap = new HashMap<>();
|
|
|
+ /*Map<String,Object> shopMap = new HashMap<>();
|
|
|
shopMap.put("condType","shopId");
|
|
|
String[] shopIds = new String[1];
|
|
|
shopIds[0] = "100206182446";
|
|
|
shopMap.put("condValue",shopIds);
|
|
|
- conditionTypeList.add(shopMap);
|
|
|
+ conditionTypeList.add(shopMap);*/
|
|
|
|
|
|
StringBuilder stringBuffer = new StringBuilder();
|
|
|
Integer amountAllNum = 0; //同步总数量
|
|
@@ -407,12 +399,13 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
boolean pullFlag = true;
|
|
|
Integer pageNumber = 1,pageSize=20; //控制分页
|
|
|
while (pullFlag){
|
|
|
- Map<String,Object> condMap = new HashMap<>();
|
|
|
+ /*Map<String,Object> condMap = new HashMap<>();
|
|
|
condMap.put("pageNumber",pageNumber);
|
|
|
condMap.put("pageSize",pageSize);
|
|
|
condMap.put("conditionType",conditionTypeList);
|
|
|
- paramsMap.put("cond",condMap);
|
|
|
- String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
+ paramsMap.put("cond",condMap);*/
|
|
|
+ paramsMap.put("index", pageNumber);
|
|
|
+ String json = pullOrderNew(paramsMap);
|
|
|
|
|
|
//添加订单
|
|
|
Map<String,Object> map = this.saveOrder(1,json,batchId);
|
|
@@ -467,6 +460,11 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
return amountSuccessAllNum;
|
|
|
}
|
|
|
|
|
|
+ /***
|
|
|
+ * 同步京东仓的发货信息
|
|
|
+ * @param salesId 小亚通订单id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
public Integer syncXYTOrderPostNum(Integer salesId){
|
|
|
SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesId);
|
|
@@ -474,7 +472,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
return 0;
|
|
|
}
|
|
|
OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
- Map<String,Object> paramsMap = new HashMap<>();
|
|
|
+ // 请求参数
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>(3);
|
|
|
+ paramsMap.put("orderId", salesOrder.getSalesDealCode());
|
|
|
+ paramsMap.put("index", 1);
|
|
|
+ paramsMap.put("size", 20);
|
|
|
+ /*
|
|
|
List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
|
|
|
String[] orderIds = {salesOrder.getSalesDealCode()};
|
|
@@ -482,25 +485,28 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
Map<String,Object> orderIdMap = new HashMap<>();
|
|
|
orderIdMap.put("condType","orderId");
|
|
|
orderIdMap.put("condValue",orderIds);
|
|
|
- conditionTypeList.add(orderIdMap);
|
|
|
+ conditionTypeList.add(orderIdMap);*/
|
|
|
|
|
|
boolean flag = true;
|
|
|
|
|
|
StringBuffer errorMsg = new StringBuffer();
|
|
|
errorMsg.append( "京东仓订单同步订单("+ salesOrder.getSalesDealCode() +")状态,京东订单号:"+ salesOrder.getSalesExOrderId() +",");
|
|
|
|
|
|
- Map<String,Object> condMap = new HashMap<>();
|
|
|
+ /*Map<String,Object> condMap = new HashMap<>();
|
|
|
condMap.put("pageNumber",1);
|
|
|
condMap.put("pageSize",20);
|
|
|
condMap.put("conditionType",conditionTypeList);
|
|
|
- paramsMap.put("cond",condMap);
|
|
|
- String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
+ paramsMap.put("cond",condMap);*/
|
|
|
+ String json = pullOrderNew(paramsMap);
|
|
|
+
|
|
|
+ logger.info("{}", json);
|
|
|
+
|
|
|
try {
|
|
|
JSONObject jsonObj = new JSONObject(json);//转化为json格式
|
|
|
- String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ String resultMsg = jsonObj.getString("message");
|
|
|
if("success".equals(resultMsg)) {
|
|
|
- JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
- JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
+ // JSONObject dataObj = jsonObj.getJSONObject("data"); //数据
|
|
|
+ JSONArray beanListArray = jsonObj.getJSONArray("data");
|
|
|
if (beanListArray.length() > 0) {
|
|
|
for (int i = 0; i < beanListArray.length(); i++) {
|
|
|
JSONObject job = beanListArray.getJSONObject(i);
|
|
@@ -508,7 +514,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
String otherExtOrderId = null;
|
|
|
|
|
|
// JSONObject consigneeObj = job.getJSONObject("consignee"); //用户信息
|
|
|
- JSONObject infoObj = job.getJSONObject("info"); //订单基本信息
|
|
|
+ JSONObject infoObj = job.getJSONObject("orderInfo"); //订单基本信息
|
|
|
// JSONArray itemsArray = job.getJSONArray("items"); //订单项基本信息
|
|
|
|
|
|
//小亚通订单编号
|
|
@@ -524,8 +530,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
int orderStatus = infoObj.getInt("orderStatus");
|
|
|
if (60 == orderStatus || orderStatus == 70) {
|
|
|
JSONArray logisticsArray = null;
|
|
|
- if(job.has("logistics")){
|
|
|
- logisticsArray = job.getJSONArray("logistics");
|
|
|
+ if(job.has("orderLogistics")){
|
|
|
+ logisticsArray = job.getJSONArray("orderLogistics");
|
|
|
}
|
|
|
assert logisticsArray != null;
|
|
|
if(logisticsArray.length() < 1){
|
|
@@ -572,8 +578,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
so.setSalesDeliverTime(sdf.parse(deliveryTime));
|
|
|
so.setSalesSendTime(sdf.parse(deliveryTime));
|
|
|
} else {
|
|
|
- if (job.has("info")) {
|
|
|
- JSONObject info = job.getJSONObject("info");
|
|
|
+ if (job.has("orderInfo")) {
|
|
|
+ JSONObject info = job.getJSONObject("orderInfo");
|
|
|
if (info.has("deliveryTime")) {
|
|
|
String deliveryTime = info.getString("deliveryTime");
|
|
|
so.setOrderCaseDate(sdf.parse(deliveryTime));
|
|
@@ -656,7 +662,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
public Integer syncXYTOrderOne(Integer type, String orderId) {
|
|
|
Integer flag = 0;
|
|
|
OrderSyncPlatform orderSyncPlatform = getXYTPlatform();
|
|
|
- List<Map<String,Object>> conditionTypeList = new ArrayList<>(5);
|
|
|
+ /*List<Map<String,Object>> conditionTypeList = new ArrayList<>(5);
|
|
|
|
|
|
String[] orderIds = {orderId};
|
|
|
|
|
@@ -674,11 +680,22 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
Map<String,Object> condMap = new HashMap<>(3);
|
|
|
condMap.put("pageNumber",1);
|
|
|
condMap.put("pageSize",20);
|
|
|
- condMap.put("conditionType",conditionTypeList);
|
|
|
+ condMap.put("conditionType",conditionTypeList);*/
|
|
|
|
|
|
- Map<String,Object> paramsMap = new HashMap<>(1);
|
|
|
- paramsMap.put("cond",condMap);
|
|
|
- String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
+ StringBuilder stringBuffer = new StringBuilder();
|
|
|
+ Integer amountAllNum = 0; //同步总数量
|
|
|
+ Integer amountSuccessAllNum = 0; //同步成功总数量
|
|
|
+ String batchId = ""; //批次id
|
|
|
+
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>(3);
|
|
|
+ /*paramsMap.put("cond",condMap);*/
|
|
|
+ paramsMap.put("orderId", orderId);
|
|
|
+ paramsMap.put("index", 1);
|
|
|
+ paramsMap.put("size", 20);
|
|
|
+
|
|
|
+ String json = pullOrderNew(paramsMap);
|
|
|
+
|
|
|
+ logger.info(json);
|
|
|
|
|
|
//添加订单
|
|
|
Map<String,Object> map = this.saveOrder(1,json,batchId);
|
|
@@ -755,10 +772,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
}
|
|
|
|
|
|
Map<String,Object> paramsMap = new HashMap<>();
|
|
|
+ paramsMap.put("orderId", orderId);
|
|
|
+ paramsMap.put("index", 1);
|
|
|
+ paramsMap.put("size", 20);
|
|
|
+
|
|
|
List<Map<String,Object>> conditionTypeList = new ArrayList<>();
|
|
|
|
|
|
//订单状态 只获取代发货的订单
|
|
|
- Map<String,Object> orderMap = new HashMap<>();
|
|
|
+ /*Map<String,Object> orderMap = new HashMap<>();
|
|
|
//receiverName 收件人姓名 //receiverMobile收件人手机号码 //outOrderId原始订单号 //orderId系统订单号
|
|
|
orderMap.put("condType","orderId");
|
|
|
String[] orders = new String[1];
|
|
@@ -772,15 +793,19 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
condMap.put("pageNumber",1);
|
|
|
condMap.put("pageSize",20);
|
|
|
condMap.put("conditionType",conditionTypeList);
|
|
|
- paramsMap.put("cond",condMap);
|
|
|
- String json = this.syncXYT("IOrderService.query",paramsMap);
|
|
|
+ paramsMap.put("cond",condMap);*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String json = pullOrderNew(paramsMap);
|
|
|
//转化为json格式
|
|
|
JSONObject jsonObj = new JSONObject(json);
|
|
|
- String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ String resultMsg = jsonObj.getString("message");
|
|
|
if("success".equals(resultMsg)){
|
|
|
//数据
|
|
|
- JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
- JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
+ // JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
+ JSONArray beanListArray = jsonObj.getJSONArray("data");
|
|
|
if(beanListArray.length() > 0){
|
|
|
JSONObject job = beanListArray.getJSONObject(0);
|
|
|
//为了避免小亚通同一个订单查询多次,将订单保存在MAP中
|
|
@@ -802,7 +827,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
*/
|
|
|
private boolean getIsShip(JSONObject job,SalesOrder salesOrder){
|
|
|
//订单基本信息
|
|
|
- JSONObject infoObj = job.getJSONObject("info");
|
|
|
+ JSONObject infoObj = job.getJSONObject("orderInfo");
|
|
|
//订单状态::0 待支付;10 待成团;20 待发货;30 预售中;40 待审批;50 仓库代发货;60 已发货;70 已签收;80 已拒收;999 已作废
|
|
|
int orderStatus = infoObj.getInt("orderStatus");
|
|
|
//售后状态:0 没有售后 1 退款中 2 退款关闭 3 退款成功 4 退货中 5 退货关闭 6 退货成功 7 其它售后中 8 部分退货成功
|
|
@@ -811,7 +836,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//20 待发货
|
|
|
|
|
|
//订单项基本信息
|
|
|
- JSONArray itemsArray = job.getJSONArray("items");
|
|
|
+ JSONArray itemsArray = job.getJSONArray("orderItem");
|
|
|
//循环检测所有订单项是否能够发货
|
|
|
boolean allStatus = true;
|
|
|
for (SalesOrderItem salesOrderItem : salesOrder.getSalesOrderItemList()) {
|
|
@@ -1021,11 +1046,11 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//原始订单号
|
|
|
map.put("deliveryInfos",maps);
|
|
|
|
|
|
- String shipResultJson = this.syncXYT("delivery",map);
|
|
|
+ String shipResultJson = deliveryNew(map);
|
|
|
try{
|
|
|
//转化为json格式
|
|
|
JSONObject jsonObj = new JSONObject(shipResultJson);
|
|
|
- String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ String resultMsg = jsonObj.getString("message");
|
|
|
if("success".equals(resultMsg)) {
|
|
|
//修改同步物流状态
|
|
|
SalesOrder shipSalesOrder = new SalesOrder();
|
|
@@ -1192,8 +1217,8 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrder.setSalesStatus(1);
|
|
|
// 发货的物流公司
|
|
|
JSONArray logisticsArray = null;
|
|
|
- if(job.has("logistics")){
|
|
|
- logisticsArray = job.getJSONArray("logistics");
|
|
|
+ if(job.has("orderLogistics")){
|
|
|
+ logisticsArray = job.getJSONArray("orderLogistics");
|
|
|
}
|
|
|
if(logisticsArray.length() < 1){
|
|
|
errorMsg.append("商城订单编号:").append(otherExtOrderId).append("发货异常,未拉取到发货单号");
|
|
@@ -1268,14 +1293,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
StringBuilder errorMsg = new StringBuilder();
|
|
|
//转化为json格式
|
|
|
JSONObject jsonObj = new JSONObject(json);
|
|
|
- String resultMsg = jsonObj.getString("result_msg");
|
|
|
+ String resultMsg = jsonObj.getString("message");
|
|
|
if("success".equals(resultMsg)){
|
|
|
status = 1;
|
|
|
msg = "拉取订单成功";
|
|
|
// 数据
|
|
|
- JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
+ // JSONObject dataObj = jsonObj.getJSONObject("data");
|
|
|
// 获取订单数据
|
|
|
- JSONArray beanListArray = dataObj.getJSONArray("beanList");
|
|
|
+ JSONArray beanListArray = jsonObj.getJSONArray("data");
|
|
|
pullAmount = beanListArray.length();
|
|
|
amountNum = beanListArray.length();
|
|
|
if(beanListArray.length() > 0){
|
|
@@ -1287,13 +1312,13 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//用户信息
|
|
|
JSONObject consigneeObj = job.getJSONObject("consignee");
|
|
|
//订单基本信息
|
|
|
- JSONObject infoObj = job.getJSONObject("info");
|
|
|
+ JSONObject infoObj = job.getJSONObject("orderInfo");
|
|
|
//订单项基本信息
|
|
|
- JSONArray itemsArray = job.getJSONArray("items");
|
|
|
+ JSONArray itemsArray = job.getJSONArray("orderItem");
|
|
|
JSONObject memoObj = null;
|
|
|
- if(job.has("memo")){
|
|
|
+ if(job.has("orderMemos")){
|
|
|
//备注信息 如果没有备注,将为null
|
|
|
- memoObj = job.getJSONObject("memo");
|
|
|
+ memoObj = job.getJSONObject("orderMemos");
|
|
|
}
|
|
|
|
|
|
SalesOrder salesOrder = new SalesOrder();
|
|
@@ -1442,8 +1467,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
|
|
|
//地址
|
|
|
receiverAddress = consigneeObj.getString("receiverAddress");
|
|
|
- if(receiverState.contains("上海") || receiverState.contains("北京")
|
|
|
- || receiverState.contains("重庆") || receiverState.contains("天津")){
|
|
|
+ if(
|
|
|
+ receiverState.contains("上海") ||
|
|
|
+ receiverState.contains("北京") ||
|
|
|
+ receiverState.contains("重庆") ||
|
|
|
+ receiverState.contains("天津")
|
|
|
+ ){
|
|
|
receiverDistrict = receiverCity;
|
|
|
receiverCity = receiverState;
|
|
|
}
|
|
@@ -1462,7 +1491,7 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
salesOrder.setSalesOpenId(consigneeObj.getString("receiverMobile"));
|
|
|
|
|
|
if(consigneeObj.has("receiverZip")){
|
|
|
- //收件人邮政编码
|
|
|
+ // 收件人邮政编码
|
|
|
salesOrder.setSalesAddressPostcode(consigneeObj.getString("receiverZip"));
|
|
|
}else{
|
|
|
// 没有邮编,从系统开始查找
|
|
@@ -1548,11 +1577,12 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
|
|
|
//支付金额 - 订单总金额
|
|
|
Long totalFee = infoObj.getLong("totalFee");
|
|
|
+ Long paidFee = infoObj.getLong("paidFee");
|
|
|
Integer amount = totalFee.intValue();
|
|
|
//本次支付金额
|
|
|
- salesOrder.setSalesLastMoney(amount);
|
|
|
+ salesOrder.setSalesLastMoney(paidFee.intValue());
|
|
|
//已付金额-支付金额/折扣价
|
|
|
- salesOrder.setSalesPayMoney(amount);
|
|
|
+ salesOrder.setSalesPayMoney(paidFee.intValue());
|
|
|
//订单总金额
|
|
|
salesOrder.setSalesAmount(amount);
|
|
|
|
|
@@ -1596,6 +1626,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
buyerMessage = memoObj.getString("buyerMessage");
|
|
|
}
|
|
|
salesUserRemark = buyerMessage;
|
|
|
+ if (buyerMemo != null) {
|
|
|
+ if (salesUserRemark == null) {
|
|
|
+ salesUserRemark = buyerMemo;
|
|
|
+ } else {
|
|
|
+ salesUserRemark += buyerMemo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 商家备注
|
|
|
SalesAdminRemark = orderMemo;
|
|
|
if(sellerMemo != null && !"".equals(sellerMemo)){
|
|
|
SalesAdminRemark += "-"+sellerMemo;
|
|
@@ -1686,22 +1724,25 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//应付金额是指:购买数量的总应付金额
|
|
|
Long totalFeeLong = item.getLong("totalFee");
|
|
|
Integer totalFeeInt = totalFeeLong.intValue();
|
|
|
+ int itemPaidFee = item.getInt("paidFee");
|
|
|
|
|
|
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).append("-订单项中的SKU未查询到组合产品,SKU编号:").append(extSkuId).append(";");
|
|
|
break;
|
|
|
}
|
|
|
- Integer advProductCombinatFree = totalFeeInt/productCombinatList.size();
|
|
|
+ // 获取拆分产品的平均价格
|
|
|
+ Integer advProductCombinatFree = itemPaidFee/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();
|
|
@@ -1709,10 +1750,10 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//计算价格
|
|
|
Integer itemDiscountAllFeeInt = 0;
|
|
|
if((m+1) >= productCombinatList.size()){
|
|
|
- itemDiscountAllFeeInt = totalFeeInt;
|
|
|
+ itemDiscountAllFeeInt = itemPaidFee;
|
|
|
}else{
|
|
|
itemDiscountAllFeeInt = advProductCombinatFree;
|
|
|
- totalFeeInt = totalFeeInt - itemDiscountAllFeeInt;
|
|
|
+ itemPaidFee = itemPaidFee - itemDiscountAllFeeInt;
|
|
|
}
|
|
|
Integer itemDiscountFeeInt = itemDiscountAllFeeInt/sonNum;
|
|
|
//产品市场价
|
|
@@ -1753,9 +1794,9 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
//产品市场价
|
|
|
salesOrderItem.setItemProductPrice(itemDiscountFeeInt);
|
|
|
//产品折扣价
|
|
|
- salesOrderItem.setItemProductDiscount(itemDiscountFeeInt);
|
|
|
+ salesOrderItem.setItemProductDiscount(itemPaidFee);
|
|
|
//小结
|
|
|
- salesOrderItem.setItemTotal(totalFeeInt);
|
|
|
+ salesOrderItem.setItemTotal(itemPaidFee);
|
|
|
|
|
|
//itemCost;//单个成本 itemCostTotal;//成本小结 确认操作计算
|
|
|
//产品数量
|
|
@@ -1891,7 +1932,6 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
throw new Exception("订单导入-未能从该客户中获取到对应产品的信息,客户名称:"+dealerChannel.getDealerName()+",---产品:"+ salesOrderItem.getItemProductName()+"("+ salesOrderItem.getItemProductColor() +")。");
|
|
|
}
|
|
|
salesOrderItem.setItemProductPrice(newPrice);
|
|
|
- salesOrderItem.setItemProductDiscount(newPrice);
|
|
|
if(newPrice > 0){
|
|
|
noZeroSalesOrderItemList.add(salesOrderItem);
|
|
|
}
|
|
@@ -2095,10 +2135,13 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
* @return
|
|
|
*/
|
|
|
public String syncOrderOnce(String orderId) {
|
|
|
- Map<String,Object> map = new HashMap<>();
|
|
|
//原始订单号
|
|
|
- map.put("orderId",orderId);
|
|
|
- return this.syncXYT("IOrderService.query",map);
|
|
|
+ Map<String,Object> paramsMap = new HashMap<>();
|
|
|
+ paramsMap.put("orderId", orderId);
|
|
|
+ paramsMap.put("index", 1);
|
|
|
+ paramsMap.put("size", 20);
|
|
|
+
|
|
|
+ return pullOrderNew(paramsMap);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2202,4 +2245,83 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ /***
|
|
|
+ * 获取小亚通平台的访问token
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String getToken() {
|
|
|
+ // Redis获取数据
|
|
|
+ String token = RedisUtils.get("XYT_token");
|
|
|
+ // 是否重新请求
|
|
|
+ boolean isReq = false;
|
|
|
+ if (token == null || "".equals(token)) {
|
|
|
+ isReq = true;
|
|
|
+ } else {
|
|
|
+ com.alibaba.fastjson.JSONObject tokenObj = com.alibaba.fastjson.JSONObject.parseObject(token);
|
|
|
+ Date timeout = DateTimeUtil.parse(tokenObj.getString("timeout"), "yyyy-MM-dd HH:mm:ss");
|
|
|
+ if (timeout == null) {
|
|
|
+ isReq = true;
|
|
|
+ } else {
|
|
|
+ if (timeout.getTime() < System.currentTimeMillis()) {
|
|
|
+ isReq = true;
|
|
|
+ } else {
|
|
|
+ return tokenObj.getString("token");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (isReq) {
|
|
|
+ Map<String, String> data = new HashMap<>(4);
|
|
|
+ data.put("client_id", "YoFLxga9L32iZgi3");
|
|
|
+ data.put("client_secret", "X7zRb7Dz70SIeW00");
|
|
|
+ data.put("tenant_id", "102299598854");
|
|
|
+ data.put("grant_type", "tenant_cli");
|
|
|
+
|
|
|
+ String s = null;
|
|
|
+ try {
|
|
|
+ s = HttpClient431Util.doPostContent(com.alibaba.fastjson.JSONObject.toJSONString(data), "application/json", "https://baseapi.xiaoyatong.com/auth/diamond/token/tenant");
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("", e);
|
|
|
+ }
|
|
|
+ com.alibaba.fastjson.JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(s);
|
|
|
+ com.alibaba.fastjson.JSONObject rdata = result.getJSONObject("data");
|
|
|
+ String accessToken = rdata.getString("access_token");
|
|
|
+ int expiresIn = rdata.getIntValue("expires_in");
|
|
|
+ // 缓存token
|
|
|
+ Map<String, String> tokenMap = new HashMap<>(2);
|
|
|
+ tokenMap.put("token", accessToken);
|
|
|
+ tokenMap.put("timeout", DateTimeUtil.format(DateTimeUtil.addMinute(new Date(), (expiresIn/60)-30), "yyyy-MM-dd HH:mm:ss"));
|
|
|
+ token = com.alibaba.fastjson.JSONObject.toJSONString(tokenMap);
|
|
|
+ // 缓存Redis
|
|
|
+ RedisUtils.put("XYT_token", token);
|
|
|
+ // 返回数据
|
|
|
+ return accessToken;
|
|
|
+ }
|
|
|
+ // 转换数据并返回
|
|
|
+ return com.alibaba.fastjson.JSONObject.parseObject(token).getString("token");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询小亚通订单
|
|
|
+ */
|
|
|
+ public String pullOrderNew(Map<String, Object> param) {
|
|
|
+ try {
|
|
|
+ String s = HttpClient431Util.doPostContent(com.alibaba.fastjson.JSONObject.toJSONString(param), "application/json", "https://baseapi.xiaoyatong.com/v1/order/list?access_token=" + getToken());
|
|
|
+
|
|
|
+ return s;
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("", e);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ public String deliveryNew(Map<String, Object> param) {
|
|
|
+ try {
|
|
|
+ String s = HttpClient431Util.doPostContent(com.alibaba.fastjson.JSONObject.toJSONString(param), "application/json", "https://baseapi.xiaoyatong.com/v1/order/delivery?access_token=" + getToken());
|
|
|
+ return s;
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error("", e);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
}
|