From d041350040d30825bd002551d971533bc5c2691b Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Sun, 9 Nov 2025 11:54:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/entity/vv/VvTradeOrderEntity.java | 21 +++- .../entity/vv/VvTradeOrderLineEntity.java | 23 +++- .../com/heyu/api/data/utils/SanUtils.java | 8 ++ .../java/com/test/xxx/MysqlMain_update.java | 2 +- .../mm/order/VVOrderDetailRequest.java | 18 +++ .../mm/order/resp/VVOrderDetailResp.java | 37 ++++++ .../service/VvTradeOrderConvertService.java | 12 ++ .../impl/VvTradeOrderConvertServiceImpl.java | 96 +++++++++++++++ .../controller/mm/AdminOrderController.java | 113 +++++++----------- .../api/controller/vv/AppOrderController.java | 3 +- 10 files changed, 261 insertions(+), 72 deletions(-) create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderDetailRequest.java create mode 100644 api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderDetailResp.java create mode 100644 api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java create mode 100644 api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java index e73f631..d1bc49b 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderEntity.java @@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date; /** *购物车 * @author quyixiao -* @since 2025-11-08 +* @since 2025-11-09 */ @Data @@ -47,6 +47,7 @@ private static final long serialVersionUID = 1L; public final static String promoter_id = CLASS_NAME + "promoter_id"; // 推广者买家id public final static String trade_info = CLASS_NAME + "trade_info"; // 交易信息 public final static String transaction_id = CLASS_NAME + "transaction_id"; // 事务id + public final static String buyer_address_id = CLASS_NAME + "buyer_address_id"; // 买家地址id // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -100,6 +101,8 @@ private static final long serialVersionUID = 1L; private String tradeInfo; //事务id private String transactionId; + //买家地址id + private Long buyerAddressId; /** * * @return @@ -490,6 +493,21 @@ private static final long serialVersionUID = 1L; this.transactionId = transactionId; } + /** + * 买家地址id + * @return + */ + public Long getBuyerAddressId() { + return buyerAddressId; + } + /** + * 买家地址id + * @param buyerAddressId + */ + public void setBuyerAddressId(Long buyerAddressId) { + this.buyerAddressId = buyerAddressId; + } + @Override public String toString() { return "VvTradeOrderEntity{" + @@ -519,6 +537,7 @@ private static final long serialVersionUID = 1L; ",promoterId=" + promoterId + ",tradeInfo=" + tradeInfo + ",transactionId=" + transactionId + + ",buyerAddressId=" + buyerAddressId + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java index a377197..f431e4e 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java +++ b/api-mapper/src/main/java/com/heyu/api/data/entity/vv/VvTradeOrderLineEntity.java @@ -1,12 +1,12 @@ package com.heyu.api.data.entity.vv; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import com.lz.mybatis.plugin.annotations.AS; import java.math.BigDecimal; -import java.util.Date; +import java.util.Date;import java.util.Date; /** *购物车 * @author quyixiao @@ -77,6 +77,7 @@ private static final long serialVersionUID = 1L; public final static String gmt_pre_pay = CLASS_NAME + "gmt_pre_pay"; // 预支付时间 public final static String gmt_close = CLASS_NAME + "gmt_close"; // 订单关闭时间 public final static String prepay_id = CLASS_NAME + "prepay_id"; // 预支付id + public final static String buyer_address_id = CLASS_NAME + "buyer_address_id"; // 买家地址id // @TableId(value = "id", type = IdType.AUTO) private Long id; @@ -190,6 +191,8 @@ private static final long serialVersionUID = 1L; private Date gmtClose; //预支付id private String prepayId; + //买家地址id + private Long buyerAddressId; /** * * @return @@ -1030,6 +1033,21 @@ private static final long serialVersionUID = 1L; this.prepayId = prepayId; } + /** + * 买家地址id + * @return + */ + public Long getBuyerAddressId() { + return buyerAddressId; + } + /** + * 买家地址id + * @param buyerAddressId + */ + public void setBuyerAddressId(Long buyerAddressId) { + this.buyerAddressId = buyerAddressId; + } + @Override public String toString() { return "VvTradeOrderLineEntity{" + @@ -1089,6 +1107,7 @@ private static final long serialVersionUID = 1L; ",gmtPrePay=" + gmtPrePay + ",gmtClose=" + gmtClose + ",prepayId=" + prepayId + + ",buyerAddressId=" + buyerAddressId + "}"; } } \ No newline at end of file diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java index 5fdad60..0687812 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/SanUtils.java @@ -270,6 +270,14 @@ public class SanUtils { } + public static List asList(R r) { + List result = new ArrayList<>(); + if(r != null){ + result.add(r); + } + return result; + } + /** * 基本类型包装类解析 */ diff --git a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java index f75b154..d64201f 100644 --- a/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java +++ b/api-mapper/src/test/java/com/test/xxx/MysqlMain_update.java @@ -49,7 +49,7 @@ public class MysqlMain_update { List list = new ArrayList(); list.add(new TablesBean("vv_trade_order_line")); - + list.add(new TablesBean("vv_trade_order")); Map map = MysqlUtil2ShowCreateTable.getComments(); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderDetailRequest.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderDetailRequest.java new file mode 100644 index 0000000..a0f07ec --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/VVOrderDetailRequest.java @@ -0,0 +1,18 @@ +package com.heyu.api.alibaba.request.mm.order; + + +import lombok.Data; + +@Data +public class VVOrderDetailRequest { + /** + * 订单id + */ + private Long tradeOrderId; + + + + +} + + diff --git a/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderDetailResp.java b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderDetailResp.java new file mode 100644 index 0000000..344fbdf --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/alibaba/request/mm/order/resp/VVOrderDetailResp.java @@ -0,0 +1,37 @@ +package com.heyu.api.alibaba.request.mm.order.resp; + + +import com.heyu.api.data.entity.vv.VvBuyerAddressEntity; +import com.heyu.api.data.entity.vv.VvBuyerEntity; +import com.heyu.api.data.entity.vv.VvTradeOrderEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class VVOrderDetailResp { + + + /*** + * 订单信息 + */ + private VvTradeOrderEntity vvTradeOrderEntity; + + + /*** + * 订单行信息 + */ + private List vvTradeOrderLineEntityList; + + + /*** + * 订单信息 + */ + private VvBuyerEntity vvBuyerEntity; + + + + +} + + diff --git a/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java b/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java new file mode 100644 index 0000000..7f123b1 --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/VvTradeOrderConvertService.java @@ -0,0 +1,12 @@ +package com.heyu.api.service; + +import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; +import com.heyu.api.data.entity.vv.VvTradeOrderEntity; +import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; + +import java.util.List; + +public interface VvTradeOrderConvertService { + List convertTradeOrderLineResp(List vvTradeOrderEntities, + List list) ; +} diff --git a/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java b/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java new file mode 100644 index 0000000..7bb718b --- /dev/null +++ b/api-third/src/main/java/com/heyu/api/service/impl/VvTradeOrderConvertServiceImpl.java @@ -0,0 +1,96 @@ +package com.heyu.api.service.impl; + +import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO; +import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; +import com.heyu.api.data.dao.vv.VvPackageDao; +import com.heyu.api.data.entity.vv.VvPackageEntity; +import com.heyu.api.data.entity.vv.VvTradeOrderEntity; +import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity; +import com.heyu.api.data.utils.SanUtils; +import com.heyu.api.data.utils.StringUtils; +import com.heyu.api.service.VvTradeOrderConvertService; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class VvTradeOrderConvertServiceImpl extends VvTradeOrderConvertService { + + + @Autowired + private VvPackageDao vvPackageDao; + + + @Override + public List convertTradeOrderLineResp(List vvTradeOrderEntities, + List list) { + List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); + Map vvPackageEntityMap = new HashMap<>(); + if (CollectionUtils.isNotEmpty(trackNumbers)) { + List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); + for (VvPackageEntity packageEntity : packageEntities) { + vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity); + } + } + + List vvOrderListResps = new ArrayList<>(); + for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { + VVOrderListResp vvOrderListResp = new VVOrderListResp(); + BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); + + List vvTradeOrderLineEntityList = new ArrayList<>(); + for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { + if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) { + vvTradeOrderLineEntityList.add(tradeOrderLineEntity); + } + } + + /*** + * 订单行信息 + */ + List vvTradeOrderLineList = new ArrayList<>(); + Map packageDTOMap = new HashMap(); + + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { + if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) { + PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber()); + + if (packageDTO == null) { + VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber()); + packageDTO = new PackageDTO(); + BeanUtils.copyProperties(vvPackage, packageDTO); + } + + List vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList(); + if (vvTradeOrderLineEntitys == null) { + vvTradeOrderLineEntitys = new ArrayList<>(); + } + vvTradeOrderLineEntitys.add(tradeOrderLineEntity); + packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys); + + packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO); + + } else { + vvTradeOrderLineList.add(tradeOrderLineEntity); + } + } + + List packageList = new ArrayList<>(); + for (Map.Entry entry : packageDTOMap.entrySet()) { + packageList.add(entry.getValue()); + } + vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList); + vvOrderListResp.setPackageList(packageList); + vvOrderListResps.add(vvOrderListResp); + } + + + return vvOrderListResps; + } +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index 3d8c2a7..d1853ee 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java @@ -6,25 +6,27 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums; import com.heyu.api.alibaba.request.mm.enums.ShippingTypeEnums; import com.heyu.api.alibaba.request.mm.order.*; -import com.heyu.api.alibaba.request.mm.order.resp.PackageDTO; +import com.heyu.api.alibaba.request.mm.order.resp.VVOrderDetailResp; import com.heyu.api.alibaba.request.mm.order.resp.VVOrderListResp; -import com.heyu.api.data.utils.SanUtils; import com.heyu.api.data.dao.vv.*; import com.heyu.api.data.entity.vv.*; import com.heyu.api.data.utils.BigDecimalUtil; import com.heyu.api.data.utils.R; -import com.heyu.api.data.utils.StringUtils; +import com.heyu.api.data.utils.SanUtils; +import com.heyu.api.service.VvTradeOrderConvertService; import com.heyu.api.utils.ISelect; import com.heyu.api.utils.PPageUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; @Slf4j @RestController @@ -52,6 +54,18 @@ public class AdminOrderController { @Autowired private VvTradeOrderLineSettlementProveDao vvTradeOrderLineSettlementProveDao; + + @Autowired + private VvTradeOrderConvertService vvTradeOrderConvertService; + + + @Autowired + private VvBuyerAddressDao vvBuyerAddressDao; + + @Autowired + private VvBuyerDao vvBuyerDao; + + /*** * 列表 */ @@ -85,7 +99,6 @@ public class AdminOrderController { // 获取子单 List vvTradeOrderLineEntities = pageUtils.getRows(); - // 获取订单 List tradeOrderIds = SanUtils.list2listFilterNull(vvTradeOrderLineEntities, VvTradeOrderLineEntity::getTradeOrderId); List tradeOrderEntities = vvTradeOrderDao.selectVvTradeOrderByTradeOrderIds(tradeOrderIds); @@ -119,70 +132,36 @@ public class AdminOrderController { vvOrderRequest.getReverseStatus(), vvOrderRequest.getCreateTimestampSort()); - - List trackNumbers = SanUtils.list2listFilterNull(list, VvTradeOrderLineEntity::getTrackNumber); - Map vvPackageEntityMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(trackNumbers)) { - List packageEntities = vvPackageDao.selectVvPackageByTrackNumbers(trackNumbers); - for (VvPackageEntity packageEntity : packageEntities) { - vvPackageEntityMap.put(packageEntity.getTrackNumber(), packageEntity); - } - } - - List vvOrderListResps = new ArrayList<>(); - for (VvTradeOrderEntity vvTradeOrderEntity : vvTradeOrderEntities) { - VVOrderListResp vvOrderListResp = new VVOrderListResp(); - BeanUtils.copyProperties(vvTradeOrderEntity, vvOrderListResp); - - List vvTradeOrderLineEntityList = new ArrayList<>(); - for (VvTradeOrderLineEntity tradeOrderLineEntity : list) { - if (vvTradeOrderEntity.getId().equals(tradeOrderLineEntity.getTradeOrderId())) { - vvTradeOrderLineEntityList.add(tradeOrderLineEntity); - } - } - - /*** - * 订单行信息 - */ - List vvTradeOrderLineList = new ArrayList<>(); - Map packageDTOMap = new HashMap(); - - for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { - if (StringUtils.isNotBlank(tradeOrderLineEntity.getTrackNumber())) { - PackageDTO packageDTO = packageDTOMap.get(tradeOrderLineEntity.getTrackNumber()); - - if (packageDTO == null) { - VvPackageEntity vvPackage = vvPackageEntityMap.get(tradeOrderLineEntity.getTrackNumber()); - packageDTO = new PackageDTO(); - BeanUtils.copyProperties(vvPackage, packageDTO); - } - - List vvTradeOrderLineEntitys = packageDTO.getVvTradeOrderLineEntityList(); - if (vvTradeOrderLineEntitys == null) { - vvTradeOrderLineEntitys = new ArrayList<>(); - } - vvTradeOrderLineEntitys.add(tradeOrderLineEntity); - packageDTO.setVvTradeOrderLineEntityList(vvTradeOrderLineEntitys); - - packageDTOMap.put(tradeOrderLineEntity.getTrackNumber(), packageDTO); - - } else { - vvTradeOrderLineList.add(tradeOrderLineEntity); - } - } - - List packageList = new ArrayList<>(); - for (Map.Entry entry : packageDTOMap.entrySet()) { - packageList.add(entry.getValue()); - } - vvOrderListResp.setVvTradeOrderLineList(vvTradeOrderLineList); - vvOrderListResp.setPackageList(packageList); - - vvOrderListResps.add(vvOrderListResp); - } + List vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(tradeOrderEntities,list); return R.ok().setData(vvOrderListResps); } + + /*** + * 订单详情 + */ + @RequestMapping("/detail") + public R detail(@RequestBody VVOrderDetailRequest request) { + VvTradeOrderEntity vvTradeOrderEntity = vvTradeOrderDao .selectVvTradeOrderById(request.getTradeOrderId()); + + List vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(request.getTradeOrderId()); + + List vvTradeOrderEntities = SanUtils.asList(vvTradeOrderEntity); + + List vvOrderListResps = vvTradeOrderConvertService.convertTradeOrderLineResp(vvTradeOrderEntities,vvTradeOrderLineEntityList); + + VVOrderDetailResp vvOrderDetailResp = new VVOrderDetailResp(); + vvOrderDetailResp.setVvTradeOrderEntity(vvTradeOrderEntity); + + vvOrderDetailResp.setVvTradeOrderLineEntityList(vvOrderListResps); + VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvTradeOrderEntity.getBuyerId()); + vvOrderDetailResp.setVvBuyerEntity(vvBuyerEntity); + + return R.ok(); + } + + + /*** * 订单发货 */ diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java index 744af0d..59d1421 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppOrderController.java @@ -299,6 +299,7 @@ public class AppOrderController { vvTradeOrderLineEntity.setDistrict(vvBuyerAddress.getDistrict()); vvTradeOrderLineEntity.setStatus(OrderStatusEnums.create.getStatus()); vvTradeOrderLineEntity.setBuyerId(vvOrderRequest.getBuyerId()); + vvTradeOrderLineEntity.setBuyerAddressId(vvOrderRequest.getBuyerAddressId()); vvTradeOrderLineEntityList.add(vvTradeOrderLineEntity); vvTradeOrderLineEntity.setBatchNum(vvTradeOrderLineDTO.getNum()); } @@ -324,7 +325,7 @@ public class AppOrderController { vvTradeOrderEntity.setBuyerId(vvOrderRequest.getBuyerId()); vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis()); vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis()); - + vvTradeOrderEntity.setBuyerAddressId(vvOrderRequest.getBuyerAddressId()); vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity); for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {