zwxi 1 年之前
父节点
当前提交
aef54c7ff2
共有 4 个文件被更改,包括 111 次插入275 次删除
  1. 1 1
      controllers/roadshow/calendar.go
  2. 108 265
      controllers/roadshow/report.go
  3. 1 1
      models/roadshow/calendar.go
  4. 1 8
      models/roadshow/report_record.go

+ 1 - 1
controllers/roadshow/calendar.go

@@ -973,7 +973,7 @@ func (this *CalendarController) ResearcherList() {
 		return
 	}
 	researcherList, err := roadshow.GetResearcher()
-	groupMap := make(map[int][]*roadshow.Researcher)
+	groupMap := make(map[int][]*roadshow.ResearcherGroup)
 	for _, v := range researcherList {
 		//if v.RoleTypeCode == "ficc_admin" {
 		//	findItems := groupMap[1]

+ 108 - 265
controllers/roadshow/report.go

@@ -1314,18 +1314,18 @@ func (this *CalendarController) OverseasSellerReportList() {
 
 	var adminDataList []roadshowService.OverseasAdminDataMap
 	var err error
-	var firstDate time.Time
+
 	//获取列表
 	switch dataType {
 	case "week":
-		adminDataList, firstDate, err = roadshowService.GetOverseasWeekDataV2("seller", dimensionType, 6)
+		adminDataList, _, err = roadshowService.GetOverseasWeekDataV2("seller", dimensionType, 6)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
 			return
 		}
 	case "month":
-		adminDataList, firstDate, err = roadshowService.GetOverseasMonthDataV2("seller", dimensionType, 6)
+		adminDataList, _, err = roadshowService.GetOverseasMonthDataV2("seller", dimensionType, 6)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
@@ -1337,7 +1337,7 @@ func (this *CalendarController) OverseasSellerReportList() {
 			br.ErrMsg = "开始日期或结束日期不能为空,Err:" + err.Error()
 			return
 		}
-		adminDataList, firstDate, err = roadshowService.GetOverseasTimeIntervalData(startDate, endDate, "seller", dimensionType)
+		adminDataList, _, err = roadshowService.GetOverseasTimeIntervalData(startDate, endDate, "seller", dimensionType)
 		if err != nil {
 			br.Msg = "数据异常"
 			br.ErrMsg = "数据异常,Err:" + err.Error()
@@ -1345,34 +1345,13 @@ func (this *CalendarController) OverseasSellerReportList() {
 		}
 
 	}
-	group, groupIdRelationMap, err := services.GetFiccSystemGroup()
-	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
-		return
-	}
-	researcherList, err := services.GetFiccSeller(firstDate, groupIdRelationMap)
-	groupMap := make(map[int][]*roadshow.Researcher)
-	for _, v := range researcherList {
-		if v.RoleTypeCode == "ficc_admin" {
-			findItems := groupMap[1]
-			findItems = append(findItems, v)
-			groupMap[1] = findItems
-		} else {
-			if findItems, ok := groupMap[v.GroupId]; ok {
-				findItems = append(findItems, v)
-				groupMap[v.GroupId] = findItems
-			} else {
-				findItems = append(findItems, v)
-				groupMap[v.GroupId] = findItems
-			}
-		}
-	}
 
-	groupReportRecordList := make([]roadshow.OverseasGroupReportRecord, 0)
+	sellerList, err := roadshow.GetOverseaCustomCalendarSellerList()
+
+	adminReportRecordList := make([]roadshow.OverseasAdminReportRecord, 0)
 	rsAllReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
 	RsReportRecordResp := roadshow.RsOverseasReportRecordResp{
-		List:                  groupReportRecordList,
+		List:                  adminReportRecordList,
 		RsReportRecordNumList: rsAllReportRecordNumList,
 	}
 
@@ -1384,123 +1363,71 @@ func (this *CalendarController) OverseasSellerReportList() {
 	tmpAllCloseNumMap := make(map[int]int)
 	tmpAllOnlineNumMap := make(map[int]int)
 	tmpAllOfflineNumMap := make(map[int]int)
-	for _, v := range group {
-		v.ResearcherList = groupMap[v.GroupId]
-		tmpGroupAdminReportRecord := make([]roadshow.OverseasAdminReportRecord, 0)
-		tmpGroupRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
 
-		tmpGroupTryOutNumMap := make(map[int]int)
-		tmpGroupFormalNumMap := make(map[int]int)
-		tmpGroupCloseNumMap := make(map[int]int)
-		tmpGroupOnlineNumMap := make(map[int]int)
-		tmpGroupOfflineNumMap := make(map[int]int)
-		for _, researcher := range groupMap[v.GroupId] {
-			//组内研究员数据
+	for _, researcher := range sellerList {
+		//组内研究员数据
 
-			//每个区间的数据
-			tmpAdminRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
-			for index, adminData := range adminDataList {
-				startDateIndexList[index] = adminData.StartDate
-				endDateIndexList[index] = adminData.EndDate
+		//每个区间的数据
+		tmpAdminRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
+		for index, adminData := range adminDataList {
+			startDateIndexList[index] = adminData.StartDate
+			endDateIndexList[index] = adminData.EndDate
 
-				var tmpTryOutNum, tmpFormalNum, tmpCloseNum, tmpOnlineNum, tmpOfflineNum int
-				if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
-					tmpTryOutNum = num
-				}
-				if num, ok := adminData.FormalMap[researcher.AdminId]; ok {
-					tmpFormalNum = num
-				}
-				if num, ok := adminData.CloseMap[researcher.AdminId]; ok {
-					tmpCloseNum = num
-				}
-				if num, ok := adminData.OnlineMap[researcher.AdminId]; ok {
-					tmpOnlineNum = num
-				}
-				if num, ok := adminData.OfflineMap[researcher.AdminId]; ok {
-					tmpOfflineNum = num
-				}
-				tmpAdminRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
-					TryOutNum:  tmpTryOutNum,
-					FormalNum:  tmpFormalNum,
-					CloseNum:   tmpCloseNum,
-					OnlineNum:  tmpOnlineNum,
-					OfflineNum: tmpOfflineNum,
-					StartDate:  adminData.StartDate,
-					EndDate:    adminData.EndDate,
-				}
-				tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
-
-				//组内数据汇总
-				if _, ok := tmpGroupTryOutNumMap[index]; !ok {
-					tmpGroupTryOutNumMap[index] = 0
-				}
-				if _, ok := tmpGroupFormalNumMap[index]; !ok {
-					tmpGroupFormalNumMap[index] = 0
-				}
-				if _, ok := tmpGroupCloseNumMap[index]; !ok {
-					tmpGroupCloseNumMap[index] = 0
-				}
-				if _, ok := tmpGroupOnlineNumMap[index]; !ok {
-					tmpGroupOnlineNumMap[index] = 0
-				}
-				if _, ok := tmpGroupOfflineNumMap[index]; !ok {
-					tmpGroupOfflineNumMap[index] = 0
-				}
-				tmpGroupTryOutNumMap[index] += tmpTryOutNum
-				tmpGroupFormalNumMap[index] += tmpFormalNum
-				tmpGroupCloseNumMap[index] += tmpCloseNum
-				tmpGroupOnlineNumMap[index] += tmpOnlineNum
-				tmpGroupOfflineNumMap[index] += tmpOfflineNum
-
-				//总数据汇总
-				if _, ok := tmpAllTryOutNumMap[index]; !ok {
-					tmpAllTryOutNumMap[index] = 0
-				}
-				if _, ok := tmpAllFormalNumMap[index]; !ok {
-					tmpAllFormalNumMap[index] = 0
-				}
-				if _, ok := tmpAllCloseNumMap[index]; !ok {
-					tmpAllCloseNumMap[index] = 0
-				}
-				if _, ok := tmpAllOnlineNumMap[index]; !ok {
-					tmpAllOnlineNumMap[index] = 0
-				}
-				if _, ok := tmpAllOfflineNumMap[index]; !ok {
-					tmpAllOfflineNumMap[index] = 0
-				}
-				tmpAllTryOutNumMap[index] += tmpTryOutNum
-				tmpAllFormalNumMap[index] += tmpFormalNum
-				tmpAllCloseNumMap[index] += tmpCloseNum
-				tmpAllOnlineNumMap[index] += tmpOnlineNum
-				tmpAllOfflineNumMap[index] += tmpOfflineNum
+			var tmpTryOutNum, tmpFormalNum, tmpCloseNum, tmpOnlineNum, tmpOfflineNum int
+			if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
+				tmpTryOutNum = num
 			}
-			tmpAdminReportRecord := roadshow.OverseasAdminReportRecord{
-				Name:                  researcher.RealName,
-				AdminId:               researcher.AdminId,
-				RsReportRecordNumList: tmpAdminRsReportRecordNumList,
+			if num, ok := adminData.FormalMap[researcher.AdminId]; ok {
+				tmpFormalNum = num
 			}
-			tmpGroupAdminReportRecord = append(tmpGroupAdminReportRecord, tmpAdminReportRecord)
-		}
+			if num, ok := adminData.CloseMap[researcher.AdminId]; ok {
+				tmpCloseNum = num
+			}
+			if num, ok := adminData.OnlineMap[researcher.AdminId]; ok {
+				tmpOnlineNum = num
+			}
+			if num, ok := adminData.OfflineMap[researcher.AdminId]; ok {
+				tmpOfflineNum = num
+			}
+			tmpAdminRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
+				TryOutNum:  tmpTryOutNum,
+				FormalNum:  tmpFormalNum,
+				CloseNum:   tmpCloseNum,
+				OnlineNum:  tmpOnlineNum,
+				OfflineNum: tmpOfflineNum,
+				StartDate:  adminData.StartDate,
+				EndDate:    adminData.EndDate,
+			}
+			tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
 
-		for i := 0; i < len(tmpGroupCloseNumMap); i++ {
-			tmpGroupRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
-				TryOutNum:  tmpGroupTryOutNumMap[i],
-				FormalNum:  tmpGroupFormalNumMap[i],
-				CloseNum:   tmpGroupCloseNumMap[i],
-				OnlineNum:  tmpGroupOnlineNumMap[i],
-				OfflineNum: tmpGroupOfflineNumMap[i],
-				StartDate:  startDateIndexList[i],
-				EndDate:    endDateIndexList[i],
+			//总数据汇总
+			if _, ok := tmpAllTryOutNumMap[index]; !ok {
+				tmpAllTryOutNumMap[index] = 0
 			}
-			tmpGroupRsReportRecordNumList = append(tmpGroupRsReportRecordNumList, tmpGroupRsReportRecordNum)
+			if _, ok := tmpAllFormalNumMap[index]; !ok {
+				tmpAllFormalNumMap[index] = 0
+			}
+			if _, ok := tmpAllCloseNumMap[index]; !ok {
+				tmpAllCloseNumMap[index] = 0
+			}
+			if _, ok := tmpAllOnlineNumMap[index]; !ok {
+				tmpAllOnlineNumMap[index] = 0
+			}
+			if _, ok := tmpAllOfflineNumMap[index]; !ok {
+				tmpAllOfflineNumMap[index] = 0
+			}
+			tmpAllTryOutNumMap[index] += tmpTryOutNum
+			tmpAllFormalNumMap[index] += tmpFormalNum
+			tmpAllCloseNumMap[index] += tmpCloseNum
+			tmpAllOnlineNumMap[index] += tmpOnlineNum
+			tmpAllOfflineNumMap[index] += tmpOfflineNum
 		}
-		groupReportRecord := roadshow.OverseasGroupReportRecord{
-			Item:                  tmpGroupAdminReportRecord,
-			Name:                  v.GroupName,
-			GruopId:               v.GroupId,
-			RsReportRecordNumList: tmpGroupRsReportRecordNumList,
+		tmpAdminReportRecord := roadshow.OverseasAdminReportRecord{
+			Name:                  researcher.RealName,
+			AdminId:               researcher.AdminId,
+			RsReportRecordNumList: tmpAdminRsReportRecordNumList,
 		}
-		groupReportRecordList = append(groupReportRecordList, groupReportRecord)
+		RsReportRecordResp.List = append(adminReportRecordList, tmpAdminReportRecord)
 	}
 
 	//总体汇总数据
@@ -1518,30 +1445,6 @@ func (this *CalendarController) OverseasSellerReportList() {
 	}
 	RsReportRecordResp.RsReportRecordNumList = rsAllReportRecordNumList
 
-	//tmpList := groupReportRecordList
-	//因为RoleTypeCode不一样,所以需要重新从数据库取数据
-	//adminInfo, _ := system.GetSysAdminById(sysUser.AdminId)
-	//adminGroupId := adminInfo.GroupId
-	//if tmpGroupId, ok := groupIdRelationMap[adminGroupId]; ok {
-	//	adminGroupId = tmpGroupId
-	//}
-	//switch adminInfo.RoleTypeCode {
-	//case utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_FICC_TEAM:
-	//	for index, v := range tmpList {
-	//		//如果不是同一个分组,那么就移除该分组下的人员数据
-	//		if v.GruopId != adminGroupId {
-	//			tmpList[index].Item = make([]roadshow.AdminReportRecord, 0)
-	//		}
-	//	}
-	//	RsReportRecordResp.List = tmpList
-	//case utils.ROLE_TYPE_CODE_FICC_ADMIN, utils.ROLE_TYPE_CODE_ADMIN:
-	//	//管理员、超管看全部数据
-	//	RsReportRecordResp.List = groupReportRecordList
-	//}
-
-	// 20230529-有权限查看该页面的用户权限同admin
-	RsReportRecordResp.List = groupReportRecordList
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -1607,39 +1510,18 @@ func (this *CalendarController) OverseasResearcherReportList() {
 		}
 
 	}
-	group, err := roadshow.GetResearcherGroup()
-	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
-		return
-	}
-	researcherList, err := roadshow.GetResearcherV2()
+
+	researcherList, err := roadshow.GetOverseaCustomCalendarResearcherList()
 	if err != nil {
 		br.Msg = "获取信息失败!"
 		br.ErrMsg = "获取分组信息失败!,GetResearcherV2 Err:" + err.Error()
 		return
 	}
-	groupMap := make(map[int][]*roadshow.ResearcherGroup)
-	for _, v := range researcherList {
-		//if v.RoleTypeCode == "ficc_admin" {
-		//	findItems := groupMap[1]
-		//	findItems = append(findItems, v)
-		//	groupMap[1] = findItems
-		//} else {
-		if findItems, ok := groupMap[v.GroupId]; ok {
-			findItems = append(findItems, v)
-			groupMap[v.GroupId] = findItems
-		} else {
-			findItems = append(findItems, v)
-			groupMap[v.GroupId] = findItems
-		}
-		//}
-	}
 
-	groupReportRecordList := make([]roadshow.OverseasGroupReportRecord, 0)
+	adminReportRecordList := make([]roadshow.OverseasAdminReportRecord, 0)
 	rsAllReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
 	RsReportRecordResp := roadshow.RsOverseasReportRecordResp{
-		List:                  groupReportRecordList,
+		List:                  adminReportRecordList,
 		RsReportRecordNumList: rsAllReportRecordNumList,
 	}
 
@@ -1649,94 +1531,55 @@ func (this *CalendarController) OverseasResearcherReportList() {
 	tmpAllTryOutNumMap := make(map[int]int)
 	tmpAllFormalNumMap := make(map[int]int)
 	tmpAllMeetingNumMap := make(map[int]int)
-	for _, v := range group {
-		v.ResearcherList = groupMap[v.GroupId]
-		tmpGroupAdminReportRecord := make([]roadshow.OverseasAdminReportRecord, 0)
-		tmpGroupRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
 
-		tmpGroupTryOutNumMap := make(map[int]int)
-		tmpGroupFormalNumMap := make(map[int]int)
-		tmpGroupCloseNumMap := make(map[int]int)
-		for _, researcher := range groupMap[v.GroupId] {
-			//组内研究员数据
+	for _, researcher := range researcherList {
+		//组内研究员数据
 
-			//每个区间的数据
-			tmpAdminRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
-			for index, adminData := range adminDataList {
-				startDateIndexList[index] = adminData.StartDate
-				endDateIndexList[index] = adminData.EndDate
+		//每个区间的数据
+		tmpAdminRsReportRecordNumList := make([]roadshow.RsOverseasReportRecordNum, 0)
+		for index, adminData := range adminDataList {
+			startDateIndexList[index] = adminData.StartDate
+			endDateIndexList[index] = adminData.EndDate
 
-				var tmpTryOutNum, tmpFormalNum, tmpCloseNum int
-				if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
-					tmpTryOutNum = num
-				}
-				if num, ok := adminData.FormalMap[researcher.AdminId]; ok {
-					tmpFormalNum = num
-				}
-				if num, ok := adminData.CloseMap[researcher.AdminId]; ok {
-					tmpCloseNum = num
-				}
-				tmpAdminRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
-					TryOutNum: tmpTryOutNum,
-					FormalNum: tmpFormalNum,
-					CloseNum:  tmpCloseNum,
-					StartDate: adminData.StartDate,
-					EndDate:   adminData.EndDate,
-				}
-				tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
-
-				//组内数据汇总
-				if _, ok := tmpGroupTryOutNumMap[index]; !ok {
-					tmpGroupTryOutNumMap[index] = 0
-				}
-				if _, ok := tmpGroupFormalNumMap[index]; !ok {
-					tmpGroupFormalNumMap[index] = 0
-				}
-				if _, ok := tmpGroupCloseNumMap[index]; !ok {
-					tmpGroupCloseNumMap[index] = 0
-				}
-				tmpGroupTryOutNumMap[index] += tmpTryOutNum
-				tmpGroupFormalNumMap[index] += tmpFormalNum
-				tmpGroupCloseNumMap[index] += tmpCloseNum
-
-				//总数据汇总
-				if _, ok := tmpAllTryOutNumMap[index]; !ok {
-					tmpAllTryOutNumMap[index] = 0
-				}
-				if _, ok := tmpAllFormalNumMap[index]; !ok {
-					tmpAllFormalNumMap[index] = 0
-				}
-				if _, ok := tmpAllMeetingNumMap[index]; !ok {
-					tmpAllMeetingNumMap[index] = 0
-				}
-				tmpAllTryOutNumMap[index] += tmpTryOutNum
-				tmpAllFormalNumMap[index] += tmpFormalNum
-				tmpAllMeetingNumMap[index] += tmpCloseNum
+			var tmpTryOutNum, tmpFormalNum, tmpCloseNum int
+			if num, ok := adminData.TryOutMap[researcher.AdminId]; ok {
+				tmpTryOutNum = num
 			}
-			tmpAdminReportRecord := roadshow.OverseasAdminReportRecord{
-				Name:                  researcher.RealName,
-				AdminId:               researcher.AdminId,
-				RsReportRecordNumList: tmpAdminRsReportRecordNumList,
+			if num, ok := adminData.FormalMap[researcher.AdminId]; ok {
+				tmpFormalNum = num
 			}
-			tmpGroupAdminReportRecord = append(tmpGroupAdminReportRecord, tmpAdminReportRecord)
-		}
+			if num, ok := adminData.CloseMap[researcher.AdminId]; ok {
+				tmpCloseNum = num
+			}
+			tmpAdminRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
+				TryOutNum: tmpTryOutNum,
+				FormalNum: tmpFormalNum,
+				CloseNum:  tmpCloseNum,
+				StartDate: adminData.StartDate,
+				EndDate:   adminData.EndDate,
+			}
+			tmpAdminRsReportRecordNumList = append(tmpAdminRsReportRecordNumList, tmpAdminRsReportRecordNum)
 
-		for i := 0; i < len(tmpGroupCloseNumMap); i++ {
-			tmpGroupRsReportRecordNum := roadshow.RsOverseasReportRecordNum{
-				TryOutNum: tmpGroupTryOutNumMap[i],
-				FormalNum: tmpGroupFormalNumMap[i],
-				CloseNum:  tmpGroupCloseNumMap[i],
-				StartDate: startDateIndexList[i],
-				EndDate:   endDateIndexList[i],
+			//总数据汇总
+			if _, ok := tmpAllTryOutNumMap[index]; !ok {
+				tmpAllTryOutNumMap[index] = 0
 			}
-			tmpGroupRsReportRecordNumList = append(tmpGroupRsReportRecordNumList, tmpGroupRsReportRecordNum)
+			if _, ok := tmpAllFormalNumMap[index]; !ok {
+				tmpAllFormalNumMap[index] = 0
+			}
+			if _, ok := tmpAllMeetingNumMap[index]; !ok {
+				tmpAllMeetingNumMap[index] = 0
+			}
+			tmpAllTryOutNumMap[index] += tmpTryOutNum
+			tmpAllFormalNumMap[index] += tmpFormalNum
+			tmpAllMeetingNumMap[index] += tmpCloseNum
 		}
-		groupReportRecord := roadshow.OverseasGroupReportRecord{
-			Item:                  tmpGroupAdminReportRecord,
-			Name:                  v.GroupName,
-			RsReportRecordNumList: tmpGroupRsReportRecordNumList,
+		tmpAdminReportRecord := roadshow.OverseasAdminReportRecord{
+			Name:                  researcher.RealName,
+			AdminId:               researcher.AdminId,
+			RsReportRecordNumList: tmpAdminRsReportRecordNumList,
 		}
-		RsReportRecordResp.List = append(RsReportRecordResp.List, groupReportRecord)
+		RsReportRecordResp.List = append(adminReportRecordList, tmpAdminReportRecord)
 	}
 
 	//总体汇总数据

+ 1 - 1
models/roadshow/calendar.go

@@ -179,7 +179,7 @@ func GetResearcherGroup() (list []*ResearcherGroup, err error) {
 	return
 }
 
-func GetResearcher() (list []*Researcher, err error) {
+func GetResearcher() (list []*ResearcherGroup, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * FROM admin AS a
 			WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')

+ 1 - 8
models/roadshow/report_record.go

@@ -267,14 +267,7 @@ type RsOverseasReportRecordNum struct {
 
 // RsOverseasReportRecordResp 总统计信息
 type RsOverseasReportRecordResp struct {
-	List                  []OverseasGroupReportRecord `description:"系统用户分组信息"`
+	List                  []OverseasAdminReportRecord `description:"系统用户分组信息"`
 	RsReportRecordNumList []RsOverseasReportRecordNum `description:"统计次数"`
 }
 
-// OverseasGroupReportRecord 分组统计信息
-type OverseasGroupReportRecord struct {
-	Item                  []OverseasAdminReportRecord `description:"系统用户信息"`
-	Name                  string                      `description:"分组名"`
-	GruopId               int                         `description:"分组id"`
-	RsReportRecordNumList []RsOverseasReportRecordNum `description:"统计次数"`
-}