date_format(pool.added_at , '%Y-%m-%d %H:%i:%s') as leadsCreateTime,
date_format(pool.added_at , '%Y-%m-%d %H:%i:%s') as leadsCreateTime,
assign.id as assignId,
assign.id as assignId,
assign.assigned_practitioner_id as practitionerId,
assign.assigned_practitioner_id as practitionerId,
assign.name as practitionerName,
assign.login as practitionerMobileNo,
pool.source_from as leadsSourceId,
pool.source_from as leadsSourceId,
date_format(assign.created_at, '%Y-%m-%d %H:%i:%s') as leadsAssignTime
op.drop_option_name as leadsSource,
from ag_mkt_leads_pool pool LEFT JOIN ag_acl_customer c on pool.customer_id = c.id
date_format(assign.created_at, '%Y-%m-%d %H:%i:%s') as leadsAssignTime,
left join ag_mkt_leads_assigneds assign on assign.customer_id = pool.customer_id
expertAssign.expertId as smePractitionerId, -- 专家经纪人id
expertAssign.expertName as sme,
expertAssign.expertMobileNo as smeMobileNo,
date_format(expertAssign.expertAssignTime , '%Y-%m-%d %H:%i:%s') as assignSMEDate, -- 专家派遣时间
date_format(request.created_at , '%Y-%m-%d %H:%i:%s') as requestSMEDate, -- 专家请求时间
assign.FYC as predictFYP, -- 预计FYP
assign.FYP as predictFYC, -- 预计FYC
assign.pieces as predictPieces, -- 预计件数
date_format(assign.time_to_close , '%Y-%m-%d %H:%i:%s') as dealTime, -- 预计成交时间
assignStatus.leadsStatusId as leadsStatusId,
assignStatus.leadsStatusName as leadsStatus
from ag_mkt_leads_pool pool inner JOIN (select t.id,t.name,t.login,t.wechat_no,t.age,t.address,t.blood_type_id,t.zodiac_type_id,t.gender,op1.drop_option_name as bloodTypeName,op2.drop_option_name as zodiacTypeName
from ag_acl_customer t left join ag_md_drop_options op1 on t.blood_type_id = op1.id
left join ag_md_drop_options op2 on t.zodiac_type_id = op2.id) c on pool.customer_id = c.id
left join (select assign.id,assign.customer_id,assign.assigned_practitioner_id,assign.created_at,assign.FYC,assign.FYP,assign.pieces,assign.time_to_close,p.name,c.login
from ag_mkt_leads_assigneds assign left join ag_acl_practitioner p on assign.assigned_practitioner_id = p.id
inner join ag_acl_customer c on p.customer_id = c.id) assign on assign.customer_id = pool.customer_id
left join ag_mkt_leads_expert_request request on request.leads_assigned_id = assign.id
left join (select expertAssign.leads_expert_request_id as expertRequestId,p.id as expertId,p.name as expertName,c.login as expertMobileNo,expertAssign.created_at as expertAssignTime
from ag_mkt_leads_expert_assign expertAssign inner join ag_acl_practitioner p on expertAssign.expert_practitioner_id = p.id
inner join ag_acl_customer c on p.customer_id = c.id) expertAssign on request.id = expertAssign.expertRequestId
inner join (SELECT maxt.customer_id as leadsCustomerId,
tr.md_drop_option_id as leadsStatusId, -- 商机状态id
options.drop_option_name as leadsStatusName -- 商机状态名
FROM(SELECT customer_id,max(updated_at) as track_time FROM ag_mkt_leads_assigned_track tr GROUP BY tr.customer_id) maxt
INNER JOIN ag_mkt_leads_assigned_track tr on maxt.customer_id=tr.customer_id AND maxt.track_time = tr.updated_at
inner join ag_md_drop_options options on tr.md_drop_option_id = options.id
order by tr.leads_assigned_id) assignStatus on assignStatus.leadsCustomerId = pool.customer_id
left join ag_md_drop_options op on pool.source_from = op.id
where pool.is_active = 1
where pool.is_active = 1
<choose>
<whentest="leadsStatus == 1">
and assign.id is null
</when>
<whentest="leadsStatus == 2">
and assign.id is not null
<choose>
<whentest="expertApplyStatus == 1">
and request.id is null
</when>
<whentest="expertApplyStatus == 2">
and request.id is not null
and expertAssign.expertId is null
</when>
<whentest="expertApplyStatus == 3">
and request.id is not null
and expertAssign.expertId is not null
</when>
<otherwise></otherwise>
</choose>
</when>
<otherwise></otherwise>
</choose>
<iftest="leadsStartTime != null">
<iftest="leadsStartTime != null">
and pool.added_at >= #{leadsStartTime,jdbcType=VARCHAR}
and pool.added_at >= #{leadsStartTime,jdbcType=VARCHAR}