From 3d1c46677a3fb95a4d776735925047c08dee17a3 Mon Sep 17 00:00:00 2001
From: rentaiming <806181062@qq.com>
Date: 星期五, 07 六月 2024 18:17:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java                               |   11 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java |   71 ++++--
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java                          |   21 +
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java    |   13 +
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java  |   29 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java                                     |   10 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java                    |   27 ++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java            |    4 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java               |    4 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java    |   27 ++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java                                       |   16 +
 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/LogisticsMapper.xml                                             |    5 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java            |  114 ++++++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java                            |   21 ++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java       |    2 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java                |    4 
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/LogisticsController.java                         |   19 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java             |    4 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java      |   62 ++++++
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/ILogisticsService.java                                    |   16 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java           |    4 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java                             |   19 +
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java                             |    4 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Logistics.java                                       |   40 ++++
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ReplyStatusEnum.java                             |   31 +++
 25 files changed, 516 insertions(+), 62 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Logistics.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Logistics.java
new file mode 100644
index 0000000..8c73d36
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Logistics.java
@@ -0,0 +1,40 @@
+package com.ruoyi.system.api.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 物流公司
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-06-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_logistics")
+@ApiModel(value = "Logistics对象", description = "物流公司")
+public class Logistics implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    
+    @TableField("logistics_name")
+    private String logisticsName;
+
+    @TableField("logistics_num")
+    private String logisticsNum;
+
+
+}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
index 6b78e9b..f7bd36e 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java
@@ -7,14 +7,12 @@
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.MemberAddress;
 import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
-import com.ruoyi.system.api.domain.dto.AppMiniRegisterDTO;
+import com.ruoyi.system.api.domain.dto.MemberDTO;
 import com.ruoyi.system.api.domain.dto.MemberPointsDTO;
 import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
 import com.ruoyi.system.api.factory.MemberFallbackFactory;
+import java.util.Collection;
 import java.util.List;
-import java.util.Set;
-
-import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -33,7 +31,7 @@
             @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @PostMapping("/member/list-by-ids")
-    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Set<Long> memberIdList,
+    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Collection<Long> memberIdList,
             @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 
     @PostMapping("/forepart/member/miniLogin")
@@ -45,4 +43,7 @@
     @PostMapping("/member/updMembeOne")
     R<?> updMembeOne(@RequestBody updMembeOneDTO dMembeOneDTO);
 
