From 962e7325d72222a4ffd4d74a1fc5612f95326e98 Mon Sep 17 00:00:00 2001
From: jiangqs <343695869@qq.com>
Date: 星期日, 11 六月 2023 18:49:39 +0800
Subject: [PATCH] 建议管理

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java          |   48 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtReplayStaffSuggestDto.java          |   24 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestTagVo.java               |   25 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopSuggestPageDto.java                 |   42 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java    |   26 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java     |   75 +++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java |  107 ++++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/StaffSuggest.java              |   21 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java          |    5 
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java            |    2 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml                               |   42 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtReplayShopSuggestDto.java               |   24 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtReplayMemberSuggestDto.java         |   24 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/StaffSuggestMapper.java             |   15 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberSuggestPageDto.java           |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java             |    4 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTagShopSuggestDto.java                  |   22 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml                         |   39 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtTagMemberSuggestDto.java            |   22 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java                     |   20 
 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml                                      |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java  |  124 +++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java          |   32 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java                  |   42 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestTagVo.java              |   25 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java          |   17 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java                    |   12 
 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/StaffSuggestMapper.xml                          |   45 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagStaffSuggestDto.java             |   22 
 /dev/null                                                                                                   |   46 --
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java    |    3 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java              |   53 ++
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtStaffSuggestPageDto.java            |   44 +
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java                     |   39 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java         |  122 +++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java             |   12 
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestTagVo.java                    |   25 +
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java           |   45 +
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java                   |   56 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java       |    2 
 40 files changed, 1,283 insertions(+), 75 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
index 6c83f6a..9150a5c 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtShopIdByCodeDto.java
@@ -22,4 +22,6 @@
     @ApiModelProperty(value = "店铺地址区code")
     private String shopAreaCode;
 
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
 }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
index b4eacc3..edd9d34 100644
--- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateUtils.java
@@ -1,15 +1,12 @@
 package com.ruoyi.common.core.utils;
 
+import org.apache.commons.lang3.time.DateFormatUtils;
+
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.ZoneId;
-import java.time.ZonedDateTime;
+import java.time.*;
 import java.util.Date;
-import org.apache.commons.lang3.time.DateFormatUtils;
 
 /**
  * 时间工具类
@@ -33,8 +30,12 @@
             "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
             "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
 
-    public static void main(String[] args) {
-        System.out.println(getNowDate());
+    public static void main(String[] args) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Date start = sdf.parse("2021-10-01 10:00:00");
+        Date end = sdf.parse("2021-10-01 12:30:00");
+        String time = formatDuration(start,end);
+        System.out.println(time);
     }
 
     /**
@@ -184,4 +185,26 @@
         ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
         return Date.from(zdt.toInstant());
     }
+
+    public static String formatDuration(Date start, Date end) {
+        long duration = end.getTime() - start.getTime();
+        long days = duration / (24 * 60 * 60 * 1000);
+        long hours = (duration % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000);
+        long minutes = (duration % (60 * 60 * 1000)) / (60 * 1000);
+        long seconds = (duration % (60 * 1000)) / 1000;
+        StringBuilder sb = new StringBuilder();
+        if (days > 0) {
+            sb.append(days).append("天");
+        }
+        if (hours > 0) {
+            sb.append(hours).append("小时");
+        }
+        if (minutes > 0) {
+            sb.append(minutes).append("分");
+        }
+        if (seconds > 0) {
+            sb.append(seconds).append("秒");
+        }
+        return sb.toString();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
index 864c5c2..dfb24b3 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
@@ -129,7 +129,7 @@
 
 
     @RequestMapping(value = "/pageMgtMemberSuggest", method = RequestMethod.POST)
-    @ApiOperation(value = "平台获取用户建议")
+    @ApiOperation(value = "平台获取用户建议列表")
     public R<Page<MgtMemberSuggestPageVo>> pageMgtMemberSuggest(@RequestBody MgtMemberSuggestPageDto memberSuggestPageDto) {
         Long userId = SecurityUtils.getUserId();
         memberSuggestPageDto.setUserId(userId);
@@ -140,5 +140,29 @@
         return R.ok(page.setRecords(mgtMemberSuggestPageVoList));
     }
 
+    @RequestMapping(value = "/mgtReplayMemberSuggest", method = RequestMethod.POST)
+    @ApiOperation(value = "平台回复会员建议")
+    public R mgtReplayMemberSuggest(@RequestBody MgtReplayMemberSuggestDto mgtReplayMemberSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtReplayMemberSuggestDto.setUserId(userId);
+        memberSuggestService.mgtReplayMemberSuggest(mgtReplayMemberSuggestDto);
+        return R.ok();
+    }
 
+
+    @RequestMapping(value = "/listMgtMemberSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "获取会员建议标签")
+    public R<List<MgtMemberSuggestTagVo>> listMgtMemberSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        List<MgtMemberSuggestTagVo> mgtMemberSuggestTagVoList = memberSuggestService.listMgtMemberSuggestTag(Long.valueOf(mgtBaseGetDto.getId()));
+        return R.ok(mgtMemberSuggestTagVoList);
+    }
+
+    @RequestMapping(value = "/mgtEditMemberSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "平台编辑会员建议标签")
+    public R mgtEditMemberSuggestTag(@RequestBody MgtTagMemberSuggestDto mgtTagMemberSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtTagMemberSuggestDto.setUserId(userId);
+        memberSuggestService.mgtEditMemberSuggestTag(mgtTagMemberSuggestDto);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
index b1ec2a8..53684eb 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -71,7 +71,7 @@
     }
 
     @RequestMapping(value = "/userSuggest", method = RequestMethod.POST)
-    @ApiOperation(value = "发起建议")
+    @ApiOperation(value = "用户发起建议")
     public R userSuggest(@RequestBody AppUserSuggestDto appUserSuggestDto) {
         Long userId = SecurityUtils.getUserId();
         appUserSuggestDto.setUserId(userId);
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberSuggestPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberSuggestPageDto.java
index f07ccc5..955b091 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberSuggestPageDto.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberSuggestPageDto.java
@@ -25,7 +25,7 @@
     @ApiModelProperty(value = "提交结束时间")
     private Date createEndTime;
 
-    @ApiModelProperty(value = "建议状态1未回复2已回复")
+    @ApiModelProperty(value = "建议状态0未回复1已回复")
     private Integer suggestStatus;
 
     @ApiModelProperty(value = "性别0男1女")
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtReplayMemberSuggestDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtReplayMemberSuggestDto.java
new file mode 100644
index 0000000..f61cf5c
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtReplayMemberSuggestDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.member.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtReplayMemberSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:04
+ */
+@Data
+public class MgtReplayMemberSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "平台回复内容")
+    private String replayContent;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtTagMemberSuggestDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtTagMemberSuggestDto.java
new file mode 100644
index 0000000..8fa15f4
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtTagMemberSuggestDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.member.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtTagMemberSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:26
+ */
+@Data
+public class MgtTagMemberSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "标签 多个,隔开")
+    private String suggestTags;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java
index 25ed0ef..f4d20cb 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberSuggest.java
@@ -73,6 +73,9 @@
      */
     @TableField("replay_time")
     private Date replayTime;
+
+    @TableField("response_time")
+    private String responseTime;
     /**
      * 商户id
      */
@@ -109,6 +112,15 @@
     @TableField("shop_replay_time")
     private Date shopReplayTime;
 
