增加捞取线索池

This commit is contained in:
cb 2025-07-02 16:43:15 +08:00
parent b1439322ac
commit 4012aa1887
9 changed files with 548 additions and 5 deletions

View File

@ -85,6 +85,13 @@ public class ClewController extends BaseController
return prefix + "/publicClew"; return prefix + "/publicClew";
} }
@RequiresPermissions("system:clew:view")
@GetMapping("qualityClew")
public String qualityClew(ModelMap modelMap)
{
return prefix + "/qualityClew";
}
/** /**
* 查询线索列表 * 查询线索列表
*/ */
@ -133,6 +140,7 @@ public class ClewController extends BaseController
{ {
startPage(); startPage();
clew.setSaleId(2L); clew.setSaleId(2L);
clew.setPoolStatus("01"); // 只显示公海池状态的线索
List<Clew> list = clewService.selectClewPublicList(clew); List<Clew> list = clewService.selectClewPublicList(clew);
list.forEach(model->{ list.forEach(model->{
if(model.getSaleId() != null){ if(model.getSaleId() != null){
@ -157,6 +165,37 @@ public class ClewController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
@RequiresPermissions("system:clew:list")
@PostMapping("/listQuality")
@ResponseBody
public TableDataInfo listQuality(Clew clew)
{
startPage();
clew.setPoolStatus("02"); // 只显示优质线索池状态的线索
List<Clew> list = clewService.selectClewQualityList(clew);
list.forEach(model->{
if(model.getSaleId() != null){
SysUser user = sysUserService.selectUserById(model.getSaleId());
if(user != null){
model.setSaleName(user.getUserName());
}
SysUser sourceUser = sysUserService.selectUserById(model.getSourceSaleId());
if(sourceUser != null){
model.setSourceSaleName(sourceUser.getUserName());
}
}
if(model.getSourceApp() != null){
CompanyApp param = new CompanyApp();
param.setCompanyId(model.getSourceApp());
List<CompanyApp> result = companyAppService.selectCompanyAppList(param);
model.setSourceAppName(result.get(0).getAppName());
}else {
model.setSourceAppName("黑猫APP");
}
});
return getDataTable(list);
}
/** /**
* 导出线索列表 * 导出线索列表
*/ */
@ -432,4 +471,21 @@ public class ClewController extends BaseController
return "system/clew/changeBatchUser"; return "system/clew/changeBatchUser";
} }
/**
* 捞取线索到优质线索池
*/
@PostMapping("/catchClew")
@ResponseBody
public AjaxResult catchClew(Clew clew)
{
Clew sourceClew = clewService.selectClewById(clew.getId());
if(!"01".equals(sourceClew.getPoolStatus())){
return AjaxResult.error("该线索不在公海池中!");
}
sourceClew.setPoolStatus("02");
sourceClew.setCatchTime(new Date());
sourceClew.setUpdateTime(new Date());
return toAjax(clewService.catchClewToQuality(sourceClew));
}
} }

View File

@ -88,7 +88,7 @@ public class NoticeController {
log.info("归因转化回调内容,{},{},{},{},{},{},{}", aid, appId, oaid, idType, uniqueId, actionType, callBack); log.info("归因转化回调内容,{},{},{},{},{},{},{}", aid, appId, oaid, idType, uniqueId, actionType, callBack);
String token= getToken(); String token= getToken();
if (StringUtils.isEmpty(token)){ if (StringUtils.isEmpty(token)){
token="eyJraWQiOiJ1MUFEcW95T21wT1ZHcXh6VzNnaWtPNER3UmJDZ2RNRCIsInR5cCI6IkpXVCIsImFsZyI6IkhTMjU2In0.eyJzdWIiOiIxMjczODgzNzQ1NTQ3NDkzODI0IiwiZG4iOjEsImNsaWVudF90eXBlIjoxLCJleHAiOjE3NDkyODE2MjUsImlhdCI6MTc0OTEwODgyNX0.FxqWkjbHgLav_q6sg8HWxTCMYl4_YkFf7MYSo6cFffk"; token="eyJraWQiOiJ1MUFEcW95T21wT1ZHcXh6VzNnaWtPNER3UmJDZ2RNRCIsInR5cCI6IkpXVCIsImFsZyI6IkhTMjU2In0.eyJzdWIiOiIxMjczODgzNzQ1NTQ3NDkzODI0IiwiZG4iOjEsImNsaWVudF90eXBlIjoxLCJleHAiOjE3NDk2MjUyNDEsImlhdCI6MTc0OTQ1MjQ0MX0.yZnwxuUVxA8dC1TnMtKfnOKB3Cd4s4afujPs5F8pcX0";
} }
HuaweiRequest huaweiRequest=new HuaweiRequest(); HuaweiRequest huaweiRequest=new HuaweiRequest();
huaweiRequest.setActionType("4"); huaweiRequest.setActionType("4");
@ -309,9 +309,9 @@ public class NoticeController {
headers.put("Content-Type", "application/json"); headers.put("Content-Type", "application/json");
Map<String,String> params=new HashMap<>(); Map<String,String> params=new HashMap<>();
headers.put("grant_type", "client_credentials"); params.put("grant_type", "client_credentials");
headers.put("client_id", "1273883745547493824"); // 从配置读取 params.put("client_id", "1273883745547493824"); // 从配置读取
headers.put("client_secret", "BBA385787FE8D5CA4F0C889915C6FBA752F7B18C19E99FFE6B09ACCC92C60181"); // 从配置读取 params.put("client_secret", "BBA385787FE8D5CA4F0C889915C6FBA752F7B18C19E99FFE6B09ACCC92C60181"); // 从配置读取
String s; String s;
try { try {
s= sendPost( s= sendPost(

View File

@ -243,6 +243,18 @@
return $.table.selectDictLabel(isDeal, value); return $.table.selectDictLabel(isDeal, value);
} }
}, },
{
field: 'poolStatus',
title: '池状态',
formatter: function(value, row, index) {
if(value == '01') {
return '<span class="label label-primary">公海池</span>';
} else if(value == '02') {
return '<span class="label label-success">优质线索池</span>';
}
return value;
}
},
{ {
field: 'wxAccount', field: 'wxAccount',
title: '成交金额' title: '成交金额'
@ -290,6 +302,7 @@
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="getBackClew(\'' + row.id + '\')"><i class="fa fa-remove"></i>取回线索</a>'); actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="getBackClew(\'' + row.id + '\')"><i class="fa fa-remove"></i>取回线索</a>');
actions.push('<a class="btn btn-warning btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="catchClew(\'' + row.id + '\')"><i class="fa fa-arrow-up"></i>捞取</a>');
return actions.join(''); return actions.join('');
} }
}] }]
@ -318,6 +331,13 @@
$.modal.open("选择客服", url, '800', '300'); $.modal.open("选择客服", url, '800', '300');
} }
/* 捞取线索到优质线索池 */
function catchClew(id) {
$.modal.confirm("确定要捞取该线索到优质线索池吗?", function() {
$.operate.post(prefix + "/catchClew", { "id": id});
})
}
function changeBatchUser(){ function changeBatchUser(){
table.set(); table.set();
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);

View File

@ -0,0 +1,346 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('优质线索池列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>手机号:</label>
<input type="text" name="phone"/>
</li>
<li>
App来源<select name="remark" th:with="type=${@dict.getType('app_source')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
加微:<select name="isAddWx" th:with="type=${@dict.getType('is_add_wx')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
有效:<select name="isEffective" th:with="type=${@dict.getType('is_effective')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
意向:<select name="isPlan" th:with="type=${@dict.getType('is_plan')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
成交:<select name="isDeal" th:with="type=${@dict.getType('is_deal')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
来源应用:<select name="sourceApp">
<option value="">所有</option>
<option value="1">黑猫搞定逾期</option>
<option value="2">大象债务处理</option>
<option value="8">百度来源</option>
</select>
</li>
<li class="select-time">
<label>创建时间: </label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
</li>
<li class="select-time">
<label>捞取时间: </label>
<input type="text" class="time-input" id="catchStartTime" placeholder="开始时间" name="params[catchStartTime]"/>
<span>-</span>
<input type="text" class="time-input" id="catchEndTime" placeholder="结束时间" name="params[catchEndTime]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-primary multiple disabled" onclick="changeBatchUser()" shiro:hasPermission="system:clew:edit">
<i class="fa fa-remove"></i> 批量分配
</a>
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:clew:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:clew:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:clew:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:clew:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('system:clew:edit')}]];
var removeFlag = [[${@permission.hasPermi('system:clew:remove')}]];
var isAddWx = [[${@dict.getType('is_add_wx')}]];
var isEffective = [[${@dict.getType('is_effective')}]];
var isPlan = [[${@dict.getType('is_plan')}]];
var isDeal = [[${@dict.getType('is_deal')}]];
var customerStatus = [[${@dict.getType('customer_status')}]];
var assignStatus = [[${@dict.getType('assign_status')}]];
var prefix = ctx + "system/clew";
$(function() {
var options = {
url: prefix + "/listQuality",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "线索",
columns: [{
checkbox: true
},
{
field: 'id',
title: '主键',
visible: false
},
{
field: 'sourceAppName',
title: '来源App'
},
{
field: 'phone',
title: '手机号'
},
{
field: 'customerName',
title: '姓名'
},
{
field: 'wxName',
title: '微信昵称',
visible: false
},
{
field: 'debtType',
title: '债务类型',
visible: false
},
{
field: 'debtMoney',
title: '债务金额'
},
{
field: 'remark',
title: 'App来源'
},
{
field: 'customerRemark',
title: '客户情况备注'
},
{
field: 'twoCustomerRemark',
title: '二次跟进情况'
},
{
field: 'createTime',
title: '创建时间'
},
{
field: 'catchTime',
title: '捞取时间'
},
{
field: 'assignTimes',
title: '二次分配',
formatter: function(value, row, index) {
return $.table.selectDictLabel(assignStatus, value);
}
},
{
field: 'sourceType',
title: '推广来源',
visible: false
},
{
field: 'customerStatus',
title: '客户状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(customerStatus, value);
}
},
{
field: 'customerLevel',
title: '客户评级',
visible: false
},
{
field: 'nextTime',
title: '下次跟进日期',
visible: false
},
{
field: 'touchQrcode',
title: '是否长按识别二维码',
visible: false
},
{
field: 'contactNumber',
title: '跟进次数',
visible: false
},
{
field: 'isTouch',
title: '是否触达',
visible: false
},
{
field: 'isAddWx',
title: '是否加微',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isAddWx, value);
}
},
{
field: 'isEffective',
title: '是否有效',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isEffective, value);
}
},
{
field: 'isPlan',
title: '是否意向',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isPlan, value);
}
},
{
field: 'isDeal',
title: '成交状态',
formatter: function(value, row, index) {
return $.table.selectDictLabel(isDeal, value);
}
},
{
field: 'poolStatus',
title: '池状态',
formatter: function(value, row, index) {
if(value == '01') {
return '<span class="label label-primary">公海池</span>';
} else if(value == '02') {
return '<span class="label label-success">优质线索池</span>';
}
return value;
}
},
{
field: 'wxAccount',
title: '成交金额'
},
{
field: 'provinceName',
title: '省份'
},
{
field: 'cityName',
title: '城市',
visible: false
},
{
field: 'contactTime',
title: '方便接电话时间',
visible: false
},
{
field: 'otherPhone',
title: '其他联系方式',
visible: false
},
{
field: 'company',
title: '广告主',
visible: false
},
{
field: 'sourceSaleName',
title: '原始销售'
},
{
field: 'saleName',
title: '销售'
},
{
field: 'infoFlow',
title: '信息流',
visible: false
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="getBackClew(\'' + row.id + '\')"><i class="fa fa-remove"></i>取回线索</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
/* 用户管理-停用 */
function getBackClew(id) {
$.modal.confirm("确定要取回该线索吗?", function() {
$.operate.post(prefix + "/getBackClew", { "id": id});
})
}
/* 用户管理启用 */
function addPublicClew(id) {
$.modal.confirm("确定要加入公海池吗?", function() {
$.operate.post(prefix + "/addPublicClew", { "id": id});
})
}
/* 选择供应商 */
function changeUser(clewId) {
var url = prefix + '/changeUser/' + clewId;
$.modal.open("选择客服", url, '800', '300');
}
function changeBatchUser(){
table.set();
var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId);
if (rows.length == 0) {
$.modal.alertWarning("请至少选择一条记录");
return;
}
$.modal.confirm("确认分配吗?", function() {
$.modal.open("选择客服", prefix + '/changeBatchUser/' + rows.join(), '800', '300');
})
}
</script>
</body>
</html>

