zhangchuanxing 2 сар өмнө
parent
commit
8867adeaea

+ 30 - 2
controllers/roadshow/report.go

@@ -19,7 +19,7 @@ import (
 // ResearcherReportList
 // @Title 研究员路演统计
 // @Description 研究员路演统计接口
-// @Param   DataType   query   string  true       "枚举值:week、month、time_interval"
+// @Param   DataType   query   string  true       "枚举值:week、month、time_interval、quarter(季度)"
 // @Param   StartDate   query   string  true       "开始日期,格式:2022-04-06"
 // @Param   EndDate   query   string  true       "结束日期,格式:2022-04-06"
 // @Param   CompanyType   query   string  true       "客户类型:'ficc','权益',传空默认为ficc,"
@@ -73,6 +73,18 @@ func (this *CalendarController) ResearcherReportList() {
 			br.ErrMsg = "数据异常,Err:" + err.Error()
 			return
 		}
+	case "quarter":
+		adminDataList, _, err = roadshowService.GetQuarterData("researcher", "company_status")
+		if err != nil {
+			br.Msg = "数据异常"
+			br.ErrMsg = "数据异常,Err:" + err.Error()
+			return
+		}
+		if err != nil {
+			br.Msg = "数据异常"
+			br.ErrMsg = "数据异常,Err:" + err.Error()
+			return
+		}
 	}
 
 	var group []*roadshow.ResearcherGroup
