瀏覽代碼

Merge branch 'crm/crm_16.0' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 6 月之前
父節點
當前提交
3749611093

+ 3 - 32
controllers/roadshow/calendar.go

@@ -73,7 +73,7 @@ func (this *CalendarController) Add() {
 	var checkIsAdd []string
 
 	//获取所有自定义的权益研究员
-	sysUserList, err := cygx.GetAskEmailList()
+	sysUserList, err := cygx.GetAskEmailListResearcher()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
@@ -84,17 +84,6 @@ func (this *CalendarController) Add() {
 		raiAskadminMap[v.AdminId] = true
 	}
 
-	sysUserFwang, e := system.GetSysUserByAdminName("fwang") // 手动拼接王芳到权益的策略行业下 start
-	if e != nil {
-		if e.Error() == utils.ErrNoRow() {
-			br.Msg = "用户不存在, 请检查"
-			return
-		}
-		br.Msg = "账号错误, 请重新输入"
-		br.ErrMsg = "fwang 用户名获取用户失败, Err: " + e.Error()
-		return
-	}
-	raiAskadminMap[sysUserFwang.AdminId] = true // 手动拼接王芳到权益的策略行业下 end
 	//var tipMsg string
 	for _, v := range req.ResearcherList {
 		if v.ResearcherId <= 0 {
@@ -624,7 +613,7 @@ func (this *CalendarController) Edit() {
 	for _, ev := range existList {
 		existResearcherMap[ev.ResearcherId] = ev.ResearcherName
 	}
-	sysUserList, err := cygx.GetAskEmailList()
+	sysUserList, err := cygx.GetAskEmailListResearcher()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
@@ -1070,7 +1059,7 @@ func (this *CalendarController) ResearcherList() {
 	for _, v := range sysUserList {
 		adminMap[v.AdminId] = v
 	}
-	askUserList, err := cygx.GetAskEmailList()
+	askUserList, err := cygx.GetAskEmailListResearcher()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
@@ -1088,24 +1077,6 @@ func (this *CalendarController) ResearcherList() {
 		mapPermissionId[v.PermissionName] = v.ChartPermissionId
 	}
 
-	sysUserFwang, e := system.GetSysUserByAdminName("fwang") // 手动拼接王芳到权益的策略行业下 start
-	if e != nil {
-		if e.Error() == utils.ErrNoRow() {
-			br.Msg = "用户不存在, 请检查"
-			return
-		}
-		br.Msg = "账号错误, 请重新输入"
-		br.ErrMsg = "fwang 用户名获取用户失败, Err: " + e.Error()
-		return
-	}
-	itemFwang := new(roadshow.ResearcherGroup)
-	itemFwang.AdminId = sysUserFwang.AdminId
-	itemFwang.GroupId = sysUserFwang.GroupId
-	itemFwang.GroupName = sysUserFwang.GroupName
-	itemFwang.RealName = sysUserFwang.RealName
-	itemFwang.RoleTypeCode = sysUserFwang.RoleTypeCode
-	mapPermissionUser["策略"] = append(mapPermissionUser["策略"], itemFwang) // 手动拼接王芳到权益的策略行业下 end
-
 	for _, v := range askUserList {
 		if admin, ok := adminMap[v.AdminId]; ok {
 			item := &roadshow.ResearcherGroup{

+ 123 - 31
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"
@@ -21,6 +22,7 @@ import (
 // @Param   DataType   query   string  true       "枚举值:week、month、time_interval"
 // @Param   StartDate   query   string  true       "开始日期,格式:2022-04-06"
 // @Param   EndDate   query   string  true       "结束日期,格式:2022-04-06"
+// @Param   CompanyType   query   string  true       "客户类型:'ficc','权益',传空默认为ficc,"
 // @Success 200 {object} roadshow.RsReportRecordResp
 // @router /report/researcher/list [get]
 func (this *CalendarController) ResearcherReportList() {
@@ -39,7 +41,7 @@ func (this *CalendarController) ResearcherReportList() {
 	dataType := this.GetString("DataType")
 	startDate := this.GetString("StartDate")
 	endDate := this.GetString("EndDate")
-
+	companyType := this.GetString("CompanyType", "ficc")
 	var adminDataList []roadshowService.AdminDataMap
 	var err error
 	//var firstDate time.Time
@@ -71,19 +73,74 @@ func (this *CalendarController) ResearcherReportList() {
 			br.ErrMsg = "数据异常,Err:" + err.Error()
 			return
 		}
-
-	}
-	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
+
+	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:
+		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
+		}
+
+		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 {
@@ -120,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
 				}
@@ -147,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)
 
@@ -166,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 {
@@ -180,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,
@@ -194,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)
 		}
@@ -213,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)
 	}
@@ -1715,4 +1807,4 @@ func (this *CalendarController) OverseasCalendarList() {
 	br.Msg = "获取成功"
 	br.Data = list
 	return
-}
+}

+ 8 - 0
models/cygx/activity_ask_email.go

@@ -42,6 +42,14 @@ func GetAskEmailList() (item []*AskEmailRep, err error) {
 	return
 }
 
+// 权益自定义研究员信息
+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 , id ASC  `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
 func UpdateAskEmail(item *AskEmailRep) (err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `UPDATE cygx_activity_ask_email SET admin_id=? where mobile=?`

+ 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
 }