View File

@ -117,6 +117,15 @@ public class Clew extends BaseEntity
@Excel(name = "成交状态 0.未成交 1.已成交") @Excel(name = "成交状态 0.未成交 1.已成交")
private String isDeal; private String isDeal;
/** 池状态 01.公海池 02.优质线索池 */
@Excel(name = "池状态 01.公海池 02.优质线索池")
private String poolStatus;
/** 捞取时间 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "捞取时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date catchTime;
/** 省份 */ /** 省份 */
@Excel(name = "省份") @Excel(name = "省份")
private String provinceName; private String provinceName;

View File

@ -31,6 +31,14 @@ public interface ClewMapper
public List<Clew> selectClewPublicList(Clew clew); public List<Clew> selectClewPublicList(Clew clew);
/**
* 查询优质线索池列表
*
* @param clew 线索
* @return 线索集合
*/
public List<Clew> selectClewQualityList(Clew clew);
/** /**
* 新增线索 * 新增线索
* *

View File

@ -31,6 +31,14 @@ public interface IClewService
public List<Clew> selectClewPublicList(Clew clew); public List<Clew> selectClewPublicList(Clew clew);
/**
* 查询优质线索池列表
*
* @param clew 线索
* @return 线索集合
*/
public List<Clew> selectClewQualityList(Clew clew);
/** /**
* 新增线索 * 新增线索
* *
@ -49,6 +57,14 @@ public interface IClewService
public int updateBatchClew(Clew clew); public int updateBatchClew(Clew clew);
/**
* 捞取线索到优质线索池
*
* @param clew 线索
* @return 结果
*/
public int catchClewToQuality(Clew clew);
/** /**
* 批量删除线索 * 批量删除线索
* *

View File

@ -59,6 +59,12 @@ public class ClewServiceImpl implements IClewService
return clewMapper.selectClewPublicList(clew); return clewMapper.selectClewPublicList(clew);
} }
@Override
public List<Clew> selectClewQualityList(Clew clew)
{
return clewMapper.selectClewQualityList(clew);
}
/** /**
* 新增线索 * 新增线索
* *
@ -109,6 +115,12 @@ public class ClewServiceImpl implements IClewService
return clewMapper.updateBatchClew(clew); return clewMapper.updateBatchClew(clew);
} }
@Override
public int catchClewToQuality(Clew clew)
{
return clewMapper.updateClew(clew);
}
/** /**
* 批量删除线索 * 批量删除线索
* *

View File

@ -27,6 +27,8 @@
<result property="isEffective" column="is_effective" /> <result property="isEffective" column="is_effective" />
<result property="isPlan" column="is_plan" /> <result property="isPlan" column="is_plan" />
<result property="isDeal" column="is_deal" /> <result property="isDeal" column="is_deal" />
<result property="poolStatus" column="pool_status" />
<result property="catchTime" column="catch_time" />
<result property="provinceName" column="province_name" /> <result property="provinceName" column="province_name" />
<result property="cityName" column="city_name" /> <result property="cityName" column="city_name" />
<result property="customerName" column="customer_name" /> <result property="customerName" column="customer_name" />
@ -47,7 +49,7 @@
wx_name, phone, debt_type, debt_money, source_type, wx_name, phone, debt_type, debt_money, source_type,
source_app, wx_account, customer_status, customer_level, touch_qrcode, source_app, wx_account, customer_status, customer_level, touch_qrcode,
contact_number, is_touch, is_add_wx, is_effective, is_plan, is_deal, contact_number, is_touch, is_add_wx, is_effective, is_plan, is_deal,
province_name, city_name, customer_name, contact_time, other_phone, pool_status, catch_time, province_name, city_name, customer_name, contact_time, other_phone,
create_time, create_by, update_by, update_time, remark, customer_remark,two_customer_remark,assign_times from clew create_time, create_by, update_by, update_time, remark, customer_remark,two_customer_remark,assign_times from clew
</sql> </sql>
@ -150,6 +152,7 @@
<if test="contactTime != null "> and contact_time = #{contactTime}</if> <if test="contactTime != null "> and contact_time = #{contactTime}</if>
<if test="otherPhone != null and otherPhone != ''"> and other_phone = #{otherPhone}</if> <if test="otherPhone != null and otherPhone != ''"> and other_phone = #{otherPhone}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if> <if test="remark != null and remark != ''"> and remark = #{remark}</if>
<if test="poolStatus != null and poolStatus != ''"> and pool_status = #{poolStatus}</if>
<if test="searchStatus == '01'"> <if test="searchStatus == '01'">
and is_add_wx = '1' and is_add_wx = '1'
</if> </if>
@ -209,6 +212,8 @@
<if test="isEffective != null">is_effective,</if> <if test="isEffective != null">is_effective,</if>
<if test="isPlan != null">is_plan,</if> <if test="isPlan != null">is_plan,</if>
<if test="isDeal != null">is_deal,</if> <if test="isDeal != null">is_deal,</if>
<if test="poolStatus != null">pool_status,</if>
<if test="catchTime != null">catch_time,</if>
<if test="provinceName != null">province_name,</if> <if test="provinceName != null">province_name,</if>
<if test="cityName != null">city_name,</if> <if test="cityName != null">city_name,</if>
<if test="customerName != null">customer_name,</if> <if test="customerName != null">customer_name,</if>
@ -241,6 +246,8 @@
<if test="isEffective != null">#{isEffective},</if> <if test="isEffective != null">#{isEffective},</if>
<if test="isPlan != null">#{isPlan},</if> <if test="isPlan != null">#{isPlan},</if>
<if test="isDeal != null">#{isDeal},</if> <if test="isDeal != null">#{isDeal},</if>
<if test="poolStatus != null">#{poolStatus},</if>
<if test="catchTime != null">#{catchTime},</if>
<if test="provinceName != null">#{provinceName},</if> <if test="provinceName != null">#{provinceName},</if>
<if test="cityName != null">#{cityName},</if> <if test="cityName != null">#{cityName},</if>
<if test="customerName != null">#{customerName},</if> <if test="customerName != null">#{customerName},</if>
@ -277,6 +284,8 @@
<if test="isEffective != null">is_effective = #{isEffective},</if> <if test="isEffective != null">is_effective = #{isEffective},</if>
<if test="isPlan != null">is_plan = #{isPlan},</if> <if test="isPlan != null">is_plan = #{isPlan},</if>
<if test="isDeal != null">is_deal = #{isDeal},</if> <if test="isDeal != null">is_deal = #{isDeal},</if>
<if test="poolStatus != null">pool_status = #{poolStatus},</if>
<if test="catchTime != null">catch_time = #{catchTime},</if>
<if test="provinceName != null">province_name = #{provinceName},</if> <if test="provinceName != null">province_name = #{provinceName},</if>
<if test="cityName != null">city_name = #{cityName},</if> <if test="cityName != null">city_name = #{cityName},</if>
<if test="customerName != null">customer_name = #{customerName},</if> <if test="customerName != null">customer_name = #{customerName},</if>
@ -342,4 +351,71 @@
and sale_id != 2 and sale_id != 2
and update_time &lt;= #{beginTime} and update_time &lt;= #{beginTime}
</update> </update>
<select id="selectClewQualityList" parameterType="Clew" resultMap="ClewResult">
<include refid="selectClewVo"/>
<where>
<if test="company != null "> and company = #{company}</if>
<if test="saleId != null "> and sale_id = #{saleId}</if>
<if test="infoFlow != null and infoFlow != ''"> and info_flow = #{infoFlow}</if>
<if test="nextTime != null "> and next_time = #{nextTime}</if>
<if test="wxName != null and wxName != ''"> and wx_name like concat('%', #{wxName}, '%')</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<if test="debtType != null and debtType != ''"> and debt_type = #{debtType}</if>
<if test="debtMoney != null and debtMoney != ''"> and debt_money = #{debtMoney}</if>
<if test="sourceType != null and sourceType != ''"> and source_type = #{sourceType}</if>
<if test="sourceApp != null "> and source_app = #{sourceApp}</if>
<if test="wxAccount != null and wxAccount != ''"> and wx_account = #{wxAccount}</if>
<if test="customerStatus != null and customerStatus != ''"> and customer_status = #{customerStatus}</if>
<if test="customerLevel != null and customerLevel != ''"> and customer_level = #{customerLevel}</if>
<if test="touchQrcode != null and touchQrcode != ''"> and touch_qrcode = #{touchQrcode}</if>
<if test="contactNumber != null "> and contact_number = #{contactNumber}</if>
<if test="isTouch != null and isTouch != ''"> and is_touch = #{isTouch}</if>
<if test="isAddWx != null and isAddWx != ''"> and is_add_wx = #{isAddWx}</if>
<if test="isEffective != null and isEffective != ''"> and is_effective = #{isEffective}</if>
<if test="isPlan != null and isPlan != ''"> and is_plan = #{isPlan}</if>
<if test="isDeal != null and isDeal != ''"> and is_deal = #{isDeal}</if>
<if test="provinceName != null and provinceName != ''"> and province_name like concat('%', #{provinceName}, '%')</if>
<if test="cityName != null and cityName != ''"> and city_name like concat('%', #{cityName}, '%')</if>
<if test="customerName != null and customerName != ''"> and customer_name like concat('%', #{customerName}, '%')</if>
<if test="contactTime != null "> and contact_time = #{contactTime}</if>
<if test="otherPhone != null and otherPhone != ''"> and other_phone = #{otherPhone}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if>
<if test="poolStatus != null and poolStatus != ''"> and pool_status = #{poolStatus}</if>
<if test="searchStatus == '01'">
and is_add_wx = '1'
</if>
<if test="searchStatus == '02'">
and is_effective = '0'
</if>
<if test="searchStatus == '03'">
and is_plan = '1'
</if>
<if test="searchStatus == '04'">
and is_deal = '1'
</if>
<if test="searchStatus == '05'">
and is_add_wx != '1'
</if>
<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
AND date_format(create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
</if>
<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
AND date_format(create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
</if>
<if test="params.updateStartTime != null and params.updateStartTime != ''"><!-- 开始时间检索 -->
AND date_format(update_time,'%y%m%d') &gt;= date_format(#{params.updateStartTime},'%y%m%d')
</if>
<if test="params.updateEndTime != null and params.updateEndTime != ''"><!-- 结束时间检索 -->
AND date_format(update_time,'%y%m%d') &lt;= date_format(#{params.updateEndTime},'%y%m%d')
</if>
<if test="params.catchStartTime != null and params.catchStartTime != ''"><!-- 捞取开始时间检索 -->
AND date_format(catch_time,'%y%m%d') &gt;= date_format(#{params.catchStartTime},'%y%m%d')
</if>
<if test="params.catchEndTime != null and params.catchEndTime != ''"><!-- 捞取结束时间检索 -->
AND date_format(catch_time,'%y%m%d') &lt;= date_format(#{params.catchEndTime},'%y%m%d')
</if>
</where>
order by catch_time desc
</select>
</mapper> </mapper>