宇同海外销售订单取数逻辑
This commit is contained in:
parent
ad31661fdc
commit
3e95dfd2aa
|
@ -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 YutHwSaleRrcPluginInitializer extends PluginBaseEntity {
|
||||||
|
Logger logger = LoggerFactory.getLogger(YutHwSaleRrcPluginInitializer.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 "YutHwSaleRrcPluginInitializer";
|
||||||
|
}
|
||||||
|
|
||||||
|
@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.getHwSaleRec(requestJson);
|
||||||
|
return BaseResult.getSuccessMessageEntity("执行成功");
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return BaseResult.getSuccessMessageEntity("执行成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -2,4 +2,5 @@
|
||||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||||
<beans default-autowire="byName">
|
<beans default-autowire="byName">
|
||||||
<bean name="YutHwSaleOrderPluginInitializer" class="com.hzya.frame.plugin.yut.plugin.YutHwSaleOrderPluginInitializer" />
|
<bean name="YutHwSaleOrderPluginInitializer" class="com.hzya.frame.plugin.yut.plugin.YutHwSaleOrderPluginInitializer" />
|
||||||
|
<bean name="YutHwSaleRrcPluginInitializer" class="com.hzya.frame.plugin.yut.plugin.YutHwSaleRrcPluginInitializer" />
|
||||||
</beans>
|
</beans>
|
||||||
|
|
|
@ -19,4 +19,11 @@ public interface IHwSaleService extends IBaseService<BaseEntity, String> {
|
||||||
* @return 实例对象
|
* @return 实例对象
|
||||||
*/
|
*/
|
||||||
void getHwSaleOrder(JSONObject requestJson);
|
void getHwSaleOrder(JSONObject requestJson);
|
||||||
|
/**
|
||||||
|
* 获取电商海外退货数据
|
||||||
|
*
|
||||||
|
* @param requestJson 请求参数
|
||||||
|
* @return 实例对象
|
||||||
|
*/
|
||||||
|
void getHwSaleRec(JSONObject requestJson);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.hzya.frame.u8c.hwsale.service.impl;
|
package com.hzya.frame.u8c.hwsale.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.UUID;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.SecureUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
@ -90,6 +91,135 @@ public class HwSaleServiceImpl extends BaseService<BaseEntity, String> implement
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 获取电商海外退货数据
|
||||||
|
*
|
||||||
|
* @param requestJson 请求参数
|
||||||
|
* @return 实例对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void getHwSaleRec(JSONObject requestJson) {
|
||||||
|
JSONArray dataArr = new JSONArray();
|
||||||
|
StringBuffer url = new StringBuffer();
|
||||||
|
url.append(HwUtil.baseUrl + "/api/openservices/trade/v1/getSalesRefundList");
|
||||||
|
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");
|
||||||
|
String []typeArr = new String[]{"1","2","3","4","5"};
|
||||||
|
parmetersMap.put("typeList",typeArr);
|
||||||
|
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);
|
||||||
|
String code = resultObj.getString("code");
|
||||||
|
if(!"200".equals(code)){
|
||||||
|
throw new RuntimeException("获取跨境电商销售退货数据失败");
|
||||||
|
}
|
||||||
|
JSONObject dataObj = resultObj.getJSONObject("data");
|
||||||
|
JSONArray datas = dataObj.getJSONArray("data");
|
||||||
|
//获取订单明细数据,如果有数据递归向下查,反之跳出循环
|
||||||
|
if(datas.size() >0){
|
||||||
|
dataArr.addAll(datas);
|
||||||
|
}else{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果数组不为空,将数据写入中台业务中心,先查询在写入,如果数据已经存在则直接跳过,反正写入中台业务中心
|
||||||
|
if(dataArr.size() >0){
|
||||||
|
dataArr.forEach(item -> {
|
||||||
|
JSONObject dataItem = bdHwSaleRecParm(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private JSONObject bdHwSaleRecParm(Object item) {
|
||||||
|
JSONObject data = (JSONObject) item;
|
||||||
|
//组装表头参数
|
||||||
|
JSONArray orders = data.getJSONArray("skuSpuInfoList");
|
||||||
|
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", "10002");
|
||||||
|
mainObject.put("optionName", "数智中台");
|
||||||
|
JSONObject hw_sale_rec = new JSONObject();
|
||||||
|
JSONArray hw_sale_recs = new JSONArray();
|
||||||
|
hw_sale_rec.put("data_id", data.getString("returnNo"));//平台退货订单号
|
||||||
|
hw_sale_rec.put("amount", data.getString("amount"));//退回总金额
|
||||||
|
hw_sale_rec.put("goods_all_cost", data.getString("goodsAllCost"));//退回货品总成本
|
||||||
|
hw_sale_rec.put("goods_count", data.getString("goodsCount"));//退回货品数量
|
||||||
|
hw_sale_rec.put("order_price", data.getString("orderPrice"));//退回总货款
|
||||||
|
hw_sale_rec.put("return_no", data.getString("returnNo"));//退换单号
|
||||||
|
hw_sale_rec.put("shop_name", data.getString("shopName"));//店铺名称
|
||||||
|
hw_sale_rec.put("shop_code", data.getString("shopCode"));//店铺编码(20250702 迭代添加字段)
|
||||||
|
hw_sale_rec.put("src_no", data.getString("srcNo"));//平台退货订单号
|
||||||
|
hw_sale_rec.put("src_tids", data.getString("srcTids"));//平台订单号,多个订单号以逗号分割
|
||||||
|
hw_sale_rec.put("currency", data.getString("currency"));//币种
|
||||||
|
hw_sale_rec.put("exchange_rate", data.getString("exchangeRate"));//汇率
|
||||||
|
hw_sale_rec.put("created", data.getString("created"));//系统退换单创建时间
|
||||||
|
hw_sale_rec.put("api_refund_time", data.getString("apiRefundTime"));//平台退换单创建时间
|
||||||
|
hw_sale_rec.put("check_time", data.getString("checkTime"));//移入时间
|
||||||
|
hw_sale_rec.put("confirm_in_stock_time", data.getString("confirmInStockTime"));//入库时间
|
||||||
|
hw_sale_rec.put("receiver_name", data.getString("receiverName"));//收件人
|
||||||
|
hw_sale_rec.put("trade_nos", data.getString("tradeNos"));//ERP 订单号
|
||||||
|
hw_sale_rec.put("logistics_id", data.getString("logisticsId"));//物流编号
|
||||||
|
hw_sale_rec.put("logistics_no", data.getString("logisticsNo"));//物流单号
|
||||||
|
hw_sale_rec.put("logistics_text", data.getString("logisticsText"));//物流名称
|
||||||
|
hw_sale_rec.put("post_amount", data.getString("postAmount"));//退回邮费
|
||||||
|
hw_sale_rec.put("warehouse_id", data.getString("warehouseId"));//退回仓库 id
|
||||||
|
hw_sale_rec.put("warehouse_name", data.getString("warehouseName"));//退回仓库名称
|
||||||
|
hw_sale_rec.put("process_status_name", data.getString("processStatusName"));//入库状态
|
||||||
|
hw_sale_rec.put("type", data.getString("type"));//退货类型(1:退款退货 2:换货 3:其他 4:退款不退货 5:退货不退款)
|
||||||
|
hw_sale_rec.put("refund_type_name", data.getString("refundTypeName"));//退货类型描述
|
||||||
|
if(orders.size()>0){
|
||||||
|
orders.forEach(items -> {
|
||||||
|
JSONObject bodys = (JSONObject)items;
|
||||||
|
JSONObject body = new JSONObject();
|
||||||
|
body.put("data_id", UUID.fastUUID().getLeastSignificantBits());//data_id
|
||||||
|
body.put("goods_name", bodys.getString("goodsName"));//SPU名称
|
||||||
|
body.put("goods_no", bodys.getString("goodsNo"));//SPU编码
|
||||||
|
body.put("spec_name", bodys.getString("specName"));//SKU名称
|
||||||
|
body.put("spec_no", bodys.getString("specNo"));//SKU编码
|
||||||
|
body.put("spec_num", bodys.getString("specNum"));//退回SKU数量
|
||||||
|
body.put("spec_price", bodys.getString("specPrice"));//商品单价
|
||||||
|
body.put("spec_amount", bodys.getString("specAmount"));//退回货款
|
||||||
|
hw_sale_recs.add( body);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
mainObject.put("hw_sale_rec",hw_sale_rec);
|
||||||
|
mainObject.put("hw_sale_recs",hw_sale_recs);
|
||||||
|
jsonStr.put("jsonStr",mainObject);
|
||||||
|
Object result = comparisonServiceimpl.saveEntity(jsonStr);
|
||||||
|
logger.info("新增结果为:{}", JSON.toJSONString(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
private JSONObject bdHwSaleParm(Object item) {
|
private JSONObject bdHwSaleParm(Object item) {
|
||||||
JSONObject data = (JSONObject) item;
|
JSONObject data = (JSONObject) item;
|
||||||
|
|
Loading…
Reference in New Issue