新增拓客回流和投流回流任务

master
wujingtao 2 years ago
parent 16bda5d322
commit b140d1655f

@ -76,7 +76,7 @@ public class BaseTask implements Serializable {
@Column(name = "remark")
private String remark;
@ApiModelProperty(value = "特殊任务 1-动态表单任务 2-员工个人上传任务 3-抖音任务 4- ad-back")
@ApiModelProperty(value = "特殊任务 1-动态表单任务 2-员工个人上传任务 3-抖音任务 4-dmp(投流) 5-拓客 6-拓客回流 7-投流回流")
@Column(name = "is_form")
private Integer isForm=0;
}

@ -124,12 +124,13 @@ public class TaskServiceImpl implements TaskService {
task.setTaskType(DefaultNumberConstants.ONE_NUMBER);
task.setIsForm(isForm);
task.setCreateBy(id);
if (labelOrganizeId != null) {
List<String> labelList = labelService.findLabelList(labelOrganizeId);
if (CollUtil.isNotEmpty(labelList)) {
task.setBaseLabel(labelList);
}
}
// if (labelOrganizeId != null) {
// List<String> labelList = labelService.findLabelList(labelOrganizeId);
// if (CollUtil.isNotEmpty(labelList)) {
// task.setBaseLabel(labelList);
// }
// }
task.setBaseLabel(Collections.singletonList("有意向,无意向,未接通"));
task.setLabelOrganizeId(labelOrganizeId);
task.setRemark(remake);
Task save = taskRepository.save(task);
@ -143,7 +144,7 @@ public class TaskServiceImpl implements TaskService {
public Object queryAll(TaskQueryCriteria taskQueryCriteria, Pageable pageable) {
//这个地方 4为dmp,5为拓客
if (taskQueryCriteria.getIsForm() == null) {
taskQueryCriteria.setIsForms(Arrays.asList(0, 1, 2, 3,6));
taskQueryCriteria.setIsForms(Arrays.asList(0, 1, 2, 3, 6));
}
PageRequest pageRequest = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), Sort.by(Sort.Direction.DESC, "isForm", "updateTime"));
taskQueryCriteria.setCreateBy(SecurityUtils.getCurrentUserId());
@ -166,7 +167,7 @@ public class TaskServiceImpl implements TaskService {
selectOrganizeUser(taskDto);
//插入标签信息
List<String> labels = labelService.findAccordLabel(taskDto.getLabelOrganizeId(), collect);
taskDto.setTotalNumber(taskDto.getTotalNumber()==null?DefaultNumberConstants.ZERO_NUMBER:taskDto.getTotalNumber());
taskDto.setTotalNumber(taskDto.getTotalNumber() == null ? DefaultNumberConstants.ZERO_NUMBER : taskDto.getTotalNumber());
taskDto.getBaseLabel().addAll(labels);
if (taskIdCount != null) {
taskDto.setUnassigned(taskIdCount.getOrDefault(taskDto.getId(), DefaultNumberConstants.ZERO_NUMBER));
@ -210,7 +211,7 @@ public class TaskServiceImpl implements TaskService {
if (task.getIsDistribution() != null) {
updateTask.setIsDistribution(task.getIsDistribution());
}
if(task.getLabelOrganizeId()!=null){
if (task.getLabelOrganizeId() != null) {
updateTask.setLabelOrganizeId(task.getLabelOrganizeId());
}
taskRepository.save(updateTask);

@ -208,13 +208,14 @@ public class UserServiceImpl implements UserService {
//todo 如果是管理员 则创建任务
if (flag) {
if (userDTO.getCompanyType() == 1) {
//抖音(飞鱼)
//抖音(飞鱼)
createTask(userCreateResult.getId(), "飞鱼任务", DefaultNumberConstants.THREE_NUMBER);
} else {
createTask(userCreateResult.getId(), userCreateResult.getUsername(), DefaultNumberConstants.ONE_NUMBER);
createTask(userCreateResult.getId(), userCreateResult.getUsername() + "-员工上传", DefaultNumberConstants.TWO_NUMBER);
createTask(userCreateResult.getId(), "员工上传任务", DefaultNumberConstants.TWO_NUMBER);
createTask(userCreateResult.getId(), "投流回流任务", DefaultNumberConstants.SEVEN_NUMBER);
createTask(userCreateResult.getId(), "拓客回流任务", DefaultNumberConstants.SIX_NUMBER);
}
}
MultipartFile file = userDTO.getFile();
@ -432,7 +433,7 @@ public class UserServiceImpl implements UserService {
if (ObjectUtil.isNotNull(resources.getTemplateId())) {
companyService.updateCompanyTemplateId(resources.getTemplateId(), user.getCompanyId());
}
if(ObjectUtil.isNotNull(resources.getCompanyType())){
if (ObjectUtil.isNotNull(resources.getCompanyType())) {
companyService.updateCompanyTypeById(resources.getCompanyType(), user.getCompanyId());
}

@ -213,4 +213,13 @@ public class ClueController {
public CommonResponse<Map<Long, Integer>> countClueByMemberStatus(@RequestBody ClueQueryCriteria clueQueryCriteria) {
return CommonResponse.createBySuccess(clueService.countClueByMemberStatus(clueQueryCriteria));
}
@GetMapping("/backFlow")
@ApiOperation("拓客线索回流crm")
public CommonResponse<Object> clueBackFlow(@RequestParam(value = "taskId") Long taskId,
@RequestParam(value = "clueId") Long clueId,
@RequestParam(value = "clueType") Integer clueType) {
clueService.clueBackFlow(taskId,clueId,clueType);
return CommonResponse.createBySuccess();
}
}

@ -92,6 +92,8 @@ public class ClueJpa {
String name = clueQueryCriteria.getName();
Integer origin = clueQueryCriteria.getOrigin();
Long id = clueQueryCriteria.getId();
Integer clueType = clueQueryCriteria.getClueType();
List<Timestamp> newestCallTimeList = clueQueryCriteria.getNewestCallTime();
if (id != null) {
sql.append("and c.id = :id ");
@ -123,10 +125,10 @@ public class ClueJpa {
if (newestCallTimeList != null && newestCallTimeList.size() == 2) {
sql.append("and cm.newest_call_time between :createTimeBegin and :createTimeEnd ");
}
if (clueQueryCriteria.getClueType() != null) {
sql.append("and cm.clue_type = :clueType ");
if (clueType != null) {
sql.append("AND tcm.clue_type = :clueType ");
} else {
sql.append("and cm.clue_type < :clueType ");
sql.append("AND tcm.clue_type in :clueTypes ");
}
//拼接最后加入时间排序,没加id排序出现数据重复问题(注意空格)
sql.append("ORDER BY c.create_time desc ,c.id ");
@ -172,10 +174,10 @@ public class ClueJpa {
query.setParameter("number", pageable.getPageNumber() * pageable.getPageSize());
query.setParameter("size", pageable.getPageSize());
}
if (clueQueryCriteria.getClueType() != null) {
query.setParameter("clueType", clueQueryCriteria.getClueType());
if (clueType != null) {
query.setParameter("clueType", clueType);
} else {
query.setParameter("clueType", DefaultNumberConstants.FOUR_NUMBER);
query.setParameter("clueTypes",clueQueryCriteria.getClueTypes());
}
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
return query.getResultList();

@ -253,4 +253,12 @@ public interface ClueService {
* @return
*/
Integer findTaskNum(Long taskId);
/**
* 线crm
* @param taskId
* @param clueId
* @param clueType
*/
void clueBackFlow(Long taskId,Long clueId,Integer clueType);
}

@ -182,6 +182,10 @@ public class ClueServiceImpl implements ClueService {
clueQueryCriteria.setOrganizeId(organizeId);
clueQueryCriteria.setMemberId(null);
}
if (clueQueryCriteria.getClueType() == null) {
//4 dmp 5拓客 是特殊的任务,单独处理
clueQueryCriteria.setClueTypes(Arrays.asList(0, 1, 2, 3, 6));
}
List<ClueDto> clueDtoList = clueJpa.getClueList(clueQueryCriteria, pageable);
//手机号搜索
@ -225,6 +229,10 @@ public class ClueServiceImpl implements ClueService {
@Override
public List<ClueDto> query(ClueQueryCriteria clueQueryCriteria) {
if (clueQueryCriteria.getMemberId() != null) {
if (clueQueryCriteria.getClueType() == null) {
//4 dmp 5拓客 是特殊的任务,单独处理
clueQueryCriteria.setClueTypes(Arrays.asList(0, 1, 2, 3, 6));
}
List<ClueDto> clueDtoList = clueJpa.getClueList(clueQueryCriteria, null);
Set<Long> memberIds = clueDtoList.stream().map(ClueDto::getMemberId).collect(Collectors.toSet());
Map<Long, String> userNickNameMap = userClient.findById(memberIds);
@ -728,6 +736,34 @@ public class ClueServiceImpl implements ClueService {
return clueMiddleRepository.findTaskNum(taskId);
}
@Override
public void clueBackFlow(Long taskId, Long clueId, Integer clueType) {
ClueMiddle clueMiddle = clueMiddleRepository.findById(clueId).orElseGet(ClueMiddle::new);
//查看crm任务
TaskQueryCriteria taskQueryCriteria = new TaskQueryCriteria();
if (clueType == DefaultNumberConstants.FOUR_NUMBER) {
taskQueryCriteria.setIsForm(DefaultNumberConstants.SEVEN_NUMBER);
} else if (clueType == DefaultNumberConstants.FIVE_NUMBER) {
taskQueryCriteria.setIsForm(DefaultNumberConstants.SIX_NUMBER);
}
Object body = taskClient.query(taskQueryCriteria).getBody();
JSONArray taskList = JSONUtil.parseArray(body);
Long crmTaskId;
Integer crmTotalNumber;
if (CollUtil.isNotEmpty(taskList) && taskList.size() == 1) {
crmTaskId = taskList.getJSONObject(0).getLong("id");
crmTotalNumber = taskList.getJSONObject(0).getInt("totalNumber");
} else {
throw new BadRequestException("回流失败");
}
clueMiddle.setTaskId(crmTaskId);
//todo 改变两个任务的总数量
Task task = new Task();
task.setId(crmTaskId);
task.setTotalNumber(crmTotalNumber + 1);
taskClient.updateTask(task);
}
private List<HashMap<String, Object>> getOrganizeInfo(String startTime, String endTime, List<Long> organizeIds) {
List<ClueMiddle> clueMiddles = clueMiddleRepository.queryAllByTimeAndorganizeIds(startTime, endTime, organizeIds);
Set<Long> ids = clueMiddles.stream().map(ClueMiddle::getOrganizeId).collect(Collectors.toSet());
@ -877,7 +913,8 @@ public class ClueServiceImpl implements ClueService {
Set<Long> taskIds = findTaskId(taskQueryCriteria);
if (CollUtil.isNotEmpty(taskIds)) {
if (clueQueryCriteria.getClueType() == null) {
clueQueryCriteria.setClueTypes(Arrays.asList(0, 1, 2, 3,6));
//4 dmp 5拓客 是特殊的任务,单独处理
clueQueryCriteria.setClueTypes(Arrays.asList(0, 1, 2, 3, 6));
}
List<Clue> clueAll = clueJpa.findClue(taskIds, pageable, clueQueryCriteria);
Set<Long> memberIds = clueAll.stream().map(Clue::getMemberId).collect(Collectors.toSet());

Loading…
Cancel
Save