资源条件搜索字段增加

master
yqy 2 years ago
parent 0b4dcd28a2
commit bdfa3f40a5

@ -102,4 +102,7 @@ public class ClueDto implements Serializable {
@ApiModelProperty(value = "线索记录")
private String clueRecord;
@ApiModelProperty(value = "线索最新通话时间")
private Date newestCallTime;
}

@ -55,4 +55,16 @@ public class ClueQueryCriteria {
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "标签")
private String label;
@ApiModelProperty(value = "线索通话状态0无状态 1未接听 2已接通")
private Integer clueCallStatus;
@ApiModelProperty(value = "线索最新通话时间")
private List<Timestamp> newestCallTime;
@ApiModelProperty(value = "线索阶段0新线索 1待沟通 2有意向 3已加微信 4无意向")
private Integer clueStage;
}

@ -60,6 +60,10 @@ public class BaseClueMiddle implements Serializable {
@CreationTimestamp
private Date createTime;
@ApiModelProperty(value = "线索最新通话时间")
@Column(name = "newest_call_time")
private Date newestCallTime;
@ApiModelProperty(value = "备注")
@Column(name = "remark")
private String remark;

@ -1,7 +1,10 @@
package com.baiye.model.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
public class ResSourceLabel {
@ -14,4 +17,9 @@ public class ResSourceLabel {
private String nid;
private String remark;
private Date createTime;
@ApiModelProperty(value = "线索阶段0新线索 1待沟通 2有意向 3已加微信 4无意向")
private Integer clueStage;
}

@ -95,5 +95,6 @@ public interface AllCallInfoRepository extends JpaRepository<AllCallInfo, Long>,
* @param clueId
* @return
*/
@Query(value = "select a from AllCallInfo a where a.clueId = ?1 order by a.createTime desc ")
List<AllCallInfo> findAllByClueId(Long clueId);
}

@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Objects;
import java.util.concurrent.CompletableFuture;
@ -286,6 +287,7 @@ public class TelephoneCallServiceImpl implements TelephoneCallService {
clueMiddle.setClueId(clueId);
clueMiddle.setClueCallStatus(status);
clueMiddle.setOptimisticVersion(DefaultNumberConstants.THREE_NUMBER);
clueMiddle.setNewestCallTime(new Date());
sourceClueClient.update(clueMiddle);
}
}

