From 44a30f6d80d3f8d11d7e62d7b03d613b87989d56 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 07 六月 2024 18:17:03 +0800
Subject: [PATCH] 提交【管理后台】-营销管理模块相关接口

---
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionWishListDTO.java    |   27 +++++
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/MemberClient.java                               |   11 +-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/LogisticsMapper.java                                       |   16 +++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/dto/MgtPromotionVideoDTO.java       |    2 
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/service/impl/PromotionWishListServiceImpl.java            |   98 +++++++++++++++++++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtPromotionWishListController.java |   30 ++++++
 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java      |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/inner/MemberController.java                          |   21 +++-
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/IMemberService.java                                     |   10 +-
 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/service/IPromotionWishListService.java                    |   16 +++
 11 files changed, 228 insertions(+), 24 deletions(-)

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-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/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-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 5c4cfef..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.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 io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+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;
@@ -43,4 +48,29 @@
             @Validated @RequestBody MgtPromotionWishListQuery query) {
         return R.ok(promotionWishListService.getPromotionWishListPage(query));
     }
+
+    /**
+     * 查看详情
+     *
+     * @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));
+    }
+
+    /**
+     * 回复
+     *
+     * @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/vo/MgtPromotionWishListVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/MgtPromotionWishListVO.java
index b76eb7c..58281cb 100644
--- 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
@@ -1,5 +1,6 @@
 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;
@@ -46,6 +47,7 @@
     private ReplyStatusEnum replyStatus;
 
     @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
 
     @ApiModelProperty(value = "会员id")
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 4c98955..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,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.common.core.utils.page.PageDTO;
+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;
@@ -30,4 +31,19 @@
      * @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 596e0ca..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,13 +4,27 @@
 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.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.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;
 
 /**
@@ -22,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) {
@@ -68,6 +84,86 @@
     @Override
     public PageDTO<MgtPromotionWishListVO> getPromotionWishListPage(
             MgtPromotionWishListQuery query) {
-        return null;
+        // 封装会员条件查询对象
+        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