Quellcode durchsuchen

订单详情、订单列表添加售后信息字段

wangzhijun vor 15 Stunden
Ursprung
Commit
ed55c3366a

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/order/controller/AfterSalesServiceController.java

@@ -8,7 +8,7 @@ import com.ylx.common.utils.DictUtils;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
 import com.ylx.order.domain.vo.RegulationConfigVO;
 import com.ylx.order.domain.vo.RegulationConfigVO;
-import com.ylx.order.domain.vo.afterSalesService.AfterSalesServiceDetailVO;
+import com.ylx.order.domain.vo.AfterSalesServiceDetailVO;
 import com.ylx.order.enums.AfterSaleServiceDictTypeEnum;
 import com.ylx.order.enums.AfterSaleServiceDictTypeEnum;
 import com.ylx.order.service.IAfterSalesServiceService;
 import com.ylx.order.service.IAfterSalesServiceService;
 import com.ylx.order.service.RegulationService;
 import com.ylx.order.service.RegulationService;

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/order/domain/vo/afterSalesService/AfterSalesServiceDetailVO.java → nightFragrance-massage/src/main/java/com/ylx/order/domain/vo/AfterSalesServiceDetailVO.java

@@ -1,4 +1,4 @@
-package com.ylx.order.domain.vo.afterSalesService;
+package com.ylx.order.domain.vo;
 
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;

+ 7 - 1
nightFragrance-massage/src/main/java/com/ylx/order/domain/vo/OrderDateQueryVo.java

@@ -1,5 +1,6 @@
 package com.ylx.order.domain.vo;
 package com.ylx.order.domain.vo;
 
 
+import com.ylx.order.service.IAfterSaleDisplay;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -13,7 +14,7 @@ import java.math.BigDecimal;
  * @date 2026/6/8 9:43
  * @date 2026/6/8 9:43
  */
  */
 @Data
 @Data
