jiangqs
2023-09-28 bdd9af51204d2108e2eaf4202310d2c24edea8b5
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java
@@ -1,20 +1,30 @@
package com.ruoyi.shop.service.impl.task;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.shop.domain.dto.FileDto;
import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto;
import com.ruoyi.shop.domain.dto.StaffShopTaskPageDto;
import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord;
import com.ruoyi.shop.domain.pojo.task.TaskFile;
import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.StaffAgencyTaskRecordPageVo;
import com.ruoyi.shop.domain.vo.StaffMyShopTaskRecordPageVo;
import com.ruoyi.shop.mapper.task.ShopTaskRecordMapper;
import com.ruoyi.shop.service.task.ShopTaskRecordService;
import com.ruoyi.shop.service.task.TaskFileService;
import com.ruoyi.system.api.domain.poji.sys.SysStaff;
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.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -35,7 +45,7 @@
    private TaskFileService taskFileService;
    @Resource
    private RemoteUserService remoteUserService;
    private RemoteConfigService remoteConfigService;
    /**
     * 平台分页获取平台跟进任务
@@ -47,30 +57,62 @@
        if(mgtShopTaskRecordPageVoList!=null&&!mgtShopTaskRecordPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
            List<String> picture = new ArrayList<>();
            List<String> video = new ArrayList<>();
            List<String> audio = new ArrayList<>();
            List<FileDto> picture = new ArrayList<>();
            List<FileDto> video = new ArrayList<>();
            List<FileDto> audio = new ArrayList<>();
            Long userId;
            SysUser sysUser;
            SysStaff sysStaff;
            HashSet<Long> userIdSet = new HashSet<>();
            for(MgtShopTaskRecordPageVo mgtShopTaskRecordPageVo : mgtShopTaskRecordPageVoList){
                userIdSet.add(mgtShopTaskRecordPageVo.getUserId());
            }
            List<Long> useIdList = new ArrayList<>(userIdSet);
            List<SysStaff> sysStaffList = remoteConfigService.listSysStaffByIds(useIdList).getData();
            Map<Long,SysStaff> sysStaffMap = sysStaffList.stream()
                    .collect(Collectors.toMap(SysStaff::getUserId, Function.identity()));
            for(MgtShopTaskRecordPageVo mgtShopTaskRecordPageVo : mgtShopTaskRecordPageVoList){
                //获取任务用户信息
                userId = mgtShopTaskRecordPageVo.getUserId();
                sysUser = remoteUserService.getSysUser(userId).getData();
                mgtShopTaskRecordPageVo.setUserName(sysUser.getNickName());
                mgtShopTaskRecordPageVo.setUserPicture(sysUser.getAvatar());
                sysStaff = sysStaffMap.get(userId);
                if(sysStaff!=null){
                    mgtShopTaskRecordPageVo.setUserName(sysStaff.getStaffName());
                    mgtShopTaskRecordPageVo.setUserPicture(sysStaff.getStaffAvatar());
                    mgtShopTaskRecordPageVo.setUserPosition(sysStaff.getStaffPost());
                }
                //获取任务详情文件
                followId = mgtShopTaskRecordPageVo.getFollowId();
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    picture = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList());
                    picture = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    video = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList());
                    video = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    audio = taskFileList.stream().map(k->k.getFileUrl()).collect(Collectors.toList());
                    audio = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                mgtShopTaskRecordPageVo.setPicture(picture);
                mgtShopTaskRecordPageVo.setVideo(video);
@@ -80,6 +122,161 @@
        return mgtShopTaskRecordPageVoList;
    }
    /**
     * @description  员工端分页获取我的跟进任务记录列表
     * @author  jqs
     * @date    2023/7/14 19:40
     * @param page
     * @param staffShopTaskPageDto
     * @return  List<StaffMyShopTaskRecordPageVo>
     */
    @Override
    public List<StaffMyShopTaskRecordPageVo> pageStaffMyShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto){
        List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList = shopTaskRecordMapper.pageStaffMyShopTaskRecord(page, staffShopTaskPageDto);
        if(myShopTaskRecordPageVoList!=null&&!myShopTaskRecordPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
            List<FileDto> picture = new ArrayList<>();
            List<FileDto> video = new ArrayList<>();
            List<FileDto> audio = new ArrayList<>();
            Long userId;
            SysStaff sysStaff;
            HashSet<Long> userIdSet = new HashSet<>();
            for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){
                userIdSet.add(staffMyShopTaskRecordPageVo.getUserId());
            }
            List<Long> useIdList = new ArrayList<>(userIdSet);
            List<SysStaff> sysStaffList = remoteConfigService.listSysStaffByIds(useIdList).getData();
            Map<Long,SysStaff> sysStaffMap = sysStaffList.stream()
                    .collect(Collectors.toMap(SysStaff::getUserId, Function.identity()));
            for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){
                //获取任务用户信息
                userId = staffMyShopTaskRecordPageVo.getUserId();
                sysStaff = sysStaffMap.get(userId);
                if(sysStaff!=null){
                    staffMyShopTaskRecordPageVo.setUserName(sysStaff.getStaffName());
                    staffMyShopTaskRecordPageVo.setUserPicture(sysStaff.getStaffAvatar());
                    staffMyShopTaskRecordPageVo.setUserPosition(sysStaff.getStaffPost());
                }
                //获取任务详情文件
                followId = staffMyShopTaskRecordPageVo.getFollowId();
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    picture = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    video = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    audio = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                staffMyShopTaskRecordPageVo.setPicture(picture);
                staffMyShopTaskRecordPageVo.setVideo(video);
                staffMyShopTaskRecordPageVo.setAudio(audio);
            }
        }
        return myShopTaskRecordPageVoList;
    }
    /**
     * @description  员工端分页获取商户跟进任务记录列表
     * @author  jqs
     * @date    2023/7/15 17:05
     * @param page
     * @param staffShopTaskPageDto
     * @return  List<StaffMyShopTaskRecordPageVo>
     */
    @Override
    public List<StaffMyShopTaskRecordPageVo> pageStaffShopTaskRecord(Page page, StaffShopTaskPageDto staffShopTaskPageDto){
        List<StaffMyShopTaskRecordPageVo> myShopTaskRecordPageVoList = shopTaskRecordMapper.pageStaffShopTaskRecord(page, staffShopTaskPageDto);
        if(myShopTaskRecordPageVoList!=null&&!myShopTaskRecordPageVoList.isEmpty()){
            Long followId;
            List<TaskFile> taskFileList;
            List<FileDto> picture = new ArrayList<>();
            List<FileDto> video = new ArrayList<>();
            List<FileDto> audio = new ArrayList<>();
            Long userId;
            SysStaff sysStaff;
            HashSet<Long> userIdSet = new HashSet<>();
            for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){
                userIdSet.add(staffMyShopTaskRecordPageVo.getUserId());
            }
            List<Long> useIdList = new ArrayList<>(userIdSet);
            List<SysStaff> sysStaffList = remoteConfigService.listSysStaffByIds(useIdList).getData();
            Map<Long,SysStaff> sysStaffMap = sysStaffList.stream()
                    .collect(Collectors.toMap(SysStaff::getUserId, Function.identity()));
            for(StaffMyShopTaskRecordPageVo staffMyShopTaskRecordPageVo : myShopTaskRecordPageVoList){
                //获取任务用户信息
                userId = staffMyShopTaskRecordPageVo.getUserId();
                sysStaff = sysStaffMap.get(userId);
                if(sysStaff!=null){
                    staffMyShopTaskRecordPageVo.setUserName(sysStaff.getStaffName());
                    staffMyShopTaskRecordPageVo.setUserPicture(sysStaff.getStaffAvatar());
                    staffMyShopTaskRecordPageVo.setUserPosition(sysStaff.getStaffPost());
                }
                //获取任务详情文件
                followId = staffMyShopTaskRecordPageVo.getFollowId();
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,1);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    picture = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,2);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    video = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                taskFileList = taskFileService.listByFollowIdAndFollowType(followId,3);
                if(taskFileList!=null&&!taskFileList.isEmpty()){
                    audio = taskFileList.stream()
                            .map(taskFile -> {
                                FileDto fileDto = new FileDto();
                                fileDto.setFileName(taskFile.getFileName());
                                fileDto.setFileUrl(taskFile.getFileUrl());
                                return fileDto;
                            })
                            .collect(Collectors.toList());
                }
                staffMyShopTaskRecordPageVo.setPicture(picture);
                staffMyShopTaskRecordPageVo.setVideo(video);
                staffMyShopTaskRecordPageVo.setAudio(audio);
            }
        }
        return myShopTaskRecordPageVoList;
    }
}