宇同海外销售订单取数逻辑
This commit is contained in:
parent
8894744c6c
commit
ad31661fdc
|
@ -0,0 +1,63 @@
|
||||||
|
package com.hzya.frame.plugin.yut.plugin;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.base.PluginBaseEntity;
|
||||||
|
import com.hzya.frame.u8c.hwsale.service.IHwSaleService;
|
||||||
|
import com.hzya.frame.web.entity.BaseResult;
|
||||||
|
import com.hzya.frame.web.entity.JsonResultEntity;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消息管理日志(SysMessageManageLog)表服务接口
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @since 2024-03-08 10:22:00
|
||||||
|
*/
|
||||||
|
public class YutHwSaleOrderPluginInitializer extends PluginBaseEntity {
|
||||||
|
Logger logger = LoggerFactory.getLogger(YutHwSaleOrderPluginInitializer.class);
|
||||||
|
@Autowired
|
||||||
|
public IHwSaleService hwSaleService;
|
||||||
|
@Override
|
||||||
|
public void initialize() {
|
||||||
|
logger.info(getPluginLabel() + "執行初始化方法initialize()");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void destroy() {
|
||||||
|
logger.info(getPluginLabel() + "執行銷毀方法destroy()");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginId() {
|
||||||
|
return "YutHwSaleOrderPluginInitializer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginName() {
|
||||||
|
return "抓取海外销售订单数据插件";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPluginLabel() {
|
||||||
|
return "抓取海外销售订单数据插件";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public String getPluginType() {
|
||||||
|
return "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception {
|
||||||
|
logger.info("开始执行"+getPluginName()+requestJson.toString());
|
||||||
|
try {
|
||||||
|
hwSaleService.getHwSaleOrder(requestJson);
|
||||||
|
return BaseResult.getSuccessMessageEntity("执行成功");
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return BaseResult.getSuccessMessageEntity("执行成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<plugin>
|
||||||
|
<id>BackUpDatabasePlugin</id>
|
||||||
|
<name>BackUpDatabasePlugin插件</name>
|
||||||
|
<category>20241021</category>
|
||||||
|
</plugin>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
|
<beans default-autowire="byName">
|
||||||
|
<!--<bean name="mdmCustomerDao" class="com.hzya.frame.plugin.masterData.dao.impl.MdmDaoImpl" />-->
|
||||||
|
</beans>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
|
<beans default-autowire="byName">
|
||||||
|
<bean name="YutHwSaleOrderPluginInitializer" class="com.hzya.frame.plugin.yut.plugin.YutHwSaleOrderPluginInitializer" />
|
||||||
|
</beans>
|
|
@ -0,0 +1,5 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
|
<beans default-autowire="byName">
|
||||||
|
<!--<bean name="mdmCustomerService" class="com.hzya.frame.plugin.masterData.service.impl.MdmServiceImpl" />-->
|
||||||
|
</beans>
|
|
@ -178,6 +178,11 @@ public class ComparisonServiceImpl extends BaseService<ComparisonEntity, String>
|
||||||
.flatMap(e1 -> e1.getValue().keySet().stream()
|
.flatMap(e1 -> e1.getValue().keySet().stream()
|
||||||
.map(dbname -> new AbstractMap.SimpleEntry<>(e1.getKey(), dbname)))
|
.map(dbname -> new AbstractMap.SimpleEntry<>(e1.getKey(), dbname)))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
// 按value升序排序
|
||||||
|
// List<Map.Entry<String, String>> sortedByValue = keyPairs.stream()
|
||||||
|
// .sorted(Map.Entry.comparingByValue())
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
|
||||||
// keyPairs 得值为键值对,键是表名称,值是类型,避免多个子表得键一样,比如:mdm_customer:1,mdm_customer_bank:2,mdm_customer_option_log:2
|
// keyPairs 得值为键值对,键是表名称,值是类型,避免多个子表得键一样,比如:mdm_customer:1,mdm_customer_bank:2,mdm_customer_option_log:2
|
||||||
for (Map.Entry<String, String> keyPair : keyPairs) {
|
for (Map.Entry<String, String> keyPair : keyPairs) {
|
||||||
//如果是1,就是主表,根据查询出来得主表是否是传输传递得主表
|
//如果是1,就是主表,根据查询出来得主表是否是传输传递得主表
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.hzya.frame.u8c.hwsale.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.basedao.service.IBaseService;
|
||||||
|
import com.hzya.frame.u8c.Invmandoc.entity.BdInvmandocEntity;
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (BdInvmandoc)表服务接口
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @since 2023-08-25 11:21:44
|
||||||
|
*/
|
||||||
|
public interface IHwSaleService extends IBaseService<BaseEntity, String> {
|
||||||
|
/**
|
||||||
|
* 获取电商海外订单数据
|
||||||
|
*
|
||||||
|
* @param requestJson 请求参数
|
||||||
|
* @return 实例对象
|
||||||
|
*/
|
||||||
|
void getHwSaleOrder(JSONObject requestJson);
|
||||||
|
}
|
|
@ -0,0 +1,258 @@
|
||||||
|
package com.hzya.frame.u8c.hwsale.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.crypto.SecureUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.hzya.frame.basedao.service.impl.BaseService;
|
||||||
|
import com.hzya.frame.sysnew.comparison.service.impl.ComparisonServiceImpl;
|
||||||
|
import com.hzya.frame.u8c.Invmandoc.dao.IBdInvmandocDao;
|
||||||
|
import com.hzya.frame.u8c.Invmandoc.entity.BdInvmandocEntity;
|
||||||
|
import com.hzya.frame.u8c.Invmandoc.service.IBdInvmandocService;
|
||||||
|
import com.hzya.frame.u8c.hwsale.service.IHwSaleService;
|
||||||
|
import com.hzya.frame.u8c.hwsale.util.HwUtil;
|
||||||
|
import com.hzya.frame.web.entity.BaseEntity;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* (BdInvmandoc)表服务实现类
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @since 2023-08-25 11:21:44
|
||||||
|
*/
|
||||||
|
@Service("HwSaleServiceImpl")
|
||||||
|
public class HwSaleServiceImpl extends BaseService<BaseEntity, String> implements IHwSaleService {
|
||||||
|
@Autowired
|
||||||
|
private ComparisonServiceImpl comparisonServiceimpl;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 获取电商海外数据
|
||||||
|
* @className: Administrator
|
||||||
|
* @author laborer
|
||||||
|
* @date 2025-08-14 9:06
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void getHwSaleOrder(JSONObject requestJson) {
|
||||||
|
JSONArray dataArr = new JSONArray();
|
||||||
|
StringBuffer url = new StringBuffer();
|
||||||
|
url.append(HwUtil.baseUrl + "/api/openservices/trade/v1/getSalesTradeList");
|
||||||
|
String timestamp = String.valueOf(System.currentTimeMillis());
|
||||||
|
Map<String, String> map = new TreeMap<>();
|
||||||
|
map.put("sid", "sales");
|
||||||
|
map.put("appName", "sales");
|
||||||
|
map.put("timestamp",timestamp );
|
||||||
|
JSONObject parmetersMap = new JSONObject();
|
||||||
|
parmetersMap.put("createTimeBegin", "2025-05-10 00:00:00");
|
||||||
|
parmetersMap.put("createTimeEnd", "2025-08-01 15:00:00");
|
||||||
|
int i = 0;
|
||||||
|
while (true){
|
||||||
|
i++;
|
||||||
|
parmetersMap.put("pageNo", i);
|
||||||
|
parmetersMap.put("pageSize", "100");
|
||||||
|
map.put("body",parmetersMap.toJSONString());
|
||||||
|
String sign = SecureUtil.md5(HwUtil.linkParams(map,HwUtil.appkey));
|
||||||
|
logger.info("获取跨境电商销售订单数据,请求参数"+parmetersMap.toJSONString());
|
||||||
|
url.append("?sid=sales&appName=sales×tamp="+timestamp+"&sign="+sign);
|
||||||
|
String result = HwUtil.doPost(parmetersMap.toString(),url.toString());
|
||||||
|
if(StrUtil.isEmpty(result)){
|
||||||
|
throw new RuntimeException("获取跨境电商销售订单数据失败");
|
||||||
|
}
|
||||||
|
JSONObject resultObj = JSONObject.parseObject(result);
|
||||||
|
boolean ok = resultObj.getBoolean("ok");
|
||||||
|
if(!ok){
|
||||||
|
throw new RuntimeException("获取跨境电商销售订单数据失败");
|
||||||
|
}
|
||||||
|
JSONObject dataObj = resultObj.getJSONObject("data");
|
||||||
|
JSONArray datas = dataObj.getJSONArray("data");
|
||||||
|
//获取订单明细数据,如果有数据递归向下查,反之跳出循环
|
||||||
|
if(datas.size() >0){
|
||||||
|
datas.forEach(item -> {
|
||||||
|
JSONObject data = getOrders(timestamp, item);
|
||||||
|
dataArr.add(data);
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果数组不为空,将数据写入中台业务中心,先查询在写入,如果数据已经存在则直接跳过,反正写入中台业务中心
|
||||||
|
if(dataArr.size() >0){
|
||||||
|
dataArr.forEach(item -> {
|
||||||
|
JSONObject dataItem = bdHwSaleParm(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private JSONObject bdHwSaleParm(Object item) {
|
||||||
|
JSONObject data = (JSONObject) item;
|
||||||
|
//组装表头参数
|
||||||
|
JSONArray orders = data.getJSONArray("orders");
|
||||||
|
JSONObject jsonObjectUser = new JSONObject();
|
||||||
|
JSONObject jsonStr = new JSONObject();
|
||||||
|
jsonObjectUser.put("data_id", data.get("data_id"));
|
||||||
|
jsonObjectUser.put("mdmCode", "10001");
|
||||||
|
jsonStr.put("jsonStr", jsonObjectUser);
|
||||||
|
//先查询编码和名称查询是否存在
|
||||||
|
Object attribute = comparisonServiceimpl.queryEntityPage(jsonStr);
|
||||||
|
JSONObject jsonObjectAttribute = (JSONObject) JSON.toJSON(attribute);
|
||||||
|
JSONArray jsonArrayList = jsonObjectAttribute.getJSONObject("pageInfo").getJSONArray("list");
|
||||||
|
if (jsonArrayList == null || jsonArrayList.size() == 0) {
|
||||||
|
JSONObject mainObject = new JSONObject();
|
||||||
|
mainObject.put("appName","数智中台");
|
||||||
|
mainObject.put("appCode","800004");
|
||||||
|
mainObject.put("mdmCode", "10001");
|
||||||
|
mainObject.put("optionName", "数智中台");
|
||||||
|
JSONObject hw_sale_order = new JSONObject();
|
||||||
|
JSONArray hw_sage_orders = new JSONArray();
|
||||||
|
hw_sale_order.put("data_id", data.getString("tradeId"));//订单id
|
||||||
|
hw_sale_order.put("trade_id", data.getString("tradeId"));//订单id
|
||||||
|
hw_sale_order.put("trade_no", data.getString("tradeNo"));//ERP订单号
|
||||||
|
hw_sale_order.put("src_tids", data.getString("srcTids"));//平台订单号
|
||||||
|
hw_sale_order.put("trade_time", data.getString("tradeTime"));//下单时间
|
||||||
|
hw_sale_order.put("trade_type", data.getString("tradeType"));//订单类型(枚举值:线下,线上)
|
||||||
|
hw_sale_order.put("shop_no", data.getString("shopNo"));//店铺编码
|
||||||
|
hw_sale_order.put("shop_text", data.getString("shopText"));//店铺名称
|
||||||
|
hw_sale_order.put("erp_remark", data.getString("erpRemark"));//系统备注
|
||||||
|
hw_sale_order.put("cs_remark", data.getString("csRemark"));//客服备注
|
||||||
|
hw_sale_order.put("buyer_message", data.getString("buyerMessage"));//买家备注
|
||||||
|
hw_sale_order.put("trade_source", data.getString("tradeSource"));//订单来源
|
||||||
|
hw_sale_order.put("platform_mask_list", data.getString("platformMaskList"));//平台标识
|
||||||
|
hw_sale_order.put("flag_list", data.getString("flagList"));//订单标记 ,取系统单中【自定义标记名称】
|
||||||
|
hw_sale_order.put("seller_full_name", data.getString("sellerFullName"));//业务员
|
||||||
|
hw_sale_order.put("warehouse_no", data.getString("warehouseNo"));//仓库编码
|
||||||
|
hw_sale_order.put("warehouse_text", data.getString("warehouseText"));//仓库名称
|
||||||
|
hw_sale_order.put("outer_no", data.getString("outerNo"));//外部仓单号
|
||||||
|
hw_sale_order.put("post_amount", data.getString("postAmount"));//买家支付邮费
|
||||||
|
hw_sale_order.put("receiver_telno", data.getString("receiverTelno"));//固话
|
||||||
|
hw_sale_order.put("receiver_name", data.getString("receiverName"));//收件人
|
||||||
|
hw_sale_order.put("receiver_mobile", data.getString("receiverMobile"));//手机
|
||||||
|
hw_sale_order.put("receiver_zip", data.getString("receiverZip"));//邮编
|
||||||
|
hw_sale_order.put("weight", data.getString("weight"));//重量
|
||||||
|
hw_sale_order.put("buyer_nick", data.getString("buyerNick"));//昵称
|
||||||
|
hw_sale_order.put("country", data.getString("country"));//国家
|
||||||
|
hw_sale_order.put("receiver_province", data.getString("receiverProvince"));//省/州
|
||||||
|
hw_sale_order.put("receiver_city", data.getString("receiverCity"));//市
|
||||||
|
hw_sale_order.put("receiver_district", data.getString("receiverDistrict"));//区
|
||||||
|
hw_sale_order.put("receiver_address", data.getString("receiverAddress"));//详细地址1
|
||||||
|
hw_sale_order.put("receiver_address2", data.getString("receiverAddress2"));//详细地址2
|
||||||
|
hw_sale_order.put("logistics_id", data.getString("logisticsId"));//物流编号
|
||||||
|
hw_sale_order.put("logistics_text", data.getString("logisticsText"));//物流名称
|
||||||
|
hw_sale_order.put("logistics_no", data.getString("logisticsNo"));//物流单号
|
||||||
|
hw_sale_order.put("logistics_label_url", data.getString("logisticsLabelUrl"));//物流面单url
|
||||||
|
hw_sale_order.put("delivery_mobile", data.getString("deliveryMobile"));//发货人信息
|
||||||
|
hw_sale_order.put("currency_code", data.getString("currencyCode"));//订单币种
|
||||||
|
hw_sale_order.put("delivery_type", data.getString("deliveryType"));//付款方式
|
||||||
|
hw_sale_order.put("receivable", data.getString("receivable"));//应收金额
|
||||||
|
hw_sale_order.put("received", data.getString("received"));//实收金额
|
||||||
|
hw_sale_order.put("pay_time", data.getString("payTime"));//付款时间
|
||||||
|
hw_sale_order.put("over_time", data.getString("overTime"));//最晚发货时间
|
||||||
|
hw_sale_order.put("delivery_time", data.getString("deliveryTime"));//发货时间
|
||||||
|
hw_sale_order.put("out_bound_time", data.getString("outBoundTime"));//移入配货时间
|
||||||
|
hw_sale_order.put("estimated_vat", data.getString("estimatedVat"));//税费
|
||||||
|
hw_sale_order.put("discount", data.getString("discount"));//优惠
|
||||||
|
hw_sale_order.put("discount_codes", data.getString("discountCodes"));//折扣码
|
||||||
|
hw_sale_order.put("commission", data.getString("commission"));//佣金
|
||||||
|
hw_sale_order.put("post_cost", data.getString("postCost"));//预估邮费成本
|
||||||
|
hw_sale_order.put("bad_delivery", data.getString("badDelivery"));//是否异常发货(true 异常,false 无异常)
|
||||||
|
hw_sale_order.put("frozen", data.getString("frozen"));//是否冻结(true 已冻结,false 未冻结)
|
||||||
|
hw_sale_order.put("trade_status_code", data.getString("tradeStatusCode"));//订单状态编码(1、2、3、4、7、8)
|
||||||
|
hw_sale_order.put("trade_status_desc", data.getString("tradeStatusDesc"));//订单状态描述:递交中、待处理、配货中、已发货、已取消、待审核
|
||||||
|
hw_sale_order.put("created", data.getString("created"));//创建时间
|
||||||
|
hw_sale_order.put("modified", data.getString("modified"));//修改时间
|
||||||
|
hw_sale_order.put("exchange_rate", data.getString("exchangeRate"));//汇率
|
||||||
|
hw_sale_order.put("platform_id", data.getString("platformId"));//平台id信息
|
||||||
|
hw_sale_order.put("sku_platform_discount", data.getString("skuPlatformDiscount"));//平台优惠
|
||||||
|
hw_sale_order.put("sku_seller_discount", data.getString("skuSellerDiscount"));//买家优惠
|
||||||
|
hw_sale_order.put("refund_status", data.getString("refundStatus"));//0:无退款、1:申请退款、2:部分退款、3:退款成功
|
||||||
|
hw_sale_order.put("tid_number", data.getString("tidNumber"));//平台序列号(20250604迭代新增)
|
||||||
|
hw_sale_order.put("pay_account", data.getString("payAccount"));//支付账户(20250702添加)
|
||||||
|
if(orders.size()>0){
|
||||||
|
orders.forEach(items -> {
|
||||||
|
JSONObject bodys = (JSONObject)items;
|
||||||
|
JSONObject body = new JSONObject();
|
||||||
|
|
||||||
|
body.put("data_id", bodys.getString("orderId"));//订单id
|
||||||
|
body.put("order_id", bodys.getString("orderId"));//子单id
|
||||||
|
body.put("trade_id", bodys.getString("tradeId"));//订单id
|
||||||
|
body.put("src_oid", bodys.getString("srcOid"));//平台子单号
|
||||||
|
body.put("src_tid", bodys.getString("srcTid"));//平台订单号
|
||||||
|
body.put("api_spec_no", bodys.getString("apiSpecNo"));//平台SKU编码
|
||||||
|
body.put("api_spec_name", bodys.getString("apiSpecName"));//平台SKU编码
|
||||||
|
body.put("sku_no", bodys.getString("skuNo"));//SKU编码
|
||||||
|
body.put("sku_name", bodys.getString("skuName"));//SKU名称
|
||||||
|
body.put("spu_no", bodys.getString("spuNo"));//SPU编码
|
||||||
|
body.put("spu_name", bodys.getString("spuName"));//SPU名称
|
||||||
|
body.put("stock_num", bodys.getString("stockNum"));//库存数
|
||||||
|
body.put("use_able_stock_num", bodys.getString("useAbleStockNum"));//可用库存
|
||||||
|
body.put("delivery_able_stock_num", bodys.getString("deliveryAbleStockNum"));//可发库存
|
||||||
|
body.put("num", bodys.getString("num"));//销售数量
|
||||||
|
body.put("price", bodys.getString("price"));//单价
|
||||||
|
body.put("sku_amount", bodys.getString("skuAmount"));//货款
|
||||||
|
body.put("is_gift", bodys.getString("isGift"));//是否赠品
|
||||||
|
body.put("position_nos", bodys.getString("positionNos"));//货位编码
|
||||||
|
body.put("remark", bodys.getString("remark"));//子单备注
|
||||||
|
body.put("sku_price", bodys.getString("skuPrice"));//货品档案维护的标价
|
||||||
|
body.put("order_post_amount", bodys.getString("orderPostAmount"));//分摊邮费
|
||||||
|
body.put("latest_purchase_price", bodys.getString("latestPurchasePrice"));//最新采购入库价
|
||||||
|
body.put("platform_order_status", bodys.getString("platformOrderStatus"));//平台子单状态(5:未知,10:未确认,25:风控中,30:待发货,40:部分发货,50:已发货,60:已签收,70:已完成,80:已退款,90:已关闭)
|
||||||
|
body.put("detail_goods_amount", bodys.getString("detailGoodsAmount"));//商品成交价
|
||||||
|
body.put("suite_no", bodys.getString("suiteNo"));//组合SKU编码
|
||||||
|
body.put("suite_name", bodys.getString("suiteName"));//组合SKU名称
|
||||||
|
body.put("logistics_label_url", bodys.getString("logisticsLabelUrl"));//面单链接,如果没有链接返回null
|
||||||
|
body.put("spec_img_url", bodys.getString("specImgUrl"));//sku图片
|
||||||
|
body.put("refund_status", bodys.getString("refundStatus"));//0:无退款1:取消退款 2:申请退款 5:退款成功 7:子单部分退款
|
||||||
|
body.put("tid_number", bodys.getString("tidNumber"));//平台序列号(20250604迭代新增)
|
||||||
|
body.put("special_info", bodys.getString("specialInfo"));//定制信息(20250702添加)
|
||||||
|
hw_sage_orders.add( body);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
mainObject.put("hw_sale_order",hw_sale_order);
|
||||||
|
mainObject.put("hw_sale_orders",hw_sage_orders);
|
||||||
|
jsonStr.put("jsonStr",mainObject);
|
||||||
|
Object result = comparisonServiceimpl.saveEntity(jsonStr);
|
||||||
|
logger.info("新增结果为:{}", JSON.toJSONString(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JSONObject getOrders(String timestamp, Object item) {
|
||||||
|
JSONObject data = (JSONObject) item;
|
||||||
|
//获取订单明细数据
|
||||||
|
JSONArray tradeIds = new JSONArray();
|
||||||
|
tradeIds.add(data.getString("tradeId"));
|
||||||
|
StringBuffer bUrl = new StringBuffer();
|
||||||
|
bUrl.append(HwUtil.baseUrl + "/api/openservices/trade/v1/getSalesTradeOrderList");
|
||||||
|
Map<String, String> bMap = new TreeMap<>();
|
||||||
|
bMap.put("sid", "sales");
|
||||||
|
bMap.put("appName", "sales");
|
||||||
|
bMap.put("timestamp", timestamp);
|
||||||
|
JSONObject bParmetersMap = new JSONObject();
|
||||||
|
bParmetersMap.put("tradeIds",tradeIds);
|
||||||
|
bMap.put("body",bParmetersMap.toJSONString());
|
||||||
|
String bSign = SecureUtil.md5(HwUtil.linkParams(bMap,HwUtil.appkey));
|
||||||
|
bUrl.append("?sid=sales&appName=sales×tamp="+ timestamp +"&sign="+bSign);
|
||||||
|
String bResult = HwUtil.doPost(bParmetersMap.toString(),bUrl.toString());
|
||||||
|
if(StrUtil.isEmpty(bResult)){
|
||||||
|
throw new RuntimeException("获取跨境电商销售订单数据失败");
|
||||||
|
}
|
||||||
|
JSONObject bResultObj = JSONObject.parseObject(bResult);
|
||||||
|
boolean bOk = bResultObj.getBoolean("ok");
|
||||||
|
if(!bOk){
|
||||||
|
logger.info("获取跨境电商销售订单明细数据失败");
|
||||||
|
}
|
||||||
|
JSONArray bDataarr = bResultObj.getJSONArray("data");
|
||||||
|
data.put("orders",bDataarr);
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
package com.hzya.frame.u8c.hwsale.util;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpRequest;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* com.hzya.frame.u8c.hwsale.util
|
||||||
|
*
|
||||||
|
* @author makejava
|
||||||
|
* @date 2025-08 -14 13:25
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class HwUtil {
|
||||||
|
public static final String baseUrl = "https://openapi.qizhishangke.com";
|
||||||
|
public static final String appkey = "2aa6ce6a155fdceebec72edec9c7abf8";
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @content 参数加密
|
||||||
|
* @className: Administrator
|
||||||
|
* @author laborer
|
||||||
|
* @date 2025-08-14 13:25
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static String linkParams(Map<String, String> map, String secret) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(secret);
|
||||||
|
for (Map.Entry<String, String> item : map.entrySet())
|
||||||
|
{
|
||||||
|
if (item.getKey().equals("sign"))
|
||||||
|
continue;
|
||||||
|
sb.append(item.getKey());
|
||||||
|
sb.append(item.getValue());
|
||||||
|
}
|
||||||
|
sb.append(secret);
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
public static String doPost(String parm,String url){
|
||||||
|
String result = HttpRequest.post(url)
|
||||||
|
.body(parm)//表单内容
|
||||||
|
.timeout(20000)//超时,毫秒
|
||||||
|
.execute().body();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue