xingzai %!s(int64=2) %!d(string=hai) anos
pai
achega
6c952107fb

+ 36 - 27
controllers/activity.go

@@ -11,8 +11,8 @@ type ActivityController struct {
 	BaseAuthController
 }
 
-// @Title 活动类型下的主题列表(5.3版本)
-// @Description 获取活动类型下的主题列表接口(5.3版本)
+// @Title 活动类型下的主题列表
+// @Description 获取活动类型下的主题列表接口
 // @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
 // @Param   ActivityTypeIds   query   string  false     "活动类型id 多个用 , 隔开"
 // @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3 多个用 , 隔开"
@@ -34,42 +34,51 @@ func (this *ActivityController) LabelTypeList() {
 		return
 	}
 	chartPermissionIds := this.GetString("ChartPermissionIds")
-	//isPower, _ := this.GetInt("IsPower")
+	isPower, _ := this.GetInt("IsPower")
 	whichDay := this.GetString("WhichDay")
 	activeState := this.GetString("ActiveState")
 	var condition string
 	var pars []interface{}
-	if whichDay != "" {
-		var startDate string
-		var endDate string
-		if whichDay == "1" {
-			startDate = time.Now().Format(utils.FormatDate)
-			endDate = startDate
-		} else if whichDay == "2" {
-			startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-			endDate = startDate
-		} else {
-			startDate = time.Now().Format(utils.FormatDate)
-			endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
-		}
-		startDate += " 00:00:00'"
-		endDate += " 23:59:59'"
-		condition += `AND activity_time BETWEEN ? AND ? `
-		pars = append(pars, startDate, endDate)
-	}
-	if activeState == "" {
-		activeState = "1,2"
-	}
-	condition += ` AND active_state  IN (` + activeState + `) `
+	//if whichDay != "" {
+	//	var startDate string
+	//	var endDate string
+	//	if whichDay == "1" {
+	//		startDate = time.Now().Format(utils.FormatDate)
+	//		endDate = startDate
+	//	} else if whichDay == "2" {
+	//		startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+	//		endDate = startDate
+	//	} else {
+	//		startDate = time.Now().Format(utils.FormatDate)
+	//		endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+	//	}
+	//	startDate += " 00:00:00'"
+	//	endDate += " 23:59:59'"
+	//	condition += `AND activity_time BETWEEN ? AND ? `
+	//	pars = append(pars, startDate, endDate)
+	//}
+	//if activeState == "" {
+	//	activeState = "1,2"
+	//}
+	//condition += ` AND active_state  IN (` + activeState + `) `
 
 	// 查研观向7.4-始终查询宏观的活动
 	if chartPermissionIds != "" {
 		chartPermissionIds += ",1"
 	}
 
-	condition += `AND activity_time > ? GROUP BY	label  ORDER BY activity_time DESC  `
+	condition += `AND art.activity_time > ?  `
 	pars = append(pars, time.Now().AddDate(0, -3, 0).Format(utils.FormatDate))
-	activityList, err := models.GetCygxActivityList(condition, pars)
+
+	conditionActivity, err := services.GetActivityonditionList(user, "", chartPermissionIds, whichDay, activeState, "", isPower, 0, "", 0)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
+		return
+	}
+	condition += `AND art.is_limit_people = 1 ` + conditionActivity
+	sortTime := ` mintimesort ASC `
+	activityList, err := models.GetCygxActivityList(condition, pars, sortTime, 0, 1000)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()

+ 6 - 3
models/activity.go

@@ -55,15 +55,18 @@ type CygxActivity struct {
 	AdminId                 int       `description:"销售/管理员ID"`
 	AdminName               string    `description:"销售/管理员姓名"`
 	IsCanAppointmentMinutes int       `description:"是否可预约纪要 1是 ,0 否 默认0 "`
+	YidongActivityId        string    `description:"易董活动ID"`
 }
 
 //列表