+    @PostMapping("/member/list-by-condition")
+    R<List<Member>> getMemberListByCondition(@RequestBody MemberDTO memberDTO,
+            @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ReplyStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ReplyStatusEnum.java
new file mode 100644
index 0000000..81a5400
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/ReplyStatusEnum.java
@@ -0,0 +1,31 @@
+package com.ruoyi.common.core.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author mitao
+ * @date 2024/6/7
+ */
+@Getter
+@AllArgsConstructor
+public enum ReplyStatusEnum {
+    // 回复状态 0未回复 1已回复
+    UN_REPLIED(0, "未回复"),
+    REPLIED(1, "已回复");
+    @EnumValue
+    private final int code;
+    @JsonValue
+    private final String desc;
+
+    public static ReplyStatusEnum fromCode(Integer code) {
+        for (ReplyStatusEnum value : ReplyStatusEnum.values()) {
+            if (value.getCode() == code) {
+                return value;
+            }
+        }
+        return null;
+    }
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
index 1c8ace4..7d52068 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsBrandController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.goods.service.IGoodsBrandService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -71,7 +72,8 @@
      */
     @ApiOperation(value = "删除商品品牌", notes = "删除商品品牌")
     @DeleteMapping("/{id}")
-    public R<Void> deleteGoodsBrand(@PathVariable("id") Long id) {
+    public R<Void> deleteGoodsBrand(
+            @ApiParam(name = "id", value = "品牌id", required = true) @PathVariable("id") Long id) {
         // 通过ID删除商品品牌
         goodsBrandService.removeById(id);
         return R.ok();
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
index bc47ed0..9fe54a6 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsCategoryController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.goods.service.IGoodsCategoryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -70,7 +71,8 @@
      */
     @ApiOperation(value = "删除商品分类", notes = "删除商品分类")
     @DeleteMapping("/{id}")
-    public R<Void> deleteGoodsCategory(@Validated @PathVariable("id") Long id) {
+    public R<Void> deleteGoodsCategory(
+            @ApiParam(name = "id", value = "商品分类id", required = true) @Validated @PathVariable("id") Long id) {
         goodsCategoryService.removeById(id);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
index 1d669bd..d6f667a 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsFlavorTypeController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.goods.service.IGoodsFlavorTypeService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -70,7 +71,8 @@
      */
     @ApiOperation(value = "删除商品香型", notes = "删除商品香型")
     @DeleteMapping("/{id}")
-    public R<Void> deleteGoodsFlavorType(@PathVariable("id") Long id) {
+    public R<Void> deleteGoodsFlavorType(
+            @ApiParam(name = "id", value = "商品香型id", required = true) @PathVariable("id") Long id) {
         goodsFlavorTypeService.removeById(id);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
index f437fac..ebbb155 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsInfoTitleController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.goods.service.IGoodsInfoTitleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -70,7 +71,8 @@
      */
     @ApiOperation("删除商品信息标题")
     @DeleteMapping("/{id}")
-    public R<Void> deleteGoodsInfoTitle(@PathVariable("id") Long id) {
+    public R<Void> deleteGoodsInfoTitle(
+            @ApiParam(name = "id", value = "商品信息标题id", required = true) @PathVariable("id") Long id) {
         goodsInfoTitleService.removeById(id);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
index d429433..f7eb03a 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsSeriesController.java
@@ -9,6 +9,7 @@
 import com.ruoyi.goods.service.IGoodsSeriesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
@@ -70,7 +71,8 @@
      */
     @ApiOperation(value = "删除商品香型", notes = "删除商品香型")
     @DeleteMapping("/{id}")
-    public R<Void> deleteGoodsSeries(@PathVariable("id") Long id) {
+    public R<Void> deleteGoodsSeries(
+            @ApiParam(name = "id", value = "商品香型id", required = true) @PathVariable("id") Long id) {
         goodsSeriesService.removeById(id);
         return R.ok();
     }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java
index 0ea2219..472c4fb 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java
@@ -4,13 +4,16 @@
 import com.ruoyi.common.security.annotation.InnerAuth;
 import com.ruoyi.member.service.IMemberService;
 import com.ruoyi.system.api.domain.Member;
-import java.util.List;
-import java.util.Set;
-
+import com.ruoyi.system.api.domain.dto.MemberDTO;
 import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
-import io.swagger.annotations.ApiOperation;
+import java.util.Collection;
+import java.util.List;
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * @author mitao
@@ -25,7 +28,8 @@
     
     @InnerAuth
     @PostMapping("/list-by-ids")
-    R<List<Member>> getMemberListByIds(@RequestParam("memberIdList") Set<Long> memberIdList) {
+    R<List<Member>> getMemberListByIds(
+            @RequestParam("memberIdList") Collection<Long> memberIdList) {
         return R.ok(memberService.getMemberListByIds(memberIdList));
     }
 
@@ -43,4 +47,9 @@
         return R.ok();
     }
 
+    @InnerAuth
+    @PostMapping("/member/list-by-condition")
+    R<List<Member>> getMemberListByCondition(@RequestBody MemberDTO memberDTO) {
+        return R.ok(memberService.getMemberListByCondition(memberDTO));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java
index 11fb930..2f460c2 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java
@@ -11,11 +11,9 @@
 import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
 import com.ruoyi.system.api.domain.dto.MemberDTO;
 import com.ruoyi.system.api.domain.dto.MobileDTO;
-import com.ruoyi.system.api.domain.dto.*;
-
+import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
+import java.util.Collection;
 import java.util.List;
-import java.util.Set;
-
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -36,7 +34,7 @@
 
     void authentificationMembe(MemberDTO memberDTO);
 
-    List<Member> getMemberListByIds(Set<Long> memberIdList);
+    List<Member> getMemberListByIds(Collection<Long> memberIdList);
 
 
     void mobile(@RequestBody MobileDTO mobileDTO);
@@ -66,4 +64,6 @@
     PageDTO<MgtMemberPointsVO> getMemberPoints(MgtMemberPointsQuery query);
 
     void updMembeOne(@RequestBody updMembeOneDTO dMembeOneDTO);
+
+    List<Member> getMemberListByCondition(MemberDTO memberDTO);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
index e94b931..ea14810 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java
@@ -32,8 +32,8 @@
 import com.ruoyi.member.controller.management.vo.MgtMemberVO;
 import com.ruoyi.member.domain.MemberLevel;
 import com.ruoyi.member.mapper.MemberMapper;
-import com.ruoyi.member.service.IMemberPointsService;
 import com.ruoyi.member.service.IMemberLevelService;
+import com.ruoyi.member.service.IMemberPointsService;
 import com.ruoyi.member.service.IMemberService;
 import com.ruoyi.member.util.HttpUtils;
 import com.ruoyi.system.api.RemoteUserService;
@@ -42,22 +42,20 @@
 import com.ruoyi.system.api.domain.Member;
 import com.ruoyi.system.api.domain.MemberPoints;
 import com.ruoyi.system.api.domain.SysUser;
-import com.ruoyi.system.api.domain.dto.*;
-
 import com.ruoyi.system.api.domain.dto.AppMiniLoginDTO;
 import com.ruoyi.system.api.domain.dto.MemberDTO;
 import com.ruoyi.system.api.domain.dto.MobileDTO;
+import com.ruoyi.system.api.domain.dto.updMembeOneDTO;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import javax.annotation.Resource;
-
 import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
@@ -374,7 +372,7 @@
     }
 
     @Override
-    public List<Member> getMemberListByIds(Set<Long> memberIdList) {
+    public List<Member> getMemberListByIds(Collection<Long> memberIdList) {
         return this.listByIds(memberIdList);
     }
 
@@ -588,6 +586,15 @@
         }
         return PageDTO.of(page, MgtMemberPointsVO.class);
     }
+
+    @Override
+    public List<Member> getMemberListByCondition(MemberDTO memberDTO) {
+        return this.lambdaQuery()
+                .like(StringUtils.isNotBlank(memberDTO.getNickname()), Member::getNickname,
+                        memberDTO.getNickname())
+                .like(StringUtils.isNotBlank(memberDTO.getPhone()), Member::getPhone,
+                        memberDTO.getPhone()).list();
+    }
 }
 
 
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/LogisticsController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/LogisticsController.java
new file mode 100644
index 0000000..30b5b8d
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/LogisticsController.java
@@ -0,0 +1,19 @@
+package com.ruoyi.order.controller.inner;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 物流公司 前端控制器
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-06-07
+ */
+@RestController
+@RequestMapping("/logistics")
+public class LogisticsController {
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java
new file mode 100644
index 0000000..4904017
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java
@@ -0,0 +1,16 @@
+package com.ruoyi.order.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.api.domain.Logistics;
+
+/**
+ * <p>
+ * 物流公司 Mapper 接口
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-06-07
+ */
+public interface LogisticsMapper extends BaseMapper<Logistics> {
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/ILogisticsService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/ILogisticsService.java
new file mode 100644
index 0000000..139e495
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/ILogisticsService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.api.domain.Logistics;
+
+/**
+ * <p>
+ * 物流公司 服务类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-06-07
+ */
+public interface ILogisticsService extends IService<Logistics> {
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
new file mode 100644
index 0000000..3abea27
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java
@@ -0,0 +1,21 @@
+package com.ruoyi.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.order.mapper.LogisticsMapper;
+import com.ruoyi.order.service.ILogisticsService;
+import com.ruoyi.system.api.domain.Logistics;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 物流公司 服务实现类
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-06-07
+ */
+@Service
+public class LogisticsServiceImpl extends ServiceImpl<LogisticsMapper, Logistics> implements
+        ILogisticsService {
+
+}
diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/LogisticsMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/LogisticsMapper.xml
new file mode 100644
index 0000000..78a18d1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/LogisticsMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.order.mapper.LogisticsMapper">
+
+</mapper>
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java
index 2287f14..83ce9ab 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionVideoController.java
@@ -3,6 +3,7 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionVideoDTO;
 import com.ruoyi.promotion.controller.management.dto.MgtPromotionVideoQuery;
 import com.ruoyi.promotion.controller.management.vo.MgtPromotionVideoVO;
 import com.ruoyi.promotion.service.IPromotionVideoService;
@@ -59,4 +60,16 @@
         promotionVideoService.removeById(id);
         return R.ok();
     }
+
+    /**
+     * 添加/编辑视频
+     *
+     * @param dto 大屏视频视图对象
+     */
+    @ApiOperation("添加/编辑视频")
+    @PostMapping("/save")
+    public R<?> saveOrUpdatePromotionVideo(@RequestBody MgtPromotionVideoDTO dto) {
+        promotionVideoService.saveOrUpdatePromotionVideo(dto);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java
index 879f7bc..d284227 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java
@@ -3,14 +3,19 @@
 
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.promotion.domain.PromotionWishList;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
+import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
 import com.ruoyi.promotion.service.IPromotionWishListService;
-import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import javax.annotation.Resource;
-import org.apache.poi.ss.formula.functions.T;
+import io.swagger.annotations.ApiParam;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -25,37 +30,47 @@
  */
 @RestController
 @RequestMapping("/mgt/promotion-wish-list")
-@Api(value = "用户端-心愿单相关接口", tags = "用户端-心愿单相关接口", description = "用户端-心愿单相关接口")
+@RequiredArgsConstructor
+@Api(value = "管理后台-心愿求购管理相关接口", tags = "管理后台-心愿求购管理相关接口")
 public class MgtPromotionWishListController {
 
-    @Resource
-    private IPromotionWishListService iPromotionWishListService;
+    private final IPromotionWishListService promotionWishListService;
 
-    @PostMapping("/getPromotionWishList")
-    @ApiOperation(value = "用户端-获取心愿单列表")
-    public R<PageDTO<PromotionWishList>> getPromotionWishList(
-            @RequestBody PromotionWishListDTO promotionWishListDTO) {
-        return R.ok(iPromotionWishListService.getPromotionWishList(promotionWishListDTO));
+    /**
+     * 获取心愿求购列表的分页数据
+     *
+     * @param query 心愿求购管理查询对象
+     * @return PageDTO<MgtPromotionWishListVO>
+     */
+    @ApiOperation("获取心愿求购列表的分页数据")
+    @PostMapping("page")
+    public R<PageDTO<MgtPromotionWishListVO>> getPromotionWishListPage(
+            @Validated @RequestBody MgtPromotionWishListQuery query) {
+        return R.ok(promotionWishListService.getPromotionWishListPage(query));
     }
 
-    @PostMapping("/savePromotionWishList")
-    @ApiOperation(value = "用户端-添加心愿单列表")
-    public R<T> savePromotionWishList(@RequestBody PromotionWishListDTO promotionWishListDTO) {
-        iPromotionWishListService.savePromotionWishList(promotionWishListDTO);
-        return R.ok();
+    /**
+     * 查看详情
+     *
+     * @param id 心愿求购id
+     * @return MgtPromotionWishListVO
+     */
+    @ApiOperation("查看详情")
+    @GetMapping("/detail/{id}")
+    public R<MgtPromotionWishListVO> getPromotionWishDetail(
+            @ApiParam(value = "心愿求购id", required = true) @PathVariable("id") Long id) {
+        return R.ok(promotionWishListService.getPromotionWishDetail(id));
     }
 
-    @PostMapping("/getPromotionWishOne")
-    @ApiOperation(value = "用户端-获取心愿单个")
-    public R<PromotionWishList> getPromotionWishOne(
-            @RequestBody PromotionWishListDTO promotionWishListDTO) {
-        return R.ok(iPromotionWishListService.getPromotionWishOne(promotionWishListDTO));
-    }
-
-    @PostMapping("/delPromotionWishOne")
-    @ApiOperation(value = "用户端-删除心愿单个")
-    public R<T> delPromotionWishOne(@RequestBody PromotionWishListDTO promotionWishListDTO) {
-        iPromotionWishListService.delPromotionWishOne(promotionWishListDTO);
+    /**
+     * 回复
+     *
+     * @param dto 心愿求购数据传输对象
+     */
+    @ApiOperation("回复")
+    @PutMapping("/reply")
+    public R<?> reply(@Validated @RequestBody MgtPromotionWishListDTO dto) {
+        promotionWishListService.reply(dto);
         return R.ok();
     }
 }
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java
index 73d01ff..b3a0cc1 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java
@@ -11,7 +11,7 @@
  * @date 2024/6/3
  */
 @Data
-@ApiModel(value = "大屏视频视图对象", description = "大屏视频视图对象")
+@ApiModel(value = "大屏视频数据传输对象", description = "大屏视频数据传输对象")
 public class MgtPromotionVideoDTO implements Serializable {
 
     private static final long serialVersionUID = -1717120548273715375L;
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java
new file mode 100644
index 0000000..5846b2f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java
@@ -0,0 +1,27 @@
+package com.ruoyi.promotion.controller.management.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author mitao
+ * @date 2024/6/7
+ */
+@Data
+@ApiModel(value = "心愿求购数据传输对象", description = "心愿求购数据传输对象")
+public class MgtPromotionWishListDTO implements Serializable {
+
+    private static final long serialVersionUID = -3674827217986734987L;
+
+    @ApiModelProperty(value = "心愿求购id")
+    @NotNull(message = "心愿求购id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "平台回复")
+    @NotBlank(message = "平台回复不能为空")
+    private String replies;
+}
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java
new file mode 100644
index 0000000..e2c8c35
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListQuery.java
@@ -0,0 +1,29 @@
+package com.ruoyi.promotion.controller.management.dto;
+
+import com.ruoyi.common.core.enums.ReplyStatusEnum;
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author mitao
+ * @date 2024/6/7
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "心愿求购管理查询对象", description = "心愿求购管理查询对象")
+public class MgtPromotionWishListQuery extends BasePage {
+
+    private static final long serialVersionUID = -2289707074791860720L;
+
+    @ApiModelProperty(value = "会员昵称")
+    private String nickname;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "回复状态 未回复 已回复")
+    private ReplyStatusEnum replyStatus;
+}
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java
new file mode 100644
index 0000000..58281cb
--- /dev/null
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java
@@ -0,0 +1,62 @@
+package com.ruoyi.promotion.controller.management.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.enums.ReplyStatusEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 心愿求购表
+ * </p>
+ *
+ * @author mitao
+ * @since 2024-05-16
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "心愿求购视图对象", description = "心愿求购视图对象")
+public class MgtPromotionWishListVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "心愿求购id")
+    private Long id;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "期望价格")
+    private BigDecimal expectedPrice;
+
+    @ApiModelProperty(value = "商品图片 ['a','b','c','d','e']")
+    private String goodsImageUrl;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "平台回复")
+    private String replies;
+
+    @ApiModelProperty(value = "回复状态 0未回复 1已回复")
+    private ReplyStatusEnum replyStatus;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty(value = "会员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "会员昵称")
+    private String nickname;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+}
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java
index 2b58574..fc28275 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/domain/PromotionWishList.java
@@ -6,6 +6,7 @@
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.enums.ReplyStatusEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
@@ -51,6 +52,9 @@
     @ApiModelProperty(value = "平台回复")
     private String replies;
 
+    @ApiModelProperty(value = "回复状态 0未回复 1已回复")
+    private ReplyStatusEnum replyStatus;
+
     @ApiModelProperty(value = "创建者")
     @TableField(value = "create_by", fill = FieldFill.INSERT)
     private String createBy;
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java
index 5d47578..f78c710 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/IPromotionWishListService.java
@@ -2,8 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
+import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
 import com.ruoyi.promotion.domain.PromotionWishList;
+import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
 
 /**
  * <p>
@@ -21,4 +24,26 @@
 
    void delPromotionWishOne(PromotionWishListDTO promotionWishListDTO);
 
+    /**
+     * 获取心愿求购列表的分页数据
+     *
+     * @param query 心愿求购管理查询对象
+     * @return PageDTO<MgtPromotionWishListVO>
+     */
+    PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(MgtPromotionWishListQuery query);
+
+    /**
+     * 查看详情
+     *
+     * @param id 心愿求购id
+     * @return MgtPromotionWishListVO
+     */
+    MgtPromotionWishListVO getPromotionWishDetail(Long id);
+
+    /**
+     * 回复
+     *
+     * @param dto 心愿求购数据传输对象
+     */
+    void reply(MgtPromotionWishListDTO dto);
 }
diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java
index c79192d..2fbca28 100644
--- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java
+++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java
@@ -4,17 +4,28 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.ruoyi.common.core.constant.SecurityConstants;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.page.BeanUtils;
 import com.ruoyi.common.core.utils.page.PageDTO;
-import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListDTO;
+import com.ruoyi.promotion.controller.management.dto.MgtPromotionWishListQuery;
+import com.ruoyi.promotion.controller.management.vo.MgtPromotionWishListVO;
 import com.ruoyi.promotion.domain.PromotionWishList;
 import com.ruoyi.promotion.mapper.PromotionWishListMapper;
 import com.ruoyi.promotion.service.IPromotionWishListService;
-import com.ruoyi.system.api.util.HuaWeiOBSUtil;
-import java.io.IOException;
-import java.util.ArrayList;
+import com.ruoyi.system.api.domain.Member;
+import com.ruoyi.system.api.domain.dto.MemberDTO;
+import com.ruoyi.system.api.domain.dto.PromotionWishListDTO;
+import com.ruoyi.system.api.feignClient.MemberClient;
 import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
 
 /**
  * <p>
@@ -25,8 +36,10 @@
  * @since 2024-05-16
  */
 @Service
+@RequiredArgsConstructor
 public class PromotionWishListServiceImpl extends ServiceImpl<PromotionWishListMapper, PromotionWishList> implements IPromotionWishListService {
 
+    private final MemberClient memberClient;
 
     @Override
     public PageDTO<PromotionWishList> getPromotionWishList(PromotionWishListDTO promotionWishListDTO) {
@@ -62,4 +75,95 @@
         return this.getOne(wrapper);
     }
 
+    /**
+     * 获取心愿求购列表的分页数据
+     *
+     * @param query 心愿求购管理查询对象
+     * @return PageDTO<MgtPromotionWishListVO>
+     */
+    @Override
+    public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(
+            MgtPromotionWishListQuery query) {
+        // 封装会员条件查询对象
+        MemberDTO memberDTO = new MemberDTO();
+        if (StringUtils.isNotBlank(query.getNickname())) {
+            memberDTO.setNickname(query.getNickname());
+        }
+        if (StringUtils.isNotBlank(query.getPhone())) {
+            memberDTO.setPhone(query.getPhone());
+        }
+        // 远程调用会员服务进行条件查询
+        List<Member> memberList = memberClient.getMemberListByCondition(memberDTO,
+                SecurityConstants.INNER).getData();
+        Set<Long> memberIdSet = memberList.stream().map(Member::getId).collect(Collectors.toSet());
+        // 分页查询心愿求购列表
+        Page<PromotionWishList> page = this.lambdaQuery()
+                .eq(StringUtils.isNotNull(query.getReplyStatus()),
+                        PromotionWishList::getReplyStatus, query.getReplyStatus())
+                .in(StringUtils.isNotEmpty(memberIdSet), PromotionWishList::getMemberId,
+                        memberIdSet).page(new Page<>(query.getPageCurr(), query
+                        .getPageSize()));
+        if (StringUtils.isEmpty(page.getRecords())) {
+            return PageDTO.empty(page);
+        }
+        // 封装VO
+        PageDTO<MgtPromotionWishListVO> pageVO = PageDTO.of(page,
+                MgtPromotionWishListVO.class);
+        List<MgtPromotionWishListVO> MgtPromotionWishListVOList = pageVO.getList();
+        Set<Long> memberIdSets = MgtPromotionWishListVOList.stream()
+                .map(MgtPromotionWishListVO::getMemberId)
+                .collect(Collectors.toSet());
+        if (StringUtils.isNotEmpty(memberIdSets)) {
+            List<Member> data = memberClient.getMemberListByIds(memberIdSets,
+                    SecurityConstants.INNER).getData();
+            if (StringUtils.isNotEmpty(data)) {
+                Map<Long, Member> memberMap = data.stream()
+                        .collect(Collectors.toMap(Member::getId, member -> member));
+                for (MgtPromotionWishListVO mgtPromotionWishListVO : MgtPromotionWishListVOList) {
+                    Member member = memberMap.get(mgtPromotionWishListVO.getMemberId());
+                    if (StringUtils.isNotNull(member)) {
+                        mgtPromotionWishListVO.setNickname(member.getNickname());
+                        mgtPromotionWishListVO.setPhone(member.getPhone());
+                    }
+                }
+            }
+        }
+        return pageVO;
+    }
+
+    /**
+     * 查看详情
+     *
+     * @param id 心愿求购id
+     * @return MgtPromotionWishListVO
+     */
+    @Override
+    public MgtPromotionWishListVO getPromotionWishDetail(Long id) {
+        PromotionWishList promotionWishList = this.getById(id);
+        if (StringUtils.isNull(promotionWishList)) {
+            throw new ServiceException("该心愿求购不存在");
+        }
+        MgtPromotionWishListVO mgtPromotionWishListVO = BeanUtils.copyBean(promotionWishList,
+                MgtPromotionWishListVO.class);
+        List<Member> data = memberClient.getMemberListByIds(
+                Lists.newArrayList(promotionWishList.getMemberId()),
+                SecurityConstants.INNER).getData();
+        if (StringUtils.isNotEmpty(data)) {
+            mgtPromotionWishListVO.setPhone(data.get(0).getPhone());
+            mgtPromotionWishListVO.setNickname(data.get(0).getNickname());
+        }
+        return mgtPromotionWishListVO;
+    }
+
+    /**
+     * 回复
+     *
+     * @param dto 心愿求购数据传输对象
+     */
+    @Override
+    public void reply(MgtPromotionWishListDTO dto) {
+        PromotionWishList promotionWishList = this.getById(dto.getId());
+        promotionWishList.setReplies(dto.getReplies());
+        this.updateById(promotionWishList);
+    }
 }

--
Gitblit v1.7.1