@ -55,7 +55,8 @@ public class ClueJpa {
StringBuilder sql = new StringBuilder();
sql.append("select c.id as id,c.name as name,c.nid as nid,c.wx as wx,c.origin as origin,c.collect_time as collectTime,c.address as address,c.record_id as recordId," +
"c.create_time as createTime,cm.remark as remark,cm.member_status as memberStatus,cm.organize_id as organizeId,cm.member_id as memberId," +
"cm.optimistic_version as optimisticVersion,cm.source_label as sourceLabel,cm.task_id as taskId,cm.clue_stage as clueStage,cm.clue_call_status as clueCallStatus " +
"cm.optimistic_version as optimisticVersion,cm.source_label as sourceLabel,cm.task_id as taskId,cm.clue_stage as clueStage,cm.clue_call_status as clueCallStatus," +
"cm.newest_call_time as newestCallTime " +
"from tb_clue as c LEFT JOIN tb_clue_middle as cm on c.id = cm.clue_id where 1=1 ");
List confirmReceipt = getConfirmReceipt(clueQueryCriteria, sql, pageable);
return getTradeInfo(confirmReceipt);
@ -88,6 +89,7 @@ public class ClueJpa {
String name = clueQueryCriteria.getName();
Integer origin = clueQueryCriteria.getOrigin();
Long id = clueQueryCriteria.getId();
List<Timestamp> newestCallTimeList = clueQueryCriteria.getNewestCallTime();
if (id != null) {
sql.append("and c.id = :id ");
}
@ -103,6 +105,15 @@ public class ClueJpa {
if (clueQueryCriteria.getMemberStatus() != null) {
sql.append("and cm.member_status = :memberStatus ");
}
if (clueQueryCriteria.getLabel() != null){
sql.append("and cm.source_label like :sourceLabel ");
}
if (clueQueryCriteria.getClueCallStatus() != null){
sql.append("and cm.clue_call_status = :clueCallStatus ");
}
if (newestCallTimeList != null && newestCallTimeList.size() == 2){
sql.append("and cm.newest_call_time between :createTimeBegin and :createTimeEnd ");
}
//拼接最后加入时间排序,没加id排序出现数据重复问题(注意空格)
sql.append("ORDER BY c.create_time desc ,c.id ");
@ -125,6 +136,18 @@ public class ClueJpa {
if (clueQueryCriteria.getMemberStatus() != null) {
query.setParameter("memberStatus", clueQueryCriteria.getMemberStatus());
}
if (clueQueryCriteria.getLabel() != null){
query.setParameter("sourceLabel", "%" + clueQueryCriteria.getLabel() + "%");
}
if (clueQueryCriteria.getClueCallStatus() != null){
query.setParameter("clueCallStatus", clueQueryCriteria.getClueCallStatus());
}
if (newestCallTimeList != null && newestCallTimeList.size() == 2){
String createTimeBegin = this.format.format(newestCallTimeList.get(0));
String createTimeEnd = this.format.format(newestCallTimeList.get(1));
query.setParameter("createTimeBegin",createTimeBegin);
query.setParameter("createTimeEnd",createTimeEnd);
}
if (pageable != null) {
query.setParameter("number", pageable.getPageNumber() * pageable.getPageSize());
query.setParameter("size", pageable.getPageSize());
@ -193,6 +216,7 @@ public class ClueJpa {
clueDto.setOptimisticVersion((Integer) row.get("optimisticVersion"));
clueDto.setClueStage((Integer) row.get("clueStage"));
clueDto.setClueCallStatus((Integer) row.get("clueCallStatus"));
clueDto.setNewestCallTime((Date) row.get("newestCallTime"));
clueDtoList.add(clueDto);
}
return clueDtoList;
@ -200,7 +224,8 @@ public class ClueJpa {
public List<ResSourceLabel> findSourceLabel(List<Long> clueIds) {
StringBuilder sql = new StringBuilder();
sql.append("select tcm.source_label as sourceLabel, clue_id as clueId,tc.name as name,tcm.remark as remark,tc.nid as nid from tb_clue_middle tcm LEFT JOIN tb_clue tc on tcm.clue_id = tc.id where 1=1 ");
sql.append("select tcm.source_label as sourceLabel, clue_id as clueId,tc.name as name,tcm.remark as remark,tc.nid as nid,tcm.clue_stage as clueStage,tcm.create_time as createTime " +
"from tb_clue_middle tcm LEFT JOIN tb_clue tc on tcm.clue_id = tc.id where 1=1 ");
if (clueIds != null && clueIds.size() > 0) {
sql.append("AND tcm.clue_id IN (:clueIds) ");
}
@ -222,6 +247,8 @@ public class ClueJpa {
String phone = (String) row.get("nid");
String nid = StrUtil.isBlank(phone) ? null : AESUtils.decrypt(phone, secret);
resSourceLabel.setNid(nid);
resSourceLabel.setCreateTime((Date) row.get("createTime"));
resSourceLabel.setClueStage((Integer) row.get("clueStage"));
list.add(resSourceLabel);
}
return list;
@ -239,6 +266,7 @@ public class ClueJpa {
String name = clueQueryCriteria.getName();
Integer origin = clueQueryCriteria.getOrigin();
List<Timestamp> createTimeList = clueQueryCriteria.getCreateTime();
Integer clueStage = clueQueryCriteria.getClueStage();
StringBuilder sql = new StringBuilder();
sql.append("SELECT tc.id as id,tc.nid as nid,tc.create_time as createTime,tc.name as name,tc.origin as origin,tcm.task_id as taskId,tcm.member_status as memberStatus," +
"tcm.clue_stage as clueStage,tcm.clue_call_status as clueCallStatus,tcm.member_id as memberId " +
@ -260,6 +288,9 @@ public class ClueJpa {
if (origin != null) {
sql.append("and tc.origin = :origin ");
}
if (clueStage != null){
sql.append("AND tcm.clue_stage = :clueStage ");
}
if (createTimeList != null && createTimeList.size() == 2){
sql.append("and tc.create_time between :createTimeBegin and :createTimeEnd ");
}
@ -275,6 +306,9 @@ public class ClueJpa {
if (origin != null) {
query.setParameter("origin", origin);
}
if (clueStage != null){
query.setParameter("clueStage", clueStage);
}
if (StringUtils.isNotBlank(name)){
query.setParameter("name", "%" + name + "%");
}

@ -7,6 +7,7 @@ import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Getter
@ -43,4 +44,7 @@ public class ClueMiddleDto implements Serializable {
@ApiModelProperty(value = "版本号")
private Integer optimisticVersion;
@ApiModelProperty(value = "线索最新通话时间")
private Date newestCallTime;
}

@ -1,7 +1,6 @@
package com.baiye.module.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
@ -36,7 +35,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@Service
@ -288,6 +286,9 @@ public class ClueServiceImpl implements ClueService {
if (clueMiddle.getClueCallStatus() != null){
clueMiddleOne.setClueCallStatus(clueMiddle.getClueCallStatus());
}
if (clueMiddle.getNewestCallTime() != null){
clueMiddleOne.setNewestCallTime(clueMiddle.getNewestCallTime());
}
clueMiddleOne.setOptimisticVersion(clueMiddle.getOptimisticVersion() + 1);
clueMiddleRepository.save(clueMiddleOne);
}

Loading…
Cancel
Save