Browse Source

no message

xingzai 8 months ago
parent
commit
b1c28b5322

+ 40 - 1
controllers/roadshow/calendar.go

@@ -1040,7 +1040,6 @@ func (this *CalendarController) ResearcherList() {
 	ficcGroup.GroupName = "ficc"
 	ficcGroup.ResearcherList = group
 
-
 	sysUserList, err := system.GetAdminList()
 	if err != nil {
 		br.Msg = "获取失败"
@@ -1216,10 +1215,17 @@ func (this *CalendarController) CalendarList() {
 
 	// 英文客户的国家以及点击量
 	englishIds := make([]int, 0)
+	adminIds := make([]int, 0)     // 管理员ID
+	rsCalendarId := make([]int, 0) //路演ID
 	for i := range dataList {
 		if dataList[i].EnglishCompany == 1 {
 			englishIds = append(englishIds, dataList[i].CompanyId)
 		}
+
+		if calendarType == 2 {
+			adminIds = append(adminIds, dataList[i].SysUserId)
+			rsCalendarId = append(rsCalendarId, dataList[i].RsCalendarId)
+		}
 	}
 	englishMap := make(map[int]*models.EnglishCompany)
 	if len(englishIds) > 0 {
@@ -1236,6 +1242,31 @@ func (this *CalendarController) CalendarList() {
 			englishMap[englishList[i].CompanyId] = englishList[i]
 		}
 	}
+	mapRaiSllerId := make(map[int]bool)  // 是否为权益销售
+	mapMeetingCount := make(map[int]int) // 路演参会人员数量
+	if len(adminIds) > 0 {
+		listAdmin, e := system.GetAdminListByIdListWithoutEnable(adminIds)
+		if e != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取管理员信息失败, Err:" + e.Error()
+			return
+		}
+		for _, v := range listAdmin { //权益销售与权益销售组长
+			if v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || v.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER {
+				mapRaiSllerId[v.AdminId] = true
+			}
+		}
+		listMeetingCount, e := roadshow.GetRsCalendarMeetingUserListCount(rsCalendarId)
+		if e != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取路演参会人员数量信息失败, Err:" + e.Error()
+			return
+		}
+		for _, v := range listMeetingCount {
+			mapMeetingCount[v.RsCalendarId] = v.Total
+		}
+	}
+
 	for i := range dataList {
 		if dataList[i].EnglishCompany == 1 {
 			en := englishMap[dataList[i].CompanyId]
@@ -1244,6 +1275,14 @@ func (this *CalendarController) CalendarList() {
 				dataList[i].EnglishViewTotal = en.ViewTotal
 			}
 		}
+		//如果是已结束的权益销售添加的活动,就行进行按钮展示
+		if mapRaiSllerId[dataList[i].SysUserId] && dataList[i].Status == 6 {
+			if mapMeetingCount[dataList[i].RsCalendarId] == 0 {
+				dataList[i].SubmitButton = true
+			} else {
+				dataList[i].ViewButton = true
+			}
+		}
 	}
 
 	resp.Paging = page

+ 3 - 1
models/roadshow/calendar.go

@@ -285,6 +285,8 @@ type CalendarListView struct {
 	EnglishCompany         int    `description:"是否为英文客户: 0-否; 1-是"`
 	EnglishCountry         string `description:"英文客户-国家"`
 	EnglishViewTotal       int    `description:"英文客户-累计点击量"`
+	SubmitButton           bool   `description:"提交按钮是否展示"`
+	ViewButton             bool   `description:"查看按钮是否展示"`
 }
 
 type CalendarListResp struct {
@@ -342,7 +344,7 @@ func GetCalendarList(condition string, pars []interface{}, startSize, pageSize,
 
 		_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
 	} else {
-		sql := `SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,
+		sql := `SELECT a.rs_calendar_id,a.activity_type,a.roadshow_type,a.activity_category,a.roadshow_platform,b.create_time,a.district,a.sys_user_id,
 				b.modify_time,b.researcher_id,b.researcher_name,
 				b.rs_calendar_researcher_id,b.start_date,
 				b.end_date,b.start_time,b.end_time,b.start_week,b.end_week,b.status,b.refuse_reason,b.refuse_time,

+ 18 - 1
models/roadshow/rs_calendar_meeting_user.go

@@ -2,6 +2,7 @@ package roadshow
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"time"
 )
 
@@ -73,7 +74,23 @@ func GetRsCalendarMeetingUserList(condition string, pars []interface{}) (items *
 func GetRsCalendarMeetingUserListByRsCalendarId(rsCalendarId int) (items []*RsCalendarMeetingUserResp, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM rs_calendar_meeting_user WHERE  rs_calendar_id = ?  `
-
 	_, err = o.Raw(sql, rsCalendarId).QueryRows(&items)
 	return
 }
+
+type RsCalendarMeetingUserCountResp struct {
+	RsCalendarId int `description:"日程ID"`
+	Total        int `description:"数量"`
+}
+
+// 路演参会人员数量
+func GetRsCalendarMeetingUserListCount(rsCalendarIds []int) (items []*RsCalendarMeetingUserCountResp, err error) {
+	lenNum := len(rsCalendarIds)
+	if lenNum <= 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT  rs_calendar_id ,COUNT(1) as total  FROM rs_calendar_meeting_user WHERE  rs_calendar_id IN ( ` + utils.GetOrmInReplace(lenNum) + `)   GROUP BY rs_calendar_id  `
+	_, err = o.Raw(sql, rsCalendarIds).QueryRows(&items)
+	return
+}