From 1f6625f29656156e663b4ec1ecd08382fa6b07f8 Mon Sep 17 00:00:00 2001 From: van Date: Wed, 10 Jun 2026 17:00:39 +0800 Subject: [PATCH] 1 --- .../PublicPromoterOrderController.java | 31 ++++++-- .../com/ruoyi/jarvis/domain/GoodsInfo.java | 71 +++++++++++++++++++ .../ruoyi/jarvis/mapper/GoodsInfoMapper.java | 15 ++++ .../jarvis/service/IGoodsInfoService.java | 16 +++++ .../service/impl/GoodsInfoServiceImpl.java | 45 ++++++++++++ .../mapper/jarvis/GoodsInfoMapper.xml | 31 ++++++++ sql/goods_info.sql | 10 +++ 7 files changed, 214 insertions(+), 5 deletions(-) create mode 100644 ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/GoodsInfo.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/jarvis/mapper/GoodsInfoMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IGoodsInfoService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/GoodsInfoServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/jarvis/GoodsInfoMapper.xml create mode 100644 sql/goods_info.sql diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java index 32cad17..b0eda5b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/publicapi/PublicPromoterOrderController.java @@ -4,9 +4,11 @@ import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.annotation.RateLimiter; import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.enums.LimitType; +import com.ruoyi.jarvis.domain.GoodsInfo; import com.ruoyi.jarvis.domain.OrderRows; import com.ruoyi.jarvis.domain.dto.PromoterOrderInfoVO; import com.ruoyi.jarvis.enums.ValidCodeConverter; +import com.ruoyi.jarvis.service.IGoodsInfoService; import com.ruoyi.jarvis.service.IOrderRowsService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -17,8 +19,10 @@ import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; /** * 京东开放接口(免登录,路径统一 /open/jd/) @@ -34,6 +38,9 @@ public class PublicPromoterOrderController { @Autowired private IOrderRowsService orderRowsService; + @Autowired + private IGoodsInfoService goodsInfoService; + /** * 跟团订单查询(兼容 jiadiantemai 接口格式) */ @@ -59,10 +66,20 @@ public class PublicPromoterOrderController { return result; } + Set goodsInfoIds = new HashSet<>(); + for (OrderRows row : rows) { + if (row.getGoodsInfoId() != null) { + goodsInfoIds.add(row.getGoodsInfoId()); + } + } + Map goodsInfoMap = goodsInfoService.selectGoodsInfoMapByIds(goodsInfoIds); + List orderInfoList = new ArrayList<>(); ValidCodeConverter validCodeConverter = new ValidCodeConverter(); for (OrderRows row : rows) { - orderInfoList.add(toPromoterOrderInfo(row, validCodeConverter)); + GoodsInfo goodsInfo = row.getGoodsInfoId() != null + ? goodsInfoMap.get(row.getGoodsInfoId()) : null; + orderInfoList.add(toPromoterOrderInfo(row, goodsInfo, validCodeConverter)); } if (orderInfoList.isEmpty()) { @@ -78,10 +95,12 @@ public class PublicPromoterOrderController { return result; } - private PromoterOrderInfoVO toPromoterOrderInfo(OrderRows row, ValidCodeConverter validCodeConverter) { + private PromoterOrderInfoVO toPromoterOrderInfo(OrderRows row, GoodsInfo goodsInfo, + ValidCodeConverter validCodeConverter) { PromoterOrderInfoVO vo = new PromoterOrderInfoVO(); - vo.setShopName(row.getUnionAlias() != null && !row.getUnionAlias().isEmpty() - ? row.getUnionAlias() : "京东商城"); + String shopName = goodsInfo != null && goodsInfo.getShopName() != null && !goodsInfo.getShopName().isEmpty() + ? goodsInfo.getShopName() : "京东商城"; + vo.setShopName(shopName); vo.setShopLogo(DEFAULT_SHOP_LOGO); vo.setOrderSource("京东"); vo.setTraceTypeStr(row.getTraceType() != null && row.getTraceType() == 2 ? "同店" : "跨店"); @@ -92,7 +111,9 @@ public class PublicPromoterOrderController { vo.setOrderId(String.valueOf(row.getOrderId())); } vo.setValidCodeMsg(validCodeConverter.getCodeDescription(row.getValidCode())); - if (row.getSkuId() != null) { + if (goodsInfo != null && goodsInfo.getImageUrl() != null && !goodsInfo.getImageUrl().isEmpty()) { + vo.setSkuImageUrl(goodsInfo.getImageUrl()); + } else if (row.getSkuId() != null) { vo.setSkuImageUrl("https://img14.360buyimg.com/n5/s450x450_" + row.getSkuId() + ".jpg"); } vo.setSkuName(row.getSkuName()); diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/GoodsInfo.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/GoodsInfo.java new file mode 100644 index 0000000..89f8253 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/domain/GoodsInfo.java @@ -0,0 +1,71 @@ +package com.ruoyi.jarvis.domain; + +/** + * 京东订单商品信息 goods_info + */ +public class GoodsInfo { + + private Long id; + private String owner; + private String mainSkuId; + private String productId; + private String imageUrl; + private String shopName; + private String shopId; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getOwner() { + return owner; + } + + public void setOwner(String owner) { + this.owner = owner; + } + + public String getMainSkuId() { + return mainSkuId; + } + + public void setMainSkuId(String mainSkuId) { + this.mainSkuId = mainSkuId; + } + + public String getProductId() { + return productId; + } + + public void setProductId(String productId) { + this.productId = productId; + } + + public String getImageUrl() { + return imageUrl; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + + public String getShopName() { + return shopName; + } + + public void setShopName(String shopName) { + this.shopName = shopName; + } + + public String getShopId() { + return shopId; + } + + public void setShopId(String shopId) { + this.shopId = shopId; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/mapper/GoodsInfoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/mapper/GoodsInfoMapper.java new file mode 100644 index 0000000..65c47e3 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/mapper/GoodsInfoMapper.java @@ -0,0 +1,15 @@ +package com.ruoyi.jarvis.mapper; + +import com.ruoyi.jarvis.domain.GoodsInfo; + +import java.util.List; + +/** + * 京东订单商品信息 Mapper + */ +public interface GoodsInfoMapper { + + GoodsInfo selectGoodsInfoById(Long id); + + List selectGoodsInfoByIds(Long[] ids); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IGoodsInfoService.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IGoodsInfoService.java new file mode 100644 index 0000000..e0819ed --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/IGoodsInfoService.java @@ -0,0 +1,16 @@ +package com.ruoyi.jarvis.service; + +import com.ruoyi.jarvis.domain.GoodsInfo; + +import java.util.Map; +import java.util.Set; + +/** + * 京东订单商品信息 Service + */ +public interface IGoodsInfoService { + + GoodsInfo selectGoodsInfoById(Long id); + + Map selectGoodsInfoMapByIds(Set ids); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/GoodsInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/GoodsInfoServiceImpl.java new file mode 100644 index 0000000..e1e2cd1 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/GoodsInfoServiceImpl.java @@ -0,0 +1,45 @@ +package com.ruoyi.jarvis.service.impl; + +import com.ruoyi.jarvis.domain.GoodsInfo; +import com.ruoyi.jarvis.mapper.GoodsInfoMapper; +import com.ruoyi.jarvis.service.IGoodsInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +@Service +public class GoodsInfoServiceImpl implements IGoodsInfoService { + + @Autowired + private GoodsInfoMapper goodsInfoMapper; + + @Override + public GoodsInfo selectGoodsInfoById(Long id) { + if (id == null) { + return null; + } + return goodsInfoMapper.selectGoodsInfoById(id); + } + + @Override + public Map selectGoodsInfoMapByIds(Set ids) { + if (ids == null || ids.isEmpty()) { + return Collections.emptyMap(); + } + List list = goodsInfoMapper.selectGoodsInfoByIds(ids.toArray(new Long[0])); + Map map = new HashMap<>(); + if (list != null) { + for (GoodsInfo goodsInfo : list) { + if (goodsInfo != null && goodsInfo.getId() != null) { + map.put(goodsInfo.getId(), goodsInfo); + } + } + } + return map; + } +} diff --git a/ruoyi-system/src/main/resources/mapper/jarvis/GoodsInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/jarvis/GoodsInfoMapper.xml new file mode 100644 index 0000000..6acc94e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/jarvis/GoodsInfoMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + select id, owner, main_sku_id, product_id, image_url, shop_name, shop_id from goods_info + + + + + + diff --git a/sql/goods_info.sql b/sql/goods_info.sql new file mode 100644 index 0000000..7da0aa9 --- /dev/null +++ b/sql/goods_info.sql @@ -0,0 +1,10 @@ +-- 京东联盟订单商品信息(goodsInfo 字段入库) +CREATE TABLE IF NOT EXISTS goods_info ( + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键', + owner VARCHAR(16) DEFAULT NULL COMMENT 'g=自营 p=pop', + main_sku_id VARCHAR(64) DEFAULT NULL COMMENT '自营商品主Id', + product_id VARCHAR(64) DEFAULT NULL COMMENT 'POP商品主Id', + image_url VARCHAR(512) DEFAULT NULL COMMENT '商品主图', + shop_name VARCHAR(255) DEFAULT NULL COMMENT '店铺名称', + shop_id VARCHAR(64) DEFAULT NULL COMMENT '店铺Id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='京东订单商品信息';