+    @TableField("shop_response_time")
+    private String shopResponseTime;
+
+    /**
+     * 回复标记
+     */
+    @TableField("replay_flag")
+    private Integer replayFlag;
+
 
     @Override
     protected Serializable pkVal() {
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java
index 9634fd9..59ac840 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java
@@ -1,5 +1,6 @@
 package com.ruoyi.member.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -47,12 +48,14 @@
     private String suggestStatus;
 
     @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
     @ApiModelProperty(value = "回复人姓名")
     private String replayUserName;
 
     @ApiModelProperty(value = "回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date replayTime;
 
     @ApiModelProperty(value = "平台响应时间")
@@ -62,6 +65,7 @@
     private String shopReplayUserName;
 
     @ApiModelProperty(value = "商户回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date shopReplayTime;
 
     @ApiModelProperty(value = "商户响应时间")
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestTagVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestTagVo.java
new file mode 100644
index 0000000..b54b8e7
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestTagVo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.member.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @ClassName MgtShopTagVo
+ * @description: TODO
+ * @date 2023年04月21日
+ * @version: 1.0
+ */
+@Data
+public class MgtMemberSuggestTagVo {
+
+    @ApiModelProperty(value = "标签id")
+    private Long tagId;
+
+    @ApiModelProperty(value = "标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "是否选择0否1是")
+    private Integer selectFlag;
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
index f3beae9..cd9ec00 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
@@ -3,21 +3,30 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.member.domain.dto.MgtMemberSuggestPageDto;
+import com.ruoyi.member.domain.dto.MgtReplayMemberSuggestDto;
+import com.ruoyi.member.domain.dto.MgtTagMemberSuggestDto;
 import com.ruoyi.member.domain.pojo.member.MemberSuggest;
 import com.ruoyi.member.domain.vo.AppSuggestPageVo;
 import com.ruoyi.member.domain.vo.MgtMemberSuggestPageVo;
+import com.ruoyi.member.domain.vo.MgtMemberSuggestTagVo;
 import com.ruoyi.member.mapper.member.MemberSuggestMapper;
 import com.ruoyi.member.service.member.MemberSuggestService;
 import com.ruoyi.system.api.domain.dto.AppSuggestPageDto;
 import com.ruoyi.system.api.domain.dto.AppUserSuggestDto;
 import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto;
+import com.ruoyi.system.api.domain.poji.config.SysTag;
+import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo;
+import com.ruoyi.system.api.service.RemoteConfigService;
 import com.ruoyi.system.api.service.RemoteShopService;
+import com.ruoyi.system.api.service.RemoteUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -39,7 +48,11 @@
     @Resource
     private RemoteShopService remoteShopService;
 
+    @Resource
+    private RemoteUserService remoteUserService;
 
+    @Resource
+    private RemoteConfigService remoteConfigService;
 
     /**
      *
@@ -53,7 +66,7 @@
     }
 
     /**
-     *
+     * 用户建议
      * @param appUserSuggestDto
      */
     @Override
@@ -64,6 +77,7 @@
         memberSuggest.setSuggestContent(appUserSuggestDto.getSuggestContent());
         memberSuggest.setCreateTime(new Date());
         memberSuggest.setSuggestType(appUserSuggestDto.getSuggestType());
+        memberSuggest.setReplayFlag(0);
         this.saveOrUpdate(memberSuggest);
     }
 
@@ -89,8 +103,9 @@
     @Override
     public List<MgtMemberSuggestPageVo> pageMgtMemberSuggest(Page page,MgtMemberSuggestPageDto memberSuggestPageDto){
         //如果区域代码不为null获取对应的商户id
-        if(StringUtils.isNotBlank(memberSuggestPageDto.getShopProvinceCode())||StringUtils.isNotBlank(memberSuggestPageDto.getShopCityCode())||StringUtils.isNotBlank(memberSuggestPageDto.getShopAreaCode())){
+        if(StringUtils.isNotBlank(memberSuggestPageDto.getKeyword())||StringUtils.isNotBlank(memberSuggestPageDto.getShopProvinceCode())||StringUtils.isNotBlank(memberSuggestPageDto.getShopCityCode())||StringUtils.isNotBlank(memberSuggestPageDto.getShopAreaCode())){
             MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto();
+            mgtShopIdByCodeDto.setShopName(memberSuggestPageDto.getKeyword());
             mgtShopIdByCodeDto.setShopProvinceCode(memberSuggestPageDto.getShopProvinceCode());
             mgtShopIdByCodeDto.setShopCityCode(memberSuggestPageDto.getShopCityCode());
             mgtShopIdByCodeDto.setShopAreaCode(memberSuggestPageDto.getShopAreaCode());
@@ -99,7 +114,95 @@
                 memberSuggestPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds());
             }
         }
+        //处理标签为正则方便sql判断
+        if(StringUtils.isNotBlank(memberSuggestPageDto.getTags())){
+            memberSuggestPageDto.setTags(memberSuggestPageDto.getTags().replace(",","|"));
+        }
+        if(memberSuggestPageDto.getSuggestStatus()!=null&&memberSuggestPageDto.getSuggestStatus()!=1){
+            memberSuggestPageDto.setSuggestStatus(0);
+        }
+        //获取返回结果
         List<MgtMemberSuggestPageVo> mgtMemberSuggestPageVoList = memberSuggestMapper.pageMgtMemberSuggest(page, memberSuggestPageDto);
         return mgtMemberSuggestPageVoList;
     }
+
+    /**
+     * @description 平台回复会员建议
+     * @param mgtReplayMemberSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 16:03
+     */
+    @Override
+    public void mgtReplayMemberSuggest(MgtReplayMemberSuggestDto mgtReplayMemberSuggestDto){
+        Long userId = mgtReplayMemberSuggestDto.getUserId();
+        SysUser sysUser = remoteUserService.getSysUser(userId).getData();
+        MemberSuggest memberSuggest = this.getById(mgtReplayMemberSuggestDto.getSuggestId());
+        memberSuggest.setReplayContent(mgtReplayMemberSuggestDto.getReplayContent());
+        memberSuggest.setReplayTime(new Date());
+        memberSuggest.setReplayUserId(userId);
+        memberSuggest.setReplayUserName(sysUser.getNickName());
+        memberSuggest.setReplayFlag(1);
+        String responseTime = DateUtils.formatDuration(memberSuggest.getCreateTime(), memberSuggest.getReplayTime());
+        memberSuggest.setResponseTime(responseTime);
+        this.saveOrUpdate(memberSuggest);
+    }
+
+    /**
+     * @description 获取建议标签列表
+     * @param suggestId
+     * @return List<MgtMemberSuggestTagVo>
+     * @author jqs34
+     * @date 2023/6/11 16:12
+     */
+    @Override
+    public List<MgtMemberSuggestTagVo> listMgtMemberSuggestTag(Long suggestId){
+        MemberSuggest memberSuggest = this.getById(suggestId);
+        String suggestTags = memberSuggest.getSuggestTags();
+        Long[] tagIdLongArr = null;
+        if(StringUtils.isNotBlank(suggestTags)){
+            String[] tagIdArr = suggestTags.split(",");
+            tagIdLongArr = new Long[tagIdArr.length];
+            for (int i = 0; i < tagIdArr.length; i++) {
+                try {
+                    tagIdLongArr[i] = Long.parseLong(tagIdArr[i]);
+                } catch (NumberFormatException e) {
+                    tagIdLongArr[i] = null;
+                }
+            }
+        }
+        List<SysTag> sysTagsList = remoteConfigService.listSysTag(4).getData();
+        //生成返回结果
+        List<MgtMemberSuggestTagVo> mgtMemberSuggestTagVoList = new ArrayList<>();
+        for(SysTag sysTag : sysTagsList){
+            MgtMemberSuggestTagVo mgtMemberSuggestTagVo = new MgtMemberSuggestTagVo();
+            mgtMemberSuggestTagVo.setTagId(sysTag.getTagId());
+            mgtMemberSuggestTagVo.setTagName(sysTag.getTagName());
+            //判断是否选择
+            if(tagIdLongArr!=null && tagIdLongArr.length>0){
+                for(Long tagId : tagIdLongArr){
+                    if(tagId!=null && tagId.equals(sysTag.getTagId())){
+                        mgtMemberSuggestTagVo.setSelectFlag(1);
+                        break;
+                    }
+                }
+            }
+            mgtMemberSuggestTagVoList.add(mgtMemberSuggestTagVo);
+        }
+        return mgtMemberSuggestTagVoList;
+    }
+
+    /**
+     * @description 平台编辑会员建议标签
+     * @param mgtTagMemberSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 16:28
+     */
+    @Override
+    public void mgtEditMemberSuggestTag(MgtTagMemberSuggestDto mgtTagMemberSuggestDto){
+        MemberSuggest memberSuggest = this.getById(mgtTagMemberSuggestDto.getSuggestId());
+        memberSuggest.setSuggestTags(mgtTagMemberSuggestDto.getSuggestTags());
+        this.saveOrUpdate(memberSuggest);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java
index 90611e3..ae4560c 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.member.domain.dto.MgtMemberSuggestPageDto;
+import com.ruoyi.member.domain.dto.MgtReplayMemberSuggestDto;
+import com.ruoyi.member.domain.dto.MgtTagMemberSuggestDto;
 import com.ruoyi.member.domain.pojo.member.MemberSuggest;
 import com.ruoyi.member.domain.vo.AppSuggestPageVo;
 import com.ruoyi.member.domain.vo.MgtMemberSuggestPageVo;
+import com.ruoyi.member.domain.vo.MgtMemberSuggestTagVo;
 import com.ruoyi.system.api.domain.dto.AppSuggestPageDto;
 import com.ruoyi.system.api.domain.dto.AppUserSuggestDto;
 
@@ -31,7 +34,7 @@
     List<AppSuggestPageVo> pageAppUserSuggest(Page page, AppSuggestPageDto appSuggestPageDto);
 
     /**
-     *
+     * 用户建议
      * @param appUserSuggestDto
      */
     void userSuggest(AppUserSuggestDto appUserSuggestDto);
@@ -54,4 +57,31 @@
      * @return  List<MgtMemberSuggestPageVo>
      */
     List<MgtMemberSuggestPageVo> pageMgtMemberSuggest(Page page, MgtMemberSuggestPageDto memberSuggestPageDto);
+
+    /**
+    * @description 平台回复会员建议
+    * @param mgtReplayMemberSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 16:04
+    */
+    void mgtReplayMemberSuggest(MgtReplayMemberSuggestDto mgtReplayMemberSuggestDto);
+
+    /**
+    * @description 获取建议标签列表
+    * @param suggestId
+    * @return List<MgtMemberSuggestTagVo>
+    * @author jqs34
+    * @date 2023/6/11 16:12
+    */
+    List<MgtMemberSuggestTagVo> listMgtMemberSuggestTag(Long suggestId);
+
+    /**
+    * @description 平台编辑会员建议标签
+    * @param mgtTagMemberSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 16:28
+    */
+    void mgtEditMemberSuggestTag(MgtTagMemberSuggestDto mgtTagMemberSuggestDto);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml
index 8864543..ec256b6 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberSuggestMapper.xml
@@ -30,19 +30,54 @@
             tms.suggest_content suggestContent,
             tms.replay_content replayContent,
             tms.shop_replay_content shopReplayContent,
-            CASE WHEN replay_content IS NOT NULL THEN "已回复" WHEN shop_replay_content IS NOT NULL THEN "已回复" ELSE "未回复" END suggestStatus,
+            CASE tms.replay_flag WHEN 1 THEN "已回复" ELSE "未回复" END suggestStatus,
             tms.create_time createTime,
             tms.replay_user_name replayUserName,
             tms.replay_time replayTime,
+            tms.response_time responseTime,
             tms.shop_replay_user_name shopReplayUserName,
             tms.shop_replay_time shopReplayTime,
+            tms.shop_response_time shopResponseTime,
             tms.suggest_tags suggestTags
         FROM
             t_member_suggest tms
         INNER JOIN t_member tm ON tms.create_user_id = tm.user_id
         WHERE del_flag = 0
         <if test="param.keyword!=null and param.keyword !=''">
-
+            AND (tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tms.replay_user_name LIKE CONCAT('%',#{param.keyword},'%') OR tms.shop_replay_user_name LIKE CONCAT('%',#{param.keyword},'%'))
+        </if>
+        <if test="param.createStartTime!=null and param.createStartTime!=''">
+            AND tms.create_time &gt;= #{param.createStartTime}
+        </if>
+        <if test="param.createEndTime!=null and param.createEndTime!=''">
+            AND tms.create_time &lt;= #{param.createEndTime}
+        </if>
+        <if test="param.suggestStatus!=null and param.suggestStatus!=''">
+            AND tms.replay_flag = #{param.suggestStatus}
+        </if>
+        <if test="param.gender!=null and param.gender!=''">
+            AND tm.gender = #{param.gender}
+        </if>
+        <if test="param.tags!=null and param.tags!=''">
+            AND tm.suggest_tags REGEXP #{param.tags}
+        </if>
+        <if test="param.shopReplayStartTime!=null and param.shopReplayStartTime!=''">
+            AND tms.shop_replay_time &gt;= #{param.shopReplayStartTime}
+        </if>
+        <if test="param.shopReplayEndTime!=null and param.shopReplayEndTime!=''">
+            AND tms.shop_replay_time &lt;= #{param.shopReplayEndTime}
+        </if>
+        <if test="param.replayStartTime!=null and param.replayStartTime!=''">
+            AND tms.replay_time &gt;= #{param.replayStartTime}
+        </if>
+        <if test="param.replayEndTime!=null and param.replayEndTime!=''">
+            AND tms.replay_time &lt;= #{param.replayEndTime}
+        </if>
+        <if test="param.suggestType!=null and param.suggestType!=''">
+            AND tms.suggest_type = #{param.suggestType}
+        </if>
+        <if test="param.shopIds!=null and param.shopIds!=''">
+            AND tms.shop_id IN CONCAT('(',#{param.shopIds},')')
         </if>
     </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtMemberController.java
deleted file mode 100644
index 4cc9131..0000000
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtMemberController.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.ruoyi.shop.controller.management;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.shop.domain.dto.MgtMemberTaskPageDto;
-import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo;
-import com.ruoyi.shop.service.task.MemberTaskRecordService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.List;
-
-/**
- * @author jqs34
- * @ClassName MgtMemberController
- * @description: TODO
- * @date 2023年05月31日
- * @version: 1.0
- */
-@Api(value = "管理台用户相关接口", tags = "管理台用户相关接口", description = "管理台用户相关接口")
-@RestController
-@RequestMapping("/mgt/member")
-public class MgtMemberController {
-
-
-    @Resource
-    private MemberTaskRecordService memberTaskRecordService;
-
-    @RequestMapping(value = "/pageMgtMemberFollow", method = RequestMethod.POST)
-    @ApiOperation(value = "平台获取用户跟进列表")
-    public R<Page<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) {
-        Long userId = SecurityUtils.getUserId();
-        mgtMemberTaskPageDto.setUserId(userId);
-        Page<MgtMemberFollowPageVo> page = new Page<>();
-        page.setSize(mgtMemberTaskPageDto.getPageSize());
-        page.setCurrent(mgtMemberTaskPageDto.getPageNum());
-        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(page, mgtMemberTaskPageDto);
-        return R.ok(page.setRecords(mgtMemberFollowPageVoList));
-    }
-}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index 82dec4b..6c405aa 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -4,17 +4,18 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.shop.domain.dto.*;
-import com.ruoyi.shop.domain.vo.MgtShopInfoVo;
-import com.ruoyi.shop.domain.vo.MgtShopPageVo;
-import com.ruoyi.shop.domain.vo.MgtShopProportionPageVo;
-import com.ruoyi.shop.domain.vo.MgtShopTagVo;
+import com.ruoyi.shop.domain.vo.*;
 import com.ruoyi.shop.service.shop.ShopProportionService;
 import com.ruoyi.shop.service.shop.ShopRelTagService;
 import com.ruoyi.shop.service.shop.ShopService;
+import com.ruoyi.shop.service.shop.ShopSuggestService;
 import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
@@ -39,6 +40,9 @@
 
     @Resource
     private ShopProportionService shopProportionService;
+
+    @Resource
+    private ShopSuggestService shopSuggestService;
 
     @RequestMapping(value = "/pageMgtShop", method = RequestMethod.POST)
     @ApiOperation(value = "分页获取商户列表")
@@ -107,6 +111,40 @@
         return R.ok();
     }
 
+    @RequestMapping(value = "/pageMgtShopSuggest", method = RequestMethod.POST)
+    @ApiOperation(value = "平台获取商户建议列表")
+    public R<Page<MgtShopSuggestPageVo>> pageMgtShopSuggest(@RequestBody MgtShopSuggestPageDto mgtShopSuggestPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtShopSuggestPageDto.setUserId(userId);
+        Page<MgtShopSuggestPageVo> page = new Page<>();
+        page.setSize(mgtShopSuggestPageDto.getPageSize());
+        page.setCurrent(mgtShopSuggestPageDto.getPageNum());
+        List<MgtShopSuggestPageVo> mgtShopSuggestPageVoList = shopSuggestService.pageMgtShopSuggest(page,mgtShopSuggestPageDto);
+        return R.ok(page.setRecords(mgtShopSuggestPageVoList));
+    }
 
+    @RequestMapping(value = "/mgtReplayShopSuggest", method = RequestMethod.POST)
+    @ApiOperation(value = "平台回复会员建议")
+    public R mgtReplayShopSuggest(@RequestBody MgtReplayShopSuggestDto mgtReplayShopSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtReplayShopSuggestDto.setUserId(userId);
+        shopSuggestService.mgtReplayShopSuggest(mgtReplayShopSuggestDto);
+        return R.ok();
+    }
 
+    @RequestMapping(value = "/listMgtShopSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "获取商户建议标签")
+    public R<List<MgtShopSuggestTagVo>> listMgtShopSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        List<MgtShopSuggestTagVo> mgtShopSuggestTagVoList = shopSuggestService.listMgtShopSuggestTag(Long.valueOf(mgtBaseGetDto.getId()));
+        return R.ok(mgtShopSuggestTagVoList);
+    }
+
+    @RequestMapping(value = "/mgtEditShopSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "平台编辑会员建议标签")
+    public R mgtEditShopSuggestTag(@RequestBody MgtTagShopSuggestDto mgtTagShopSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtTagShopSuggestDto.setUserId(userId);
+        shopSuggestService.mgtEditShopSuggestTag(mgtTagShopSuggestDto);
+        return R.ok();
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java
index 536d4d5..ef5c37d 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java
@@ -4,10 +4,13 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.shop.domain.dto.MgtFollowShopTaskDto;
+import com.ruoyi.shop.domain.dto.MgtMemberTaskPageDto;
 import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
 import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo;
+import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo;
 import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo;
 import com.ruoyi.shop.service.task.AgencyTaskRecordService;
+import com.ruoyi.shop.service.task.MemberTaskRecordService;
 import com.ruoyi.shop.service.task.ShopTaskRecordService;
 import com.ruoyi.shop.service.task.ShopTaskService;
 import io.swagger.annotations.Api;
@@ -40,6 +43,9 @@
 
     @Resource
     private ShopTaskRecordService shopTaskRecordService;
+
+    @Resource
+    private MemberTaskRecordService memberTaskRecordService;
 
     @RequestMapping(value = "/followShopTask", method = RequestMethod.POST)
     @ApiOperation(value = "商户跟进")
@@ -74,4 +80,15 @@
         return R.ok(page.setRecords(mgtMemberFollowPageVoList));
     }
 
+    @RequestMapping(value = "/pageMgtMemberFollow", method = RequestMethod.POST)
+    @ApiOperation(value = "平台获取用户跟进列表")
+    public R<Page<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtMemberTaskPageDto.setUserId(userId);
+        Page<MgtMemberFollowPageVo> page = new Page<>();
+        page.setSize(mgtMemberTaskPageDto.getPageSize());
+        page.setCurrent(mgtMemberTaskPageDto.getPageNum());
+        List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(page, mgtMemberTaskPageDto);
+        return R.ok(page.setRecords(mgtMemberFollowPageVoList));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtReplayShopSuggestDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtReplayShopSuggestDto.java
new file mode 100644
index 0000000..68eb58f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtReplayShopSuggestDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.shop.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtReplayMemberSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:04
+ */
+@Data
+public class MgtReplayShopSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "平台回复内容")
+    private String replayContent;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopSuggestPageDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopSuggestPageDto.java
new file mode 100644
index 0000000..fbb59cf
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopSuggestPageDto.java
@@ -0,0 +1,42 @@
+package com.ruoyi.shop.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtShopSuggestPageDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:47
+ */
+@Data
+public class MgtShopSuggestPageDto extends MgtPageDto {
+
+
+    @ApiModelProperty(value = "搜索关键词")
+    private String keyword;
+
+    @ApiModelProperty(value = "提交开始时间")
+    private Date createStartTime;
+
+    @ApiModelProperty(value = "提交结束时间")
+    private Date createEndTime;
+
+    @ApiModelProperty(value = "建议状态0未回复1已回复")
+    private Integer suggestStatus;
+
+    @ApiModelProperty(value = "标签 多个,隔开")
+    private String tags;
+
+    @ApiModelProperty(value = "复开始时间")
+    private Date replayStartTime;
+
+    @ApiModelProperty(value = "回复结束时间")
+    private Date replayEndTime;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTagShopSuggestDto.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTagShopSuggestDto.java
new file mode 100644
index 0000000..0aa153f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtTagShopSuggestDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.shop.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtTagShopSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:26
+ */
+@Data
+public class MgtTagShopSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "标签 多个,隔开")
+    private String suggestTags;
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java
index 9ce17f3..61ec3d8 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java
@@ -39,7 +39,7 @@
     @TableField("del_flag")
     private Integer delFlag;
 
-    @TableField("Shop_id")
+    @TableField("shop_id")
     private Long shopId;
     /**
      * 建议内容
@@ -66,6 +66,12 @@
      */
     @TableField("replay_user_id")
     private Long replayUserId;
+
+    /**
+     * 回复人姓名
+     */
+    @TableField("replay_user_name")
+    private String replayUserName;
     /**
      * 回复时间
      */
@@ -73,11 +79,23 @@
     private Date replayTime;
 
     /**
+     * 响应时间
+     */
+    @TableField("response_time")
+    private String responseTime;
+
+    /**
      * 商品标签
      */
     @TableField("suggest_tags")
     private String suggestTags;
 
+    /**
+     * 回复标记
+     */
+    @TableField("replay_flag")
+    private Integer replayFlag;
+
     @Override
     protected Serializable pkVal() {
         return this.suggestId;
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java
new file mode 100644
index 0000000..1495b0b
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java
@@ -0,0 +1,56 @@
+package com.ruoyi.shop.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtShopSuggestPageVo
+ * @description: TODO
+ * @date 2023 2023/6/11 16:48
+ */
+@Data
+public class MgtShopSuggestPageVo {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String shopName;
+
+    @ApiModelProperty(value = "商户类型1.经销商2.代理商")
+    private String shopType;
+
+    @ApiModelProperty("店主姓名")
+    private String shopownerName;
+
+    @ApiModelProperty("店主联系方式")
+    private String shopownerPhone;
+
+    @ApiModelProperty(value = "建议内容")
+    private String suggestContent;
+
+    @ApiModelProperty(value = "回复内容")
+    private String replayContent;
+
+    @ApiModelProperty(value = "建议状态")
+    private String suggestStatus;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ApiModelProperty(value = "回复人姓名")
+    private String replayUserName;
+
+    @ApiModelProperty(value = "回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date replayTime;
+
+    @ApiModelProperty(value = "平台响应时间")
+    private String responseTime;
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestTagVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestTagVo.java
new file mode 100644
index 0000000..b6ab7a5
--- /dev/null
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestTagVo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.shop.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @ClassName MgtShopSuggestTagVo
+ * @description: TODO
+ * @date 2023年04月21日
+ * @version: 1.0
+ */
+@Data
+public class MgtShopSuggestTagVo {
+
+    @ApiModelProperty(value = "标签id")
+    private Long tagId;
+
+    @ApiModelProperty(value = "标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "是否选择0否1是")
+    private Integer selectFlag;
+
+}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java
index e8bc4ec..6595f7a 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.shop.domain.dto.MgtShopSuggestPageDto;
 import com.ruoyi.shop.domain.pojo.shop.ShopSuggest;
 import com.ruoyi.shop.domain.vo.MerShopSuggestVo;
+import com.ruoyi.shop.domain.vo.MgtShopSuggestPageVo;
 import com.ruoyi.system.api.domain.dto.MerPageDto;
 import org.apache.ibatis.annotations.Param;
 
@@ -35,5 +37,13 @@
      */
     void deleteShopSuggestTag(String suggestTag);
 
-
+    /**
+     * @description 平台获取商户建议列表
+     * @param page
+     * @param mgtShopSuggestPageDto
+     * @return List<MgtShopSuggestPageVo>
+     * @author jqs34
+     * @date 2023/6/11 16:56
+     */
+    List<MgtShopSuggestPageVo> pageMgtShopSuggest(Page page, @Param("param")MgtShopSuggestPageDto mgtShopSuggestPageDto);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java
index 27a00be..f0f8f4f 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelTagServiceImpl.java
@@ -2,12 +2,11 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.common.core.utils.uuid.IdUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.shop.domain.pojo.shop.ShopRelTag;
 import com.ruoyi.shop.domain.vo.MgtShopTagVo;
 import com.ruoyi.shop.mapper.shop.ShopRelTagMapper;
 import com.ruoyi.shop.service.shop.ShopRelTagService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.system.api.domain.poji.config.SysTag;
 import com.ruoyi.system.api.service.RemoteConfigService;
 import org.apache.commons.lang3.ArrayUtils;
@@ -16,7 +15,6 @@
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -83,6 +81,7 @@
             }else{
                 mgtShopTagVo.setSelectFlag(0);
             }
+            mgtShopTagVoList.add(mgtShopTagVo);
         }
         return mgtShopTagVoList;
     }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java
index 5351957..b748074 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java
@@ -3,15 +3,27 @@
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.shop.domain.dto.MerShopSuggestDto;
+import com.ruoyi.shop.domain.dto.MgtReplayShopSuggestDto;
+import com.ruoyi.shop.domain.dto.MgtShopSuggestPageDto;
+import com.ruoyi.shop.domain.dto.MgtTagShopSuggestDto;
 import com.ruoyi.shop.domain.pojo.shop.ShopSuggest;
 import com.ruoyi.shop.domain.vo.MerShopSuggestVo;
+import com.ruoyi.shop.domain.vo.MgtShopSuggestPageVo;
+import com.ruoyi.shop.domain.vo.MgtShopSuggestTagVo;
 import com.ruoyi.shop.mapper.shop.ShopSuggestMapper;
 import com.ruoyi.shop.service.shop.ShopSuggestService;
 import com.ruoyi.system.api.domain.dto.MerPageDto;
+import com.ruoyi.system.api.domain.poji.config.SysTag;
+import com.ruoyi.system.api.domain.poji.sys.SysUser;
+import com.ruoyi.system.api.service.RemoteConfigService;
+import com.ruoyi.system.api.service.RemoteUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -28,6 +40,13 @@
 
     @Resource
     private ShopSuggestMapper shopSuggestMapper;
+
+    @Resource
+    private RemoteUserService remoteUserService;
+
+    @Resource
+    private RemoteConfigService remoteConfigService;
+
 
     /**
      *
@@ -52,6 +71,7 @@
         shopSuggest.setShopId(merShopSuggestDto.getShopId());
         shopSuggest.setSuggestContent(merShopSuggestDto.getSuggestContent());
         shopSuggest.setCreateTime(new Date());
+        shopSuggest.setReplayFlag(0);
         this.save(shopSuggest);
     }
 
@@ -64,6 +84,108 @@
      */
     @Override
     public void deleteShopSuggestTag(String suggestTag){
+        shopSuggestMapper.deleteShopSuggestTag(suggestTag);
+    }
 
+    /**
+     * @description 平台获取商户建议列表
+     * @param page
+     * @param mgtShopSuggestPageDto
+     * @return List<MgtShopSuggestPageVo>
+     * @author jqs34
+     * @date 2023/6/11 16:56
+     */
+    @Override
+    public List<MgtShopSuggestPageVo> pageMgtShopSuggest(Page page, MgtShopSuggestPageDto mgtShopSuggestPageDto){
+        //处理标签为正则方便sql判断
+        if(StringUtils.isNotBlank(mgtShopSuggestPageDto.getTags())){
+            mgtShopSuggestPageDto.setTags(mgtShopSuggestPageDto.getTags().replace(",","|"));
+        }
+        if(mgtShopSuggestPageDto.getSuggestStatus()!=null&&mgtShopSuggestPageDto.getSuggestStatus()!=1){
+            mgtShopSuggestPageDto.setSuggestStatus(0);
+        }
+        //获取返回结果
+        List<MgtShopSuggestPageVo> mgtShopSuggestPageVoList = shopSuggestMapper.pageMgtShopSuggest(page, mgtShopSuggestPageDto);
+        return mgtShopSuggestPageVoList;
+    }
+
+    /**
+     * @description 平台回复会员建议
+     * @param mgtReplayShopSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 17:09
+     */
+    @Override
+    public void mgtReplayShopSuggest(MgtReplayShopSuggestDto mgtReplayShopSuggestDto){
+        Long userId = mgtReplayShopSuggestDto.getUserId();
+        SysUser sysUser = remoteUserService.getSysUser(userId).getData();
+        ShopSuggest shopSuggest = this.getById(mgtReplayShopSuggestDto.getSuggestId());
+        shopSuggest.setReplayContent(mgtReplayShopSuggestDto.getReplayContent());
+        shopSuggest.setReplayTime(new Date());
+        shopSuggest.setReplayUserId(userId);
+        shopSuggest.setReplayUserName(sysUser.getNickName());
+        shopSuggest.setReplayFlag(1);
+        String responseTime = DateUtils.formatDuration(shopSuggest.getCreateTime(), shopSuggest.getReplayTime());
+        shopSuggest.setResponseTime(responseTime);
+        this.saveOrUpdate(shopSuggest);
+    }
+
+    /**
+     * @description listMgtShopSuggestTag
+     * @param suggestId
+     * @return List<MgtShopSuggestTagVo>
+     * @author jqs34
+     * @date 2023/6/11 17:29
+     */
+    @Override
+    public List<MgtShopSuggestTagVo> listMgtShopSuggestTag(Long suggestId){
+        ShopSuggest shopSuggest = this.getById(suggestId);
+        String suggestTags = shopSuggest.getSuggestTags();
+        Long[] tagIdLongArr = null;
+        if(StringUtils.isNotBlank(suggestTags)){
+            String[] tagIdArr = suggestTags.split(",");
+            tagIdLongArr = new Long[tagIdArr.length];
+            for (int i = 0; i < tagIdArr.length; i++) {
+                try {
+                    tagIdLongArr[i] = Long.parseLong(tagIdArr[i]);
+                } catch (NumberFormatException e) {
+                    tagIdLongArr[i] = null;
+                }
+            }
+        }
+        List<SysTag> sysTagsList = remoteConfigService.listSysTag(4).getData();
+        //生成返回结果
+        List<MgtShopSuggestTagVo> mgtShopSuggestTagVoList = new ArrayList<>();
+        for(SysTag sysTag : sysTagsList){
+            MgtShopSuggestTagVo mgtShopSuggestTagVo = new MgtShopSuggestTagVo();
+            mgtShopSuggestTagVo.setTagId(sysTag.getTagId());
+            mgtShopSuggestTagVo.setTagName(sysTag.getTagName());
+            //判断是否选择
+            if(tagIdLongArr!=null && tagIdLongArr.length>0){
+                for(Long tagId : tagIdLongArr){
+                    if(tagId!=null && tagId.equals(sysTag.getTagId())){
+                        mgtShopSuggestTagVo.setSelectFlag(1);
+                        break;
+                    }
+                }
+            }
+            mgtShopSuggestTagVoList.add(mgtShopSuggestTagVo);
+        }
+        return mgtShopSuggestTagVoList;
+    }
+
+    /**
+     * @description 平台编辑会员建议标签
+     * @param mgtTagShopSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 17:34
+     */
+    @Override
+    public void mgtEditShopSuggestTag(MgtTagShopSuggestDto mgtTagShopSuggestDto){
+        ShopSuggest shopSuggest = this.getById(mgtTagShopSuggestDto.getSuggestId());
+        shopSuggest.setSuggestTags(mgtTagShopSuggestDto.getSuggestTags());
+        this.saveOrUpdate(shopSuggest);
     }
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java
index 97565e9..c32fb28 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java
@@ -3,8 +3,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.shop.domain.dto.MerShopSuggestDto;
+import com.ruoyi.shop.domain.dto.MgtReplayShopSuggestDto;
+import com.ruoyi.shop.domain.dto.MgtShopSuggestPageDto;
+import com.ruoyi.shop.domain.dto.MgtTagShopSuggestDto;
 import com.ruoyi.shop.domain.pojo.shop.ShopSuggest;
 import com.ruoyi.shop.domain.vo.MerShopSuggestVo;
+import com.ruoyi.shop.domain.vo.MgtShopSuggestPageVo;
+import com.ruoyi.shop.domain.vo.MgtShopSuggestTagVo;
 import com.ruoyi.system.api.domain.dto.MerPageDto;
 
 import java.util.List;
@@ -41,4 +46,41 @@
      * @return  void
      */
     void deleteShopSuggestTag(String suggestTag);
+
+    /**
+    * @description 平台获取商户建议列表
+    * @param page
+    * @param mgtShopSuggestPageDto
+    * @return List<MgtShopSuggestPageVo>
+    * @author jqs34
+    * @date 2023/6/11 16:56
+    */
+    List<MgtShopSuggestPageVo> pageMgtShopSuggest (Page page, MgtShopSuggestPageDto mgtShopSuggestPageDto);
+
+    /**
+    * @description 平台回复会员建议
+    * @param mgtReplayShopSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 17:09
+    */
+    void mgtReplayShopSuggest(MgtReplayShopSuggestDto mgtReplayShopSuggestDto);
+
+    /**
+    * @description 获取商户建议标签
+    * @param suggestId
+    * @return List<MgtShopSuggestTagVo>
+    * @author jqs34
+    * @date 2023/6/11 17:31
+    */
+    List<MgtShopSuggestTagVo> listMgtShopSuggestTag(Long suggestId);
+
+    /**
+    * @description 平台编辑会员建议标签
+    * @param mgtTagShopSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 17:34
+    */
+    void mgtEditShopSuggestTag(MgtTagShopSuggestDto mgtTagShopSuggestDto);
 }
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
index 1e6eeb2..94b7045 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -449,6 +449,9 @@
         shop_id
         FROM t_shop
         WHERE del_flag = 0
+        <if test="param.shopName!=null and param.shopName!=''">
+            AND ts.shop_name LIKE CONCAT('%',#{param.shopName},'%')
+        </if>
         <if test="param.shopProvinceCode!=null and param.shopProvinceCode!=''">
             AND ts.shop_province_code = #{param.shopProvinceCode}
         </if>
diff --git a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml
index 83d279e..f310c5d 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml
+++ b/ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml
@@ -16,4 +16,46 @@
         UPDATE t_shop_suggest SET suggest_tags = TRIM(BOTH ',' FROM REPLACE(CONCAT(',', suggest_tags, ','), CONCAT(',',#{suggestTag},','), ','))
         WHERE FIND_IN_SET(#{suggestTag}, suggest_tags) &gt; 0
     </update>
+    
+    <select id="pageMgtShopSuggest" resultType="com.ruoyi.shop.domain.vo.MgtShopSuggestPageVo">
+        SELECT
+        tss.suggest_id suggestId,
+        ts.shop_name shopName,
+        ts.shop_type shopType,
+        ts.shopowner_name shopownerName,
+        ts.shopowner_phone shopownerPhone,
+        tss.suggest_content suggestContent,
+        tss.replay_content replayContent,
+        CASE tss.replay_flag WHEN 1 THEN "已回复" ELSE "未回复" END suggestStatus,
+        tss.create_time createTime,
+        tss.replay_user_name replayUserName,
+        tss.replay_time replayTime,
+        tss.response_time responseTime,
+        tss.suggest_tags suggestTags
+        FROM
+        t_shop_suggest tss
+        INNER JOIN t_shop ts ON tss.shop_id = ts.shop_id
+        WHERE del_flag = 0
+        <if test="param.keyword!=null and param.keyword !=''">
+            AND (ts.shop_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_name LIKE CONCAT('%',#{param.keyword},'%') OR ts.shopowner_phone LIKE CONCAT('%',#{param.keyword},'%') OR tss.replay_user_name LIKE CONCAT('%',#{param.keyword},'%'))
+        </if>
+        <if test="param.createStartTime!=null and param.createStartTime!=''">
+            AND tss.create_time &gt;= #{param.createStartTime}
+        </if>
+        <if test="param.createEndTime!=null and param.createEndTime!=''">
+            AND tss.create_time &lt;= #{param.createEndTime}
+        </if>
+        <if test="param.suggestStatus!=null">
+            AND tss.replay_flag = #{param.suggestStatus}
+        </if>
+        <if test="param.tags!=null and param.tags!=''">
+            AND tm.suggest_tags REGEXP #{param.tags}
+        </if>
+        <if test="param.replayStartTime!=null and param.replayStartTime!=''">
+            AND tss.replay_time &gt;= #{param.replayStartTime}
+        </if>
+        <if test="param.replayEndTime!=null and param.replayEndTime!=''">
+            AND tss.replay_time &lt;= #{param.replayEndTime}
+        </if>
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
index bff57c4..980057f 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -63,6 +63,7 @@
     @Resource
     private ArticleService articleService;
 
+
     @RequestMapping(value = "/getCustomConfig", method = RequestMethod.POST)
     @ApiOperation(value = "获取单个配置")
     public R<MgtCustomConfigVo> getCustomConfig(@RequestBody MgtCustomConfigDto mgtCustomConfigDto) {
@@ -357,4 +358,6 @@
     }
 
 
+
+
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
new file mode 100644
index 0000000..1f303a2
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
@@ -0,0 +1,75 @@
+package com.ruoyi.system.controller.management;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
+import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto;
+import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto;
+import com.ruoyi.system.domain.dto.MgtTagStaffSuggestDto;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo;
+import com.ruoyi.system.service.config.StaffSuggestService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtStaffController
+ * @description: TODO
+ * @date 2023 2023/6/11 18:36
+ */
+@Api(value = "平台端员工相关接口", tags = "平台端员工相关接口", description = "平台端员工相关接口")
+@RestController
+@RequestMapping("/mgt/staff")
+public class MgtStaffController {
+
+
+    @Resource
+    private StaffSuggestService staffSuggestService;
+
+    @RequestMapping(value = "/pageMgtStaffSuggest", method = RequestMethod.POST)
+    @ApiOperation(value = "平台获取员工建议列表")
+    public R<Page<MgtStaffSuggestPageVo>> pageMgtStaffSuggest(@RequestBody MgtStaffSuggestPageDto mgtStaffSuggestPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtStaffSuggestPageDto.setUserId(userId);
+        Page<MgtStaffSuggestPageVo> page = new Page<>();
+        page.setSize(mgtStaffSuggestPageDto.getPageSize());
+        page.setCurrent(mgtStaffSuggestPageDto.getPageNum());
+        List<MgtStaffSuggestPageVo> mgtShopSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto);
+        return R.ok(page.setRecords(mgtShopSuggestPageVoList));
+    }
+
+    @RequestMapping(value = "/mgtReplayStaffSuggest", method = RequestMethod.POST)
+    @ApiOperation(value = "平台回复会员建议")
+    public R mgtReplayStaffSuggest(@RequestBody MgtReplayStaffSuggestDto mgtReplayStaffSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtReplayStaffSuggestDto.setUserId(userId);
+        staffSuggestService.mgtReplayStaffSuggest(mgtReplayStaffSuggestDto);
+        return R.ok();
+    }
+
+    @RequestMapping(value = "/listMgtStaffSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "获取员工建议标签")
+    public R<List<MgtStaffSuggestTagVo>> listMgtStaffSuggestTag(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        List<MgtStaffSuggestTagVo> mgtStaffSuggestTagVoList= staffSuggestService.listMgtStaffSuggestTag(Long.valueOf(mgtBaseGetDto.getId()));
+        return R.ok(mgtStaffSuggestTagVoList);
+    }
+
+    @RequestMapping(value = "/mgtEditStaffSuggestTag", method = RequestMethod.POST)
+    @ApiOperation(value = "平台编辑会员建议标签")
+    public R mgtEditStaffSuggestTag(@RequestBody MgtTagStaffSuggestDto mgtTagStaffSuggestDto) {
+        Long userId = SecurityUtils.getUserId();
+        mgtTagStaffSuggestDto.setUserId(userId);
+        staffSuggestService.mgtEditStaffSuggestTag(mgtTagStaffSuggestDto);
+        return R.ok();
+    }
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtReplayStaffSuggestDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtReplayStaffSuggestDto.java
new file mode 100644
index 0000000..e323520
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtReplayStaffSuggestDto.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtReplayStaffSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:04
+ */
+@Data
+public class MgtReplayStaffSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "平台回复内容")
+    private String replayContent;
+
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtStaffSuggestPageDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtStaffSuggestPageDto.java
new file mode 100644
index 0000000..1474b8f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtStaffSuggestPageDto.java
@@ -0,0 +1,44 @@
+package com.ruoyi.system.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtStaffSuggestPageDto
+ * @description: TODO
+ * @date 2023 2023/6/11 18:09
+ */
+@Data
+public class MgtStaffSuggestPageDto extends MgtPageDto {
+
+
+    @ApiModelProperty(value = "搜索关键词")
+    private String keyword;
+
+    @ApiModelProperty(value = "部门id")
+    private Long deptId;
+
+    @ApiModelProperty(value = "提交开始时间")
+    private Date createStartTime;
+
+    @ApiModelProperty(value = "提交结束时间")
+    private Date createEndTime;
+
+    @ApiModelProperty(value = "建议状态0未回复1已回复")
+    private Integer suggestStatus;
+
+    @ApiModelProperty(value = "标签 多个,隔开")
+    private String tags;
+
+    @ApiModelProperty(value = "回复开始时间")
+    private Date replayStartTime;
+
+    @ApiModelProperty(value = "回复结束时间")
+    private Date replayEndTime;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagStaffSuggestDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagStaffSuggestDto.java
new file mode 100644
index 0000000..0af6198
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagStaffSuggestDto.java
@@ -0,0 +1,22 @@
+package com.ruoyi.system.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.MgtBaseDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtTagStaffSuggestDto
+ * @description: TODO
+ * @date 2023 2023/6/11 16:26
+ */
+@Data
+public class MgtTagStaffSuggestDto extends MgtBaseDto {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "标签 多个,隔开")
+    private String suggestTags;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/StaffSuggest.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/StaffSuggest.java
index 27fc504..0a802b5 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/StaffSuggest.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/StaffSuggest.java
@@ -62,17 +62,28 @@
      * 回复用户id
      */
     @TableField("replay_user_id")
-    private Integer replayUserId;
+    private Long replayUserId;
+    /**
+     * 回复人姓名
+     */
+    @TableField("replay_user_name")
+    private String replayUserName;
+
     /**
      * 回复时间
      */
     @TableField("replay_time")
     private Date replayTime;
     /**
+     * 响应时间
+     */
+    @TableField("response_time")
+    private String responseTime;
+    /**
      * 商户id
      */
     @TableField("shop_id")
-    private Integer shopId;
+    private Long shopId;
 
     /**
      * 商品标签
@@ -80,6 +91,12 @@
     @TableField("suggest_tags")
     private String suggestTags;
 
+    /**
+     * 回复标记
+     */
+    @TableField("replay_flag")
+    private Integer replayFlag;
+
     @Override
     protected Serializable pkVal() {
         return this.suggestId;
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java
new file mode 100644
index 0000000..ff5649f
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java
@@ -0,0 +1,53 @@
+package com.ruoyi.system.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author jqs34
+ * @version 1.0
+ * @classname MgtStaffSuggestPageVo
+ * @description: TODO
+ * @date 2023 2023/6/11 16:48
+ */
+@Data
+public class MgtStaffSuggestPageVo {
+
+    @ApiModelProperty(value = "建议id")
+    private Long suggestId;
+
+    @ApiModelProperty(value = "员工姓名")
+    private String staffName;
+
+    @ApiModelProperty(value = "部门名称")
+    private String deptName;
+
+    @ApiModelProperty("手机号")
+    private String mobile;
+
+    @ApiModelProperty(value = "建议内容")
+    private String suggestContent;
+
+    @ApiModelProperty(value = "回复内容")
+    private String replayContent;
+
+    @ApiModelProperty(value = "建议状态")
+    private String suggestStatus;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    @ApiModelProperty(value = "回复人姓名")
+    private String replayUserName;
+
+    @ApiModelProperty(value = "回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date replayTime;
+
+    @ApiModelProperty(value = "平台响应时间")
+    private String responseTime;
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestTagVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestTagVo.java
new file mode 100644
index 0000000..7283237
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestTagVo.java
@@ -0,0 +1,25 @@
+package com.ruoyi.system.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author jqs34
+ * @ClassName MgtStaffSuggestTagVo
+ * @description: TODO
+ * @date 2023年04月21日
+ * @version: 1.0
+ */
+@Data
+public class MgtStaffSuggestTagVo {
+
+    @ApiModelProperty(value = "标签id")
+    private Long tagId;
+
+    @ApiModelProperty(value = "标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "是否选择0否1是")
+    private Integer selectFlag;
+
+}
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/StaffSuggestMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/StaffSuggestMapper.java
index 4c767f3..67a107a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/StaffSuggestMapper.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/StaffSuggestMapper.java
@@ -1,7 +1,12 @@
 package com.ruoyi.system.mapper.config;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto;
 import com.ruoyi.system.domain.pojo.config.StaffSuggest;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -21,4 +26,14 @@
      * @return  void
      */
     void deleteStaffSuggestTag(String suggestTag);
+
+    /**
+     * @description 平台获取员工建议列表
+     * @param page
+     * @param mgtStaffSuggestPageDto
+     * @return List<MgtStaffSuggestPageVo>
+     * @author jqs34
+     * @date 2023/6/11 18:26
+     */
+    List<MgtStaffSuggestPageVo> pageMgtStaffSuggest(Page page, MgtStaffSuggestPageDto mgtStaffSuggestPageDto);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java
index dac71c2..55174da 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java
@@ -1,7 +1,15 @@
 package com.ruoyi.system.service.config;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto;
+import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto;
+import com.ruoyi.system.domain.dto.MgtTagStaffSuggestDto;
 import com.ruoyi.system.domain.pojo.config.StaffSuggest;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -21,4 +29,41 @@
      * @return  void
      */
     void deleteStaffSuggestTag(String suggestTag);
+
+    /**
+    * @description 平台获取员工建议列表
+    * @param page
+    * @param mgtStaffSuggestPageDto
+    * @return List<MgtStaffSuggestPageVo>
+    * @author jqs34
+    * @date 2023/6/11 18:26
+    */
+    List<MgtStaffSuggestPageVo> pageMgtStaffSuggest(Page page, MgtStaffSuggestPageDto mgtStaffSuggestPageDto);
+
+    /**
+    * @description 平台回复会员建议
+    * @param mgtReplayStaffSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 18:40
+    */
+    void mgtReplayStaffSuggest(MgtReplayStaffSuggestDto mgtReplayStaffSuggestDto);
+
+    /**
+    * @description 获取员工建议标签
+    * @param suggestId
+    * @return List<MgtStaffSuggestTagVo>
+    * @author jqs34
+    * @date 2023/6/11 18:45
+    */
+    List<MgtStaffSuggestTagVo> listMgtStaffSuggestTag(Long suggestId);
+
+    /**
+    * @description 平台编辑会员建议标签
+    * @param mgtTagStaffSuggestDto
+    * @return void
+    * @author jqs34
+    * @date 2023/6/11 18:49
+    */
+    void mgtEditStaffSuggestTag(MgtTagStaffSuggestDto mgtTagStaffSuggestDto);
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java
index 10f42ff..3f52807 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java
@@ -1,12 +1,27 @@
 package com.ruoyi.system.service.impl.config;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.system.api.domain.poji.config.SysTag;
+import com.ruoyi.system.api.domain.poji.sys.SysUser;
+import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto;
+import com.ruoyi.system.domain.dto.MgtStaffSuggestPageDto;
+import com.ruoyi.system.domain.dto.MgtTagStaffSuggestDto;
 import com.ruoyi.system.domain.pojo.config.StaffSuggest;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo;
+import com.ruoyi.system.domain.vo.MgtStaffSuggestTagVo;
 import com.ruoyi.system.mapper.config.StaffSuggestMapper;
 import com.ruoyi.system.service.config.StaffSuggestService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.service.config.SysTagService;
+import com.ruoyi.system.service.sys.ISysUserService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -22,6 +37,12 @@
     @Resource
     private StaffSuggestMapper staffSuggestMapper;
 
+    @Resource
+    private ISysUserService sysUserService;
+
+    @Resource
+    private SysTagService sysTagService;
+
     /**
      * @description  删除员工建议标签
      * @author  jqs
@@ -31,6 +52,109 @@
      */
     @Override
     public void deleteStaffSuggestTag(String suggestTag){
+        staffSuggestMapper.deleteStaffSuggestTag(suggestTag);
+    }
 
+
+    /**
+     * @description 平台获取员工建议列表
+     * @param page
+     * @param mgtStaffSuggestPageDto
+     * @return List<MgtStaffSuggestPageVo>
+     * @author jqs34
+     * @date 2023/6/11 18:26
+     */
+    @Override
+    public List<MgtStaffSuggestPageVo> pageMgtStaffSuggest(Page page, MgtStaffSuggestPageDto mgtStaffSuggestPageDto){
+        //处理标签为正则方便sql判断
+        if(StringUtils.isNotBlank(mgtStaffSuggestPageDto.getTags())){
+            mgtStaffSuggestPageDto.setTags(mgtStaffSuggestPageDto.getTags().replace(",","|"));
+        }
+        if(mgtStaffSuggestPageDto.getSuggestStatus()!=null&&mgtStaffSuggestPageDto.getSuggestStatus()!=1){
+            mgtStaffSuggestPageDto.setSuggestStatus(0);
+        }
+        //获取返回结果
+        List<MgtStaffSuggestPageVo> mgtStaffSuggestPageVoList = staffSuggestMapper.pageMgtStaffSuggest(page, mgtStaffSuggestPageDto);
+        return mgtStaffSuggestPageVoList;
+    }
+
+    /**
+     * @description 平台回复会员建议
+     * @param mgtReplayStaffSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 18:39
+     */
+    @Override
+    public void mgtReplayStaffSuggest(MgtReplayStaffSuggestDto mgtReplayStaffSuggestDto){
+        Long userId = mgtReplayStaffSuggestDto.getUserId();
+        SysUser sysUser = sysUserService.getById(userId);
+        StaffSuggest staffSuggest = this.getById(mgtReplayStaffSuggestDto.getSuggestId());
+        staffSuggest.setReplayContent(mgtReplayStaffSuggestDto.getReplayContent());
+        staffSuggest.setReplayTime(new Date());
+        staffSuggest.setReplayUserId(userId);
+        staffSuggest.setReplayUserName(sysUser.getNickName());
+        staffSuggest.setReplayFlag(1);
+        String responseTime = DateUtils.formatDuration(staffSuggest.getCreateTime(), staffSuggest.getReplayTime());
+        staffSuggest.setResponseTime(responseTime);
+        this.saveOrUpdate(staffSuggest);
+    }
+
+    /**
+     * @description 获取员工建议标签
+     * @param suggestId
+     * @return List<MgtStaffSuggestTagVo>
+     * @author jqs34
+     * @date 2023/6/11 18:44
+     */
+    @Override
+    public List<MgtStaffSuggestTagVo> listMgtStaffSuggestTag(Long suggestId){
+        StaffSuggest staffSuggest = this.getById(suggestId);
+        String suggestTags = staffSuggest.getSuggestTags();
+        Long[] tagIdLongArr = null;
+        if(StringUtils.isNotBlank(suggestTags)){
+            String[] tagIdArr = suggestTags.split(",");
+            tagIdLongArr = new Long[tagIdArr.length];
+            for (int i = 0; i < tagIdArr.length; i++) {
+                try {
+                    tagIdLongArr[i] = Long.parseLong(tagIdArr[i]);
+                } catch (NumberFormatException e) {
+                    tagIdLongArr[i] = null;
+                }
+            }
+        }
+        List<SysTag> sysTagsList = sysTagService.listByType(4);
+        //生成返回结果
+        List<MgtStaffSuggestTagVo> mgtStaffSuggestTagVoList = new ArrayList<>();
+        for(SysTag sysTag : sysTagsList){
+            MgtStaffSuggestTagVo mgtStaffSuggestTagVo = new MgtStaffSuggestTagVo();
+            mgtStaffSuggestTagVo.setTagId(sysTag.getTagId());
+            mgtStaffSuggestTagVo.setTagName(sysTag.getTagName());
+            //判断是否选择
+            if(tagIdLongArr!=null && tagIdLongArr.length>0){
+                for(Long tagId : tagIdLongArr){
+                    if(tagId!=null && tagId.equals(sysTag.getTagId())){
+                        mgtStaffSuggestTagVo.setSelectFlag(1);
+                        break;
+                    }
+                }
+            }
+            mgtStaffSuggestTagVoList.add(mgtStaffSuggestTagVo);
+        }
+        return mgtStaffSuggestTagVoList;
+    }
+
+    /**
+     * @description 平台编辑会员建议标签
+     * @param mgtTagStaffSuggestDto
+     * @return void
+     * @author jqs34
+     * @date 2023/6/11 18:47
+     */
+    @Override
+    public void mgtEditStaffSuggestTag(MgtTagStaffSuggestDto mgtTagStaffSuggestDto){
+        StaffSuggest staffSuggest = this.getById(mgtTagStaffSuggestDto.getSuggestId());
+        staffSuggest.setSuggestTags(mgtTagStaffSuggestDto.getSuggestTags());
+        this.saveOrUpdate(staffSuggest);
     }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/StaffSuggestMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/StaffSuggestMapper.xml
index eb872a5..5d5a72a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/StaffSuggestMapper.xml
+++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/StaffSuggestMapper.xml
@@ -8,5 +8,48 @@
         WHERE FIND_IN_SET(#{suggestTag}, suggest_tags) &gt; 0
     </update>
 
-
+    <select id="pageMgtStaffSuggest" resultType="com.ruoyi.system.domain.vo.MgtStaffSuggestPageVo">
+        SELECT
+        tss.suggest_id suggestId,
+        su.nick_name staffName,
+        sd.dept_name deptName,
+        su.phonenumber mobile,
+        tss.suggest_content suggestContent,
+        tss.replay_content replayContent,
+        CASE tss.replay_flag WHEN 1 THEN "已回复" ELSE "未回复" END suggestStatus,
+        tss.create_time createTime,
+        tss.replay_user_name replayUserName,
+        tss.replay_time replayTime,
+        tss.response_time responseTime,
+        tss.suggest_tags suggestTags
+        FROM
+        t_staff_suggest tss
+        INNER JOIN sys_user su ON su.user_id = tss.create_user_id
+        LEFT JOIN sys_dept sd ON sd.dept_id = su.dept_id
+        WHERE del_flag = 0
+        <if test="param.keyword!=null and param.keyword !=''">
+            AND (su.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR su.phonenumber LIKE CONCAT('%',#{param.keyword},'%') OR tss.replay_user_name LIKE CONCAT('%',#{param.keyword},'%'))
+        </if>
+        <if test="param.deptId!=null and param.deptId!=''">
+            AND su.dept_id = #{param.deptId}
+        </if>
+        <if test="param.createStartTime!=null and param.createStartTime!=''">
+            AND tss.create_time &gt;= #{param.createStartTime}
+        </if>
+        <if test="param.createEndTime!=null and param.createEndTime!=''">
+            AND tss.create_time &lt;= #{param.createEndTime}
+        </if>
+        <if test="param.suggestStatus!=null">
+            AND tss.replay_flag = #{param.suggestStatus}
+        </if>
+        <if test="param.tags!=null and param.tags!=''">
+            AND tm.suggest_tags REGEXP #{param.tags}
+        </if>
+        <if test="param.replayStartTime!=null and param.replayStartTime!=''">
+            AND tss.replay_time &gt;= #{param.replayStartTime}
+        </if>
+        <if test="param.replayEndTime!=null and param.replayEndTime!=''">
+            AND tss.replay_time &lt;= #{param.replayEndTime}
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.7.1