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>
|
* 员工建议 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-05-25
|
*/
|
@Service
|
public class StaffSuggestServiceImpl extends ServiceImpl<StaffSuggestMapper, StaffSuggest> implements StaffSuggestService {
|
|
@Resource
|
private StaffSuggestMapper staffSuggestMapper;
|
|
@Resource
|
private ISysUserService sysUserService;
|
|
@Resource
|
private SysTagService sysTagService;
|
|
/**
|
* @description 删除员工建议标签
|
* @author jqs
|
* @date 2023/6/9 10:24
|
* @param suggestTag
|
* @return void
|
*/
|
@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);
|
}
|
}
|