-public class OrderDateQueryVo {
+public class OrderDateQueryVo<T> implements IAfterSaleDisplay {
     /**
     /**
      * 商户头像
      * 商户头像
      */
      */
@@ -77,4 +78,9 @@ public class OrderDateQueryVo {
     private BigDecimal basePrice;
     private BigDecimal basePrice;
 
 
 
 
+    @ApiModelProperty("售后单ID")
+    private Long afterSalesServiceId;
+
+    @ApiModelProperty("售后状态文案")
+    private String afterSalesServiceStatus;
 }
 }

+ 8 - 1
nightFragrance-massage/src/main/java/com/ylx/order/domain/vo/OrderDetailVO.java

@@ -1,5 +1,6 @@
 package com.ylx.order.domain.vo;
 package com.ylx.order.domain.vo;
 
 
+import com.ylx.order.service.IAfterSaleDisplay;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -15,7 +16,7 @@ import java.util.List;
  * @date 2026/6/9 8:58
  * @date 2026/6/9 8:58
  */
  */
 @Data
 @Data
-public class OrderDetailVO {
+public class OrderDetailVO<T> implements IAfterSaleDisplay {
 
 
     /**
     /**
      * 订单状态
      * 订单状态
@@ -139,4 +140,10 @@ public class OrderDetailVO {
 
 
     @ApiModelProperty("订单状态流转列表")
     @ApiModelProperty("订单状态流转列表")
     private List<OrderStatusFlowVO> orderStatusFlowList;
     private List<OrderStatusFlowVO> orderStatusFlowList;
+
+    @ApiModelProperty("售后单ID")
+    private Long afterSalesServiceId;
+
+    @ApiModelProperty("售后状态文案")
+    private String afterSalesServiceStatus;
 }
 }

+ 13 - 0
nightFragrance-massage/src/main/java/com/ylx/order/enums/AfterSaleServiceStatusEnum.java

@@ -1,5 +1,6 @@
 package com.ylx.order.enums;
 package com.ylx.order.enums;
 
 
+import com.ylx.point.enums.PointActivityTypeEnum;
 import lombok.Getter;
 import lombok.Getter;
 
 
 @Getter
 @Getter
@@ -19,4 +20,16 @@ public enum AfterSaleServiceStatusEnum {
         this.desc = desc;
         this.desc = desc;
     }
     }
 
 
+    public static AfterSaleServiceStatusEnum valueOf(Integer code) {
+        if (code == null) {
+            return null;
+        }
+        for (AfterSaleServiceStatusEnum value : AfterSaleServiceStatusEnum.values()) {
+            if (value.getCode().equals(code)) {
+                return value;
+            }
+        }
+        return null;
+    }
+
 }
 }

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/order/mapper/AfterSalesServiceMapper.java

@@ -2,7 +2,7 @@ package com.ylx.order.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ylx.order.domain.AfterSalesService;
 import com.ylx.order.domain.AfterSalesService;
-import com.ylx.order.domain.vo.afterSalesService.AfterSalesServiceDetailVO;
+import com.ylx.order.domain.vo.AfterSalesServiceDetailVO;
 
 
 public interface AfterSalesServiceMapper extends BaseMapper<AfterSalesService> {
 public interface AfterSalesServiceMapper extends BaseMapper<AfterSalesService> {
     AfterSalesServiceDetailVO getDetailById(Long id);
     AfterSalesServiceDetailVO getDetailById(Long id);

+ 7 - 0
nightFragrance-massage/src/main/java/com/ylx/order/service/IAfterSaleDisplay.java

@@ -0,0 +1,7 @@
+package com.ylx.order.service;
+
+public interface IAfterSaleDisplay {
+
+    void setAfterSalesServiceId(Long afterSalesServiceId);
+    void setAfterSalesServiceStatus(String afterSalesServiceStatus);
+}

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/order/service/IAfterSalesServiceService.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.order.domain.AfterSalesService;
 import com.ylx.order.domain.AfterSalesService;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
-import com.ylx.order.domain.vo.afterSalesService.AfterSalesServiceDetailVO;
+import com.ylx.order.domain.vo.AfterSalesServiceDetailVO;
 
 
 public interface IAfterSalesServiceService extends IService<AfterSalesService> {
 public interface IAfterSalesServiceService extends IService<AfterSalesService> {
     void submitAfterSale(AfterSalesServiceDTO dto);
     void submitAfterSale(AfterSalesServiceDTO dto);

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/AfterSalesServiceServiceImpl.java

@@ -14,7 +14,7 @@ import com.ylx.order.domain.RefundRuleDetail;
 import com.ylx.order.domain.TOrder;
 import com.ylx.order.domain.TOrder;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.dto.AfterSalesServiceDTO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
 import com.ylx.order.domain.vo.RefundCalculationVO;
-import com.ylx.order.domain.vo.afterSalesService.AfterSalesServiceDetailVO;
+import com.ylx.order.domain.vo.AfterSalesServiceDetailVO;
 import com.ylx.order.enums.AfterSaleServiceStatusEnum;
 import com.ylx.order.enums.AfterSaleServiceStatusEnum;
 import com.ylx.order.enums.OrderStatusEnum;
 import com.ylx.order.enums.OrderStatusEnum;
 import com.ylx.order.enums.RefundStageTypeEnum;
 import com.ylx.order.enums.RefundStageTypeEnum;

+ 35 - 0
nightFragrance-massage/src/main/java/com/ylx/order/service/impl/TOrderServiceImpl.java

@@ -30,6 +30,7 @@ import com.ylx.massage.service.IMaTechnicianService;
 import com.ylx.massage.service.TAddressService;
 import com.ylx.massage.service.TAddressService;
 import com.ylx.massage.service.TWxUserService;
 import com.ylx.massage.service.TWxUserService;
 import com.ylx.massage.utils.OrderNumberGenerator;
 import com.ylx.massage.utils.OrderNumberGenerator;
+import com.ylx.order.domain.AfterSalesService;
 import com.ylx.order.domain.OrderStatusFlow;
 import com.ylx.order.domain.OrderStatusFlow;
 import com.ylx.order.domain.TOrder;
 import com.ylx.order.domain.TOrder;
 import com.ylx.order.domain.dto.OrderCancleDTO;
 import com.ylx.order.domain.dto.OrderCancleDTO;
@@ -39,9 +40,12 @@ import com.ylx.order.domain.dto.OrderUpdateStatusDTO;
 import com.ylx.order.domain.vo.OrderDateQueryVo;
 import com.ylx.order.domain.vo.OrderDateQueryVo;
 import com.ylx.order.domain.vo.OrderDetailVO;
 import com.ylx.order.domain.vo.OrderDetailVO;
 import com.ylx.order.domain.vo.OrderStatusFlowVO;
 import com.ylx.order.domain.vo.OrderStatusFlowVO;
+import com.ylx.order.enums.AfterSaleServiceStatusEnum;
 import com.ylx.order.enums.OrderStatusEnum;
 import com.ylx.order.enums.OrderStatusEnum;
 import com.ylx.order.enums.PaymentMethodEnum;
 import com.ylx.order.enums.PaymentMethodEnum;
 import com.ylx.order.mapper.TOrderMapper;
 import com.ylx.order.mapper.TOrderMapper;
+import com.ylx.order.service.IAfterSaleDisplay;
+import com.ylx.order.service.IAfterSalesServiceService;
 import com.ylx.order.service.OrderStatusFlowService;
 import com.ylx.order.service.OrderStatusFlowService;
 import com.ylx.order.service.TOrderService;
 import com.ylx.order.service.TOrderService;
 import com.ylx.project.domain.Project;
 import com.ylx.project.domain.Project;
@@ -104,6 +108,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
 
     @Resource
     @Resource
     private MaProjectMapper maProjectMapper;
     private MaProjectMapper maProjectMapper;
+    @Resource
+    private IAfterSalesServiceService afterSalesServiceService;
+
     @Override
     @Override
     public TOrder addOrder(TOrder order) {
     public TOrder addOrder(TOrder order) {
         return null;
         return null;
@@ -456,6 +463,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         String serviceTime = buildServiceTime(order.getStartTime(), order.getCompletedTime());
         String serviceTime = buildServiceTime(order.getStartTime(), order.getCompletedTime());
         vo.setServiceTime(serviceTime);
         vo.setServiceTime(serviceTime);
 
 
+        // 获取订单售后数据
+        this.fillCurrentAfterSaleInfo(vo, order.getId());
+
         return vo;
         return vo;
     }
     }
 
 
@@ -696,6 +706,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         vo.setPaymentMethod(order.getPaymentMethod());
         vo.setPaymentMethod(order.getPaymentMethod());
         vo.setPaymentMethodName(PaymentMethodEnum.getNameByCode(order.getPaymentMethod()));
         vo.setPaymentMethodName(PaymentMethodEnum.getNameByCode(order.getPaymentMethod()));
 
 
+        // 获取订单售后数据
+        this.fillCurrentAfterSaleInfo(vo, order.getId());
+
         // 订单状态流转列表转换
         // 订单状态流转列表转换
         List<OrderStatusFlowVO> flowVOList = flowList.stream()
         List<OrderStatusFlowVO> flowVOList = flowList.stream()
                 .map(this::convertToFlowVO)
                 .map(this::convertToFlowVO)
@@ -800,4 +813,26 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
 
 
         return rows;
         return rows;
     }
     }
+
+    private void fillCurrentAfterSaleInfo(IAfterSaleDisplay vo, Long orderId) {
+        LambdaQueryWrapper<AfterSalesService> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AfterSalesService::getOrderId, orderId)
+                .orderByDesc(AfterSalesService::getCreateTime)
+                .last("LIMIT 1");
+
+        AfterSalesService afterSalesService = this.afterSalesServiceService.getOne(wrapper);
+        if (ObjectUtil.isNull(afterSalesService)) {
+            return;
+        }
+
+        vo.setAfterSalesServiceId(afterSalesService.getId());
+        Integer statusCode = afterSalesService.getStatus();
+        if (ObjectUtil.isNotNull(statusCode)) {
+            AfterSaleServiceStatusEnum statusEnum = AfterSaleServiceStatusEnum.valueOf(statusCode);
+            vo.setAfterSalesServiceStatus(ObjectUtil.isNotNull(statusEnum) ? statusEnum.getDesc() : "未知状态");
+        } else {
+            vo.setAfterSalesServiceStatus("未知状态");
+        }
+
+    }
 }
 }

+ 1 - 1
nightFragrance-massage/src/main/resources/mapper/order/AfterSalesServiceMapper.xml

@@ -6,7 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 
 
     <!-- 定义结果映射:将数据库字段与 VO 属性一一对应 -->
     <!-- 定义结果映射:将数据库字段与 VO 属性一一对应 -->
-    <resultMap id="AfterSalesServiceDetailVOMap" type="com.ylx.order.domain.vo.afterSalesService.AfterSalesServiceDetailVO">
+    <resultMap id="AfterSalesServiceDetailVOMap" type="com.ylx.order.domain.vo.AfterSalesServiceDetailVO">
         <!-- 售后单信息 (after_sales_service) -->
         <!-- 售后单信息 (after_sales_service) -->
         <id property="id" column="ass_id"/>
         <id property="id" column="ass_id"/>
         <result property="serviceNo" column="service_no"/>
         <result property="serviceNo" column="service_no"/>