Commit fb38114e by yao.xiao

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

parent 1f04faee
......@@ -514,13 +514,52 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
OpportunityConsultationInfo opportunityConsultationInfo = getOpportunityConsultation(requestVO);
//商机跟进ag_survey_analysis_sales_record表差字段
List<OpportunityRecordInfo> opportunityRecordInfos = getOpportunityRecords(requestVO);
//商机得分详情
OpportunityScore opportunityScore = getOpportunityScore(opportunityRecordInfos);
responseVO.setOpportunityRecordInfos(opportunityRecordInfos);
responseVO.setOpportunityBasicInformationInfo(basicInformationInfo);
responseVO.setOpportunityConsultationInfo(opportunityConsultationInfo);
responseVO.setOpportunityScore(opportunityScore);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
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
......@@ -687,7 +726,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
MktLeadsAssignedTrack mktLeadsAssignedTrack = new MktLeadsAssignedTrack();
mktLeadsAssignedTrack.setPractitionerId(practitionerId);
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<MdDropOptions> dropOptionsList = mdDropOptionsDALService.findByDropMasterCode("bizchance_promotion_action");
for (MktLeadsAssignedTrack track : mktLeadsAssignedTracks) {
......
......@@ -12,4 +12,5 @@ public class OpportunityRecordInfo {
private Long opportunityId;
private Long mdDropOptionId;
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 {
private OpportunityBasicInformationInfo opportunityBasicInformationInfo;//基本信息
private OpportunityConsultationInfo opportunityConsultationInfo;//服务咨询
private List<OpportunityRecordInfo> opportunityRecordInfos;//商机跟进
private OpportunityScore opportunityScore;//商机分数
private CommonResult commonResult;
}
......@@ -12,4 +12,6 @@ public class OwnOpportunityInfo {
private String opportunityDate;//商机时间
private String mdDropOptionName;
private Long leadsAssignedId;
private Double scoreDay;
private Double scoreTotal;
}
\ No newline at end of file
......@@ -1413,4 +1413,42 @@ public class CommonUtil {
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 @@
<result column="opportunityDate" property="opportunityDate"/>
<result column="leadsAssignedId" property="leadsAssignedId"/>
<result column="mdDropOptionName" property="mdDropOptionName"/>
<result column="scoreDay" property="scoreDay"/>
<result column="scoreTotal" property="scoreTotal"/>
</resultMap>
<select id="ownOpportunityQuery" resultMap="opportunityQuery">
SELECT
......@@ -695,7 +697,9 @@
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,
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
ag_mkt_leads_assigneds a
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