diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/yut/plugin/YutHwSaleRrcPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/yut/plugin/YutHwSaleRrcPluginInitializer.java new file mode 100644 index 00000000..50f8162a --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/yut/plugin/YutHwSaleRrcPluginInitializer.java @@ -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("执行成功"); + } + +} diff --git a/base-buildpackage/src/main/resources/cfgHome/plugin/yut/spring/spring-buildpackage-plugin.xml b/base-buildpackage/src/main/resources/cfgHome/plugin/yut/spring/spring-buildpackage-plugin.xml index 56fd0d59..e8cde403 100644 --- a/base-buildpackage/src/main/resources/cfgHome/plugin/yut/spring/spring-buildpackage-plugin.xml +++ b/base-buildpackage/src/main/resources/cfgHome/plugin/yut/spring/spring-buildpackage-plugin.xml @@ -2,4 +2,5 @@ + diff --git a/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/IHwSaleService.java b/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/IHwSaleService.java index 4d67ba57..cad1f32d 100644 --- a/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/IHwSaleService.java +++ b/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/IHwSaleService.java @@ -19,4 +19,11 @@ public interface IHwSaleService extends IBaseService { * @return 实例对象 */ void getHwSaleOrder(JSONObject requestJson); + /** + * 获取电商海外退货数据 + * + * @param requestJson 请求参数 + * @return 实例对象 + */ + void getHwSaleRec(JSONObject requestJson); } diff --git a/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/impl/HwSaleServiceImpl.java b/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/impl/HwSaleServiceImpl.java index 1e321099..db5b2394 100644 --- a/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/impl/HwSaleServiceImpl.java +++ b/fw-u8c/src/main/java/com/hzya/frame/u8c/hwsale/service/impl/HwSaleServiceImpl.java @@ -1,5 +1,6 @@ package com.hzya.frame.u8c.hwsale.service.impl; +import cn.hutool.core.lang.UUID; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSON; @@ -90,6 +91,135 @@ public class HwSaleServiceImpl extends BaseService 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 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) { JSONObject data = (JSONObject) item;