소스 검색

优化了代码

jinshihui 6 일 전
부모
커밋
5b3124a569

+ 25 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/ProductOrderDetailVo.java

@@ -30,6 +30,26 @@ public class ProductOrderDetailVo implements Serializable {
      */
     private String openId;
 
+    /**
+     * 商品ID
+     */
+    private Long productId;
+
+    /**
+     * 商品名称
+     */
+    private String productName;
+
+    /**
+     * SKU规格信息
+     */
+    private String skuSpec;
+
+    /**
+     * SKU图片
+     */
+    private String skuImage;
+
     /**
      * 订单状态
      */
@@ -62,6 +82,11 @@ public class ProductOrderDetailVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime payExpireTime;
 
+    /**
+     * 剩余秒数
+     */
+    private long remainSeconds;
+
     /**
      * 商品总金额
      */

+ 4 - 9
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/ProductOrderInfoServiceImpl.java

@@ -33,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
 
 /**
  * 商品订单信息Service实现类
@@ -348,16 +349,10 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
         if (detail == null) {
             throw new ServiceException("订单不存在");
         }
-        //根据地址ID查询地址信息
-        TAddress address = this.addressService.getById(detail.getAddressId());
-        if (address == null) {
-            throw new ServiceException("地址不存在");
-        }
-        //设置收货人姓名和手机号
-        detail.setReceiverName(address.getUserName());
-        detail.setReceiverPhone(address.getPhone());
-        detail.setAddressName(address.getAddress());
         detail.setOrderStatusName(ProductOrderStatusEnum.getDescByCode(detail.getOrderStatus()));
+        // 计算剩余秒数
+        long remainSeconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), detail.getPayExpireTime());
+        detail.setRemainSeconds(remainSeconds);
         return detail;
     }
 

+ 38 - 23
nightFragrance-massage/src/main/resources/mapper/massage/ProductOrderInfoMapper.xml

@@ -24,6 +24,14 @@
         <result property="receiveTime" column="receive_time"/>
         <result property="buyerRemark" column="buyer_remark"/>
         <result property="createTime" column="create_time"/>
+        <result property="productId" column="product_id"/>
+        <result property="productName" column="product_name"/>
+        <result property="skuSpec" column="sku_spec"/>
+        <result property="skuImage" column="sku_image"/>
+        <result property="receiverName" column="user_name"/>
+        <result property="receiverName" column="user_name"/>
+        <result property="receiverPhone" column="user_phone"/>
+        <result property="addressName" column="user_address"/>
     </resultMap>
 
     <resultMap id="ProductOrderListVoResult" type="com.ylx.massage.domain.vo.ProductOrderListVo">
@@ -67,29 +75,36 @@
     <!-- 查询订单详情 -->
     <select id="selectProductOrderDetailByOrderNoAndOpenId" resultMap="ProductOrderDetailVoResult">
         SELECT
-            id,
-            order_no,
-            open_id,
-            order_status,
-            pay_status,
-            pay_type,
-            pay_time,
-            pay_expire_time,
-            total_amount,
-            discount_amount,
-            freight_amount,
-            pay_amount,
-            points_used,
-            address_id,
-            delivery_type,
-            logistics_company,
-            logistics_no,
-            delivery_time,
-            receive_time,
-            buyer_remark,
-            create_time
-        FROM product_order_info
-        WHERE order_no = #{orderNo} AND open_id = #{openId}
+            poi.id,
+            poi.order_no,
+            poi.open_id,
+            poi.order_status,
+            poi.pay_status,
+            poi.pay_type,
+            poi.pay_time,
+            poi.pay_expire_time,
+            poi.total_amount,
+            poi.discount_amount,
+            poi.freight_amount,
+            poi.pay_amount,
+            poi.points_used,
+            poi.address_id,
+            poi.user_name,
+            poi.user_phone,
+            poi.user_address,
+            poi.delivery_type,
+            poi.logistics_company,
+            poi.logistics_no,
+            poi.delivery_time,
+            poi.receive_time,
+            poi.buyer_remark,
+            poi.create_time,
+            poi2.product_id,
+            poi2.product_name,
+            poi2.sku_spec,
+            poi2.sku_image
+        FROM product_order_info poi left join product_order_item poi2 on poi.id = poi2.order_id
+        WHERE poi.order_no = #{orderNo} AND poi.open_id = #{openId}
     </select>
 
     <select id="adminPage" resultType="com.ylx.massage.domain.vo.ProductOrderPageItemVo">