| | |
| | | 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.text.ParseException; |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Resource |
| | | private TaskFileService taskFileService; |
| | | |
| | | |
| | | @Resource |
| | | private RemoteUserService remoteUserService; |
| | | |
| | | /** |
| | | * 平台跟进商户 |
| | |
| | | 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.toDate(LocalDate.now())); |
| | | shopTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle()); |
| | | shopTask.setTaskTitle(mgtFollowShopTaskDto.getTaskTitle()); |
| | | shopTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); |
| | | shopTask.setCreateTime(new Date()); |
| | | shopTask.setTaskDate(DateUtils.toDate(LocalDate.now())); |
| | | shopTask.setCreateTime(nowTime); |
| | | shopTask.setTaskDate(nowTimeStr); |
| | | shopTask.setTaskStatus(2); |
| | | this.saveOrUpdate(shopTask); |
| | | //创建任务记录 |
| | | ShopTaskRecord shopTaskRecord = new ShopTaskRecord(); |
| | |
| | | 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(); |
| | |
| | | shopNextTask.setTaskId(nextTaskId); |
| | | shopNextTask.setDelFlag(0); |
| | | shopNextTask.setShopId(mgtFollowShopTaskDto.getShopId()); |
| | | shopNextTask.setFollowType(mgtFollowShopTaskDto.getFollowType()); |
| | | shopNextTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle()); |
| | | shopNextTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); |
| | | shopNextTask.setCreateTime(new Date()); |
| | | try { |
| | | shopNextTask.setNextFollowDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd")); |
| | | shopNextTask.setTaskDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd")); |
| | | } catch (ParseException e) { |
| | | throw new RuntimeException(e); |
| | | 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(); |
| | | } |
| | | } |