Browse Source

no message

xingzai 7 months ago
parent
commit
6d3f64868a

+ 119 - 3
controllers/cygx/user.go

@@ -9,6 +9,7 @@ import (
 	"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"
 	cygxService "hongze/hz_crm_api/services/cygx"
@@ -659,6 +660,7 @@ func (this *UserController) TableList() {
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
+
 	resp := new(cygx.CygxUserTableListRep)
 	if classType == 1 {
 		countDetail, err := cygx.GetUserInteractionTableCount(userId)
@@ -668,9 +670,16 @@ func (this *UserController) TableList() {
 			return
 		}
 
+		calendarTotal, err := roadshow.GetRsCalendarMeetingUserCountByUserId(userId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "GetCygxUserFeedbackCountByUserId,Err:" + err.Error()
+			return
+		}
 		List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: countDetail.HistoryNum},
 			{PermissionName: "活动互动记录", Source: 2, TotalNum: countDetail.OnLineNum + countDetail.OfficeNum},
 			{PermissionName: "专项调研", Source: 8, TotalNum: countDetail.TripNum},
+			{PermissionName: "1v1路演", Source: 15, TotalNum: calendarTotal},
 			{PermissionName: "收藏的报告", Source: 3, TotalNum: countDetail.CountNum},
 			{PermissionName: "收藏的图表", Source: 4, TotalNum: countDetail.ChartNum},
 			{PermissionName: "关注的产业", Source: 5, TotalNum: countDetail.IndustryFllowNum},
@@ -1233,7 +1242,32 @@ func (this *UserController) TableDetail() {
 			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
 			return
 		}
-
+	} else if source == 15 { //1V1路演
+		if startDate != "" {
+			//startDate += " 00:00:00"
+			condition += ` AND b.start_date >= '` + startDate + `' `
+		}
+		if endDate != "" {
+			//endDate += " 23:59:59"
+			condition += ` AND b.start_date <= '` + endDate + `' `
+		}
+		if wxUser.Mobile == "" {
+			wxUser.Mobile = wxUser.Email
+		}
+		condition += " 	AND (r.mobile = '" + wxUser.Mobile + "'  OR  r.email = '" + wxUser.Mobile + "')  "
+		totalRsCalendar, listRsCalendar, err := roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+			return
+		}
+		total = totalRsCalendar
+		list, err = cygxService.HandleListRsCalendar(listRsCalendar)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
+			return
+		}
 	}
 	page := paging.GetPaging(currentIndex, pageSize, total)
 	resp := new(cygx.UserInteractionListResp)
@@ -2273,6 +2307,7 @@ func (this *UserController) CompanyTableList() {
 	var yanxuanSpecialCollectNum int //收藏的专栏文章
 	var yanxuanSpecialFollowNum int  //关注的专栏作者
 	var feedbackNum int              //交流反馈数量
+	var calendarMeetingNum int       //1v1 路演数量
 
 	if isAdminRole {
 		historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCount(conditionArtcile, pars)
@@ -2371,6 +2406,13 @@ func (this *UserController) CompanyTableList() {
 			return
 		}
 
+		calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModel(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModel,Err:" + err.Error()
+			return
+		}
+
 	} else {
 		historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(conditionArtcile, pars)
 		if err != nil {
@@ -2468,12 +2510,20 @@ func (this *UserController) CompanyTableList() {
 			return
 		}
 
+		calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModelWeekly(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModelWeekly,Err:" + err.Error()
+			return
+		}
+
 	}
 
 	if classType == 1 {
 		List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
 			{PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
 			{PermissionName: "专项调研", Source: 8, TotalNum: triptotal},
+			{PermissionName: "1v1路演", Source: 15, TotalNum: calendarMeetingNum},
 			{PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
 			{PermissionName: "收藏图表", Source: 4, TotalNum: chartNum},
 			{PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},
@@ -3097,6 +3147,31 @@ func (this *UserController) CompanyTableDetail() {
 				return
 			}
 		}
+	} else if source == 15 { //1V1路演
+		var totalRsCalendar int
+		var listRsCalendar []*roadshow.RsCalendarMeetingUserByRai
+		if isAdminRole {
+			totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+				return
+			}
+		} else {
+			totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRaiWeekly(condition, startSize, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+				return
+			}
+		}
+		total = totalRsCalendar
+		list, err = cygxService.HandleListRsCalendar(listRsCalendar)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
+			return
+		}
 	}
 
 	page := paging.GetPaging(currentIndex, pageSize, total)
@@ -4395,6 +4470,31 @@ func (this *UserController) CompanyList() {
 				return
 			}
 		}
