1. 迁移交易订单的查询接口
2. 支付服务,重新初始化结构
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package cn.iocoder.mall.tradeservice.enums.order;
|
||||
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
|
||||
/**
|
||||
* 交易订单的明细的字段枚举
|
||||
*
|
||||
* @see TradeOrderRespDTO
|
||||
*/
|
||||
public enum TradeOrderDetailFieldEnum {
|
||||
|
||||
/**
|
||||
* 交易订单项
|
||||
*/
|
||||
ITEM("item");
|
||||
|
||||
/**
|
||||
* 字段
|
||||
*/
|
||||
private final String field;
|
||||
|
||||
TradeOrderDetailFieldEnum(String field) {
|
||||
this.field = field;
|
||||
}
|
||||
|
||||
public String getField() {
|
||||
return field;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
package cn.iocoder.mall.tradeservice.rpc.order;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderCreateReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderPageReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 交易订单 Rpc 接口
|
||||
@@ -16,4 +21,23 @@ public interface TradeOrderRpc {
|
||||
*/
|
||||
CommonResult<Integer> createTradeOrder(TradeOrderCreateReqDTO createReqDTO);
|
||||
|
||||
/**
|
||||
* 获得订单交易
|
||||
*
|
||||
* @param tradeOrderId 订单交易编号
|
||||
* @param fields 额外返回字段,可见 {@link cn.iocoder.mall.tradeservice.enums.order.TradeOrderDetailFieldEnum}
|
||||
* @return 订单交易
|
||||
*/
|
||||
CommonResult<TradeOrderRespDTO> getTradeOrder(Integer tradeOrderId, Collection<String> fields);
|
||||
|
||||
/**
|
||||
* 获得交易订单分页
|
||||
*
|
||||
* @param pageDTO 订单交易分页查询
|
||||
* @return 订单交易分页结果
|
||||
*/
|
||||
CommonResult<PageResult<TradeOrderRespDTO>> pageTradeOrder(TradeOrderPageReqDTO pageDTO);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
package cn.iocoder.mall.tradeservice.rpc.order.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 交易订单项 Response DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TradeOrderItemRespDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* id自增长
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private Integer orderId;
|
||||
/**
|
||||
* 订单项状态
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 商品 SKU 编号
|
||||
*/
|
||||
private Integer skuId;
|
||||
/**
|
||||
* 商品 SPU 编号
|
||||
*/
|
||||
private Integer spuId;
|
||||
/**
|
||||
* 商品名字
|
||||
*/
|
||||
private String skuName;
|
||||
/**
|
||||
* 图片名字
|
||||
*/
|
||||
private String skuImage;
|
||||
/**
|
||||
* 商品数量
|
||||
*/
|
||||
private Integer quantity;
|
||||
/**
|
||||
* 原始单价,单位:分
|
||||
*/
|
||||
private Integer originPrice;
|
||||
/**
|
||||
* 购买单价,单位:分
|
||||
*/
|
||||
private Integer buyPrice;
|
||||
/**
|
||||
* 最终价格,单位:分
|
||||
*/
|
||||
private Integer presentPrice;
|
||||
/**
|
||||
* 购买总金额,单位:分
|
||||
*/
|
||||
private Integer buyTotal;
|
||||
/**
|
||||
* 优惠总金额,单位:分
|
||||
*/
|
||||
private Integer discountTotal;
|
||||
/**
|
||||
* 最终总金额,单位:分
|
||||
*/
|
||||
private Integer presentTotal;
|
||||
/**
|
||||
* 退款总金额,单位:分
|
||||
*/
|
||||
private Integer refundTotal;
|
||||
/**
|
||||
* 物流id
|
||||
*/
|
||||
private Integer logisticsId;
|
||||
/**
|
||||
* 售后状态
|
||||
*/
|
||||
private Integer afterSaleStatus;
|
||||
/**
|
||||
* 售后订单编号
|
||||
*/
|
||||
private Integer afterSaleOrderId;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private Date updateTime;
|
||||
/**
|
||||
* 删除状态
|
||||
*/
|
||||
private Integer deleted;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package cn.iocoder.mall.tradeservice.rpc.order.dto;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageParam;
|
||||
import cn.iocoder.common.framework.vo.SortingField;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交易订单分页 Request DTO
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
public class TradeOrderPageReqDTO extends PageParam {
|
||||
|
||||
public static final SortingField ID_ASC = new SortingField("id", "asc");
|
||||
public static final SortingField ID_DESC = new SortingField("id", "desc");
|
||||
|
||||
/**
|
||||
* 用户编号
|
||||
*/
|
||||
private Integer userId;
|
||||
/**
|
||||
* 订单状态
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
|
||||
/**
|
||||
* 排序字段数组
|
||||
*/
|
||||
private List<SortingField> sorts;
|
||||
|
||||
/**
|
||||
* 额外返回字段
|
||||
*
|
||||
* @see cn.iocoder.mall.tradeservice.enums.order.TradeOrderDetailFieldEnum
|
||||
*/
|
||||
private Collection<String> fields = Collections.emptySet();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
package cn.iocoder.mall.tradeservice.rpc.order.dto;
|
||||
|
||||
import cn.iocoder.mall.tradeservice.enums.order.TradeOrderDetailFieldEnum;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 交易订单 Response DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TradeOrderRespDTO implements Serializable {
|
||||
|
||||
// ========== 订单基本信息 ==========
|
||||
/**
|
||||
* 订单编号
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 用户编号
|
||||
*/
|
||||
private Integer userId;
|
||||
/**
|
||||
* 订单单号
|
||||
*/
|
||||
private String orderNo;
|
||||
/**
|
||||
* 订单状态
|
||||
*/
|
||||
private Integer orderStatus;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
// ========== 价格 + 支付基本信息 ==========
|
||||
/**
|
||||
* 订单结束时间
|
||||
*/
|
||||
private Date endTime;
|
||||
/**
|
||||
* 订单金额(总金额),单位:分
|
||||
*/
|
||||
private Integer buyPrice;
|
||||
/**
|
||||
* 优惠总金额,单位:分
|
||||
*/
|
||||
private Integer discountPrice;
|
||||
/**
|
||||
* 物流金额,单位:分
|
||||
*/
|
||||
private Integer logisticsPrice;
|
||||
/**
|
||||
* 最终金额,单位:分
|
||||
*/
|
||||
private Integer presentPrice;
|
||||
/**
|
||||
* 支付金额,单位:分
|
||||
*/
|
||||
private Integer payPrice;
|
||||
/**
|
||||
* 退款金额,单位:分
|
||||
*/
|
||||
private Integer refundPrice;
|
||||
/**
|
||||
* 付款时间
|
||||
*/
|
||||
private Date payTime;
|
||||
/**
|
||||
* 支付订单编号
|
||||
*/
|
||||
private Integer payTransactionId;
|
||||
/**
|
||||
* 支付渠道
|
||||
*/
|
||||
private Integer payChannel;
|
||||
|
||||
// ========== 收件 + 物流基本信息 ==========
|
||||
/**
|
||||
* 配送类型
|
||||
*/
|
||||
private Integer deliveryType;
|
||||
/**
|
||||
* 发货时间
|
||||
*/
|
||||
private Date deliveryTime;
|
||||
/**
|
||||
* 收货时间
|
||||
*/
|
||||
private Date receiveTime;
|
||||
/**
|
||||
* 收件人名称
|
||||
*/
|
||||
private String receiverName;
|
||||
/**
|
||||
* 手机号
|
||||
*/
|
||||
private String receiverMobile;
|
||||
/**
|
||||
* 地区编码
|
||||
*/
|
||||
private Integer receiverAreaCode;
|
||||
/**
|
||||
* 收件详细地址
|
||||
*/
|
||||
private String receiverDetailAddress;
|
||||
|
||||
// ========== 售后基本信息 ==========
|
||||
/**
|
||||
* 售后状态
|
||||
*/
|
||||
private Integer afterSaleStatus;
|
||||
|
||||
// ========== 营销基本信息 ==========
|
||||
/**
|
||||
* 优惠劵编号
|
||||
*/
|
||||
private Integer couponCardId;
|
||||
|
||||
// ========== 商品基本信息 ==========
|
||||
|
||||
/**
|
||||
* 订单项数组
|
||||
*
|
||||
* 需要设置 {@link TradeOrderDetailFieldEnum#ITEM} 才返回
|
||||
*
|
||||
* // TODO 芋艿,后续考虑怎么优化下,目前是内嵌了别的 dto
|
||||
*/
|
||||
private List<TradeOrderItemRespDTO> orderItems;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package cn.iocoder.mall.tradeservice.convert.order;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderItemDO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderItemRespDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface TradeOrderConvert {
|
||||
|
||||
TradeOrderConvert INSTANCE = Mappers.getMapper(TradeOrderConvert.class);
|
||||
|
||||
TradeOrderRespDTO convert(TradeOrderDO bean);
|
||||
|
||||
@Mapping(source = "records", target = "list")
|
||||
PageResult<TradeOrderRespDTO> convertPage(IPage<TradeOrderDO> page);
|
||||
|
||||
List<TradeOrderItemRespDTO> convertList(List<TradeOrderItemDO> list);
|
||||
|
||||
TradeOrderItemRespDTO convert(TradeOrderItemDO bean);
|
||||
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package cn.iocoder.mall.tradeservice.dal.mysql.mapper.order;
|
||||
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderItemDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@@ -14,4 +16,8 @@ public interface TradeOrderItemMapper extends BaseMapper<TradeOrderItemDO> {
|
||||
entities.forEach(this::insert);
|
||||
}
|
||||
|
||||
default List<TradeOrderItemDO> selectListByOrderIds(Collection<Integer> orderIds) {
|
||||
return selectList(new QueryWrapper<TradeOrderItemDO>().in("order_id", orderIds));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
package cn.iocoder.mall.tradeservice.dal.mysql.mapper.order;
|
||||
|
||||
import cn.iocoder.mall.mybatis.core.query.QueryWrapperX;
|
||||
import cn.iocoder.mall.mybatis.core.util.PageUtil;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderPageReqDTO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface TradeOrderMapper extends BaseMapper<TradeOrderDO> {
|
||||
|
||||
default IPage<TradeOrderDO> selectPage(TradeOrderPageReqDTO pageReqDTO) {
|
||||
return selectPage(PageUtil.build(pageReqDTO, pageReqDTO.getSorts()),
|
||||
new QueryWrapperX<TradeOrderDO>().eqIfPresent("user_id", pageReqDTO.getUserId())
|
||||
.eqIfPresent("status", pageReqDTO.getOrderStatus()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
package cn.iocoder.mall.tradeservice.rpc.order;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderCreateReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderPageReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
import cn.iocoder.mall.tradeservice.service.order.TradeOrderService;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import static cn.iocoder.common.framework.vo.CommonResult.success;
|
||||
|
||||
/**
|
||||
@@ -22,4 +27,14 @@ public class TradeOrderRpcImpl implements TradeOrderRpc {
|
||||
return success(tradeOrderService.createTradeOrder(createReqDTO));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<TradeOrderRespDTO> getTradeOrder(Integer tradeOrderId, Collection<String> fields) {
|
||||
return success(tradeOrderService.getTradeOrder(tradeOrderId, fields));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<PageResult<TradeOrderRespDTO>> pageTradeOrder(TradeOrderPageReqDTO pageDTO) {
|
||||
return success(tradeOrderService.pageTradeOrder(pageDTO));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
package cn.iocoder.mall.tradeservice.service.order;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderCreateReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderPageReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 交易订单 Service 接口
|
||||
@@ -15,4 +20,21 @@ public interface TradeOrderService {
|
||||
*/
|
||||
Integer createTradeOrder(TradeOrderCreateReqDTO createReqDTO);
|
||||
|
||||
/**
|
||||
* 获得订单交易
|
||||
*
|
||||
* @param tradeOrderId 订单交易编号
|
||||
* @param fields 额外返回字段,可见 {@link cn.iocoder.mall.tradeservice.enums.order.TradeOrderDetailFieldEnum}
|
||||
* @return 订单交易
|
||||
*/
|
||||
TradeOrderRespDTO getTradeOrder(Integer tradeOrderId, Collection<String> fields);
|
||||
|
||||
/**
|
||||
* 获得订单交易分页
|
||||
*
|
||||
* @param pageReqDTO 订单交易分页查询
|
||||
* @return 订单交易分页结果
|
||||
*/
|
||||
PageResult<TradeOrderRespDTO> pageTradeOrder(TradeOrderPageReqDTO pageReqDTO);
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.iocoder.common.framework.exception.util.ServiceExceptionUtil;
|
||||
import cn.iocoder.common.framework.util.CollectionUtils;
|
||||
import cn.iocoder.common.framework.util.DateUtil;
|
||||
import cn.iocoder.common.framework.util.MathUtil;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.productservice.enums.sku.ProductSkuDetailFieldEnum;
|
||||
import cn.iocoder.mall.productservice.rpc.sku.dto.ProductSkuRespDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.price.dto.PriceProductCalcReqDTO;
|
||||
@@ -12,16 +13,21 @@ import cn.iocoder.mall.tradeservice.client.product.ProductSkuClient;
|
||||
import cn.iocoder.mall.tradeservice.client.promotion.CouponCardClient;
|
||||
import cn.iocoder.mall.tradeservice.client.promotion.PriceClient;
|
||||
import cn.iocoder.mall.tradeservice.client.user.UserAddressClient;
|
||||
import cn.iocoder.mall.tradeservice.convert.order.TradeOrderConvert;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderDO;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.dataobject.order.TradeOrderItemDO;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.mapper.order.TradeOrderItemMapper;
|
||||
import cn.iocoder.mall.tradeservice.dal.mysql.mapper.order.TradeOrderMapper;
|
||||
import cn.iocoder.mall.tradeservice.enums.logistics.LogisticsDeliveryTypeEnum;
|
||||
import cn.iocoder.mall.tradeservice.enums.order.TradeOrderAfterSaleStatusEnum;
|
||||
import cn.iocoder.mall.tradeservice.enums.order.TradeOrderDetailFieldEnum;
|
||||
import cn.iocoder.mall.tradeservice.enums.order.TradeOrderStatusEnum;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderCreateReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderPageReqDTO;
|
||||
import cn.iocoder.mall.tradeservice.rpc.order.dto.TradeOrderRespDTO;
|
||||
import cn.iocoder.mall.tradeservice.service.order.TradeOrderService;
|
||||
import cn.iocoder.mall.userservice.rpc.address.dto.UserAddressRespDTO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -29,8 +35,9 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.mall.tradeservice.enums.OrderErrorCodeConstants.*;
|
||||
import static cn.iocoder.mall.userservice.enums.UserErrorCodeConstants.*;
|
||||
import static cn.iocoder.common.framework.util.CollectionUtils.convertSet;
|
||||
import static cn.iocoder.mall.tradeservice.enums.OrderErrorCodeConstants.ORDER_GET_GOODS_INFO_INCORRECT;
|
||||
import static cn.iocoder.mall.userservice.enums.UserErrorCodeConstants.USER_ADDRESS_NOT_FOUND;
|
||||
|
||||
/**
|
||||
* 交易订单 Service 实现
|
||||
@@ -66,7 +73,7 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
||||
}
|
||||
// 获得商品信息
|
||||
List<ProductSkuRespDTO> listProductSkus = productSkuClient.listProductSkus(
|
||||
CollectionUtils.convertSet(createReqDTO.getOrderItems(), TradeOrderCreateReqDTO.OrderItem::getSkuId),
|
||||
convertSet(createReqDTO.getOrderItems(), TradeOrderCreateReqDTO.OrderItem::getSkuId),
|
||||
ProductSkuDetailFieldEnum.SPU.getField());
|
||||
if (listProductSkus.size() != createReqDTO.getOrderItems().size()) { // 校验获得的数量,是否匹配
|
||||
throw ServiceExceptionUtil.exception(ORDER_GET_GOODS_INFO_INCORRECT);
|
||||
@@ -172,4 +179,43 @@ public class TradeOrderServiceImpl implements TradeOrderService {
|
||||
;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TradeOrderRespDTO getTradeOrder(Integer tradeOrderId, Collection<String> fields) {
|
||||
// 查询交易订单
|
||||
TradeOrderDO tradeOrderDO = tradeOrderMapper.selectById(tradeOrderId);
|
||||
if (tradeOrderDO == null) {
|
||||
return null;
|
||||
}
|
||||
TradeOrderRespDTO tradeOrderRespDTO = TradeOrderConvert.INSTANCE.convert(tradeOrderDO);
|
||||
// 查询交易订单项
|
||||
if (fields.contains(TradeOrderDetailFieldEnum.ITEM.getField())) {
|
||||
List<TradeOrderItemDO> tradeOrderItemDOs = tradeOrderItemMapper.selectListByOrderIds(
|
||||
Collections.singleton(tradeOrderDO.getId()));
|
||||
tradeOrderRespDTO.setOrderItems(TradeOrderConvert.INSTANCE.convertList(tradeOrderItemDOs));
|
||||
}
|
||||
// 返回
|
||||
return tradeOrderRespDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<TradeOrderRespDTO> pageTradeOrder(TradeOrderPageReqDTO pageReqDTO) {
|
||||
// 查询交易订单分页
|
||||
IPage<TradeOrderDO> tradeOrderDOPage = tradeOrderMapper.selectPage(pageReqDTO);
|
||||
PageResult<TradeOrderRespDTO> pageResult = TradeOrderConvert.INSTANCE.convertPage(tradeOrderDOPage);
|
||||
if (CollectionUtils.isEmpty(pageResult.getList())) {
|
||||
return pageResult;
|
||||
}
|
||||
// 查询交易订单项们
|
||||
if (pageReqDTO.getFields().contains(TradeOrderDetailFieldEnum.ITEM.getField())) {
|
||||
List<TradeOrderItemDO> tradeOrderItemDOs = tradeOrderItemMapper.selectListByOrderIds(
|
||||
convertSet(tradeOrderDOPage.getRecords(), TradeOrderDO::getId));
|
||||
Map<Integer, List<TradeOrderItemDO>> tradeOrderItemDOMultiMap = CollectionUtils.convertMultiMap(
|
||||
tradeOrderItemDOs, TradeOrderItemDO::getOrderId);
|
||||
pageResult.getList().forEach(tradeOrderRespDTO -> tradeOrderRespDTO.setOrderItems(
|
||||
TradeOrderConvert.INSTANCE.convertList(tradeOrderItemDOMultiMap.get(tradeOrderRespDTO.getId()))));
|
||||
}
|
||||
// 返回
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user