@@ -187,6 +199,7 @@ func (this *CalendarController) ResearcherReportList() {
 	tmpAllMeetingNumMap := make(map[int]int)
 	tmpAllRoadShowNumMap := make(map[int]int)
 	tmpAllSalonNumMap := make(map[int]int)
+	tmpAllAskNumMap := make(map[int]int)
 	for _, v := range group {
 		v.ResearcherList = groupMap[v.GroupId]
 		tmpGroupAdminReportRecord := make([]roadshow.AdminReportRecord, 0)
@@ -200,6 +213,7 @@ func (this *CalendarController) ResearcherReportList() {
 		tmpGroupMeetingNumMap := make(map[int]int)
 		tmpGroupRoadShowNumMap := make(map[int]int)
 		tmpGroupSalonMapNumMap := make(map[int]int)
+		tmpGroupAskMapNumMap := make(map[int]int)
 		for _, researcher := range groupMap[v.GroupId] {
 			//组内研究员数据
 			//每个区间的数据
@@ -208,7 +222,7 @@ func (this *CalendarController) ResearcherReportList() {
 				startDateIndexList[index] = adminData.StartDate
 				endDateIndexList[index] = adminData.EndDate
 
-				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum, tmpRoadShowNum, tmpSalonNum int
+				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum, tmpRoadShowNum, tmpSalonNum, tmpAskNum int
 				if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
 					tmpTryOutNum = num
 				}
@@ -225,12 +239,17 @@ func (this *CalendarController) ResearcherReportList() {
 					tmpSalonNum = num
 				}
 
+				if num, ok := adminData.AskMap[researcher.AdminId]; ok { //路演总次数
+					tmpAskNum = num
+				}
+
 				tmpAdminRsReportRecordNum := roadshow.RsReportRecordNum{
 					TryOutNum:   tmpTryOutNum,
 					FormalNum:   tmpFormalNum,
 					MeetingNum:  tmpMeetingNum,
 					RoadShowNum: tmpRoadShowNum,
 					SalonNum:    tmpSalonNum,
+					AskNum:      tmpAskNum,
 					StartDate:   adminData.StartDate,
 					EndDate:     adminData.EndDate,
 				}
@@ -252,11 +271,15 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
 					tmpGroupSalonMapNumMap[index] = 0
 				}
+				if _, ok := tmpGroupAskMapNumMap[index]; !ok {
+					tmpGroupAskMapNumMap[index] = 0
+				}
 				tmpGroupTryOutNumMap[index] += tmpTryOutNum
 				tmpGroupFormalNumMap[index] += tmpFormalNum
 				tmpGroupMeetingNumMap[index] += tmpMeetingNum
 				tmpGroupRoadShowNumMap[index] += tmpRoadShowNum
 				tmpGroupSalonMapNumMap[index] += tmpSalonNum
+				tmpGroupAskMapNumMap[index] += tmpAskNum
 
 				//总数据汇总
 				if _, ok := tmpAllTryOutNumMap[index]; !ok {
@@ -274,11 +297,15 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
 					tmpGroupSalonMapNumMap[index] = 0
 				}
+				if _, ok := tmpGroupAskMapNumMap[index]; !ok {
+					tmpGroupAskMapNumMap[index] = 0
+				}
 				tmpAllTryOutNumMap[index] += tmpTryOutNum
 				tmpAllFormalNumMap[index] += tmpFormalNum
 				tmpAllMeetingNumMap[index] += tmpMeetingNum
 				tmpAllRoadShowNumMap[index] += tmpRoadShowNum
 				tmpAllSalonNumMap[index] += tmpSalonNum
+				tmpAllAskNumMap[index] += tmpAskNum
 			}
 			tmpAdminReportRecord := roadshow.AdminReportRecord{
 				Name:                  researcher.RealName,
@@ -295,6 +322,7 @@ func (this *CalendarController) ResearcherReportList() {
 				MeetingNum:  tmpGroupMeetingNumMap[i],
 				RoadShowNum: tmpGroupRoadShowNumMap[i],
 				SalonNum:    tmpGroupSalonMapNumMap[i],
+				AskNum:      tmpGroupAskMapNumMap[i],
 				StartDate:   startDateIndexList[i],
 				EndDate:     endDateIndexList[i],
 			}

+ 1 - 0
models/roadshow/report_record.go

@@ -66,6 +66,7 @@ type RsReportRecordNum struct {
 	OfflineNum  int    `description:"线上路演次数"`
 	RoadShowNum int    `description:"路演总次数"`
 	SalonNum    int    `description:"沙龙路演次数"`
+	AskNum      int    `description:"提交过问答的路演次数"`
 	StartDate   string `description:"开始日期"`
 	EndDate     string `description:"结束日期"`
 	IsLook      bool   `description:"是否可以查看详情"`

+ 48 - 0
services/roadshow/report.go

@@ -137,6 +137,41 @@ func GetMonthData(adminType, dimensionType string) (adminDataMapList []AdminData
 	return
 }
 
+// GetQuarterData 季度数据
+func GetQuarterData(adminType, dimensionType string) (adminDataMapList []AdminDataMap, firstDate time.Time, err error) { //三个协程返回
+	nowQuarterFirstDay := utils.GetNowQuarterFirstDay()                            //本季度第一天
+	nowQuarterLastDay := nowQuarterFirstDay.AddDate(0, 3, 0).Add(-1 * time.Second) //本季度最后一天
+
+	lastQuarterFirstDay1 := nowQuarterFirstDay.AddDate(0, -3, 0)                       //上个季度第一天
+	lastQuarterLastDay1 := lastQuarterFirstDay1.AddDate(0, 1, 0).Add(-1 * time.Second) //上个季度最后一天
+
+	lastQuarterFirstDay2 := nowQuarterFirstDay.AddDate(0, -6, 0)                       //上上个季度第一天
+	lastQuarterLastDay2 := lastQuarterFirstDay2.AddDate(0, 1, 0).Add(-1 * time.Second) //上上个季度最后一天
+
+	ch1 := make(chan AdminDataMap, 0)
+	ch2 := make(chan AdminDataMap, 0)
+	ch3 := make(chan AdminDataMap, 0)
+
+	go getSectionData(nowQuarterFirstDay, nowQuarterLastDay, adminType, dimensionType, ch1)
+	go getSectionData(lastQuarterFirstDay1, lastQuarterLastDay1, adminType, dimensionType, ch2)
+	go getSectionData(lastQuarterFirstDay2, lastQuarterLastDay2, adminType, dimensionType, ch3)
+
+	var nowMonthAdminDataMap, lastMonthAdminDataMap1, lastMonthAdminDataMap2, lastMonthAdminDataMap3 AdminDataMap
+
+	nowMonthAdminDataMap = <-ch1
+	close(ch1)
+
+	lastMonthAdminDataMap1 = <-ch2
+	close(ch2)
+
+	lastMonthAdminDataMap2 = <-ch3
+	close(ch3)
+
+	adminDataMapList = make([]AdminDataMap, 0)
+	adminDataMapList = append(adminDataMapList, nowMonthAdminDataMap, lastMonthAdminDataMap1, lastMonthAdminDataMap2, lastMonthAdminDataMap3)
+	return
+}
+
 // GetMonthDataV2 月度数据
 func GetMonthDataV2(adminType, dimensionType string, dataNum int) (adminDataMapList []AdminDataMap, firstDate time.Time, err error) { //三个协程返回
 	nowMonthFirstDay := utils.GetNowMonthFirstDay() //本月第一天
@@ -197,6 +232,7 @@ type AdminDataMap struct {
 	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:"开始日期"`
 }
@@ -223,6 +259,7 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 	meetingMap := make(map[int]int)
 	roadShowMap := make(map[int]int) // 路演总次数
 	salonMap := make(map[int]int)    //沙龙路演次数
+	askMap := make(map[int]int)      //填写过客户问答的路演次数
 	//正式客户
 	{
 		var condition string
@@ -237,6 +274,16 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 		for _, v := range data {
 			formalMap[v.AdminId] = v.Num
 		}
+
+		condition += ` and  question_status = 1  `
+		dataAsk, tmpErr := roadshow.GetGroupResearcherRecordList(condition, pars)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		for _, v := range dataAsk {
+			askMap[v.AdminId] = v.Num
+		}
 	}
 
 	//试用客户
@@ -314,6 +361,7 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 		MeetingMap:  meetingMap,
 		RoadShowMap: roadShowMap,
 		SalonMap:    salonMap,
+		AskMap:      askMap,
 		StartDate:   startDate.Format(utils.FormatDate),
 		EndDate:     endDate.Format(utils.FormatDate),
 	}