propertyValues = new ArrayList<>();
+ // 单规格商品 赋予默认属性值
+ if (ObjectUtil.equal(spu.getSpecType(), false)) {
+ ProductPropertyValueDetailRespBO respBO = new ProductPropertyValueDetailRespBO();
+ respBO.setPropertyId(ProductPropertyDO.PROPERTY_ID);
+ respBO.setPropertyName(ProductPropertyDO.PROPERTY_NAME);
+ respBO.setValueId(ProductPropertyValueDO.VALUE_ID);
+ respBO.setValueName(ProductPropertyValueDO.VALUE_NAME);
+ propertyValues.add(respBO);
+ } else {
+ // 多规格商品则查询商品属性
+ propertyValues = productPropertyValueService
+ .getPropertyValueDetailList(ProductSkuConvert.INSTANCE.convertPropertyValueIds(skus));
+ }
+ // 拼接
+ return ProductSpuConvert.INSTANCE.convertForGetSpuDetail(spu, skus, propertyValues);
+ }
+
}
diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java
new file mode 100644
index 0000000000..8dc2aacedd
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java
@@ -0,0 +1,20 @@
+package cn.iocoder.yudao.module.trade.api.order;
+
+import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO;
+
+/**
+ * 订单 API 接口
+ *
+ * @author HUIHUI
+ */
+public interface TradeOrderApi {
+
+ /**
+ * 获取订单通过订单 id
+ *
+ * @param id id
+ * @return 订单信息 Response DTO
+ */
+ TradeOrderRespDTO getOrder(Long id);
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/dto/TradeOrderRespDTO.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/dto/TradeOrderRespDTO.java
new file mode 100644
index 0000000000..b9d362407a
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/dto/TradeOrderRespDTO.java
@@ -0,0 +1,92 @@
+package cn.iocoder.yudao.module.trade.api.order.dto;
+
+import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderCancelTypeEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
+import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 订单信息 Response DTO
+ *
+ * @author HUIHUI
+ */
+@Data
+public class TradeOrderRespDTO {
+
+ // ========== 订单基本信息 ==========
+ /**
+ * 订单编号,主键自增
+ */
+ private Long id;
+ /**
+ * 订单流水号
+ *
+ * 例如说,1146347329394184195
+ */
+ private String no;
+ /**
+ * 订单类型
+ *
+ * 枚举 {@link TradeOrderTypeEnum}
+ */
+ private Integer type;
+ /**
+ * 订单来源
+ *
+ * 枚举 {@link TerminalEnum}
+ */
+ private Integer terminal;
+ /**
+ * 用户编号
+ *
+ * 关联 MemberUserDO 的 id 编号
+ */
+ private Long userId;
+ /**
+ * 用户 IP
+ */
+ private String userIp;
+ /**
+ * 用户备注
+ */
+ private String userRemark;
+ /**
+ * 订单状态
+ *
+ * 枚举 {@link TradeOrderStatusEnum}
+ */
+ private Integer status;
+ /**
+ * 购买的商品数量
+ */
+ private Integer productCount;
+ /**
+ * 订单完成时间
+ */
+ private LocalDateTime finishTime;
+ /**
+ * 订单取消时间
+ */
+ private LocalDateTime cancelTime;
+ /**
+ * 取消类型
+ *
+ * 枚举 {@link TradeOrderCancelTypeEnum}
+ */
+ private Integer cancelType;
+ /**
+ * 商家备注
+ */
+ private String remark;
+ /**
+ * 是否评价
+ *
+ * true - 已评价
+ * false - 未评价
+ */
+ private Boolean commentStatus;
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java
new file mode 100644
index 0000000000..5b0e37dcc1
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java
@@ -0,0 +1 @@
+package cn.iocoder.yudao.module.trade.api;
\ No newline at end of file
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java
new file mode 100644
index 0000000000..3abdb2a9dd
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApiImpl.java
@@ -0,0 +1,28 @@
+package cn.iocoder.yudao.module.trade.api.order;
+
+import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO;
+import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
+import cn.iocoder.yudao.module.trade.service.order.TradeOrderService;
+import org.springframework.stereotype.Service;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+
+/**
+ * 订单 API 接口实现类
+ *
+ * @author HUIHUI
+ */
+@Service
+@Validated
+public class TradeOrderApiImpl implements TradeOrderApi {
+
+ @Resource
+ private TradeOrderService tradeOrderService;
+
+ @Override
+ public TradeOrderRespDTO getOrder(Long id) {
+ return TradeOrderConvert.INSTANCE.convert(tradeOrderService.getOrder(id));
+ }
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java
new file mode 100644
index 0000000000..5b0e37dcc1
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/api/package-info.java
@@ -0,0 +1 @@
+package cn.iocoder.yudao.module.trade.api;
\ No newline at end of file
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java
index 572c04e99e..8f87e358ef 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryExpressTemplateController.java
@@ -70,14 +70,14 @@ public class DeliveryExpressTemplateController {
return success(DeliveryExpressTemplateConvert.INSTANCE.convertList(list));
}
- // TODO @puhui999:DeliveryExpressTemplateRespVO 搞个 simple 的哈
+ // TODO @puhui999:DeliveryExpressTemplateRespVO 搞个 simple 的哈 fix
@GetMapping("/list-all-simple")
@Operation(summary = "获取快递模版精简信息列表", description = "主要用于前端的下拉选项")
- public CommonResult> getSimpleTemplateList() {
+ public CommonResult> getSimpleTemplateList() {
// 获取运费模版列表,只要开启状态的
List list = deliveryExpressTemplateService.getDeliveryExpressTemplateList();
// 排序后,返回给前端
- return success(DeliveryExpressTemplateConvert.INSTANCE.convertList(list));
+ return success(DeliveryExpressTemplateConvert.INSTANCE.convertList1(list));
}
@GetMapping("/page")
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java
new file mode 100644
index 0000000000..37abbd06d3
--- /dev/null
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/expresstemplate/DeliveryExpressTemplateSimpleRespVO.java
@@ -0,0 +1,21 @@
+package cn.iocoder.yudao.module.trade.controller.admin.delivery.vo.expresstemplate;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@Schema(description = "管理后台 - 模版精简信息 Response VO")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class DeliveryExpressTemplateSimpleRespVO {
+
+ @Schema(description = "模版编号", required = true, example = "1024")
+ private Long id;
+
+ @Schema(description = "模板名称", required = true, example = "测试模版")
+ private String name;
+
+}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java
index af247367ca..aadaf42f30 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/delivery/DeliveryExpressTemplateConvert.java
@@ -28,11 +28,13 @@ public interface DeliveryExpressTemplateConvert {
List convertList(List list);
+ List convertList1(List list);
+
PageResult convertPage(PageResult page);
default DeliveryExpressTemplateDetailRespVO convert(DeliveryExpressTemplateDO bean,
List chargeList,
- List freeList){
+ List freeList) {
DeliveryExpressTemplateDetailRespVO respVO = convert2(bean);
respVO.setTemplateCharge(convertTemplateChargeList(chargeList));
respVO.setTemplateFree(convertTemplateFreeList(freeList));
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
index c53ae4d0a5..8c5501b534 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/convert/order/TradeOrderConvert.java
@@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.pay.api.order.dto.PayOrderCreateReqDTO;
import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO;
import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuUpdateStockReqDTO;
import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateReqDTO;
+import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO;
import cn.iocoder.yudao.module.trade.controller.admin.base.member.user.MemberUserRespVO;
import cn.iocoder.yudao.module.trade.controller.admin.base.product.property.ProductPropertyValueDetailRespVO;
import cn.iocoder.yudao.module.trade.controller.admin.order.vo.TradeOrderDetailRespVO;
@@ -62,6 +63,8 @@ public interface TradeOrderConvert {
TradeOrderDO convert(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO,
TradePriceCalculateRespBO calculateRespBO, AddressRespDTO address);
+ TradeOrderRespDTO convert(TradeOrderDO orderDO);
+
default List convertList(TradeOrderDO tradeOrderDO, TradePriceCalculateRespBO calculateRespBO) {
return CollectionUtils.convertList(calculateRespBO.getItems(), item -> {
TradeOrderItemDO orderItem = convert(item);