-func GetCygxActivityList(condition string, pars []interface{}) (items []*CygxActivity, err error) {
+func GetCygxActivityList(condition string, pars []interface{}, sortTime string, startSize, pageSize int) (items []*CygxActivity, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_activity WHERE  1= 1 `
+	sql := `SELECT	activity_id, label,temporary_label,is_show_subject_name, MAX( art.activity_time ) AS timesort, MIn( art.activity_time ) AS mintimesort , yidong_activity_id , activity_type_id 
+		FROM cygx_activity as art WHERE 1= 1 `
 	if condition != "" {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	sql += ` GROUP BY art.label ORDER BY ` + sortTime + ` ,art.activity_id DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }

+ 7 - 11
models/activity_type.go

@@ -46,17 +46,13 @@ type ActivityTypeHome struct {
 
 //活动详情
 type CygxActivityLabelList struct {
-	KeyWord           string `orm:"column(label)";description:"主题"`
-	Timesort          string `description:"最大时间"`
-	Mintimesort       string `description:"最小时间"`
-	ImgUrlBg          string `description:"背景图片"`
-	ActivityId        int    `description:"活动ID "`
-	IsShowSubjectName int    `description:"小程序内是否展示标的名称 1是 ,0否 默认0 "`
-	Resource          int    `description:"位置 ,1:活动 ,2:专项产业调研"`
-	TemporaryLabel    string `description:"临时标签"`
-	IsNew             bool   `description:"是否为新:活动存在关联的的产业所关联的报告均在3个月内/无报告则标记新"`
-	YidongActivityId  int    `description:"易董活动ID"`
-	IsExternalLabel   bool   `description:"是否为外部资源"`
+	KeyWord          string `orm:"column(label)";description:"主题"`
+	ImgUrlBg         string `description:"背景图片"`
+	ActivityId       int    `description:"活动ID "`
+	Resource         int    `description:"位置 ,1:活动 ,2:专项产业调研"`
+	IsNew            bool   `description:"是否为新:活动存在关联的的产业所关联的报告均在3个月内/无报告则标记新"`
+	YidongActivityId int    `description:"易董活动ID"`
+	IsExternalLabel  bool   `description:"是否为外部资源"`
 }
 
 //列表

+ 70 - 0
models/activity_video.go

@@ -0,0 +1,70 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+)
+
+type CygxActivityVideo struct {
+	VideoId       int    `orm:"column(video_id);pk"description:"视频id"`
+	VideoName     string `description:"视频名称"`
+	ActivityId    int    ` description:"活动ID"`
+	ModifyDate    string `description:"更新时间"`
+	VideoDuration string `description:"视频时长"`
+	VideoCounts   int    `description:"播放量"`
+	VideoUrl      string `description:"视频地址"`
+	CreateTime    string `description:"创建时间"`
+}
+
+type CygxActivityVideoReq struct {
+	VideoName     string `description:"视频名称"`
+	VideoDuration string `description:"视频时长"`
+	VideoUrl      string `description:"视频地址"`
+}
+
+//活动详情
+type CygxActivityVideoListResp struct {
+	ActivityId    int    `description:"活动ID 等于0新增活动,大于0修改活动"`
+	Id            int    `orm:"column(video_id)";description:"视频id"`
+	Title         string `orm:"column(video_name)";description:"视频名称"`
+	ResourceUrl   string `orm:"column(video_url)";description:"视频地址"`
+	VideoDuration string `description:"视频时长"`
+}
+
+type CygxActivityVideoListRep struct {
+	Paging *paging.PagingItem `description:"分页数据"`
+	List   []*CygxActivityVideoListResp
+}
+
+//列表
+func GetActivityVideoListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityVideoListResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*,v.video_id,v.video_name,v.video_url,video_duration FROM cygx_activity as art  INNER JOIN cygx_activity_video AS v ON v.activity_id = art.activity_id   WHERE 1= 1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+func UpdateActivityVideoCounts(activityId int) (err error) {
+	sql := `UPDATE cygx_activity_video SET video_counts = video_counts+1 WHERE activity_id = ?  `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, activityId).Exec()
+	return
+}
+
+// GetCygxActivityVideoByActivityId 获取活动视频
+func GetCygxActivityVideoByActivityId(activityId int) (item *CygxActivityVideo, err error) {
+	sql := `SELECT * FROM cygx_activity_video WHERE activity_id = ? LIMIT 1 `
+	err = orm.NewOrm().Raw(sql, activityId).QueryRow(&item)
+	return
+}
+
+// GetCygxActivityVideoById 获取活动视频
+func GetCygxActivityVideoById(activityId int) (item *CygxActivityVideo, err error) {
+	sql := `SELECT * FROM cygx_activity_video WHERE video_id = ? LIMIT 1 `
+	err = orm.NewOrm().Raw(sql, activityId).QueryRow(&item)
+	return
+}

