| | |
| | | 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.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; |
| | | |
| | |
| | | */ |
| | | @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; |
| | | for(MerMemberTaskPageVo merMemberTaskPageVo : merMemberTaskPageVoList){ |
| | | taskDate = merMemberTaskPageVo.getTaskDate(); |
| | | if(today.equals(taskDate)){ |
| | | merMemberTaskPageVo.setTodayFlag(1); |
| | | }else{ |
| | | merMemberTaskPageVo.setTodayFlag(0); |
| | | } |
| | | } |
| | | } |
| | | return merMemberTaskPageVoList; |
| | | } |
| | | |
| | |
| | | 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 = 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); |
| | | // 获取图片、视频和音频 |
| | | 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(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); |
| | |
| | | memberTask.setUserId(oldMemberTask.getUserId()); |
| | | memberTask.setTaskDate(merFollowMemberTaskDto.getNextTaskDate()); |
| | | memberTask.setTaskContent(merFollowMemberTaskDto.getNextTaskContent()); |
| | | memberTask.setTaskStatus(2); |
| | | 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); |
| | | } |
| | | |
| | | |
| | | } |