Pu Zhibing
2025-04-01 8444084e6aa11efa23287e7f82474ac22378a5c4
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java
@@ -1,12 +1,31 @@
package com.ruoyi.system.service.impl.config;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.dto.StaffPageDto;
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.dto.StaffUseSuggestDto;
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.domain.vo.StaffSuggestPageVo;
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 +41,12 @@
    @Resource
    private StaffSuggestMapper staffSuggestMapper;
    @Resource
    private ISysUserService sysUserService;
    @Resource
    private SysTagService sysTagService;
    /**
     * @description  删除员工建议标签
     * @author  jqs
@@ -31,6 +56,155 @@
     */
    @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.selectUserById(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);
        long responseTimestamp = DateUtils.diffTime(staffSuggest.getCreateTime(), staffSuggest.getReplayTime());
        staffSuggest.setResponseTimestamp(responseTimestamp);
        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);
    }
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    @Override
    public Integer getUnReplaySuggestVo(){
        LambdaQueryWrapper<StaffSuggest> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StaffSuggest::getDelFlag,0);
        queryWrapper.eq(StaffSuggest::getReplayFlag,0);
        return this.count(queryWrapper);
    }
    /**
     * @description 员工发起建议
     * @param staffUseSuggestDto
     * @return void
     * @author jqs34
     * @date 2023/7/16 12:18
     */
    @Override
    public void staffSuggest(StaffUseSuggestDto staffUseSuggestDto){
        StaffSuggest staffSuggest = new StaffSuggest();
        staffSuggest.setDelFlag(0);
        staffSuggest.setSuggestContent(staffUseSuggestDto.getSuggestContent());
        staffSuggest.setCreateTime(new Date());
        staffSuggest.setCreateUserId(staffUseSuggestDto.getUserId());
        this.saveOrUpdate(staffSuggest);
    }
    /**
     * @description 分页获取员工建议
     * @param page
     * @return List<StaffSuggestPageVo>
     * @author jqs34
     * @date 2023/7/16 12:26
     */
    @Override
    public List<StaffSuggestPageVo> pageStaffShopSuggest(Page page, StaffPageDto staffPageDto){
        return staffSuggestMapper.pageStaffShopSuggest(page, staffPageDto);
    }
}