Browse Source

Merge branch 'cygx/cygx_need_p1-877' of http://8.136.199.33:3000/hongze/hz_crm_api

xingzai 1 year ago
parent
commit
f2ede22734

File diff suppressed because it is too large
+ 611 - 245
controllers/cygx/user.go


+ 1 - 0
models/cygx/activity_meet.go

@@ -466,6 +466,7 @@ func GetCygxActivityYiDongMeetNum(activityId []int) (items []*CygxAtivityIdMeetN
 
 type GetSellerUserMobileResp struct {
 	Mobile string `description:"手机号"`
+	UserId int    `description:"用户ID"`
 }
 
 // 获取销售所能查看到的手机号

+ 33 - 0
models/cygx/article_and_yanxuan_record.go

@@ -1,7 +1,9 @@
 package cygx
 
 import (
+	"fmt"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 )
 
 type CygxArticleAndYanxuanRecordResp struct {
@@ -32,6 +34,21 @@ func GetCygxArticleAndYanxuanRecordCount(condition string, pars []interface{}) (
 	return
 }
 
+// 获取数量(关联用户跟销售的绑定关系跨库查询)
+func GetCygxArticleAndYanxuanRecordCountWeekly(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_article_and_yanxuan_record as r 
+				  INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE 1= 1  `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}
+
 // 列表
 func GetCygxArticleAndYanxuanRecordRespList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxArticleAndYanxuanRecordResp, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -43,3 +60,19 @@ func GetCygxArticleAndYanxuanRecordRespList(condition string, pars []interface{}
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
 	return
 }
+
+// 列表(关联用户跟销售的绑定关系跨库查询)
+func GetCygxArticleAndYanxuanRecordRespListWeekly(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxArticleAndYanxuanRecordResp, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT * FROM cygx_article_and_yanxuan_record as r 
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE 1= 1   `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}

+ 46 - 15
models/cygx/chart.go

@@ -1,9 +1,11 @@
 package cygx
 
 import (
+	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/utils"
 	"strconv"
 	"time"
 )
@@ -261,6 +263,20 @@ func GetChartCountByUserMobile(condition string) (count int, err error) {
 	return
 }
 
+func GetChartCountByUserMobileWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT COUNT(1) AS count FROM cygx_chart_collect as r  INNER JOIN cygx_chart_all AS a ON a.chart_id = r.chart_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+WHERE 1= 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql).QueryRow(&count)
+	return
+}
+
 type CygxChartCollect struct {
 	Mobile string `description:"手机号"`
 	UserId int    `description:"手机号"`
@@ -268,13 +284,6 @@ type CygxChartCollect struct {
 
 // 获取图表列表
 func GetChartCollectList(condition string) (items []*UserInteraction, err error) {
-	//o := orm.NewOrm()
-	//sql := `SELECT u.mobile,u.user_id,u.real_name FROM cygx_chart_collect AS r
-	//		INNER JOIN wx_user AS u ON u.mobile = r.mobile
-	//		LEFT  JOIN cygx_user_interaction_num AS ui ON ui.user_id = r.user_id
-	//		WHERE 1= 1 ` + condition + `   GROUP BY r.mobile  ORDER BY ui.chart_count_num DESC `
-	//_, err = o.Raw(sql).QueryRows(&items)
-
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `SELECT  *  FROM cygx_chart_collect AS r
 			WHERE 1= 1 ` + condition + `   GROUP BY r.mobile `
@@ -282,17 +291,22 @@ func GetChartCollectList(condition string) (items []*UserInteraction, err error)
 	return
 }
 
+// 获取图表列表(关联用户跟销售的绑定关系跨库查询)
+func GetChartCollectListWeekly(condition string) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT  r.*  FROM cygx_chart_collect AS r
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+			WHERE 1= 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	sql += condition + `   GROUP BY r.mobile `
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // 获取图表列表
 func GetChartCollectBycompanyList(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
-	//sql := `SELECT u.mobile,u.user_id,u.real_name,r.company_name,
-	//		cp.seller_name FROM cygx_chart_collect AS r
-	//		INNER JOIN wx_user AS u ON u.user_id = r.user_id
-	//		INNER  JOIN cygx_user_interaction_num AS ui ON ui.user_id = r.user_id
-	//		LEFT JOIN company_product AS cp ON cp.company_id = r.company_id AND cp.product_id = 2
-	//		INNER JOIN cygx_company_interaction_num AS ci ON ci.company_id = r.company_id
-	//		WHERE 1= 1 ` + condition + `   GROUP BY r.mobile  ORDER BY ci.chart_count_num DESC , ui.chart_count_num DESC `
-
 	sql := `SELECT r.*
 			FROM cygx_chart_collect AS r
 			WHERE 1= 1 ` + condition + `   GROUP BY r.mobile   `
@@ -303,6 +317,23 @@ func GetChartCollectBycompanyList(condition string, startSize, pageSize int) (it
 	return
 }
 
+// 获取图表列表
+func GetChartCollectBycompanyListWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT r.*
+			FROM cygx_chart_collect AS r
+		    INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+			WHERE 1= 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	sql += `   GROUP BY r.mobile   `
+	if startSize > 0 || pageSize > 0 {
+		sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
+	}
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // 获取一共有多少用户收藏图表
 func GetChartCountByUserCount(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")

+ 38 - 36
models/cygx/cygx_user.go

@@ -11,42 +11,43 @@ import (
 )
 
 type CygxCompanyUser struct {
-	UserId                int64  `orm:"column(user_id);pk"`
-	Mobile                string `description:"手机号"`
-	Email                 string `description:"邮箱"`
-	CompanyId             int    `description:"公司id"`
-	CompanyName           string `description:"公司名称"`
-	RealName              string `description:"姓名"`
-	CreatedTime           string `description:"创建时间"`
-	IsMaker               int    `description:"是否决策人,1:是,0:否"`
-	IsRegister            bool   `description:"是否注册,true:已注册,false:未注册"`
-	Status                string `description:"客户状态"`
-	RegisterTime          string `description:"注册时间"`
-	SellerName            string `description:"销售名称"`
-	InteractionNum        int    `description:"互动量"`
-	CompanyInteractionNum int    `description:"企业互动量"`
-	Labels                string `description:"标签,用英文,隔开"`
-	ActivityLabel         string `description:"活动标签,用英文,隔开"`
-	IsShowSee             bool   `description:"是否展示查看"`
-	IsShowSeeNum          int    `description:"是否展示查看"`
-	HistoryNum            int    `description:"报告阅读"`
-	CountNum              int    `description:"报告收藏"`
-	IndustryFllowNum      int    `description:"产业关注"`
-	DepartmentFollowNum   int    `description:"作者关注"`
-	KeyWordNum            int    `description:"搜索关键词"`
-	OnLineNum             int    `description:"线上互动活动"`
-	OfficeNum             int    `description:"线下互动活动"`
-	ChartNum              int    `description:"图表收藏数量"`
-	TripNum               int    `description:"图表数量"`
-	RoadshowVideoNum      int    `description:"产业视频播放量"`
-	ActivityVideoNum      int    `description:"活动视频播放量"`
-	ActivityVoiceNum      int    `description:"活动音频播放量"`
-	YanxuanspecialNum     int    `description:"研选专栏查看数量"`
-	PackageType           int    `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
-	TryStage              int    `description:"试用客户子标签:0全部、1未分类、2 推进、3 跟踪、4 预备"`
-	Content               string `description:"备注信息"`
-	IsRemind              bool   `description:"是否添加互动提醒"`
-	IsSubscribeCygx       int    `description:"是否关注了查研观向微信公众号: 0-未关注; 1-已关注"`
+	UserId                      int64  `orm:"column(user_id);pk"`
+	Mobile                      string `description:"手机号"`
+	Email                       string `description:"邮箱"`
+	CompanyId                   int    `description:"公司id"`
+	CompanyName                 string `description:"公司名称"`
+	RealName                    string `description:"姓名"`
+	CreatedTime                 string `description:"创建时间"`
+	IsMaker                     int    `description:"是否决策人,1:是,0:否"`
+	IsRegister                  bool   `description:"是否注册,true:已注册,false:未注册"`
+	Status                      string `description:"客户状态"`
+	RegisterTime                string `description:"注册时间"`
+	SellerName                  string `description:"销售名称"`
+	InteractionNum              int    `description:"互动量"`
+	CompanyInteractionNum       int    `description:"企业互动量"`
+	CompanyInteractionNumSeller int    `description:"销售可见企业互动量"`
+	Labels                      string `description:"标签,用英文,隔开"`
+	ActivityLabel               string `description:"活动标签,用英文,隔开"`
+	IsShowSee                   bool   `description:"是否展示查看"`
+	IsShowSeeNum                int    `description:"是否展示查看"`
+	HistoryNum                  int    `description:"报告阅读"`
+	CountNum                    int    `description:"报告收藏"`
+	IndustryFllowNum            int    `description:"产业关注"`
+	DepartmentFollowNum         int    `description:"作者关注"`
+	KeyWordNum                  int    `description:"搜索关键词"`
+	OnLineNum                   int    `description:"线上互动活动"`
+	OfficeNum                   int    `description:"线下互动活动"`
+	ChartNum                    int    `description:"图表收藏数量"`
+	TripNum                     int    `description:"图表数量"`
+	RoadshowVideoNum            int    `description:"产业视频播放量"`
+	ActivityVideoNum            int    `description:"活动视频播放量"`
+	ActivityVoiceNum            int    `description:"活动音频播放量"`
+	YanxuanspecialNum           int    `description:"研选专栏查看数量"`
+	PackageType                 int    `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
+	TryStage                    int    `description:"试用客户子标签:0全部、1未分类、2 推进、3 跟踪、4 预备"`
+	Content                     string `description:"备注信息"`
+	IsRemind                    bool   `description:"是否添加互动提醒"`
+	IsSubscribeCygx             int    `description:"是否关注了查研观向微信公众号: 0-未关注; 1-已关注"`
 }
 
 type CompanyUserListResp struct {
@@ -107,6 +108,7 @@ func GetCygxCompanyUserList(userCondition, keyWord, kwywordcondition, condition,
 			c.company_name,
 			c.company_id,
 			c.interaction_num as company_interaction_num,
+			c.interaction_num_seller as company_interaction_num_seller,
 			cp.status,
 			cp.try_stage,
 			cp.package_type,

+ 373 - 8
models/cygx/cygx_user_company.go

@@ -1,8 +1,10 @@
 package cygx
 
 import (
+	"fmt"
 	"github.com/beego/beego/v2/client/orm"
 	"hongze/hz_crm_api/models/company"
+	"hongze/hz_crm_api/utils"
 	"strconv"
 )
 
@@ -103,6 +105,27 @@ func GetActivityMeetByCompanyCount(condition string) (count int, err error) {
 	return
 }
 
+// 获取用户参会记录数量(关联用户跟销售的绑定关系跨库查询)
+func GetActivityMeetByCompanyCountWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := `SELECT
+				COUNT(*) AS count 
+			FROM
+				cygx_activity_signup_detail AS r
+				INNER JOIN cygx_activity AS a ON a.activity_id = r.activity_id
+				INNER JOIN cygx_activity_type as t ON t.activity_type_id = a.activity_type_id
+				INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+			WHERE 1 = 1 
+				AND r.do_fail_type = 0`
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 获取用户参会记录
 func GetActivityMeetByCompany(condition string, startSize, pageSize int) (item []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -143,6 +166,43 @@ func GetActivityMeetByCompany(condition string, startSize, pageSize int) (item [
 	return
 }
 
+// 获取用户参会记录(关联用户跟销售的绑定关系跨库查询)
+func GetActivityMeetByCompanyWeekly(condition string, startSize, pageSize int) (item []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			t.activity_type,
+			r.signup_type,
+			r.is_meeting,
+			r.mobile,
+			r.real_name,
+			a.activity_name,
+			a.chart_permission_name,
+			a.activity_type_name,
+			a.label,
+			a.activity_time,
+			r.first_meeting_time,
+			r.last_meeting_time,
+			r.meeting_type_str,
+			r.meeting_authentication,
+			r.meeting_status_str,
+			r.duration
+		FROM
+			cygx_activity_signup_detail AS r
+			INNER  JOIN cygx_activity AS a ON a.activity_id = r.activity_id
+			INNER JOIN cygx_activity_type as t ON t.activity_type_id = a.activity_type_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+		WHERE
+			1 = 1 AND r.do_fail_type = 0 `
+	sql = fmt.Sprintf(sql, databaseName)
+	sql += condition + ` GROUP BY r.id ORDER BY	a.activity_time DESC ,r.id DESC  `
+	if startSize > 0 || pageSize > 0 {
+		sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
+	}
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
 // 收藏列表数量
 func GetCygxArticleCollectCountByCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -152,6 +212,22 @@ func GetCygxArticleCollectCountByCompany(condition string) (count int, err error
 	return
 }
 
+// 收藏列表数量(关联用户跟销售的绑定关系跨库查询)
+func GetCygxArticleCollectCountByCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_article_collect as r 
+					INNER JOIN cygx_article AS art ON art.article_id = r.article_id
+					INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+		  WHERE   1=1 `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 收藏列表
 func GetCygxArticleCollectByCompany(startSize, pageSize int, condition string) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -198,6 +274,54 @@ func GetCygxArticleCollectByCompany(startSize, pageSize int, condition string) (
 	return
 }
 
+// 收藏列表(关联用户跟销售的绑定关系跨库查询)
+func GetCygxArticleCollectByCompanyWeekly(startSize, pageSize int, condition string) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := ` SELECT
+			art.title,
+			art.article_id,
+			art.article_id_md5,
+			art.publish_date,
+			re.chart_permission_name,
+			re.chart_permission_id,
+			r.create_time,
+			r.mobile,
+			r.real_name,
+			re.match_type_name,
+			(
+			SELECT
+				GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' ) 
+			FROM
+				cygx_industrial_subject AS s 
+			WHERE
+				s.industrial_subject_id IN ( SELECT industrial_subject_id FROM cygx_industrial_article_group_subject AS sg WHERE sg.article_id = art.article_id ) 
+			) AS subject_name_str,
+			(
+			SELECT
+				GROUP_CONCAT( DISTINCT man.industry_name SEPARATOR '/' ) 
+			FROM
+				cygx_industrial_management AS man 
+			WHERE
+				man.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_article_group_management AS man_g WHERE man_g.article_id = art.article_id ) 
+			) AS industry_name 
+		FROM
+			cygx_article_collect AS r
+			INNER JOIN cygx_article AS art ON art.article_id = r.article_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2
+			LEFT JOIN cygx_report_mapping AS re ON re.category_id = art.category_id_two
+			LEFT JOIN cygx_industrial_article_group_management AS man ON man.article_id = art.article_id 
+		WHERE
+			 1=1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	sql += condition + ` GROUP BY r.id ORDER BY r.create_time DESC  `
+	if startSize > 0 || pageSize > 0 {
+		sql += ` LIMIT ` + strconv.Itoa(startSize) + "," + strconv.Itoa(pageSize)
+	}
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
 // 关注产业数量
 func GetCygxIndustryFllowCountByCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -207,6 +331,21 @@ func GetCygxIndustryFllowCountByCompany(condition string) (count int, err error)
 	return
 }
 
+// 关注产业数量(关联用户跟销售的绑定关系跨库查询)
+func GetCygxIndustryFllowCountByCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_industry_fllow AS r
+			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = r.industrial_management_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 WHERE   type = 1  `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 关注产业列表
 func GetCygxIndustryFllowByCompany(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -224,6 +363,30 @@ func GetCygxIndustryFllowByCompany(condition string, startSize, pageSize int) (i
 	return
 }
 
+// 关注产业列表
+func GetCygxIndustryFllowByCompanyWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			m.industry_name,
+			r.mobile,
+			r.real_name,
+			r.modify_time as create_time,
+			( SELECT GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' ) FROM cygx_industrial_subject AS s WHERE s.industrial_management_id = m.industrial_management_id ) AS subject_name_str 
+		FROM
+			cygx_industry_fllow AS r
+			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = r.industrial_management_id 
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE  type = 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY  r.id DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 关注作者数量
 func GetCygArticleDepartmentFollowCountByCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -233,6 +396,22 @@ func GetCygArticleDepartmentFollowCountByCompany(condition string) (count int, e
 	return
 }
 
+// 关注作者数量
+func GetCygArticleDepartmentFollowCountByCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_article_department_follow AS r
+			INNER JOIN cygx_article_department AS m ON m.department_id = r.department_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+			WHERE    type = 1  `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 关注作者列表
 func GetCygArticleDepartmentFollowByCompany(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -243,24 +422,48 @@ func GetCygArticleDepartmentFollowByCompany(condition string, startSize, pageSiz
 			r.mobile,
 			r.real_name,
 			m.department_id,
-			i.industry_name,
 			a.title,
 			a.article_id,
-			( SELECT MAX( create_time ) FROM cygx_article_department_follow WHERE user_id = r.user_id ) AS max_time,
-			( SELECT GROUP_CONCAT( DISTINCT i.industry_name SEPARATOR '/' ) FROM cygx_industrial_management AS i WHERE i.industrial_management_id = mg.industrial_management_id ) AS industry_name,
-			( SELECT GROUP_CONCAT( DISTINCT s.subject_name SEPARATOR '/' ) FROM cygx_industrial_subject AS s WHERE s.industrial_management_id = i.industrial_management_id ) AS subject_name_str
+			( SELECT MAX( create_time ) FROM cygx_article_department_follow WHERE user_id = r.user_id ) AS max_time
 		FROM
 			cygx_article_department_follow AS r
 			INNER JOIN cygx_article_department AS m ON m.department_id = r.department_id
 			INNER JOIN cygx_article AS a ON a.department_id = m.department_id
-			LEFT JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = a.article_id
-			LEFT JOIN cygx_industrial_management AS i ON i.industrial_management_id = mg.industrial_management_id
 			WHERE  r.type = 1 ` + condition + `  GROUP BY 	r.id  
 			ORDER BY 	max_time DESC  LIMIT ?,? `
 	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	return
 }
 
+// 关注作者列表
+func GetCygArticleDepartmentFollowByCompanyWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			m.department_id,
+			m.nick_name,
+			r.modify_time as  create_time,
+			r.mobile,
+			r.real_name,
+			m.department_id,
+			a.title,
+			a.article_id,
+			( SELECT MAX( create_time ) FROM cygx_article_department_follow WHERE user_id = r.user_id ) AS max_time
+		FROM
+			cygx_article_department_follow AS r
+			INNER JOIN cygx_article_department AS m ON m.department_id = r.department_id
+			INNER JOIN cygx_article AS a ON a.department_id = m.department_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+			WHERE  r.type = 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` GROUP BY 	r.id ORDER BY 	max_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 用户搜索关键词统计
 func GetCygxSearchKeyWordCountBuCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -269,6 +472,21 @@ func GetCygxSearchKeyWordCountBuCompany(condition string) (count int, err error)
 	return
 }
 
+// 用户搜索关键词统计
+func GetCygxSearchKeyWordCountBuCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_search_key_word  as r
+					INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+					WHERE  1= 1  `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 用户搜索关键词列表
 func GetCygxSearchKeyWordByCompany(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -285,6 +503,28 @@ func GetCygxSearchKeyWordByCompany(condition string, startSize, pageSize int) (i
 	return
 }
 
+// 用户搜索关键词列表
+func GetCygxSearchKeyWordByCompanyWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			r.key_word,
+			r.create_time,
+			r.mobile,
+			r.real_name
+		FROM
+			cygx_search_key_word as r
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+			WHERE 1= 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY   r.create_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 用户专项产业调研统计
 func GetCygxActivitySpecialTripCountByCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -300,6 +540,27 @@ func GetCygxActivitySpecialTripCountByCompany(condition string) (count int, err
 	return
 }
 
+// 用户专项产业调研统计
+func GetCygxActivitySpecialTripCountByCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT
+			COUNT( 1 ) 
+		FROM
+			cygx_activity_special_meeting_detail AS r
+			INNER JOIN cygx_activity_special AS a ON a.activity_id = r.activity_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE
+			1 = 1 
+			 AND a.publish_status = 1   `
+	sqlCount = fmt.Sprintf(sqlCount, databaseName)
+	if condition != "" {
+		sqlCount += condition
+	}
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 用户专项产业调研列表
 func CygxActivitySpecialTripByCompany(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -322,6 +583,34 @@ func CygxActivitySpecialTripByCompany(condition string, startSize, pageSize int)
 	return
 }
 
+// 用户专项产业调研列表
+func CygxActivitySpecialTripByCompanyWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			a.research_theme AS activity_name,
+			a.chart_permission_name,
+			a.activity_time_text_by_day AS activity_time_text,
+			a.city,
+			a.special_type AS activity_type,
+			r.mobile,
+			r.activity_id,
+			r.real_name,
+			r.is_meeting 
+		FROM
+			cygx_activity_special_meeting_detail AS r
+			INNER JOIN cygx_activity_special AS a ON a.activity_id = r.activity_id
+			INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+			WHERE 1= 1   AND a.publish_status = 1  `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` ORDER BY  r.create_time DESC  LIMIT ?,? `
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 用户音视频浏览统计
 func GetCygxRoadshowCountByCompany(condition string) (count int, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -351,6 +640,39 @@ FROM
 	return
 }
 
+// 用户音视频浏览统计
+func GetCygxRoadshowCountByCompanyWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := `SELECT
+	COUNT( 1 ) total 
+FROM
+	(
+	SELECT
+		"" 
+	FROM
+		cygx_micro_roadshow_video_history AS r
+		INNER JOIN cygx_micro_roadshow_video AS v ON r.video_id = v.video_id
+		INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+	WHERE 1=1 ` + condition + `  UNION ALL
+	SELECT
+		"" 
+	FROM
+		cygx_activity_video_history AS r
+		INNER JOIN cygx_activity_video AS v ON r.video_id = v.video_id
+		INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+	WHERE 1=1 ` + condition + ` UNION ALL
+	SELECT
+		"" 
+	FROM
+		cygx_activity_voice_history AS r
+		INNER JOIN cygx_activity_voice AS v ON r.activity_id = v.activity_id
+		INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+	WHERE 1=1 ` + condition + `)z  `
+	err = o.Raw(sqlCount).QueryRow(&count)
+	return
+}
+
 // 用户音视频浏览列表
 func GetCygxRoadshowByCompany(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -392,6 +714,51 @@ func GetCygxRoadshowByCompany(condition string, startSize, pageSize int) (items
 	return
 }
 
+// 用户音视频浏览列表
+func GetCygxRoadshowByCompanyWeekly(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := `SELECT
+			v.video_name AS media_title,
+			r.create_time,
+			r.real_name,
+			r.mobile,
+			"逻辑解析" AS file_type 
+		FROM
+			cygx_micro_roadshow_video_history AS r
+			INNER JOIN cygx_micro_roadshow_video AS v ON r.video_id = v.video_id
+			INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+
+		WHERE 1=1 ` + condition + `  UNION ALL
+		SELECT
+			v.video_name AS media_title,
+			r.create_time,
+			r.real_name,
+			r.mobile,
+			"路演回放" AS file_type 
+		FROM
+			cygx_activity_video_history AS r
+			INNER JOIN cygx_activity_video AS v ON r.video_id = v.video_id
+			INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+
+		WHERE 1=1 ` + condition + `   UNION ALL
+		SELECT
+			v.voice_name AS media_title,
+			r.create_time,
+			r.real_name,
+			r.mobile,
+			"路演回放" AS file_type 
+		FROM
+			cygx_activity_voice_history AS r
+			INNER JOIN cygx_activity_voice AS v ON r.activity_id = v.activity_id
+			INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+
+		WHERE 1=1 ` + condition + `  
+		ORDER BY create_time DESC   LIMIT ?,? `
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 用户音视频浏览列表
 func GetCygxRoadshowByCompanyList(condition string, startSize, pageSize int) (items []*UserInteraction, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
@@ -552,8 +919,6 @@ func GetActivityMeetByCompanyList(condition string, startSize, pageSize int) (it
 			cygx_activity_signup_detail AS r
 			INNER  JOIN cygx_activity AS a ON a.activity_id = r.activity_id
 			INNER JOIN cygx_activity_type as t ON t.activity_type_id = a.activity_type_id
-			LEFT JOIN cygx_company_interaction_num AS ci ON ci.company_id = r.company_id
-			LEFT JOIN cygx_user_interaction_num AS ui ON ui.user_id = r.user_id
 		WHERE
 			1 = 1 
 			AND r.do_fail_type = 0

+ 118 - 17
models/cygx/tag_history.go

@@ -1,7 +1,9 @@
 package cygx
 
 import (
+	"fmt"
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"time"
 )
 
@@ -31,16 +33,16 @@ func GetCygxTagHistoryList(condition string, pars []interface{}) (items []*CygxT
 	return
 }
 
-// 获取数量
-func GetCygxTagHistoryCount(condition string, pars []interface{}) (count int, err error) {
-	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_tag_history as art WHERE 1= 1  `
-	if condition != "" {
-		sqlCount += condition
-	}
-	o := orm.NewOrmUsingDB("hz_cygx")
-	err = o.Raw(sqlCount, pars).QueryRow(&count)
-	return
-}
+//// 获取数量
+//func GetCygxTagHistoryCount(condition string, pars []interface{}) (count int, err error) {
+//	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_tag_history as art WHERE 1= 1  `
+//	if condition != "" {
+//		sqlCount += condition
+//	}
+//	o := orm.NewOrmUsingDB("hz_cygx")
+//	err = o.Raw(sqlCount, pars).QueryRow(&count)
+//	return
+//}
 
 // 获取数量
 func GetCygxTagHistoryCountUv(tagId int) (count int, err error) {
@@ -83,33 +85,69 @@ WHERE a.user_id=? ORDER BY a.create_time DESC LIMIT ?,? `
 
 // 获取数量
 func GetCygxTagHistoryCountByCompanyId(companyId int, condition string) (count int, err error) {
-	sqlCount := ` SELECT COUNT(1) AS count  FROM (SELECT b.* FROM cygx_tag_history as a 
-	INNER JOIN cygx_tag AS b ON a.tag_id = b.tag_id  `
+	sqlCount := ` SELECT COUNT(1) AS count  FROM (SELECT b.* FROM cygx_tag_history as r 
+	INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id  `
 	if condition != "" {
 		sqlCount += condition
 	}
-	sqlCount += ` WHERE a.company_id=? ) AS t `
+	sqlCount += ` WHERE r.company_id=? ) AS t `
 	o := orm.NewOrmUsingDB("hz_cygx")
 	err = o.Raw(sqlCount, companyId).QueryRow(&count)
 	return
 }
 
+// 获取数量
+func GetCygxTagHistoryCountByCompanyIdWeekly(companyId int, condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM (SELECT b.* FROM cygx_tag_history as r 
+	INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id
+	INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+`
+	if condition != "" {
+		sqlCount += condition
+	}
+	sqlCount += ` WHERE r.company_id=? ) AS t `
+
+	err = o.Raw(sqlCount, companyId).QueryRow(&count)
+	return
+}
+
 // 获取数量
 func GetCygxTagHistoryByCompanyId(companyId, startSize, pageSize int, condition string) (list []*UserInteraction, err error) {
-	sqlCount := ` SELECT a.real_name,a.mobile, a.create_time AS create_time,
+	sqlCount := ` SELECT r.real_name,r.mobile, r.create_time AS create_time,
 b.tag_id,b.tag_name,b.article_types,b.activity_types,b.industries,b.subject_names   
-FROM cygx_tag_history as a 
-	INNER JOIN cygx_tag AS b ON a.tag_id = b.tag_id `
+FROM cygx_tag_history as r 
+	INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id `
 	if condition != "" {
 		sqlCount += condition
 	}
 	sqlCount += ` 
-	WHERE a.company_id=? ORDER BY  create_time DESC LIMIT ?,? `
+	WHERE r.company_id=? ORDER BY  create_time DESC LIMIT ?,? `
 	o := orm.NewOrmUsingDB("hz_cygx")
 	_, err = o.Raw(sqlCount, companyId, startSize, pageSize).QueryRows(&list)
 	return
 }
 
+// 获取数量
+func GetCygxTagHistoryByCompanyIdWeekly(companyId, startSize, pageSize int, condition string) (list []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT r.real_name,a.mobile, r.create_time AS create_time,
+			b.tag_id,b.tag_name,b.article_types,b.activity_types,b.industries,b.subject_names   
+			FROM cygx_tag_history as r
+				INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id 
+			INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 `
+	if condition != "" {
+		sqlCount += condition
+	}
+	sqlCount += ` 
+	WHERE r.company_id=? ORDER BY  create_time DESC LIMIT ?,? `
+
+	_, err = o.Raw(sqlCount, companyId, startSize, pageSize).QueryRows(&list)
+	return
+}
+
 // 获取数量
 func GetCygxTagHistoryCountByCompanyIds(companyIds, condition string) (count int, err error) {
 	sqlCount := ` SELECT a.real_name,a.mobile,b.*,ci.tag_num,ui.tag_num AS ui_tag_num,a.company_name  FROM cygx_tag_history as a  
@@ -161,3 +199,66 @@ func GetCygxTagHistoryCountByCompanyIdCondition(condition string) (count int, er
 	err = o.Raw(sql).QueryRow(&count)
 	return
 }
+
+// 获取列表
+func GetCygxTagHistoryListBycondition(condition string, startSize, pageSize int) (list []*UserInteraction, err error) {
+	sql := ` SELECT r.real_name,r.mobile,r.company_name, r.create_time AS create_time,
+				b.tag_id,b.tag_name,b.article_types,b.activity_types,b.industries,b.subject_names
+				FROM cygx_tag_history as r 
+				INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id
+				WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += `  ORDER BY  create_time DESC LIMIT ?,? `
+	o := orm.NewOrmUsingDB("hz_cygx")
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
+	return
+}
+
+// 获取列表
+func GetCygxTagHistoryListByconditionWeekly(condition string, startSize, pageSize int) (list []*UserInteraction, err error) {
+	databaseName := utils.GetWeeklyDatabase()
+	sql := ` SELECT r.real_name,r.mobile,r.company_name, r.create_time AS create_time,
+				b.tag_id,b.tag_name,b.article_types,b.activity_types,b.industries,b.subject_names
+				FROM cygx_tag_history as r 
+				INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id
+				INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+				WHERE 1=1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	sql += `  ORDER BY  create_time DESC LIMIT ?,? `
+	o := orm.NewOrmUsingDB("hz_cygx")
+	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
+	return
+}
+
+// 获取数量
+func GetCygxTagHistoryCount(condition string) (count int, err error) {
+	sql := ` SELECT COUNT(1) AS count  FROM cygx_tag_history as r 
+			INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id  WHERE 1 = 1 `
+	if condition != "" {
+		sql += condition
+	}
+	o := orm.NewOrmUsingDB("hz_cygx")
+	err = o.Raw(sql).QueryRow(&count)
+	return
+}
+
+// 获取数量
+func GetCygxTagHistoryCountWeekly(condition string) (count int, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sql := ` SELECT COUNT(1) AS count  FROM cygx_tag_history as r 
+				INNER JOIN cygx_tag AS b ON r.tag_id = b.tag_id
+				INNER JOIN %s.user_seller_relation AS us ON us.user_id = r.user_id   AND us.product_id = 2 
+		WHERE 1 = 1 `
+	sql = fmt.Sprintf(sql, databaseName)
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql).QueryRow(&count)
+	return
+}

+ 23 - 0
services/cygx/admin_power.go

@@ -33,6 +33,29 @@ func GetAdminLookUserMobile(adminInfo *system.Admin) (mapMobile map[string]strin
 	return
 }
 
+// 获取这个销售所能查看的手机号权限
+func GetAdminLookUserUserId(adminInfo *system.Admin) (userIds []int, err error) {
+	var conditionMobile string
+	if adminInfo.RoleTypeCode == "rai_group" {
+		//组长查看本组所有组员
+		conditionMobile = ` SELECT user_id FROM user_seller_relation WHERE seller_id IN (SELECT  admin_id FROM admin WHERE group_id = (SELECT group_id FROM admin WHERE admin_id = ` + strconv.Itoa(adminInfo.AdminId) + ` )) `
+	} else {
+		//组员查看自己
+		conditionMobile = ` SELECT user_id FROM user_seller_relation WHERE seller_id  = ` + strconv.Itoa(adminInfo.AdminId)
+	}
+	conditionMobile += " LIMIT 10"
+	userList, e := cygx.GetSellerUserMobile(conditionMobile)
+	if e != nil {
+		err = errors.New("GetSellerUserMobile 获取这个销售所能查看的手机号权限失败, Err: " + e.Error())
+		return
+	}
+	userIds = make([]int, 0)
+	for _, v := range userList {
+		userIds = append(userIds, v.UserId)
+	}
+	return
+}
+
 // 获取这个销售所能查看的手机号权限
 func GetAdminLookUserCompanyIds(sysUser *system.Admin) (companyIds []int, err error) {
 	//如果不是管理员,权益管理员那么就对可见权限范围做处理

Some files were not shown because too many files changed in this diff