From 0774ea976b6aa86a8a7de334fa24fbd7524295d5 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 26 一月 2024 11:57:11 +0800
Subject: [PATCH] 看板统计

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 153 insertions(+), 1 deletions(-)

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 024979d..c9df5b0 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
@@ -1,17 +1,30 @@
 package com.ruoyi.shop.service.impl.shop;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 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;
 
@@ -29,6 +42,13 @@
     @Resource
     private ShopSuggestMapper shopSuggestMapper;
 
+    @Resource
+    private RemoteUserService remoteUserService;
+
+    @Resource
+    private RemoteConfigService remoteConfigService;
+
+
     /**
      *
      * @param page
@@ -41,7 +61,7 @@
     }
 
     /**
-     *
+     * 建议
      * @param merShopSuggestDto
      */
     @Override
@@ -52,6 +72,138 @@
         shopSuggest.setShopId(merShopSuggestDto.getShopId());
         shopSuggest.setSuggestContent(merShopSuggestDto.getSuggestContent());
         shopSuggest.setCreateTime(new Date());
+        shopSuggest.setReplayFlag(0);
         this.save(shopSuggest);
     }
+
+    /**
+     * @description  删除商户建议标签
+     * @author  jqs
+     * @date    2023/6/9 10:18
+     * @param suggestTag
+     * @return  void
+     */
+    @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);
+        long responseTimestamp = DateUtils.diffTime(shopSuggest.getCreateTime(), shopSuggest.getReplayTime());
+        shopSuggest.setResponseTimestamp(responseTimestamp);
+        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);
+    }
+
+    /**
+     * @description  获取会员未回复建议数量
+     * @author  jqs
+     * @date    2023/7/5 12:46
+     * @param
+     * @return  Integer
+     */
+    @Override
+    public Integer getUnReplaySuggestVo(){
+        LambdaQueryWrapper<ShopSuggest> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ShopSuggest::getDelFlag,0);
+        queryWrapper.eq(ShopSuggest::getReplayFlag,0);
+        return this.count(queryWrapper);
+    }
 }

--
Gitblit v1.7.1