商机池加一个拓客投流的来源任务

master
wjt 1 year ago
parent 9638cbfd5e
commit 776e1cfca6

@ -12,4 +12,5 @@ public class ClueTypeConstants {
public static final Integer[] SCREEN_TYPE = new Integer[]{0, 1, 2, 3, 6, 7}; public static final Integer[] SCREEN_TYPE = new Integer[]{0, 1, 2, 3, 6, 7};
public static final Integer[] TOKER_TYPE = new Integer[]{4, 5}; public static final Integer[] TOKER_TYPE = new Integer[]{4, 5};
public static final Integer[] CLUE_POOL = new Integer[]{0, 8, 1, 3}; public static final Integer[] CLUE_POOL = new Integer[]{0, 8, 1, 3};
public static final Integer[] CRM_TOKER = new Integer[]{6, 7};
} }

@ -56,8 +56,8 @@ public class TelephoneCallController {
DateTime time = (DateTime) o; DateTime time = (DateTime) o;
long between = DateUtil.between(time, DateUtil.date(), DateUnit.MINUTE); long between = DateUtil.between(time, DateUtil.date(), DateUnit.MINUTE);
long l = 60 - between; long l = 60 - between;
if (l < 1) { if (l < DefaultNumberConstants.THREE_NUMBER) {
throw new BadRequestException("请1分钟后再次呼叫"); throw new BadRequestException("请3分钟后再次呼叫");
} }
throw new BadRequestException("请" + l + "分钟后再次呼叫"); throw new BadRequestException("请" + l + "分钟后再次呼叫");
} }

@ -140,7 +140,7 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
List<List<Object>> read = reader.read(0, reader.getRowCount()); List<List<Object>> read = reader.read(0, reader.getRowCount());
Company company = companyService.findById(companyId); Company company = companyService.findById(companyId);
for (List<Object> objects : read) { for (List<Object> objects : read) {
String number = String.valueOf(objects.get(0)); String number = String.valueOf(objects.get(0)).trim();
//去重 //去重
ExtensionNumber extensionNumber = extensionNumberRepository.findByNumber(Integer.valueOf(number)); ExtensionNumber extensionNumber = extensionNumberRepository.findByNumber(Integer.valueOf(number));
if (ObjectUtil.isNotEmpty(extensionNumber) && extensionNumber.getNumber() != null) { if (ObjectUtil.isNotEmpty(extensionNumber) && extensionNumber.getNumber() != null) {

@ -129,4 +129,6 @@ public class ClueDto implements Serializable {
private Integer isEncryption; private Integer isEncryption;
@ApiModelProperty(value = "线索是否冻结 0:未冻结 1:冻结") @ApiModelProperty(value = "线索是否冻结 0:未冻结 1:冻结")
private Boolean isFreeze; private Boolean isFreeze;
@ApiModelProperty(value = "拓客投流线索的来源任务")
private String originTaskName;
} }

@ -114,4 +114,7 @@ public interface ClueTalkRepository extends JpaRepository<ClueTalk, Long>, JpaSp
@Modifying @Modifying
@Query(value = " update tb_clue_talk set clue_call_status = ?2 ,newest_call_time = ?3 where clue_id = ?1 ", nativeQuery = true) @Query(value = " update tb_clue_talk set clue_call_status = ?2 ,newest_call_time = ?3 where clue_id = ?1 ", nativeQuery = true)
void updateCallStatus(Long clueId, Integer clueCallStatus, String time); void updateCallStatus(Long clueId, Integer clueCallStatus, String time);
@Query(value = " from ClueTalk where clueId in ?1 ")
List<ClueTalk> queryTaskIdByClueId(List<Long> clueIds);
} }

@ -1069,6 +1069,9 @@ public class ClueServiceImpl implements ClueService {
List<ConductRecord> conductRecords = conductRecordRepository.findByClueIdInOrderByCreateTimeDesc(clueIdList); List<ConductRecord> conductRecords = conductRecordRepository.findByClueIdInOrderByCreateTimeDesc(clueIdList);
Map<Long, List<ConductRecord>> map = conductRecords.stream().collect(Collectors.groupingBy(ConductRecord::getClueId)); Map<Long, List<ConductRecord>> map = conductRecords.stream().collect(Collectors.groupingBy(ConductRecord::getClueId));
List<Long> collect = clueList.stream().filter(clueDto -> Arrays.asList(ClueTypeConstants.CRM_TOKER).contains(clueDto.getClueType())).map(ClueDto::getId).collect(Collectors.toList());
Map<Long, Long> originByTalkClue = getOriginByTalkClue(collect);
for (ClueDto clue : clueList) { for (ClueDto clue : clueList) {
//获取缓存中任务名称 //获取缓存中任务名称
clue.setTaskName(findTaskName(clue.getTaskId())); clue.setTaskName(findTaskName(clue.getTaskId()));
@ -1082,10 +1085,24 @@ public class ClueServiceImpl implements ClueService {
List<ConductRecord> recordList = map.get(clue.getId()); List<ConductRecord> recordList = map.get(clue.getId());
clue.setClueRecord(recordList.get(0).getRecordInfo()); clue.setClueRecord(recordList.get(0).getRecordInfo());
} }
if (Arrays.asList(ClueTypeConstants.CRM_TOKER).contains(clue.getClueType())) {
clue.setOriginTaskName(findTaskName(originByTalkClue.get(clue.getId())));
}
} }
return PageUtil.toPage(clueList, count); return PageUtil.toPage(clueList, count);
} }
public Map<Long, Long> getOriginByTalkClue(List<Long> clueIds) {
List<ClueTalk> clueTalks = clueTalkRepository.queryTaskIdByClueId(clueIds);
Map<Long, Long> taskIdByClueId = new HashMap<>();
clueTalks.forEach(clueTalk -> {
if (!taskIdByClueId.containsKey(clueTalk.getClueId())) {
taskIdByClueId.put(clueTalk.getClueId(), clueTalk.getTaskId());
}
});
return taskIdByClueId;
}
/** /**
* id * id
*/ */

Loading…
Cancel
Save