瀏覽代碼

no message

xingzai 7 月之前
父節點
當前提交
688aab2e6c
共有 4 個文件被更改,包括 176 次插入53 次删除
  1. 112 29
      controllers/roadshow/report.go
  2. 1 1
      models/cygx/activity_ask_email.go
  3. 10 11
      models/roadshow/report_record.go
  4. 53 12
      services/roadshow/report.go

+ 112 - 29
controllers/roadshow/report.go

@@ -5,6 +5,7 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
@@ -75,24 +76,71 @@ func (this *CalendarController) ResearcherReportList() {
 	}
 
 	var group []*roadshow.ResearcherGroup
+	var researcherList []*roadshow.ResearcherGroup
 
 	switch companyType {
 	case utils.COMPANY_CLASSIFY_FICC:
 		group, err = roadshow.GetResearcherGroup()
+		if err != nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
+			return
+		}
+		researcherList, err = roadshow.GetResearcherV2()
+		if err != nil {
+			br.Msg = "获取信息失败!"
+			br.ErrMsg = "获取分组信息失败!,GetResearcherV2 Err:" + err.Error()
+			return
+		}
 	case utils.COMPANY_CLASSIFY_RAI:
-		group, err = roadshow.GetResearcherGroup()
-	}
+		mapPermissionUser := make(map[string][]*roadshow.ResearcherGroup)
+		listPermission, err := cygx.GetChartPermissionAll()
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
+		}
+		mapPermissionId := make(map[string]int)
+		for _, v := range listPermission {
+			mapPermissionId[v.PermissionName] = v.ChartPermissionId
+		}
+		askUserList, err := cygx.GetAskEmailListResearcher()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetAskEmailListResearcher Err: " + err.Error()
+			return
+		}
+		sysUserList, err := system.GetAdminList()
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取admin列表失败, Err:" + err.Error()
+			return
+		}
+		adminMap := make(map[int]*system.Admin, 0)
+		for _, v := range sysUserList {
+			adminMap[v.AdminId] = v
+		}
 