+	} else if source == 15 {
+		var totalRsCalendar int
+		var listRsCalendar []*roadshow.RsCalendarMeetingUserByRai
+		if isAdminRole {
+			totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRai(condition, startSize, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+				return
+			}
+		} else {
+			totalRsCalendar, listRsCalendar, err = roadshow.GetRsCalendarMeetingUserByRaiWeekly(condition, startSize, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户阅读记录,Err:" + err.Error()
+				return
+			}
+		}
+		total = totalRsCalendar
+		list, err = cygxService.HandleListRsCalendar(listRsCalendar)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "HandleListRsCalendar,Err:" + err.Error()
+			return
+		}
 	}
 	page := paging.GetPaging(currentIndex, pageSize, total)
 
@@ -5347,6 +5447,7 @@ func (this *UserController) TableCompanyList() {
 	var yanxuanSpecialCollectNum int //收藏的专栏文章
 	var yanxuanSpecialFollowNum int  //关注的专栏作者
 	var feedbackNum int              //交流反馈数量
+	var calendarMeetingNum int       //1v1 路演数量
 
 	if isAdminRole {
 		historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCount(conditionArtcile, pars)
@@ -5446,6 +5547,13 @@ func (this *UserController) TableCompanyList() {
 			return
 		}
 
+		calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModel(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModel,Err:" + err.Error()
+			return
+		}
+
 	} else {
 		historyNum, err = cygx.GetCygxArticleAndYanxuanRecordCountWeekly(conditionArtcile, pars)
 		if err != nil {
@@ -5533,14 +5641,21 @@ func (this *UserController) TableCompanyList() {
 
 		yanxuanSpecialFollowNum, err = cygx.GetCygxYanxuanSpecialFollowCountWeekly(condition, pars)
 		if err != nil {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
 			br.Msg = "获取关注的专栏作者数量失败"
+			br.ErrMsg = "获取信息失败,Err:" + err.Error()
 			return
 		}
 		feedbackNum, err = cygx.GetCygxUserFeedbackCountByUserModelWeekly(condition, pars)
 		if err != nil {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
 			br.Msg = "获取交流反馈数量失败"
+			br.ErrMsg = "获取信息失败,Err:" + err.Error()
+			return
+		}
+
+		calendarMeetingNum, err = roadshow.GetRsCalendarMeetingUserCountByUserModelWeekly(condition, pars)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "GetRsCalendarMeetingUserCountByUserModelWeekly,Err:" + err.Error()
 			return
 		}
 
@@ -5550,6 +5665,7 @@ func (this *UserController) TableCompanyList() {
 		List := []*cygx.CygxUserTableRep{{PermissionName: "报告阅读列表", Source: 1, TotalNum: historyNum},
 			{PermissionName: "活动互动记录", Source: 2, TotalNum: activityNum},
 			{PermissionName: "专项调研", Source: 8, TotalNum: triptotal},
+			{PermissionName: "1v1路演", Source: 15, TotalNum: calendarMeetingNum},
 			{PermissionName: "收藏的报告", Source: 3, TotalNum: articleCollect},
 			{PermissionName: "收藏图表", Source: 4, TotalNum: chartNum},
 			{PermissionName: "关注的产业", Source: 5, TotalNum: industryFllowNum},

+ 1 - 0
models/cygx/cygx_user.go

@@ -364,6 +364,7 @@ type UserInteraction struct {
 	SpecialType           int    `description:"专栏类型 1:笔记,2:观点"`
 	ArticleNum            int    // 已发布的文章数量
 	FansNum               int    // 粉丝数量
+	ResearcherName        string `description:"研究员姓名"`
 }
 
 // 查研观向图表

+ 2 - 2
models/cygx/user_feedback.go

@@ -92,7 +92,7 @@ func GetCygxUserFeedback(condition string, startSize, pageSize int) (total int,
 	o := orm.NewOrmUsingDB("hz_cygx")
 	var sql string
 	sql += `SELECT
-			r.content as title,
+			r.content as key_word,
 			r.user_id,
 		    r.mobile,
 			r.real_name,
@@ -122,7 +122,7 @@ func GetCygxUserFeedbackWeekly(condition string, startSize, pageSize int) (total
 	o := orm.NewOrmUsingDB("hz_cygx")
 	var sql string
 	sql += `SELECT
-			r.content as title,
+			r.content as key_word,
 			r.user_id,
 		    r.mobile,
 			r.real_name,

+ 11 - 3
models/roadshow/calendar.go

@@ -118,6 +118,17 @@ func GetRsCalendarResearcherListById(rsCalendarId int) (item []*RsCalendarResear
 	return
 }
 
+// 根据多个路演ID获取研究员信息
+func GetRsCalendarResearcherListByIds(rsCalendarIds []int) (item []*RsCalendarResearcher, err error) {
+	if len(rsCalendarIds) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id IN (` + utils.GetOrmInReplace(len(rsCalendarIds)) + `) `
+	_, err = o.Raw(sql, rsCalendarIds).QueryRows(&item)
+	return
+}
+
 func GetRsCalendarResearcherListByCalendarResearcherId(rsCalendarResearcherId int) (item []*RsCalendarResearcher, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_researcher_id=? `
@@ -167,7 +178,6 @@ type ResearcherGroup struct {
 	ResearcherList []*ResearcherGroup
 }
 
-
 func GetResearcherGroup() (list []*ResearcherGroup, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT group_id,group_name FROM admin AS a
@@ -962,7 +972,6 @@ func GetOverseaCustomCalendarList2(sellerId, researcherId, startDate, endDate, c
     INNER JOIN %s.english_company AS cc ON aa.company_id=cc.company_id
 		where aa.english_company= 1 AND aa.source = 0 AND cc.is_deleted=0  AND bb.rs_calendar_researcher_status=2 AND bb.researcher_id != 0 `, databaseName)
 
-
 	if startDate != "" {
 		sql2 += ` AND bb.start_date >= ?  `
 		pars = append(pars, startDate)
@@ -985,7 +994,6 @@ func GetOverseaCustomCalendarList2(sellerId, researcherId, startDate, endDate, c
 	sql := `SELECT m.*  FROM (` + sql1 + ` UNION ALL ` + sql2
 	sql += ` ) AS m  WHERE 1=1 `
 
-
 	sql += ` Group by rs_calendar_id  `
 	_, err = o.Raw(sql, pars).QueryRows(&list)
 

+ 128 - 0
models/roadshow/rs_calendar_meeting_user.go

@@ -3,6 +3,7 @@ package roadshow
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"hongze/hz_crm_api/utils"
+	"strconv"
 	"time"
 )
 
@@ -59,6 +60,39 @@ func DeleteRsCalendarMeetingUser(rsCalendarMeetingUserID int) (err error) {
 	return err
 }
 
+// 获取数量
+func GetRsCalendarMeetingUserCountByUserId(userId int) (count int, err error) {
+	o := orm.NewOrm()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM rs_calendar_meeting_user WHERE   user_id   = ?`
+	err = o.Raw(sqlCount, userId).QueryRow(&count)
+	return
+}
+
+// 获取数量
+func GetRsCalendarMeetingUserCountByUserModel(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM rs_calendar_meeting_user as r
+                  WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
+// 获取数量
+func GetRsCalendarMeetingUserCountByUserModelWeekly(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM 	rs_calendar_meeting_user AS r
+			INNER JOIN user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE 1 = 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
 // 列表
 func GetRsCalendarMeetingUserList(condition string, pars []interface{}) (items *RsCalendarMeetingUserResp, err error) {
 	o := orm.NewOrm()
@@ -94,3 +128,97 @@ func GetRsCalendarMeetingUserListCount(rsCalendarIds []int) (items []*RsCalendar
 	_, err = o.Raw(sql, rsCalendarIds).QueryRows(&items)
 	return
 }
+
+type RsCalendarMeetingUserByRai struct {
+	RsCalendarMeetingUserId int    `orm:"column(rs_calendar_meeting_user_id);pk" description:"主键ID"`
+	RsCalendarId            int    `description:"日程ID"`
+	UserId                  int    `description:"用户ID"`
+	Mobile                  string `description:"手机号"`
+	Email                   string `description:"邮箱"`
+	CompanyId               int    `description:"公司ID"`
+	CompanyName             string `description:"公司名称"`
+	RealName                string `description:"用户实际名称"`
+	StartDate               string `description:"开始时间"`
+	EndDate                 string `description:"结束时间"`
+	EndTime                 string `description:"开始时间"`
+	StartTime               string `description:"结束时间"`
+	StartWeek               string `description:"起始周"`
+	RoadshowType            string `description:"路演形式"`
+	ResearcherName          string `description:"研究员姓名"`
+}
+
+// 权益联系人列表获取相关信息
+func GetRsCalendarMeetingUserByRai(condition string, startSize, pageSize int) (total int, items []*RsCalendarMeetingUserByRai, err error) {
+	o := orm.NewOrm()
+	var sql string
+	sql += `SELECT
+			r.company_id,
+			r.company_name,
+			r.real_name,
+			r.mobile,
+			b.start_date,
+			b.end_date,
+			b.start_time,
+			b.end_time,
+			b.start_week,
+			b.researcher_name,
+			a.roadshow_type,
+			a.rs_calendar_id
+		FROM
+			rs_calendar_meeting_user AS r
+			INNER JOIN rs_calendar AS a ON a.rs_calendar_id = r.rs_calendar_id
+			INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id = b.rs_calendar_id 
+		WHERE
+			1 = 1 ` + condition
+
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z `
+	err = o.Raw(totalSql).QueryRow(&total)
+	if err != nil {
+		return
+	}
+
+	sql += ` ORDER BY  start_date  DESC `
+	if startSize > 0 || pageSize > 0 {
+		sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
+	}
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func GetRsCalendarMeetingUserByRaiWeekly(condition string, startSize, pageSize int) (total int, items []*RsCalendarMeetingUserByRai, err error) {
+	o := orm.NewOrm()
+	var sql string
+	sql += `SELECT
+			r.company_id,
+			r.company_name,
+			r.real_name,
+			r.mobile,
+			b.start_date,
+			b.end_date,
+			b.start_time,
+			b.end_time,
+			b.start_week,
+			b.researcher_name,
+			a.roadshow_type,
+			a.rs_calendar_id
+		FROM
+			rs_calendar_meeting_user AS r
+			INNER JOIN rs_calendar AS a ON a.rs_calendar_id = r.rs_calendar_id
+			INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id = b.rs_calendar_id 
+			INNER JOIN user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE
+			1 = 1 ` + condition
+
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z `
+	err = o.Raw(totalSql).QueryRow(&total)
+	if err != nil {
+		return
+	}
+
+	sql += ` ORDER BY  start_date  DESC `
+	if startSize > 0 || pageSize > 0 {
+		sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
+	}
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}

+ 36 - 0
services/cygx/user_label.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/models/roadshow"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
 	"strconv"
@@ -270,3 +271,38 @@ func GetUserInteractionNumMap(userIds []int) (mapResp map[int]int) {
 	}
 	return
 }
+
+// 预处理1v1路演的参会人员信息
+func HandleListRsCalendar(list []*roadshow.RsCalendarMeetingUserByRai) (items []*cygx.UserInteraction, err error) {
+	if len(list) == 0 {
+		return
+	}
+	var rsCalendarIds []int
+	for _, v := range list {
+		rsCalendarIds = append(rsCalendarIds, v.RsCalendarId)
+	}
+
+	//获取研究员信息
+	researchers, err := roadshow.GetRsCalendarResearcherListByIds(rsCalendarIds)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+	mapResearcherName := make(map[int][]string)
+	for _, v := range researchers {
+		mapResearcherName[v.RsCalendarId] = append(mapResearcherName[v.RsCalendarId], v.ResearcherName)
+	}
+	for _, v := range list {
+		item := new(cygx.UserInteraction)
+		item.UserId = v.UserId
+		item.RealName = v.RealName
+		item.Mobile = v.Mobile
+		item.CompanyId = v.CompanyId
+		item.CompanyName = v.CompanyName
+		item.KeyWord = "富强,民主,自由,和谐"
+		item.ActivityTimeText = v.StartDate + "(" + v.StartWeek + ")" + v.StartTime + "-" + v.EndTime
+		item.ResearcherName = strings.Join(mapResearcherName[v.RsCalendarId], ",")
+		items = append(items, item)
+	}
+
+	return
+}