package com.ruoyi.shop.service.impl.task;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
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.MerFollowPhoneDto;
|
import com.ruoyi.shop.domain.dto.MerMemberTaskPageDto;
|
import com.ruoyi.shop.domain.pojo.task.MemberTask;
|
import com.ruoyi.shop.domain.pojo.task.MemberTaskRecord;
|
import com.ruoyi.shop.domain.pojo.task.TaskFile;
|
import com.ruoyi.shop.domain.vo.MerMemberTaskPageVo;
|
import com.ruoyi.shop.mapper.task.MemberTaskMapper;
|
import com.ruoyi.shop.service.task.MemberTaskRecordService;
|
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.Date;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 会员跟进任务 服务实现类
|
* </p>
|
*
|
* @author jqs
|
* @since 2023-04-25
|
*/
|
@Service
|
public class MemberTaskServiceImpl extends ServiceImpl<MemberTaskMapper, MemberTask> implements MemberTaskService {
|
|
@Resource
|
private MemberTaskMapper memberTaskMapper;
|
|
@Resource
|
private MemberTaskRecordService memberTaskRecordService;
|
|
@Resource
|
private RemoteMemberService remoteMemberService;
|
|
@Resource
|
private TaskFileService taskFileService;
|
|
|
/**
|
*
|
* @param page
|
* @param merMemberTaskPageDto
|
* @return
|
*/
|
@Override
|
public List<MerMemberTaskPageVo> pageMerMemberTask(Page page, MerMemberTaskPageDto merMemberTaskPageDto){
|
List<MerMemberTaskPageVo> merMemberTaskPageVoList = memberTaskMapper.pageMerMemberTask(page, merMemberTaskPageDto);
|
return merMemberTaskPageVoList;
|
}
|
|
/**
|
*
|
* @param merCreateMemberTaskDto
|
*/
|
@Override
|
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.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;
|
// 获取旧的会员任务
|
MemberTask oldMemberTask = this.getById(merFollowMemberTaskDto.getTaskId());
|
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);
|
// 获取图片、视频和音频
|
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);
|
}
|
}
|
// 判断视频是否为空,并处理
|
if (StringUtils.isNotBlank(video)) {
|
strArr = video.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 = audio.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())) {
|
String nowTimeStr = DateUtils.getDate();
|
MemberTask memberTask = new MemberTask();
|
String taskId = IdUtils.simpleUUID();
|
memberTask.setTaskId(taskId);
|
memberTask.setDelFlag(0);
|
memberTask.setShopId(oldMemberTask.getShopId());
|
memberTask.setUserId(oldMemberTask.getUserId());
|
memberTask.setTaskDate(merFollowMemberTaskDto.getNextTaskDate());
|
memberTask.setTaskContent(merFollowMemberTaskDto.getNextTaskContent());
|
memberTask.setEmergencyState(merFollowMemberTaskDto.getEmergencyState());
|
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.setNextTaskTime(merFollowMemberTaskDto.getNextTaskDate());
|
remoteMemberService.changeMemberTotal(memberTotalChangeDto);
|
}
|
}
|
|
/**
|
* @description 获取进行中任务数
|
* @author jqs
|
* @date 2023/6/26 13:45
|
* @param shopId
|
* @return Integer
|
*/
|
@Override
|
public Integer getMemberIngTotal(Long shopId) {
|
return memberTaskMapper.getMemberIngTotal(shopId);
|
}
|
|
|
|
/**
|
* @description 获取最近任务
|
* @author jqs
|
* @date 2023/6/29 18:25
|
* @param
|
* @return MemberTaskSimpleVo
|
*/
|
@Override
|
public MemberTaskSimpleVo getLastMemberTask(Long userId){
|
return memberTaskMapper.getLastMemberTask(userId);
|
}
|
|
|
}
|