Преглед на файлове

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

xingzai преди 1 година
родител
ревизия
5d538b1132
променени са 4 файла, в които са добавени 569 реда и са изтрити 97 реда
  1. 203 83
      controllers/cygx/user.go
  2. 15 7
      models/cygx/chart.go
  3. 314 7
      models/cygx/cygx_user_company.go
  4. 37 0
      models/cygx/tag_history.go

+ 203 - 83
controllers/cygx/user.go

@@ -2193,18 +2193,34 @@ func (this *UserController) CompanyTableDetail() {
 			}
 		}
 	} else if source == 3 {
-		total, err = cygx.GetCygxArticleCollectCountByCompany(condition)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
-			return
-		}
-		list, err = cygx.GetCygxArticleCollectByCompany(startSize, pageSize, condition)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxArticleCollectCountByCompany(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxArticleCollectByCompany(startSize, pageSize, condition)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxArticleCollectCountByCompanyWeekly(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户收藏记录总数失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxArticleCollectByCompanyWeekly(startSize, pageSize, condition)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户搜藏记录失败,Err:" + err.Error()
+				return
+			}
 		}
+
 		if len(list) > 0 {
 			for k, v := range list {
 				if v.ArticleId >= utils.SummaryArticleId {
@@ -2215,12 +2231,22 @@ func (this *UserController) CompanyTableDetail() {
 			}
 		}
 	} else if source == 4 {
-		list, err = cygx.GetChartCollectList(condition)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			return
+		if isAdminRole {
+			list, err = cygx.GetChartCollectList(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				return
+			}
+		} else {
+			list, err = cygx.GetChartCollectListWeekly(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				return
+			}
 		}
+
 		if len(list) > 0 {
 			for k, v := range list {
 				var err error
@@ -2260,31 +2286,65 @@ func (this *UserController) CompanyTableDetail() {
 		}
 
 	} else if source == 5 {
-
-		total, err = cygx.GetCygxIndustryFllowCountByCompany(condition)
-		if err != nil {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取用户关注总数失败"
-			return
-		}
-		list, err = cygx.GetCygxIndustryFllowByCompany(condition, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取用户关注总数失败"
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxIndustryFllowCountByCompany(condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取用户关注总数失败"
+				return
+			}
+			list, err = cygx.GetCygxIndustryFllowByCompany(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取用户关注总数失败"
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxIndustryFllowCountByCompanyWeekly(condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取用户关注总数失败"
+				return
+			}
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取用户关注总数失败"
+				return
+			}
+			list, err = cygx.GetCygxIndustryFllowByCompanyWeekly(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取用户关注总数失败"
+				return
+			}
 		}
 	} else if source == 6 {
-		total, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
-		if err != nil {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取关注作者总数失败"
-			return
-		}
-		list, err = cygx.GetCygArticleDepartmentFollowByCompany(condition, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取关注作者列表失败"
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygArticleDepartmentFollowCountByCompany(condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取关注作者总数失败"
+				return
+			}
+			list, err = cygx.GetCygArticleDepartmentFollowByCompany(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取关注作者列表失败"
+				return
+			}
+		} else {
+			total, err = cygx.GetCygArticleDepartmentFollowCountByCompanyWeekly(condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取关注作者总数失败"
+				return
+			}
+			list, err = cygx.GetCygArticleDepartmentFollowByCompanyWeekly(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取关注作者列表失败"
+				return
+			}
 		}
 		if len(list) > 0 {
 			var departmentIds []int
@@ -2297,43 +2357,88 @@ func (this *UserController) CompanyTableDetail() {
 			}
 		}
 	} else if source == 7 {
-		total, err = cygx.GetCygxSearchKeyWordCountBuCompany(condition)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
-			return
-		}
-		list, err = cygx.GetCygxSearchKeyWordByCompany(condition, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxSearchKeyWordCountBuCompany(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxSearchKeyWordByCompany(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxSearchKeyWordCountBuCompanyWeekly(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxSearchKeyWordByCompanyWeekly(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
 		}
 	} else if source == 8 {
-		total, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
-			return
-		}
-		list, err = cygx.CygxActivitySpecialTripByCompany(condition, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxActivitySpecialTripCountByCompany(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.CygxActivitySpecialTripByCompany(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxActivitySpecialTripCountByCompanyWeekly(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.CygxActivitySpecialTripByCompanyWeekly(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
 		}
 	} else if source == 9 {
-		total, err = cygx.GetCygxRoadshowCountByCompany(condition)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
-			return
-		}
-		list, err = cygx.GetCygxRoadshowByCompany(condition, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxRoadshowCountByCompany(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxRoadshowByCompany(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxRoadshowCountByCompanyWeekly(condition)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录失败,Err:" + err.Error()
+				return
+			}
+			list, err = cygx.GetCygxRoadshowByCompanyWeekly(condition, startSize, pageSize)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取搜索记录列表失败,Err:" + err.Error()
+				return
+			}
 		}
 	} else if source == 10 { //标签点击记录
 		condition = ``
@@ -2341,17 +2446,32 @@ func (this *UserController) CompanyTableDetail() {
 		if keyWord != "" {
 			condition += ` AND  (a.mobile LIKE '%` + keyWord + `%' OR a.email LIKE '%` + keyWord + `%' OR a.real_name LIKE '%` + keyWord + `%'` + ` OR a.company_name LIKE '%` + keyWord + `%') `
 		}
-		total, err = cygx.GetCygxTagHistoryCountByCompanyId(companyId, condition)
-		if err != nil {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取搜索记录失败"
-			return
-		}
-		list, err = cygx.GetCygxTagHistoryByCompanyId(companyId, startSize, pageSize, condition)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			br.Msg = "获取搜索记录列表失败"
-			return
+		if isAdminRole {
+			total, err = cygx.GetCygxTagHistoryCountByCompanyId(companyId, condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取搜索记录失败"
+				return
+			}
+			list, err = cygx.GetCygxTagHistoryByCompanyId(companyId, startSize, pageSize, condition)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取搜索记录列表失败"
+				return
+			}
+		} else {
+			total, err = cygx.GetCygxTagHistoryCountByCompanyIdWeekly(companyId, condition)
+			if err != nil {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取搜索记录失败"
+				return
+			}
+			list, err = cygx.GetCygxTagHistoryByCompanyIdWeekly(companyId, startSize, pageSize, condition)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.ErrMsg = "获取信息失败,Err:" + err.Error()
+				br.Msg = "获取搜索记录列表失败"
+				return
+			}
 		}
 	}
 

+ 15 - 7
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"
 )
@@ -268,13 +270,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,6 +277,19 @@ 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")

+ 314 - 7
models/cygx/cygx_user_company.go

@@ -166,7 +166,7 @@ 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()
@@ -212,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")
@@ -258,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")
@@ -267,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")
@@ -284,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")
@@ -293,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")
@@ -303,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")
@@ -329,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")
@@ -345,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")
@@ -360,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")
@@ -382,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")
@@ -411,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")
@@ -452,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")

+ 37 - 0
models/cygx/tag_history.go

@@ -2,6 +2,7 @@ package cygx
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"time"
 )
 
@@ -94,6 +95,23 @@ func GetCygxTagHistoryCountByCompanyId(companyId int, condition string) (count i
 	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 a 
+	INNER JOIN cygx_tag AS b ON a.tag_id = b.tag_id
+	INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = a.user_id   AND us.product_id = 2 
+`
+	if condition != "" {
+		sqlCount += condition
+	}
+	sqlCount += ` WHERE a.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,
@@ -110,6 +128,25 @@ FROM cygx_tag_history as a
 	return
 }
 
+// 获取数量
+func GetCygxTagHistoryByCompanyIdWeekly(companyId, startSize, pageSize int, condition string) (list []*UserInteraction, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	databaseName := utils.GetWeeklyDatabase()
+	sqlCount := ` SELECT a.real_name,a.mobile, a.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 
+			INNER JOIN ` + databaseName + `.user_seller_relation AS us ON us.user_id = a.user_id   AND us.product_id = 2 `
+	if condition != "" {
+		sqlCount += condition
+	}
+	sqlCount += ` 
+	WHERE a.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