bug
jiangqs
2023-08-25 156e141e55a8abf486157d1fa89d25e23f4a06a3
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskServiceImpl.java
@@ -4,9 +4,7 @@
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.shop.domain.dto.MerCreateMemberTaskDto;
import com.ruoyi.shop.domain.dto.MerFollowMemberTaskDto;
import com.ruoyi.shop.domain.dto.MerMemberTaskPageDto;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.pojo.task.MemberTask;
import com.ruoyi.shop.domain.pojo.task.MemberTaskRecord;
import com.ruoyi.shop.domain.pojo.task.TaskFile;
@@ -16,11 +14,13 @@
import com.ruoyi.shop.service.task.MemberTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.shop.service.task.TaskFileService;
import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto;
import com.ruoyi.system.api.domain.vo.MemberTaskSimpleVo;
import com.ruoyi.system.api.service.RemoteMemberService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -56,16 +56,13 @@
     */
    @Override
    public List<MerMemberTaskPageVo> pageMerMemberTask(Page page, MerMemberTaskPageDto merMemberTaskPageDto){
        String today = DateUtils.parseDateToStr("YYYY-MM-DD",new Date());
        List<MerMemberTaskPageVo> merMemberTaskPageVoList = memberTaskMapper.pageMerMemberTask(page, merMemberTaskPageDto);
        if(merMemberTaskPageVoList!=null&&!merMemberTaskPageVoList.isEmpty()){
            String taskDate;
        List<String> dealContent = new ArrayList<>();
        if(merMemberTaskPageVoList!=null&&!merMemberTaskPageVoList.isEmpty() ){
            for(MerMemberTaskPageVo merMemberTaskPageVo : merMemberTaskPageVoList){
                taskDate = merMemberTaskPageVo.getTaskDate();
                if(today.equals(taskDate)){
                    merMemberTaskPageVo.setTodayFlag(1);
                }else{
                    merMemberTaskPageVo.setTodayFlag(0);
                dealContent = memberTaskMapper.listDealContent(merMemberTaskPageVo.getTaskId());
                if(dealContent!=null&&!dealContent.isEmpty()){
                    merMemberTaskPageVo.setDealContent(dealContent);
                }
            }
        }
@@ -80,76 +77,132 @@
    public void createMemberTask(MerCreateMemberTaskDto merCreateMemberTaskDto){
        MemberTask memberTask = new MemberTask();
        String taskId = IdUtils.simpleUUID();
        String nowTimeStr = DateUtils.getDate();
        memberTask.setTaskId(taskId);
        memberTask.setDelFlag(0);
        memberTask.setTaskStatus(0);
        int i = merCreateMemberTaskDto.getTaskDate().compareTo(nowTimeStr);
        if(i>0){
            memberTask.setTaskStatus(0);
        }else if(i==0){
            memberTask.setTaskStatus(1);
        }else{
            memberTask.setTaskStatus(3);
        }
        memberTask.setEmergencyState(merCreateMemberTaskDto.getEmergencyState());
        memberTask.setShopId(merCreateMemberTaskDto.getShopId());
        memberTask.setUserId(merCreateMemberTaskDto.getMemberUserId());
        memberTask.setTaskDate(merCreateMemberTaskDto.getTaskDate());
        memberTask.setTaskContent(merCreateMemberTaskDto.getTaskContent());
        memberTask.setCreateTime(new Date());
        this.saveOrUpdate(memberTask);
        MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
        memberTotalChangeDto.setUserId(merCreateMemberTaskDto.getMemberUserId());
        memberTotalChangeDto.setNextTaskTime(merCreateMemberTaskDto.getTaskDate());
        remoteMemberService.changeMemberTotal(memberTotalChangeDto);
    }
    /**
     *
     * @description  会员任务跟进
     * @author  jqs
     * @date    2023/7/4 17:16
     * @param merFollowMemberTaskDto
     * @return  void
     */
    @Override
    public void followMemberTask(MerFollowMemberTaskDto merFollowMemberTaskDto){
        MemberTaskRecord memberTaskRecord = new MemberTaskRecord();
    public void followMemberTask(MerFollowMemberTaskDto merFollowMemberTaskDto) {
        // 创建会员任务记录对象
        MemberTaskRecord memberTaskRecord;
        // 获取旧的会员任务
        MemberTask oldMemberTask = this.getById(merFollowMemberTaskDto.getTaskId());
        memberTaskRecord.setTaskId(merFollowMemberTaskDto.getTaskId());
        memberTaskRecord.setDelFlag(0);
        memberTaskRecord.setUserId(merFollowMemberTaskDto.getUserId());
        memberTaskRecord.setFollowType(merFollowMemberTaskDto.getFollowType());
        memberTaskRecord.setCallPhone(merFollowMemberTaskDto.getCallPhone());
        memberTaskRecord.setCallTime(merFollowMemberTaskDto.getCallTime());
        memberTaskRecord.setFollowContent(merFollowMemberTaskDto.getFollowContent());
        memberTaskRecord.setCreateTime(new Date());
        memberTaskRecordService.saveOrUpdate(memberTaskRecord);
        String picture = merFollowMemberTaskDto.getPicture();
        String video = merFollowMemberTaskDto.getVideo();
        String audio = merFollowMemberTaskDto.getAudio();
        String[] strArr;
        TaskFile taskFile;
        if(StringUtils.isNotBlank(picture)){
            strArr = picture.split(",");
            for(String str : strArr){
                taskFile = new TaskFile();
                taskFile.setDelFlag(0);
                taskFile.setFollowId(memberTaskRecord.getId());
                taskFile.setFollowFrom(2);
                taskFile.setFileUrl(str);
                taskFile.setFileType(1);
                taskFileService.saveOrUpdate(taskFile);
        oldMemberTask.setTaskStatus(2);
        this.saveOrUpdate(oldMemberTask);
        // 判断跟进类型
        if (merFollowMemberTaskDto.getFollowType() == 1) {
            // 获取跟进电话列表
            List<MerFollowPhoneDto> followPhone = merFollowMemberTaskDto.getFollowPhone();
            // 判断跟进电话列表是否为空
            if (followPhone != null && !followPhone.isEmpty()) {
                // 遍历跟进电话列表
                for (MerFollowPhoneDto followPhoneDto : followPhone) {
                    // 创建新的会员任务记录
                    memberTaskRecord = new MemberTaskRecord();
                    memberTaskRecord.setTaskId(merFollowMemberTaskDto.getTaskId());
                    memberTaskRecord.setDelFlag(0);
                    memberTaskRecord.setUserId(merFollowMemberTaskDto.getUserId());
                    memberTaskRecord.setFollowType(merFollowMemberTaskDto.getFollowType());
                    memberTaskRecord.setCustomeFollowType(merFollowMemberTaskDto.getCustomeFollowType());
                    memberTaskRecord.setCallPhone(merFollowMemberTaskDto.getCallPhone());
                    memberTaskRecord.setFollowContent(followPhoneDto.getFollowContent());
                    memberTaskRecord.setCallTime(followPhoneDto.getCallTime());
                    // 保存或更新会员任务记录
                    memberTaskRecordService.saveOrUpdate(memberTaskRecord);
                }
            }
        } else {
            // 创建新的会员任务记录
            memberTaskRecord = new MemberTaskRecord();
            memberTaskRecord.setTaskId(merFollowMemberTaskDto.getTaskId());
            memberTaskRecord.setDelFlag(0);
            memberTaskRecord.setUserId(merFollowMemberTaskDto.getUserId());
            memberTaskRecord.setFollowType(merFollowMemberTaskDto.getFollowType());
            memberTaskRecord.setCustomeFollowType(merFollowMemberTaskDto.getCustomeFollowType());
            memberTaskRecord.setFollowContent(merFollowMemberTaskDto.getFollowContent());
            memberTaskRecord.setCreateTime(new Date());
            // 保存或更新会员任务记录
            memberTaskRecordService.saveOrUpdate(memberTaskRecord);
            // 获取图片、视频和音频
            List<FileDto> picture = merFollowMemberTaskDto.getPicture();
            List<FileDto> video = merFollowMemberTaskDto.getVideo();
            List<FileDto> audio = merFollowMemberTaskDto.getAudio();
            TaskFile taskFile;
            List<TaskFile> taskFileList = new ArrayList<>();
            // 判断图片是否为空,并处理
            if (picture!=null&&!picture.isEmpty()) {
                for (FileDto fileDto : picture) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(memberTaskRecord.getId());
                    taskFile.setFollowFrom(2);
                    taskFile.setFileName(fileDto.getFileName());
                    taskFile.setFileUrl(fileDto.getFileUrl());
                    taskFile.setFileType(1);
                    taskFileList.add(taskFile);
                }
            }
            // 判断视频是否为空,并处理
            if (video!=null&&!video.isEmpty()) {
                for (FileDto fileDto : video) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(memberTaskRecord.getId());
                    taskFile.setFollowFrom(2);
                    taskFile.setFileName(fileDto.getFileName());
                    taskFile.setFileUrl(fileDto.getFileUrl());
                    taskFile.setFileType(2);
                    taskFileList.add(taskFile);
                }
            }
            // 判断音频是否为空,并处理
            if (audio!=null&&!audio.isEmpty()) {
                for (FileDto fileDto : audio) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(memberTaskRecord.getId());
                    taskFile.setFollowFrom(2);
                    taskFile.setFileName(fileDto.getFileName());
                    taskFile.setFileUrl(fileDto.getFileUrl());
                    taskFile.setFileType(3);
                    taskFileList.add(taskFile);
                }
            }
            if(taskFileList!=null&&!taskFileList.isEmpty()){
                taskFileService.saveBatch(taskFileList);
            }
        }
        if(StringUtils.isNotBlank(video)){
            strArr = picture.split(",");
            for(String str : strArr){
                taskFile = new TaskFile();
                taskFile.setDelFlag(0);
                taskFile.setFollowId(memberTaskRecord.getId());
                taskFile.setFollowFrom(2);
                taskFile.setFileUrl(str);
                taskFile.setFileType(2);
                taskFileService.saveOrUpdate(taskFile);
            }
        }
        if(StringUtils.isNotBlank(audio)){
            strArr = picture.split(",");
            for(String str : strArr){
                taskFile = new TaskFile();
                taskFile.setDelFlag(0);
                taskFile.setFollowId(memberTaskRecord.getId());
                taskFile.setFollowFrom(2);
                taskFile.setFileUrl(str);
                taskFile.setFileType(3);
                taskFileService.saveOrUpdate(taskFile);
            }
        }
        if(StringUtils.isNotBlank(merFollowMemberTaskDto.getNextTaskDate())){
        // 判断下一个任务日期是否为空,并处理
        if (StringUtils.isNotBlank(merFollowMemberTaskDto.getNextTaskDate())) {
            String nowTimeStr = DateUtils.getDate();
            MemberTask memberTask = new MemberTask();
            String taskId = IdUtils.simpleUUID();
            memberTask.setTaskId(taskId);
@@ -158,9 +211,20 @@
            memberTask.setUserId(oldMemberTask.getUserId());
            memberTask.setTaskDate(merFollowMemberTaskDto.getNextTaskDate());
            memberTask.setTaskContent(merFollowMemberTaskDto.getNextTaskContent());
            memberTask.setTaskStatus(2);
            int i = merFollowMemberTaskDto.getNextTaskDate().compareTo(nowTimeStr);
            if(i>0){
                memberTask.setTaskStatus(0);
            }else if(i==0){
                memberTask.setTaskStatus(1);
            }else{
                memberTask.setTaskStatus(3);
            }
            memberTask.setCreateTime(new Date());
            this.saveOrUpdate(memberTask);
            MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto();
            memberTotalChangeDto.setUserId(oldMemberTask.getUserId());
            memberTotalChangeDto.setNextTaskTime(merFollowMemberTaskDto.getNextTaskDate());
            remoteMemberService.changeMemberTotal(memberTotalChangeDto);
        }
    }
@@ -176,6 +240,8 @@
        return memberTaskMapper.getMemberIngTotal(shopId);
    }
    /**
     * @description  获取最近任务
     * @author  jqs