+ 76 - 0
models/activity_voice.go

@@ -0,0 +1,76 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_clpt/utils"
+	"time"
+)
+
+// ActivityVoice 活动语音表结构体
+type CygxActivityVoice struct {
+	ActivityVoiceId  int       `orm:"column(activity_voice_id);pk" description:"活动音频ID"`
+	ActivityId       int       ` description:"活动ID"`
+	VoiceUrl         string    `description:"音频地址"`
+	VoiceName        string    `description:"音频名称"`
+	VoicePlaySeconds string    `description:"音频时长"`
+	VoiceCounts      int       `description:"播放量"`
+	ModifyTime       string    `description:"更新时间"`
+	CreateTime       time.Time `description:"创建时间"`
+}
+
+// ActivityVoiceReq 音频数据
+type CygxActivityVoiceReq struct {
+	ActivityId  int    ` description:"活动ID"`
+	Url         string `description:"音频资源url地址"`
+	Name        string `description:"音频名称"`
+	PlaySeconds int    `description:"音频时长"`
+}
+
+// GetCygxActivityVoiceReqList 获取活动ID的音频
+func GetCygxActivityVoiceReqList(activityIds []int) (items []*CygxActivityVoiceReq, err error) {
+	lenactivityIds := len(activityIds)
+	if lenactivityIds == 0 {
+		return
+	}
+	//活动音频,设置有效时间为30天,失效后该活动就不再支持音频回放。有效期起始时间为活动的开始时间
+	//endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05")
+	sql := `SELECT
+			v.activity_id,
+			v.voice_url AS url,
+			v.voice_name AS name,
+			v.voice_play_seconds AS play_seconds 
+		FROM
+			cygx_activity_voice AS v
+			INNER JOIN cygx_activity AS a ON a.activity_id = v.activity_id 
+		WHERE
+			1 = 1 	 AND  v.activity_id IN (` + utils.GetOrmInReplace(lenactivityIds) + `)  `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, activityIds).QueryRows(&items)
+	return
+}
+
+func UpdateCygxActivityVoiceCounts(activityId int) (err error) {
+	sql := `UPDATE cygx_activity_voice SET voice_counts = voice_counts+1 WHERE activity_id = ?  `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, activityId).Exec()
+	return
+}
+
+// GetCygxActivityVoiceById 主键获取活动音频
+func GetCygxActivityVoiceById(videoId int) (item *CygxActivityVoice, err error) {
+	sql := `SELECT * FROM cygx_activity_voice WHERE activity_voice_id = ? LIMIT 1`
+	err = orm.NewOrm().Raw(sql, videoId).QueryRow(&item)
+	return
+}
+
+//列表
+func GetActivityVoiceListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityVideoListResp, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*  FROM cygx_activity as art  INNER JOIN cygx_activity_voice AS v ON v.activity_id = art.activity_id   WHERE 1= 1  `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?`
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 17 - 0
models/admin.go

