Commit fb38114e by yao.xiao

增加-经纪人查看商机详情页查询分数

parent 1f04faee
...@@ -514,13 +514,52 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -514,13 +514,52 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
OpportunityConsultationInfo opportunityConsultationInfo = getOpportunityConsultation(requestVO); OpportunityConsultationInfo opportunityConsultationInfo = getOpportunityConsultation(requestVO);
//商机跟进ag_survey_analysis_sales_record表差字段 //商机跟进ag_survey_analysis_sales_record表差字段
List<OpportunityRecordInfo> opportunityRecordInfos = getOpportunityRecords(requestVO); List<OpportunityRecordInfo> opportunityRecordInfos = getOpportunityRecords(requestVO);
//商机得分详情
OpportunityScore opportunityScore = getOpportunityScore(opportunityRecordInfos);
responseVO.setOpportunityRecordInfos(opportunityRecordInfos); responseVO.setOpportunityRecordInfos(opportunityRecordInfos);
responseVO.setOpportunityBasicInformationInfo(basicInformationInfo); responseVO.setOpportunityBasicInformationInfo(basicInformationInfo);
responseVO.setOpportunityConsultationInfo(opportunityConsultationInfo); responseVO.setOpportunityConsultationInfo(opportunityConsultationInfo);
responseVO.setOpportunityScore(opportunityScore);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000"))); responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO; return responseVO;
} }
private OpportunityScore getOpportunityScore(List<OpportunityRecordInfo> opportunityRecordInfos) {
OpportunityScore opportunityScore = new OpportunityScore();
Integer scoreDay = 0;
Integer scoreWeek = 0;
Integer scoreMonth = 0;
Integer scoreYear = 0;
Integer scoreTotal = 0;
for (OpportunityRecordInfo info:opportunityRecordInfos){
//总分数
scoreTotal += info.getTrackScore();
if (CommonUtil.isThisYear(info.getNoticeDate())){
//本年分数
scoreYear += info.getTrackScore();
if (CommonUtil.isThisMonth(info.getNoticeDate())){
//本月分数
scoreMonth += info.getTrackScore();
if (CommonUtil.isToday(info.getNoticeDate())){
//今日分数
scoreDay += info.getTrackScore();
}
}
}
if (CommonUtil.isThisWeek(info.getNoticeDate())){
//本周分数
scoreWeek += info.getTrackScore();
}
}
opportunityScore.setScoreDay(scoreDay);
opportunityScore.setScoreWeek(scoreWeek);
opportunityScore.setScoreMonth(scoreMonth);
opportunityScore.setScoreYear(scoreYear);
opportunityScore.setScoreTotal(scoreTotal);
return opportunityScore;
}
/** /**
* 商机客户基本信息 * 商机客户基本信息
* @param requestVO * @param requestVO
...@@ -687,7 +726,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service. ...@@ -687,7 +726,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
MktLeadsAssignedTrack mktLeadsAssignedTrack = new MktLeadsAssignedTrack(); MktLeadsAssignedTrack mktLeadsAssignedTrack = new MktLeadsAssignedTrack();
mktLeadsAssignedTrack.setPractitionerId(practitionerId); mktLeadsAssignedTrack.setPractitionerId(practitionerId);
mktLeadsAssignedTrack.setCustomerId(customerId); mktLeadsAssignedTrack.setCustomerId(customerId);
PageHelper.orderBy("created_at DESC , updated_at DESC"); PageHelper.orderBy("track_time DESC , created_at DESC , updated_at DESC");
List<MktLeadsAssignedTrack> mktLeadsAssignedTracks = mktLeadsAssignedTrackDALService.findByMktLeadsAssignedTrack(mktLeadsAssignedTrack); List<MktLeadsAssignedTrack> mktLeadsAssignedTracks = mktLeadsAssignedTrackDALService.findByMktLeadsAssignedTrack(mktLeadsAssignedTrack);
List<MdDropOptions> dropOptionsList = mdDropOptionsDALService.findByDropMasterCode("bizchance_promotion_action"); List<MdDropOptions> dropOptionsList = mdDropOptionsDALService.findByDropMasterCode("bizchance_promotion_action");
for (MktLeadsAssignedTrack track : mktLeadsAssignedTracks) { for (MktLeadsAssignedTrack track : mktLeadsAssignedTracks) {
......
...@@ -12,4 +12,5 @@ public class OpportunityRecordInfo { ...@@ -12,4 +12,5 @@ public class OpportunityRecordInfo {
private Long opportunityId; private Long opportunityId;
private Long mdDropOptionId; private Long mdDropOptionId;
private String mdDropOptionName; private String mdDropOptionName;
private Integer trackScore;
} }
package com.yd.api.practitioner.vo.opportunity;
import lombok.Data;
@Data
public class OpportunityScore {
private Integer scoreDay;
private Integer scoreWeek;
private Integer scoreMonth;
private Integer scoreYear;
private Integer scoreTotal;
}
...@@ -9,5 +9,6 @@ public class OwnOpportunityDetailQueryResponseVO { ...@@ -9,5 +9,6 @@ public class OwnOpportunityDetailQueryResponseVO {
private OpportunityBasicInformationInfo opportunityBasicInformationInfo;//基本信息 private OpportunityBasicInformationInfo opportunityBasicInformationInfo;//基本信息
private OpportunityConsultationInfo opportunityConsultationInfo;//服务咨询 private OpportunityConsultationInfo opportunityConsultationInfo;//服务咨询
private List<OpportunityRecordInfo> opportunityRecordInfos;//商机跟进 private List<OpportunityRecordInfo> opportunityRecordInfos;//商机跟进
private OpportunityScore opportunityScore;//商机分数
private CommonResult commonResult; private CommonResult commonResult;
} }
...@@ -12,4 +12,6 @@ public class OwnOpportunityInfo { ...@@ -12,4 +12,6 @@ public class OwnOpportunityInfo {
private String opportunityDate;//商机时间 private String opportunityDate;//商机时间
private String mdDropOptionName; private String mdDropOptionName;
private Long leadsAssignedId; private Long leadsAssignedId;
private Double scoreDay;
private Double scoreTotal;
} }
\ No newline at end of file
...@@ -1413,4 +1413,42 @@ public class CommonUtil { ...@@ -1413,4 +1413,42 @@ public class CommonUtil {
return result; return result;
} }
*/ */
//判断选择的日期是否是本周
public static boolean isThisWeek(String time)
{
Calendar calendar = Calendar.getInstance();
int currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
calendar.setTime(stringParseDate(time,"yyyy-MM-dd"));
int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
if(paramWeek==currentWeek){
return true;
}
return false;
}
//判断选择的日期是否是今天
public static boolean isToday(String time)
{
return isThisTime(time,"yyyy-MM-dd");
}
//判断选择的日期是否是本月
public static boolean isThisMonth(String time)
{
return isThisTime(time,"yyyy-MM");
}
public static boolean isThisYear(String time)
{
return isThisTime(time,"yyyy");
}
private static boolean isThisTime(String time,String pattern) {
Date date = stringParseDate(time,"yyyy-MM-dd");
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
String param = sdf.format(date);//参数时间
String now = sdf.format(new Date());//当前时间
if(param.equals(now)){
return true;
}
return false;
}
} }
...@@ -686,6 +686,8 @@ ...@@ -686,6 +686,8 @@
<result column="opportunityDate" property="opportunityDate"/> <result column="opportunityDate" property="opportunityDate"/>
<result column="leadsAssignedId" property="leadsAssignedId"/> <result column="leadsAssignedId" property="leadsAssignedId"/>
<result column="mdDropOptionName" property="mdDropOptionName"/> <result column="mdDropOptionName" property="mdDropOptionName"/>
<result column="scoreDay" property="scoreDay"/>
<result column="scoreTotal" property="scoreTotal"/>
</resultMap> </resultMap>
<select id="ownOpportunityQuery" resultMap="opportunityQuery"> <select id="ownOpportunityQuery" resultMap="opportunityQuery">
SELECT SELECT
...@@ -695,7 +697,9 @@ ...@@ -695,7 +697,9 @@
date_format(a.created_at, '%Y-%m-%d %H:%i:%s') opportunityDate, date_format(a.created_at, '%Y-%m-%d %H:%i:%s') opportunityDate,
if (p.mkt_campaign is null ,'',(SELECT cam.name from ag_md_mk_campaign cam where cam.id = p.mkt_campaign )) opportunityFrom, if (p.mkt_campaign is null ,'',(SELECT cam.name from ag_md_mk_campaign cam where cam.id = p.mkt_campaign )) opportunityFrom,
a.id leadsAssignedId , a.id leadsAssignedId ,
(SELECT md.drop_option_name from ag_md_drop_options md LEFT JOIN ag_mkt_leads_assigned_track amlat ON md.id = amlat.md_drop_option_id where amlat.practitioner_id = a.assigned_practitioner_id and amlat.customer_id = a.customer_id ORDER BY amlat.created_at DESC LIMIT 1) mdDropOptionName (SELECT md.drop_option_name from ag_md_drop_options md LEFT JOIN ag_mkt_leads_assigned_track amlat ON md.id = amlat.md_drop_option_id where amlat.practitioner_id = a.assigned_practitioner_id and amlat.customer_id = a.customer_id ORDER BY amlat.created_at DESC LIMIT 1) mdDropOptionName,
(SELECT sum(t.track_score) from ag_mkt_leads_assigned_track t where t.leads_assigned_id = a.id) scoreTotal ,
(SELECT sum(t.track_score) from ag_mkt_leads_assigned_track t where t.leads_assigned_id = a.id and to_days(track_time) = to_days(now())) scoreDay
FROM FROM
ag_mkt_leads_assigneds a ag_mkt_leads_assigneds a
LEFT JOIN ag_mkt_leads_pool p ON p.customer_id = a.customer_id LEFT JOIN ag_mkt_leads_pool p ON p.customer_id = a.customer_id
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment