jiangqs
2023-08-06 431dde90aa20f7652092fc0bfa9e6a1a28b06b9f
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java
@@ -1,21 +1,26 @@
package com.ruoyi.shop.service.impl.task;
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.common.core.utils.uuid.IdUtils;
import com.ruoyi.shop.domain.dto.MgtFollowShopTaskDto;
import com.ruoyi.shop.domain.pojo.task.ShopTask;
import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord;
import com.ruoyi.shop.domain.pojo.task.TaskFile;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.pojo.task.*;
import com.ruoyi.shop.domain.vo.StaffShopTaskPageVo;
import com.ruoyi.shop.mapper.task.ShopTaskMapper;
import com.ruoyi.shop.service.task.ShopTaskRecordService;
import com.ruoyi.shop.service.task.ShopTaskService;
import com.ruoyi.shop.service.task.TaskFileService;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo;
import com.ruoyi.system.api.service.RemoteUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * <p>
@@ -37,7 +42,8 @@
    @Resource
    private TaskFileService taskFileService;
    @Resource
    private RemoteUserService remoteUserService;
    /**
     * 平台跟进商户
@@ -47,15 +53,17 @@
    public void followShopTask(MgtFollowShopTaskDto mgtFollowShopTaskDto){
        //创建本次任务
        ShopTask shopTask = new ShopTask();
        Date nowTime = new Date();
        String nowTimeStr = DateUtils.getDate();
        String taskId = IdUtils.simpleUUID();
        shopTask.setTaskId(taskId);
        shopTask.setDelFlag(0);
        shopTask.setShopId(mgtFollowShopTaskDto.getShopId());
        shopTask.setFollowType(mgtFollowShopTaskDto.getFollowType());
        shopTask.setNextFollowDate(DateUtils.getDate());
        shopTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle());
        shopTask.setTaskTitle(mgtFollowShopTaskDto.getTaskTitle());
        shopTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState());
        shopTask.setCreateTime(new Date());
        shopTask.setCreateTime(nowTime);
        shopTask.setTaskDate(nowTimeStr);
        shopTask.setTaskStatus(2);
        this.saveOrUpdate(shopTask);
        //创建任务记录
        ShopTaskRecord shopTaskRecord = new ShopTaskRecord();
@@ -63,8 +71,9 @@
        shopTaskRecord.setTaskId(taskId);
        shopTaskRecord.setUserId(mgtFollowShopTaskDto.getUserId());
        shopTaskRecord.setFollowType(2);
        shopTaskRecord.setCustomeFollowType(mgtFollowShopTaskDto.getFollowType());
        shopTaskRecord.setFollowContent(mgtFollowShopTaskDto.getFollowContent());
        shopTaskRecord.setCreateTime(new Date());
        shopTaskRecord.setCreateTime(nowTime);
        shopTaskRecordService.saveOrUpdate(shopTaskRecord);
        //创建任务文件
        String picture = mgtFollowShopTaskDto.getPicture();
@@ -88,13 +97,238 @@
        shopNextTask.setTaskId(nextTaskId);
        shopNextTask.setDelFlag(0);
        shopNextTask.setShopId(mgtFollowShopTaskDto.getShopId());
        shopNextTask.setFollowType(mgtFollowShopTaskDto.getFollowType());
        shopNextTask.setNextFollowDate(mgtFollowShopTaskDto.getNextTaskDate());
        shopNextTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle());
        shopNextTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState());
        shopNextTask.setCreateTime(new Date());
        shopNextTask.setCreateTime(nowTime);
        int i = mgtFollowShopTaskDto.getNextTaskDate().compareTo(nowTimeStr);
        if(i>0){
            shopNextTask.setTaskStatus(0);
        }else if(i==0){
            shopNextTask.setTaskStatus(1);
        }else{
            shopNextTask.setTaskStatus(3);
        }
        shopNextTask.setTaskDate(mgtFollowShopTaskDto.getNextTaskDate());
        this.saveOrUpdate(shopNextTask);
    }
    /**
     * @description boardTaskTotal
     * @param
     * @return MgtBulletinBoardVo
     * @author jqs34
     * @date 2023/6/18 17:08
     */
    @Override
    public MgtBulletinBoardVo boardTaskTotal(){
        MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo();
        LambdaQueryWrapper<ShopTask> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ShopTask::getDelFlag,0);
        queryWrapper.eq(ShopTask::getTaskStatus,1);
        queryWrapper.eq(ShopTask::getTaskDate,DateUtils.getDate());
        Integer followShopToday = this.count(queryWrapper);
        mgtBulletinBoardVo.setFollowShopToday(followShopToday);
        return mgtBulletinBoardVo;
    }
    /**
     * @description  员工端获取进行中商户任务数
     * @author  jqs
     * @param shopIds
     * @return  Integer
     */
    @Override
    public Integer getShopIngTotal(List<Long> shopIds){
        return shopTaskMapper.getShopIngTotal(shopIds);
    }
    /**
     * @description  分页获取员工跟进任务
     * @author  jqs
     * @date    2023/7/15 15:09
     * @param page
     * @param staffShopTaskPageDto
     * @return  List<StaffShopTaskPageVo>
     */
    @Override
    public List<StaffShopTaskPageVo> pageStaffShopTask(Page page, StaffShopTaskPageDto staffShopTaskPageDto){
        List<StaffShopTaskPageVo> shopTaskPageVoList = shopTaskMapper.pageStaffShopTask(page, staffShopTaskPageDto);
        if(shopTaskPageVoList!=null&&shopTaskPageVoList.size()>0){
            Long userId;
            SysUser sysUser;
            for(StaffShopTaskPageVo staffShopTaskPageVo : shopTaskPageVoList){
                //获取任务用户信息
                userId = staffShopTaskPageVo.getUserId();
                if(userId!=null){
                    sysUser = remoteUserService.getSysUser(userId).getData();
                    staffShopTaskPageVo.setUserName(sysUser.getNickName());
                    staffShopTaskPageVo.setUserPicture(sysUser.getAvatar());
                }
            }
        }
        return shopTaskPageVoList;
    }
    /**
     * @description  员工端新增任务
     * @author  jqs
     * @date    2023/7/15 19:06
     * @param staffAddTaskDto
     * @return  void
     */
    @Override
    public void staffAddTask(StaffAddTaskDto staffAddTaskDto){
        ShopTask shopTask = new ShopTask();
        String nowTimeStr = DateUtils.getDate();
        String taskId = IdUtils.simpleUUID();
        shopTask.setTaskId(taskId);
        shopTask.setDelFlag(0);
        shopTask.setShopId(staffAddTaskDto.getShopId());
        shopTask.setTaskTitle(staffAddTaskDto.getTaskTitle());
        shopTask.setEmergencyState(staffAddTaskDto.getEmergencyState());
        shopTask.setCreateTime(new Date());
        shopTask.setTaskDate(staffAddTaskDto.getTaskDate());
        int i = staffAddTaskDto.getTaskDate().compareTo(nowTimeStr);
        if(i>0){
            shopTask.setTaskStatus(0);
        }else if(i==0){
            shopTask.setTaskStatus(1);
        }else{
            shopTask.setTaskStatus(3);
        }
        this.saveOrUpdate(shopTask);
    }
    /**
     * @description 员工商户任务跟进
     * @param staffFollowShopTaskDto
     * @return void
     * @author jqs34
     * @date 2023/7/16 11:56
     */
    @Override
    public void staffFollowShopTask(StaffFollowShopTaskDto staffFollowShopTaskDto){
        // 创建会员任务记录对象
        ShopTaskRecord shopTaskRecord;
        // 获取旧的会员任务
        ShopTask oldShopTask = this.getById(staffFollowShopTaskDto.getTaskId());
        oldShopTask.setTaskStatus(2);
        this.saveOrUpdate(oldShopTask);
        // 判断跟进类型
        if (staffFollowShopTaskDto.getFollowType() == 1) {
            // 获取跟进电话列表
            List<MerFollowPhoneDto> followPhone = staffFollowShopTaskDto.getFollowPhone();
            // 判断跟进电话列表是否为空
            if (followPhone != null && !followPhone.isEmpty()) {
                // 遍历跟进电话列表
                for (MerFollowPhoneDto followPhoneDto : followPhone) {
                    // 创建新的会员任务记录
                    shopTaskRecord = new ShopTaskRecord();
                    shopTaskRecord.setTaskId(staffFollowShopTaskDto.getTaskId());
                    shopTaskRecord.setDelFlag(0);
                    shopTaskRecord.setUserId(staffFollowShopTaskDto.getUserId());
                    shopTaskRecord.setFollowType(staffFollowShopTaskDto.getFollowType());
                    shopTaskRecord.setCallPhone(staffFollowShopTaskDto.getCallPhone());
                    shopTaskRecord.setFollowContent(followPhoneDto.getFollowContent());
                    shopTaskRecord.setCallTime(followPhoneDto.getCallTime());
                    shopTaskRecord.setCreateTime(new Date());
                    // 保存或更新会员任务记录
                    shopTaskRecordService.saveOrUpdate(shopTaskRecord);
                }
            }
        } else {
            // 创建新的会员任务记录
            shopTaskRecord = new ShopTaskRecord();
            shopTaskRecord.setTaskId(staffFollowShopTaskDto.getTaskId());
            shopTaskRecord.setDelFlag(0);
            shopTaskRecord.setUserId(staffFollowShopTaskDto.getUserId());
            shopTaskRecord.setFollowType(staffFollowShopTaskDto.getFollowType());
            shopTaskRecord.setFollowContent(staffFollowShopTaskDto.getFollowContent());
            shopTaskRecord.setCustomeFollowType(staffFollowShopTaskDto.getCustomeFollowType());
            shopTaskRecord.setCreateTime(new Date());
            // 保存或更新会员任务记录
            shopTaskRecordService.saveOrUpdate(shopTaskRecord);
            // 获取图片、视频和音频
            String picture = staffFollowShopTaskDto.getPicture();
            String video = staffFollowShopTaskDto.getVideo();
            String audio = staffFollowShopTaskDto.getAudio();
            String[] strArr;
            TaskFile taskFile;
            // 判断图片是否为空,并处理
            if (StringUtils.isNotBlank(picture)) {
                strArr = picture.split(",");
                for (String str : strArr) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(shopTaskRecord.getId());
                    taskFile.setFollowFrom(4);
                    taskFile.setFileUrl(str);
                    taskFile.setFileType(1);
                    taskFileService.saveOrUpdate(taskFile);
                }
            }
            // 判断视频是否为空,并处理
            if (StringUtils.isNotBlank(video)) {
                strArr = video.split(",");
                for (String str : strArr) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(shopTaskRecord.getId());
                    taskFile.setFollowFrom(4);
                    taskFile.setFileUrl(str);
                    taskFile.setFileType(2);
                    taskFileService.saveOrUpdate(taskFile);
                }
            }
            // 判断音频是否为空,并处理
            if (StringUtils.isNotBlank(audio)) {
                strArr = audio.split(",");
                for (String str : strArr) {
                    taskFile = new TaskFile();
                    taskFile.setDelFlag(0);
                    taskFile.setFollowId(shopTaskRecord.getId());
                    taskFile.setFollowFrom(4);
                    taskFile.setFileUrl(str);
                    taskFile.setFileType(3);
                    taskFileService.saveOrUpdate(taskFile);
                }
            }
        }
        // 判断下一个任务日期是否为空,并处理
        if (StringUtils.isNotBlank(staffFollowShopTaskDto.getNextTaskDate())) {
            ShopTask shopTask = new ShopTask();
            String taskId = IdUtils.simpleUUID();
            shopTask.setTaskId(taskId);
            shopTask.setDelFlag(0);
            shopTask.setShopId(oldShopTask.getShopId());
            shopTask.setTaskDate(staffFollowShopTaskDto.getNextTaskDate());
            shopTask.setFollowContent(staffFollowShopTaskDto.getNextTaskContent());
            String nowTimeStr = DateUtils.getDate();
            int i = staffFollowShopTaskDto.getNextTaskDate().compareTo(nowTimeStr);
            if(i>0){
                shopTask.setTaskStatus(0);
            }else if(i==0){
                shopTask.setTaskStatus(1);
            }else{
                shopTask.setTaskStatus(3);
            }
            shopTask.setEmergencyState(staffFollowShopTaskDto.getEmergencyState());
            shopTask.setCreateTime(new Date());
            this.saveOrUpdate(shopTask);
        }
    }
    /**
     * @description  检查任务时间状态
     * @author  jqs
     * @date    2023/7/19 18:01
     * @param
     * @return  void
     */
    @Override
    public void checkTaskDateStatus(){
        shopTaskMapper.checkShopTaskStatus();
        shopTaskMapper.checkAgencyTaskStatus();
        shopTaskMapper.checkMemberTaskStatus();
    }
}