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

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[] TOKER_TYPE = new Integer[]{4, 5};
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;
long between = DateUtil.between(time, DateUtil.date(), DateUnit.MINUTE);
long l = 60 - between;
if (l < 1) {
throw new BadRequestException("请1分钟后再次呼叫");
if (l < DefaultNumberConstants.THREE_NUMBER) {
throw new BadRequestException("请3分钟后再次呼叫");
}
throw new BadRequestException("请" + l + "分钟后再次呼叫");
}

@ -140,7 +140,7 @@ public class ExtensionNumberServiceImpl implements ExtensionNumberService {
List<List<Object>> read = reader.read(0, reader.getRowCount());
Company company = companyService.findById(companyId);
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));
if (ObjectUtil.isNotEmpty(extensionNumber) && extensionNumber.getNumber() != null) {

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

@ -114,4 +114,7 @@ public interface ClueTalkRepository extends JpaRepository<ClueTalk, Long>, JpaSp
@Modifying
@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);
@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);
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) {
//获取缓存中任务名称
clue.setTaskName(findTaskName(clue.getTaskId()));
@ -1082,10 +1085,24 @@ public class ClueServiceImpl implements ClueService {
List<ConductRecord> recordList = map.get(clue.getId());
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);
}
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
*/

Loading…
Cancel
Save