package com.ruoyi.member.service.impl.member;
|
|
|
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.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;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-05-12
|
*/
|
@Service
|
public class MemberSuggestServiceImpl extends ServiceImpl<MemberSuggestMapper, MemberSuggest> implements MemberSuggestService {
|
|
|
@Resource
|
private MemberSuggestMapper memberSuggestMapper;
|
|
@Resource
|
private RemoteShopService remoteShopService;
|
|
@Resource
|
private RemoteUserService remoteUserService;
|
|
@Resource
|
private RemoteConfigService remoteConfigService;
|
|
/**
|
*
|
* @param page
|
* @param appSuggestPageDto
|
* @return
|
*/
|
@Override
|
public List<AppSuggestPageVo> pageAppUserSuggest(Page page, AppSuggestPageDto appSuggestPageDto){
|
return memberSuggestMapper.pageAppUserSuggest(page, appSuggestPageDto);
|
}
|
|
/**
|
* 用户建议
|
* @param appUserSuggestDto
|
*/
|
@Override
|
public void userSuggest(AppUserSuggestDto appUserSuggestDto){
|
MemberSuggest memberSuggest = new MemberSuggest();
|
memberSuggest.setDelFlag(0);
|
memberSuggest.setCreateUserId(appUserSuggestDto.getUserId());
|
memberSuggest.setSuggestContent(appUserSuggestDto.getSuggestContent());
|
memberSuggest.setCreateTime(new Date());
|
memberSuggest.setSuggestType(appUserSuggestDto.getSuggestType());
|
memberSuggest.setReplayFlag(0);
|
this.saveOrUpdate(memberSuggest);
|
}
|
|
/**
|
* @description
|
* @author jqs
|
* @date 2023/6/9 10:02
|
* @param suggestTag
|
* @return void
|
*/
|
@Override
|
public void deleteMemberSuggestTag(String suggestTag){
|
memberSuggestMapper.deleteMemberSuggestTag(suggestTag);
|
}
|
|
/**
|
* @description 分页获取用户建议
|
* @author jqs
|
* @date 2023/6/9 17:26
|
* @param memberSuggestPageDto
|
* @return List<MgtMemberSuggestPageVo>
|
*/
|
@Override
|
public List<MgtMemberSuggestPageVo> pageMgtMemberSuggest(Page page,MgtMemberSuggestPageDto memberSuggestPageDto){
|
//如果区域代码不为null获取对应的商户id
|
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());
|
MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData();
|
if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){
|
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);
|
}
|
|
/**
|
* @description 获取会员未回复建议数量
|
* @author jqs
|
* @date 2023/7/5 12:46
|
* @param
|
* @return Integer
|
*/
|
@Override
|
public Integer getUnReplaySuggestVo(){
|
LambdaQueryWrapper<MemberSuggest> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(MemberSuggest::getDelFlag,0);
|
queryWrapper.eq(MemberSuggest::getReplayFlag,0);
|
return this.count(queryWrapper);
|
}
|
}
|