Ver Fonte

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into cygx/cygx_14-5

zhangchuanxing há 3 semanas atrás
pai
commit
1b01559c86
3 ficheiros alterados com 114 adições e 65 exclusões
  1. 45 27
      controllers/roadshow/report.go
  2. 33 11
      models/roadshow/report_record.go
  3. 36 27
      services/roadshow/report.go

+ 45 - 27
controllers/roadshow/report.go

@@ -202,7 +202,9 @@ func (this *CalendarController) ResearcherReportList() {
 	tmpAllMeetingNumMap := make(map[int]int)
 	tmpAllRoadShowNumMap := make(map[int]int)
 	tmpAllSalonNumMap := make(map[int]int)
-	tmpAllAskNumMap := make(map[int]int)
+	//tmpAllAskNumMap := make(map[int]int)
+	tmpAllAskTryOutNumMap := make(map[int]int)
+	tmpAllAskFormalNumMap := make(map[int]int)
 	for _, v := range group {
 		v.ResearcherList = groupMap[v.GroupId]
 		tmpGroupAdminReportRecord := make([]roadshow.AdminReportRecord, 0)
@@ -216,7 +218,8 @@ func (this *CalendarController) ResearcherReportList() {
 		tmpGroupMeetingNumMap := make(map[int]int)
 		tmpGroupRoadShowNumMap := make(map[int]int)
 		tmpGroupSalonMapNumMap := make(map[int]int)
-		tmpGroupAskMapNumMap := make(map[int]int)
+		tmpGroupAskTryOutMapNumMap := make(map[int]int)
+		tmpGroupAskFormalMapNumMap := make(map[int]int)
 		for _, researcher := range groupMap[v.GroupId] {
 			//组内研究员数据
 			//每个区间的数据
@@ -225,7 +228,7 @@ func (this *CalendarController) ResearcherReportList() {
 				startDateIndexList[index] = adminData.StartDate
 				endDateIndexList[index] = adminData.EndDate
 
-				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum, tmpRoadShowNum, tmpSalonNum, tmpAskNum int
+				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum, tmpRoadShowNum, tmpSalonNum, tmpAskTryOutNum, tmpAskFormalNum int
 				if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
 					tmpTryOutNum = num
 				}
@@ -242,19 +245,24 @@ func (this *CalendarController) ResearcherReportList() {
 					tmpSalonNum = num
 				}
 
-				if num, ok := adminData.AskMap[researcher.AdminId]; ok { //路演总次数
-					tmpAskNum = num
+				if num, ok := adminData.AskTryOutMap[researcher.AdminId]; ok { //路演总次数(试用)
+					tmpAskTryOutNum = num
+				}
+				if num, ok := adminData.AskFormalMap[researcher.AdminId]; ok { //路演总次数(正式)
+					tmpAskFormalNum = num
 				}
 
 				tmpAdminRsReportRecordNum := roadshow.RsReportRecordNum{
-					TryOutNum:   tmpTryOutNum,
-					FormalNum:   tmpFormalNum,
-					MeetingNum:  tmpMeetingNum,
-					RoadShowNum: tmpRoadShowNum,
-					SalonNum:    tmpSalonNum,
-					AskNum:      tmpAskNum,
-					StartDate:   adminData.StartDate,
-					EndDate:     adminData.EndDate,
+					TryOutNum:    tmpTryOutNum,
+					FormalNum:    tmpFormalNum,
+					MeetingNum:   tmpMeetingNum,
+					RoadShowNum:  tmpRoadShowNum,
+					SalonNum:     tmpSalonNum,
+					AskTryOutNum: tmpAskTryOutNum,
+					AskFormalNum: tmpAskFormalNum,
+					AskNum:       tmpAskTryOutNum + tmpAskFormalNum,
+					StartDate:    adminData.StartDate,
+					EndDate:      adminData.EndDate,
 				}
 				tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
 
@@ -274,15 +282,19 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
 					tmpGroupSalonMapNumMap[index] = 0
 				}
-				if _, ok := tmpGroupAskMapNumMap[index]; !ok {
-					tmpGroupAskMapNumMap[index] = 0
+				if _, ok := tmpGroupAskTryOutMapNumMap[index]; !ok {
+					tmpGroupAskTryOutMapNumMap[index] = 0
+				}
+				if _, ok := tmpGroupAskFormalMapNumMap[index]; !ok {
+					tmpGroupAskFormalMapNumMap[index] = 0
 				}
 				tmpGroupTryOutNumMap[index] += tmpTryOutNum
 				tmpGroupFormalNumMap[index] += tmpFormalNum
 				tmpGroupMeetingNumMap[index] += tmpMeetingNum
 				tmpGroupRoadShowNumMap[index] += tmpRoadShowNum
 				tmpGroupSalonMapNumMap[index] += tmpSalonNum
-				tmpGroupAskMapNumMap[index] += tmpAskNum
+				tmpGroupAskTryOutMapNumMap[index] += tmpAskTryOutNum
+				tmpGroupAskFormalMapNumMap[index] += tmpAskFormalNum
 
 				//总数据汇总
 				if _, ok := tmpAllTryOutNumMap[index]; !ok {
@@ -300,15 +312,20 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
 					tmpGroupSalonMapNumMap[index] = 0
 				}
-				if _, ok := tmpGroupAskMapNumMap[index]; !ok {
-					tmpGroupAskMapNumMap[index] = 0
+				if _, ok := tmpGroupAskTryOutMapNumMap[index]; !ok {
+					tmpGroupAskTryOutMapNumMap[index] = 0
 				}
+				if _, ok := tmpGroupAskFormalMapNumMap[index]; !ok {
+					tmpGroupAskFormalMapNumMap[index] = 0
+				}
+
 				tmpAllTryOutNumMap[index] += tmpTryOutNum
 				tmpAllFormalNumMap[index] += tmpFormalNum
 				tmpAllMeetingNumMap[index] += tmpMeetingNum
 				tmpAllRoadShowNumMap[index] += tmpRoadShowNum
 				tmpAllSalonNumMap[index] += tmpSalonNum
-				tmpAllAskNumMap[index] += tmpAskNum
+				tmpAllAskTryOutNumMap[index] += tmpAskTryOutNum
+				tmpAllAskFormalNumMap[index] += tmpAskFormalNum
 			}
 			tmpAdminReportRecord := roadshow.AdminReportRecord{
 				Name:                  researcher.RealName,
@@ -320,14 +337,15 @@ func (this *CalendarController) ResearcherReportList() {
 
 		for i := 0; i < len(tmpGroupMeetingNumMap); i++ {
 			tmpGroupRsReportRecordNum := roadshow.RsReportRecordNum{
-				TryOutNum:   tmpGroupTryOutNumMap[i],
-				FormalNum:   tmpGroupFormalNumMap[i],
-				MeetingNum:  tmpGroupMeetingNumMap[i],
-				RoadShowNum: tmpGroupRoadShowNumMap[i],
-				SalonNum:    tmpGroupSalonMapNumMap[i],
-				AskNum:      tmpGroupAskMapNumMap[i],
-				StartDate:   startDateIndexList[i],
-				EndDate:     endDateIndexList[i],
+				TryOutNum:    tmpGroupTryOutNumMap[i],
+				FormalNum:    tmpGroupFormalNumMap[i],
+				MeetingNum:   tmpGroupMeetingNumMap[i],
+				RoadShowNum:  tmpGroupRoadShowNumMap[i],
+				SalonNum:     tmpGroupSalonMapNumMap[i],
+				AskTryOutNum: tmpGroupAskTryOutMapNumMap[i],
+				AskFormalNum: tmpGroupAskFormalMapNumMap[i],
+				StartDate:    startDateIndexList[i],
+				EndDate:      endDateIndexList[i],
 			}
 			tmpGroupRsReportRecordNumList = append(tmpGroupRsReportRecordNumList, tmpGroupRsReportRecordNum)
 		}

+ 33 - 11
models/roadshow/report_record.go

@@ -59,17 +59,19 @@ type AdminReportRecord struct {
 
 // RsReportRecordNum 系统用户统计信息
 type RsReportRecordNum struct {
-	TryOutNum   int    `description:"试用路演次数"`
-	FormalNum   int    `description:"正式路演次数"`
-	MeetingNum  int    `description:"会议次数"`
-	OnlineNum   int    `description:"线上路演次数"`
-	OfflineNum  int    `description:"线上路演次数"`
-	RoadShowNum int    `description:"路演总次数"`
-	SalonNum    int    `description:"沙龙路演次数"`
-	AskNum      int    `description:"提交过问答的路演次数"`
-	StartDate   string `description:"开始日期"`
-	EndDate     string `description:"结束日期"`
-	IsLook      bool   `description:"是否可以查看详情"`
+	TryOutNum    int    `description:"试用路演次数"`
+	FormalNum    int    `description:"正式路演次数"`
+	MeetingNum   int    `description:"会议次数"`
+	OnlineNum    int    `description:"线上路演次数"`
+	OfflineNum   int    `description:"线上路演次数"`
+	RoadShowNum  int    `description:"路演总次数"`
+	SalonNum     int    `description:"沙龙路演次数"`
+	AskTryOutNum int    `description:"提交过问答的路演次数"`
+	AskFormalNum int    `description:"提交过问答的路演次数"`
+	AskNum       int    `description:"提交过问答的路演次数"`
+	StartDate    string `description:"开始日期"`
+	EndDate      string `description:"结束日期"`
+	IsLook       bool   `description:"是否可以查看详情"`
 }
 
 func DeleteRsReportRecord(rsCalendarId, rsCalendarResearcherId int) (err error) {
@@ -102,6 +104,26 @@ func GetGroupResearcherRecordList(condition string, pars []interface{}) (list []
 	return
 }
 
+// GetGroupResearcherRecordListAsk 获取研究员分组数据()
+func GetGroupResearcherRecordListAsk(condition string, pars []interface{}) (list []*RsReportRecordGroup, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT 
+				a.researcher_id AS admin_id,
+				a.researcher_group_id AS group_id,
+				a.researcher_name admin_name,
+				count( 1 ) num  
+				FROM  rs_report_record a 
+				inner join rs_calendar_researcher AS c ON a.rs_calendar_id=c.rs_calendar_id AND a.rs_calendar_researcher_id=c.rs_calendar_researcher_id
+				WHERE 1=1 and a.rs_calendar_researcher_status = 2 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` GROUP BY 	a.researcher_id `
+	_, err = o.Raw(sql, pars).QueryRows(&list)
+
+	return
+}
+
 // GetGroupSellerRecordList 获取销售分组数据
 func GetGroupSellerRecordList(condition string, pars []interface{}) (list []*RsReportRecordGroup, err error) {
 	o := orm.NewOrm()

+ 36 - 27
services/roadshow/report.go

@@ -225,16 +225,17 @@ func GetTimeIntervalData(startDate, endDate, adminType, dimensionType string) (a
 }
 
 type AdminDataMap struct {
-	TryOutMap   map[int]int `description:"试用路演次数"`
-	FormalMap   map[int]int `description:"正式路演次数"`
-	MeetingMap  map[int]int `description:"会议次数"`
-	OnlineMap   map[int]int `description:"线上路演次数"`
-	OfflineMap  map[int]int `description:"线上路演次数"`
-	RoadShowMap map[int]int `description:"路演总次数"`
-	SalonMap    map[int]int `description:"沙龙路演次数"`
-	AskMap      map[int]int `description:"沙龙路演次数"`
-	StartDate   string      `description:"开始日期"`
-	EndDate     string      `description:"开始日期"`
+	TryOutMap    map[int]int `description:"试用路演次数"`
+	FormalMap    map[int]int `description:"正式路演次数"`
+	MeetingMap   map[int]int `description:"会议次数"`
+	OnlineMap    map[int]int `description:"线上路演次数"`
+	OfflineMap   map[int]int `description:"线上路演次数"`
+	RoadShowMap  map[int]int `description:"路演总次数"`
+	SalonMap     map[int]int `description:"沙龙路演次数"`
+	AskTryOutMap map[int]int `description:"沙龙路演次数"`
+	AskFormalMap map[int]int `description:"沙龙路演次数"`
+	StartDate    string      `description:"开始日期"`
+	EndDate      string      `description:"开始日期"`
 }
 
 // getSectionData 获取周期数据
@@ -257,9 +258,10 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 	tryOutMap := make(map[int]int)
 	formalMap := make(map[int]int)
 	meetingMap := make(map[int]int)
-	roadShowMap := make(map[int]int) // 路演总次数
-	salonMap := make(map[int]int)    //沙龙路演次数
-	askMap := make(map[int]int)      //填写过客户问答的路演次数
+	roadShowMap := make(map[int]int)  // 路演总次数
+	salonMap := make(map[int]int)     //沙龙路演次数
+	asktryOutMap := make(map[int]int) //填写过客户问答的路演次数(试用)
+	askformalMap := make(map[int]int) //填写过客户问答的路演次数(正式)
 	//正式客户
 	{
 		var condition string
@@ -275,14 +277,17 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 			formalMap[v.AdminId] = v.Num
 		}
 
-		condition += ` and  question_status = 1  `
-		dataAsk, tmpErr := roadshow.GetGroupResearcherRecordList(condition, pars)
+		var conditionAsk string
+		var parsAsk []interface{}
+		conditionAsk = ` and  c.question_status = 1  and a.start_date >= ? and a.end_date <= ?  and a.company_status = ? `
+		parsAsk = append(parsAsk, startDate, endDate, "正式")
+		dataAsk, tmpErr := roadshow.GetGroupResearcherRecordListAsk(conditionAsk, parsAsk)
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
 		for _, v := range dataAsk {
-			askMap[v.AdminId] = v.Num
+			askformalMap[v.AdminId] = v.Num
 		}
 	}
 
@@ -303,14 +308,17 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 			tryOutMap[v.AdminId] = v.Num
 		}
 
-		condition += ` and  question_status = 1  `
-		dataAsk, tmpErr := roadshow.GetGroupResearcherRecordList(condition, pars)
+		var conditionAsk string
+		var parsAsk []interface{}
+		conditionAsk = ` and  c.question_status = 1  and a.start_date >= ? and a.end_date <= ?  and a.company_status = ? `
+		parsAsk = append(parsAsk, startDate, endDate, "试用")
+		dataAsk, tmpErr := roadshow.GetGroupResearcherRecordListAsk(conditionAsk, parsAsk)
 		if tmpErr != nil {
 			err = tmpErr
 			return
 		}
 		for _, v := range dataAsk {
-			askMap[v.AdminId] = v.Num
+			asktryOutMap[v.AdminId] = v.Num
 		}
 	}
 
@@ -366,14 +374,15 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 	}
 
 	adminDataMap = AdminDataMap{
-		TryOutMap:   tryOutMap,
-		FormalMap:   formalMap,
-		MeetingMap:  meetingMap,
-		RoadShowMap: roadShowMap,
-		SalonMap:    salonMap,
-		AskMap:      askMap,
-		StartDate:   startDate.Format(utils.FormatDate),
-		EndDate:     endDate.Format(utils.FormatDate),
+		TryOutMap:    tryOutMap,
+		FormalMap:    formalMap,
+		MeetingMap:   meetingMap,
+		RoadShowMap:  roadShowMap,
+		SalonMap:     salonMap,
+		AskTryOutMap: asktryOutMap,
+		AskFormalMap: askformalMap,
+		StartDate:    startDate.Format(utils.FormatDate),
+		EndDate:      endDate.Format(utils.FormatDate),
 	}
 	return
 }