From c93e76c57a98e35abbf62d2f514d9ba51efd3243 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 21 八月 2023 19:03:55 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 201 insertions(+), 3 deletions(-) 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 612a3bc..88e9684 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 @@ -1,19 +1,39 @@ 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.MemberService; 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.MgtBaseBathDto; +import com.ruoyi.system.api.domain.dto.MgtShopIdByCodeDto; +import com.ruoyi.system.api.domain.poji.config.SysTag; +import com.ruoyi.system.api.domain.poji.member.Member; +import com.ruoyi.system.api.domain.poji.sys.SysUser; +import com.ruoyi.system.api.domain.vo.MgtShopIdByCodeVo; +import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; +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.Date; -import java.util.List; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** * <p> @@ -29,6 +49,19 @@ @Resource private MemberSuggestMapper memberSuggestMapper; + + @Resource + private RemoteShopService remoteShopService; + + @Resource + private RemoteUserService remoteUserService; + + @Resource + private RemoteConfigService remoteConfigService; + + @Resource + private MemberService memberService; + /** * * @param page @@ -41,7 +74,7 @@ } /** - * + * 用户建议 * @param appUserSuggestDto */ @Override @@ -52,6 +85,171 @@ memberSuggest.setSuggestContent(appUserSuggestDto.getSuggestContent()); memberSuggest.setCreateTime(new Date()); memberSuggest.setSuggestType(appUserSuggestDto.getSuggestType()); + if(appUserSuggestDto.getSuggestType()==2){ + Member member = memberService.getByUserId(appUserSuggestDto.getUserId()); + memberSuggest.setShopId(member.getRelationShopId()); + } + 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 + List<MgtMemberSuggestPageVo> mgtMemberSuggestPageVoList = new ArrayList<>(); + 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(); + 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); + } + //获取返回结果 + mgtMemberSuggestPageVoList = memberSuggestMapper.pageMgtMemberSuggest(page, memberSuggestPageDto); + if(mgtMemberSuggestPageVoList!=null&&!mgtMemberSuggestPageVoList.isEmpty()){ + HashSet<Long> shopIdSet = new HashSet<>(); + for(MgtMemberSuggestPageVo mgtMemberSuggestPageVo : mgtMemberSuggestPageVoList){ + if(mgtMemberSuggestPageVo.getShopId()!=null){ + shopIdSet.add(mgtMemberSuggestPageVo.getShopId()); + } + } + String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); + MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); + mgtBaseBathDto.setIds(shopJoinedString); + List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData(); + Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() + .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); + for(MgtMemberSuggestPageVo mgtMemberSuggestPageVo : mgtMemberSuggestPageVoList){ + if(mgtMemberSuggestPageVo.getShopId()!=null){ + mgtMemberSuggestPageVo.setShopName(shopMap.get(mgtMemberSuggestPageVo.getShopId()).getShopName()); + } + } + } + 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); + long responseTimestamp = DateUtils.diffTime(memberSuggest.getCreateTime(), memberSuggest.getReplayTime()); + memberSuggest.setResponseTimestamp(responseTimestamp); + 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); + } } -- Gitblit v1.7.1