Browse Source

feat: 闪送订单详情返回对端完整用户资料

订单详情 rider/user 字段直接返回 info_user 完整实体:用户端接单后
返回骑手资料,骑手端接单后返回寄件用户资料,抢单前脱敏视图不返回。
service/测试/契约部分已随 6ed1ca9 一并入库,本提交补齐视图 DTO。
qmj 21 hours ago
parent
commit
072dac4795

+ 6 - 2
ruoyi-admin/src/main/java/com/ruoyi/app/flashdelivery/dto/FlashDeliveryOrderDetailView.java

@@ -1,6 +1,7 @@
 package com.ruoyi.app.flashdelivery.dto;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ruoyi.system.domain.InfoUser;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -19,9 +20,12 @@ public class FlashDeliveryOrderDetailView extends FlashDeliveryOrderView {
     private List<String> pickupImageUrls = List.of();
     /** 送达凭证图片 URL 列表,骑手上传。 */
     private List<String> deliveryImageUrls = List.of();
-    /** 骑手公开资料,未接单时为空。 */
+    /** 接单骑手完整用户资料,未接单时为空。 */
     @JsonInclude(JsonInclude.Include.NON_NULL)
-    private FlashDeliveryRiderSummaryView rider;
+    private InfoUser rider;
+    /** 寄件用户完整资料,仅中单骑手接单后的详情返回。 */
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    private InfoUser user;
     /** 交付 PIN,仅启用 PIN 的用户详情返回,骑手端始终为空。 */
     @JsonInclude(JsonInclude.Include.NON_NULL)
     private String deliveryPinCode;

+ 0 - 22
ruoyi-admin/src/main/java/com/ruoyi/app/flashdelivery/dto/FlashDeliveryRiderSummaryView.java

@@ -1,22 +0,0 @@
-package com.ruoyi.app.flashdelivery.dto;
-
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/** 订单用户可见的骑手公开资料;位置仅在进行中订单返回。 */
-@Data
-public class FlashDeliveryRiderSummaryView {
-    /** 骑手昵称,未设置时使用用户名。 */
-    private String name;
-    /** 骑手头像。 */
-    private String avatar;
-    /** 骑手评分。 */
-    private Double rating;
-    /** IM 用户 ID(字符串形式),用于发起聊天。 */
-    private String imUserId;
-    /** 骑手实时位置经度,仅已接单或已取件状态返回。 */
-    private BigDecimal longitude;
-    /** 骑手实时位置纬度,仅已接单或已取件状态返回。 */
-    private BigDecimal latitude;
-}

+ 1 - 1
ruoyi-admin/src/test/java/com/ruoyi/app/flashdelivery/dto/FlashDeliveryOrderViewTest.java

@@ -34,7 +34,7 @@ class FlashDeliveryOrderViewTest {
             assertFalse(fields.contains(forbidden), forbidden);
         }
         for (String required : Set.of("senderImageUrls", "pickupImageUrls",
-                "deliveryImageUrls", "rider", "deliveryPinCode")) {
+                "deliveryImageUrls", "rider", "user", "deliveryPinCode")) {
             assertTrue(fields.contains(required), required);
         }
         assertTrue(FlashDeliveryOrderView.class.isAssignableFrom(FlashDeliveryOrderDetailView.class));