-	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
-		return
-	}
-	researcherList, err := roadshow.GetResearcherV2()
-	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取分组信息失败!,GetResearcherV2 Err:" + err.Error()
-		return
+		for _, v := range askUserList {
+			if admin, ok := adminMap[v.AdminId]; ok {
+				item := &roadshow.ResearcherGroup{
+					AdminId:      v.AdminId,
+					RealName:     v.Name,
+					GroupId:      mapPermissionId[v.ChartPermissionName], //行业ID作为组别,进行关系映射
+					GroupName:    admin.GroupName,
+					RoleTypeCode: admin.RoleTypeCode,
+				}
+				mapPermissionUser[v.ChartPermissionName] = append(mapPermissionUser[v.ChartPermissionName], item)
+				researcherList = append(researcherList, item)
+			}
+		}
+		for k, v := range mapPermissionUser {
+			respItem := new(roadshow.ResearcherGroup)
+			respItem.GroupName = k + "组"
+			respItem.GroupId = mapPermissionId[k]
+			respItem.ResearcherList = v
+			group = append(group, respItem)
+		}
 	}
 	groupMap := make(map[int][]*roadshow.ResearcherGroup)
 	for _, v := range researcherList {
@@ -129,24 +177,30 @@ func (this *CalendarController) ResearcherReportList() {
 	tmpAllTryOutNumMap := make(map[int]int)
 	tmpAllFormalNumMap := make(map[int]int)
 	tmpAllMeetingNumMap := make(map[int]int)
+	tmpAllRoadShowNumMap := make(map[int]int)
+	tmpAllSalonNumMap := make(map[int]int)
 	for _, v := range group {
 		v.ResearcherList = groupMap[v.GroupId]
 		tmpGroupAdminReportRecord := make([]roadshow.AdminReportRecord, 0)
 		tmpGroupRsReportRecordNumList := make([]roadshow.RsReportRecordNum, 0)
 
+		//roadShowMap := make(map[int]int) // 路演总次数
+		//salonMap := make(map[int]int)    //沙龙路演次数
+
 		tmpGroupTryOutNumMap := make(map[int]int)
 		tmpGroupFormalNumMap := make(map[int]int)
 		tmpGroupMeetingNumMap := make(map[int]int)
+		tmpGroupRoadShowNumMap := make(map[int]int)
+		tmpGroupSalonMapNumMap := make(map[int]int)
 		for _, researcher := range groupMap[v.GroupId] {
 			//组内研究员数据
-
 			//每个区间的数据
 			tmpAdminRsReportRecordNumList := make([]roadshow.RsReportRecordNum, 0)
 			for index, adminData := range adminDataList {
 				startDateIndexList[index] = adminData.StartDate
 				endDateIndexList[index] = adminData.EndDate
 
-				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum int
+				var tmpTryOutNum, tmpFormalNum, tmpMeetingNum, tmpRoadShowNum, tmpSalonNum int
 				if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
 					tmpTryOutNum = num
 				}
@@ -156,12 +210,21 @@ func (this *CalendarController) ResearcherReportList() {
 				if num, ok := adminData.MeetingMap[researcher.AdminId]; ok {
 					tmpMeetingNum = num
 				}
+				if num, ok := adminData.RoadShowMap[researcher.AdminId]; ok { //路演总次数
+					tmpRoadShowNum = num
+				}
+				if num, ok := adminData.SalonMap[researcher.AdminId]; ok { //路演总次数
+					tmpSalonNum = num
+				}
+
 				tmpAdminRsReportRecordNum := roadshow.RsReportRecordNum{
-					TryOutNum:  tmpTryOutNum,
-					FormalNum:  tmpFormalNum,
-					MeetingNum: tmpMeetingNum,
-					StartDate:  adminData.StartDate,
-					EndDate:    adminData.EndDate,
+					TryOutNum:   tmpTryOutNum,
+					FormalNum:   tmpFormalNum,
+					MeetingNum:  tmpMeetingNum,
+					RoadShowNum: tmpRoadShowNum,
+					SalonNum:    tmpSalonNum,
+					StartDate:   adminData.StartDate,
+					EndDate:     adminData.EndDate,
 				}
 				tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
 
@@ -175,9 +238,17 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpGroupMeetingNumMap[index]; !ok {
 					tmpGroupMeetingNumMap[index] = 0
 				}
+				if _, ok := tmpGroupRoadShowNumMap[index]; !ok {
+					tmpGroupRoadShowNumMap[index] = 0
+				}
+				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
+					tmpGroupSalonMapNumMap[index] = 0
+				}
 				tmpGroupTryOutNumMap[index] += tmpTryOutNum
 				tmpGroupFormalNumMap[index] += tmpFormalNum
 				tmpGroupMeetingNumMap[index] += tmpMeetingNum
+				tmpGroupRoadShowNumMap[index] += tmpRoadShowNum
+				tmpGroupSalonMapNumMap[index] += tmpSalonNum
 
 				//总数据汇总
 				if _, ok := tmpAllTryOutNumMap[index]; !ok {
@@ -189,9 +260,17 @@ func (this *CalendarController) ResearcherReportList() {
 				if _, ok := tmpAllMeetingNumMap[index]; !ok {
 					tmpAllMeetingNumMap[index] = 0
 				}
+				if _, ok := tmpGroupRoadShowNumMap[index]; !ok {
+					tmpGroupRoadShowNumMap[index] = 0
+				}
+				if _, ok := tmpGroupSalonMapNumMap[index]; !ok {
+					tmpGroupSalonMapNumMap[index] = 0
+				}
 				tmpAllTryOutNumMap[index] += tmpTryOutNum
 				tmpAllFormalNumMap[index] += tmpFormalNum
 				tmpAllMeetingNumMap[index] += tmpMeetingNum
+				tmpAllRoadShowNumMap[index] += tmpRoadShowNum
+				tmpAllSalonNumMap[index] += tmpSalonNum
 			}
 			tmpAdminReportRecord := roadshow.AdminReportRecord{
 				Name:                  researcher.RealName,
@@ -203,11 +282,13 @@ func (this *CalendarController) ResearcherReportList() {
 
 		for i := 0; i < len(tmpGroupMeetingNumMap); i++ {
 			tmpGroupRsReportRecordNum := roadshow.RsReportRecordNum{
-				TryOutNum:  tmpGroupTryOutNumMap[i],
-				FormalNum:  tmpGroupFormalNumMap[i],
-				MeetingNum: tmpGroupMeetingNumMap[i],
-				StartDate:  startDateIndexList[i],
-				EndDate:    endDateIndexList[i],
+				TryOutNum:   tmpGroupTryOutNumMap[i],
+				FormalNum:   tmpGroupFormalNumMap[i],
+				MeetingNum:  tmpGroupMeetingNumMap[i],
+				RoadShowNum: tmpGroupRoadShowNumMap[i],
+				SalonNum:    tmpGroupSalonMapNumMap[i],
+				StartDate:   startDateIndexList[i],
+				EndDate:     endDateIndexList[i],
 			}
 			tmpGroupRsReportRecordNumList = append(tmpGroupRsReportRecordNumList, tmpGroupRsReportRecordNum)
 		}
@@ -222,11 +303,13 @@ func (this *CalendarController) ResearcherReportList() {
 	//总体汇总数据
 	for i := 0; i < len(tmpAllFormalNumMap); i++ {
 		tmpGroupRsReportRecordNum := roadshow.RsReportRecordNum{
-			TryOutNum:  tmpAllTryOutNumMap[i],
-			FormalNum:  tmpAllFormalNumMap[i],
-			MeetingNum: tmpAllMeetingNumMap[i],
-			StartDate:  startDateIndexList[i],
-			EndDate:    endDateIndexList[i],
+			TryOutNum:   tmpAllTryOutNumMap[i],
+			FormalNum:   tmpAllFormalNumMap[i],
+			MeetingNum:  tmpAllMeetingNumMap[i],
+			RoadShowNum: tmpAllRoadShowNumMap[i],
+			SalonNum:    tmpAllSalonNumMap[i],
+			StartDate:   startDateIndexList[i],
+			EndDate:     endDateIndexList[i],
 		}
 		rsAllReportRecordNumList = append(rsAllReportRecordNumList, tmpGroupRsReportRecordNum)
 	}

+ 1 - 1
models/cygx/activity_ask_email.go

@@ -45,7 +45,7 @@ func GetAskEmailList() (item []*AskEmailRep, err error) {
 // 权益自定义研究员信息
 func GetAskEmailListResearcher() (item []*AskEmailRep, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
-	sql := `SELECT * FROM cygx_activity_ask_email WHERE  chart_permission_name != ''  AND enabled_researcher = 1 AND admin_id > 0    ORDER BY sort  DESC`
+	sql := `SELECT * FROM cygx_activity_ask_email WHERE  chart_permission_name != ''  AND enabled_researcher = 1 AND admin_id > 0    ORDER BY sort  DESC , id ASC  `
 	_, err = o.Raw(sql).QueryRows(&item)
 	return
 }

+ 10 - 11
models/roadshow/report_record.go

@@ -57,14 +57,16 @@ type AdminReportRecord struct {
 
 // RsReportRecordNum 系统用户统计信息
 type RsReportRecordNum struct {
-	TryOutNum  int    `description:"试用路演次数"`
-	FormalNum  int    `description:"正式路演次数"`
-	MeetingNum int    `description:"会议次数"`
-	OnlineNum  int    `description:"线上路演次数"`
-	OfflineNum 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:"沙龙路演次数"`
+	StartDate   string `description:"开始日期"`
+	EndDate     string `description:"结束日期"`
+	IsLook      bool   `description:"是否可以查看详情"`
 }
 
 func DeleteRsReportRecord(rsCalendarId, rsCalendarResearcherId int) (err error) {
@@ -274,8 +276,6 @@ type RsOverseasReportRecordResp struct {
 	RsReportRecordNumList []RsOverseasReportRecordNum `description:"统计次数"`
 }
 
-
-
 func GetOverseasGroupResearcherRecordList(startDate, endDate, companyStatus string) (list []*RsReportRecordGroup, err error) {
 	var databaseName string
 	if utils.RunMode == "debug" {
@@ -404,7 +404,6 @@ func GetOverseasGroupSellerRecordList(startDate, endDate, companyStatus string)
 	sql := `SELECT m.*,SUM(m.num) AS num  FROM (` + sql1 + ` UNION ALL ` + sql2
 	sql += ` ) AS m  WHERE 1=1 `
 
-
 	sql += ` Group by admin_id `
 	_, err = o.Raw(sql, pars).QueryRows(&list)
 

+ 53 - 12
services/roadshow/report.go

@@ -190,13 +190,15 @@ 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:"线上路演次数"`
-	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:"沙龙路演次数"`
+	StartDate   string      `description:"开始日期"`
+	EndDate     string      `description:"开始日期"`
 }
 
 // getSectionData 获取周期数据
@@ -219,6 +221,8 @@ 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)    //沙龙路演次数
 	//正式客户
 	{
 		var condition string
@@ -269,12 +273,49 @@ func getResearcherSectionData(startDate, endDate time.Time) (adminDataMap AdminD
 			meetingMap[v.AdminId] = v.Num
 		}
 	}
+
+	//路演总次数
+	{
+		var condition string
+		var pars []interface{}
+		condition = ` and start_date >= ? and end_date <= ? and activity_type = ? `
+		pars = append(pars, startDate, endDate, "路演")
+		data, tmpErr := roadshow.GetGroupResearcherRecordList(condition, pars)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		for _, v := range data {
+			//fmt.Println(v)
+			roadShowMap[v.AdminId] = v.Num
+		}
+	}
+
+	//沙龙路演次数
+	{
+		var condition string
+		var pars []interface{}
+		condition = ` and start_date >= ? and end_date <= ? and activity_type = ? `
+		pars = append(pars, startDate, endDate, "沙龙")
+		data, tmpErr := roadshow.GetGroupResearcherRecordList(condition, pars)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		for _, v := range data {
+			//fmt.Println(v)
+			salonMap[v.AdminId] = v.Num
+		}
+	}
+
 	adminDataMap = AdminDataMap{
-		TryOutMap:  tryOutMap,
-		FormalMap:  formalMap,
-		MeetingMap: meetingMap,
-		StartDate:  startDate.Format(utils.FormatDate),
-		EndDate:    endDate.Format(utils.FormatDate),
+		TryOutMap:   tryOutMap,
+		FormalMap:   formalMap,
+		MeetingMap:  meetingMap,
+		RoadShowMap: roadShowMap,
+		SalonMap:    salonMap,
+		StartDate:   startDate.Format(utils.FormatDate),
+		EndDate:     endDate.Format(utils.FormatDate),
 	}
 	return
 }