@@ -0,0 +1,17 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+type AdminMobileResp struct {
+	Mobile string `description:"手机号"`
+}
+
+// 获取销售所能查看到的手机号
+func GetAdminByRole() (items []*AdminMobileResp, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT mobile  FROM admin  WHERE role = 'admin' `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 1 - 0
models/wx_user.go

@@ -76,6 +76,7 @@ type WxUserItem struct {
 	OutboundCountryCode string    `description:"外呼手机号区号"`
 	IsMsgOutboundMobile int       `description:"是否弹窗过绑定外呼手机号区号"`
 	Source              int
+	IsMaker             int `description:"是否是决策人"`
 }
 
 func GetWxUserItemByUserId(userId int) (item *WxUserItem, err error) {

+ 216 - 1
services/activity.go

@@ -3,8 +3,219 @@ package services
 import (
 	"fmt"
 	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+	"strconv"
+	"strings"
+	"time"
 )
 
+//获取活动列表查询权限的SQL
+// @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
+// @Param   ActivityTypeIds   query   string  false     "活动类型id 多个用 , 隔开"
+// @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3"
+// @Param   WhichDay   query   string  false       "哪一天 今天:1、明天:2,多个用 , 隔开"
+// @Param   IsPower   query   int  false       "是否选择有权限行业 ,1是 0 否 默认0"
+// @Param   Label   query   string  false       "搜索主题 多个用 , 隔开"
+// @Param   PlayBack   query   int  false       "是否仅展示回放 1:是、0:否 默认0"
+// @Param   KeyWord   query   string  false       "搜索关键词 多个用 , 隔开"
+func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermissionIds, whichDay, activeState, label string, isPower, source int, keyWord string, playBack int) (conditionActivity string, err error) {
+	adminIds, err := models.GetSelleridWhichGroup(user.CompanyId, 2)
+	if err != nil {
+		return
+	}
+	userType, permissionStr, err := GetUserType(user.CompanyId)
+	if err != nil {
+		return
+	}
+	//判断客户规模是否属于可见范围的活动
+	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	isMaker := user.IsMaker
+	slicePer := strings.Split(permissionStr, ",")
+	var permissionSqlStr string
+	var permissionNameStr string
+	for _, v := range slicePer {
+		if userType == 1 {
+			//研选权限处理
+			if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
+				permissionNameStr += "'" + v + "',"
+			}
+		} else {
+			permissionNameStr += "'" + v + "',"
+		}
+	}
+	permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
+	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
+	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
+
+	// 查研观向7.4-始终查询宏观的权限(无论是否有权限)
+	if permissionNameStr == `` {
+		permissionNameStr = `'宏观'`
+	} else {
+		permissionNameStr += `, '宏观'`
+	}
+
+	var condition string
+	var conditionAdmin string
+	var conditionHz string // 弘则权限处理
+	var sqlExport string   // 专家权限处理
+	permissionSqlStr = `  AND art.chart_permission_name  IN (` + permissionNameStr + `)`
+	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
+	if userType == 2 {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	}
+	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	}
+	sqlExport += `) `
+	// 如果是C类电话会就不展示内容,且合并到分析师电话会
+	if activityTypeId != "" {
+		if activityTypeId == strconv.Itoa(utils.ANALYST_TELL_ACTIVITY_TYPE_ID) {
+			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id IN (` + activityTypeId + "," + strconv.Itoa(utils.C_CLASS_ACTIVITY_TYPE_ID) + `)`
+		} else {
+			condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.activity_type_id = ` + activityTypeId
+		}
+	}
+
+	//主题
+	if label != "" {
+		condition = ` AND art.label  LIKE '%` + label + `%' `
+	}
+
+	if isPower == 1 {
+		condition += permissionSqlStr
+	}
+
+	//行业名称
+	if len(chartPermissionIds) > 0 {
+		condition += ` AND art.chart_permission_id  IN (` + chartPermissionIds + `)`
+	}
+	//如果是PC的,则不看易董的
+	if source == 1 {
+		condition += ` AND art.yidong_activity_id = '' `
+	}
+
+	var conditionOr string
+	if whichDay != "" {
+		var startDate string
+		var endDate string
+		if whichDay == "1" {
+			startDate = time.Now().Format(utils.FormatDate)
+			endDate = startDate
+		} else if whichDay == "2" {
+			startDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+			endDate = startDate
+		} else {
+			startDate = time.Now().Format(utils.FormatDate)
+			endDate = time.Now().AddDate(0, 0, +1).Format(utils.FormatDate)
+		}
+		condition += ` AND art.activity_time >= ` + "'" + startDate + " 00:00:00'"
+		condition += ` AND art.activity_time <= ` + "'" + endDate + " 23:59:59'"
+	}
+
+	//有搜索条件传过来时,不判进行状态条件
+	if keyWord != "" {
+		condition += ` AND (art.label  LIKE '%` + keyWord + `%' OR art.activity_name  LIKE '%` + keyWord + `%' ) `
+	} else {
+		if activeState != "" {
+			// 默认查看未开始跟进行中
+			if activeState == "1" {
+				condition += ` AND art.active_state  IN (1,2)`
+			} else {
+				condition += ` AND art.active_state  IN (` + activeState + `)`
+			}
+		} else {
+			condition += ` AND art.active_state  IN (1,2)`
+		}
+	}
+
+	if playBack == 1 {
+		var pars []interface{}
+		ativityVIdArry := make([]string, 0)
+		voiceList, e := models.GetActivityVoiceListAll("", pars, 0, 1000)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = e
+			return
+		}
+		for _, v := range voiceList {
+			ativityVIdArry = append(ativityVIdArry, strconv.Itoa(v.ActivityId))
+		}
+
+		videoList, e := models.GetActivityVideoListAll("", pars, 0, 1000)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			err = e
+			return
+		}
+		for _, v := range videoList {
+			ativityVIdArry = append(ativityVIdArry, strconv.Itoa(v.ActivityId))
+		}
+
+		//活动音频,设置有效时间为30天,失效后该活动就不再支持音频回放。有效期起始时间为活动的开始时间
+		//endTime := time.Now().AddDate(0, 0, -30).Format("2006-01-02 15:04:05")
+		//condition += ` AND art.activity_time > '` + endTime + `'  `
+		if len(ativityVIdArry) > 0 {
+			ativityVIdstr := strings.Join(ativityVIdArry, ",")
+			condition += ` AND art.activity_id IN  (` + ativityVIdstr + `) `
+		}
+	}
+
+	//查询全部可见的数据(是否全部客户可见)
+	condition += `   AND art.publish_status = 1 `
+	conditionHz = condition
+
+	//活动仅决策人可见
+	if isMaker == 0 {
+		condition += ` AND art.is_maker_show = 0  `
+	}
+	conditionAdmin = condition + `  AND art.visible_range = 1 `
+	condition += `  AND art.visible_range != 1 `
+	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
+	}
+	if (userType == 5) && strings.Contains(permissionStr, "专家") {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%'	 ` + condition + `) `
+	}
+	if userType == 1 {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
+	} else {
+		conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
+	}
+	if userType == 6 || userType == 7 {
+		conditionOr += ` OR (   art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%'	 ` + condition + `) `
+	}
+	if companyProduct != nil {
+		if companyProduct.Scale != "" {
+			conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'	 ` + condition + `) `
+		}
+	}
+
+	if adminIds != "" {
+		conditionOr += ` OR (  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' ` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		if companyProduct != nil {
+			if companyProduct.Scale != "" {
+				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+			}
+		}
+	}
+
+	//弘则研究下的客户不做权限,限制,C类电话会,仅本组销售、部门管理员、admin、权益研究员账号能看到
+	if user.CompanyId == 16 {
+		mapMobile, e := GetAdminMobileMap()
+		if e != nil {
+			err = e
+			return
+		}
+		if _, ok := mapMobile[user.Mobile]; ok {
+			conditionOr += ` OR (  art.publish_status = 1 ` + conditionHz + `) `
+		}
+	}
+
+	conditionActivity = condition + permissionSqlStr + sqlExport + conditionOr
+	return
+}
+
 //获取可见的活动
 func HandleActivityPowerList(listActivity []*models.CygxActivity, user *models.WxUserItem) (items []*models.CygxActivity, err error) {
 
@@ -21,6 +232,10 @@ func HandleActivityTypeHomeList(listType []*models.ActivityTypeHome, listActivit
 		}
 		item := new(models.CygxActivityLabelList)
 		item.KeyWord = v.Label
+		item.Resource = 1
+		if v.YidongActivityId != "" {
+			item.IsExternalLabel = true
+		}
 		if len(mapActivity[v.ActivityTypeId]) > 10 {
 			continue
 		}
@@ -33,6 +248,6 @@ func HandleActivityTypeHomeList(listType []*models.ActivityTypeHome, listActivit
 		}
 	}
 	items = listType
-	fmt.Println(mapActivity)
+	fmt.Println(len(mapActivity))
 	return
 }

+ 17 - 0
services/admin.go

@@ -0,0 +1,17 @@
+package services
+
+import "hongze/hongze_clpt/models"
+
+func GetAdminMobileMap() (mapItem map[string]string, err error) {
+	adminList, e := models.GetAdminByRole()
+	if e != nil {
+		err = e
+		return
+	}
+	mapMobile := make(map[string]string)
+	for _, v := range adminList {
+		mapMobile[v.Mobile] = v.Mobile
+	}
+	mapItem = mapMobile
+	return
+}

+ 6 - 0
utils/constants.go

@@ -101,3 +101,9 @@ const (
 const (
 	TIME_CATEGORYID = 99999 //时间线的分类ID
 )
+
+//活动相关
+const (
+	C_CLASS_ACTIVITY_TYPE_ID      int = 7 //C类电话会会议ID
+	ANALYST_TELL_ACTIVITY_TYPE_ID int = 2 //分析师电话会ID
+)