Browse Source

问答社区、价格驱动、视频社区标签相关修改

hsun 2 years ago
parent
commit
37b1a1981d

+ 4 - 4
controller/community/question.go

@@ -25,7 +25,7 @@ import (
 // @Param page_index			query int false "页码"
 // @Param page_size				query int false "每页数量"
 // @Param only_mine				query int false "只看我的"
-// @Param chart_permission_id	query int false "品种权限ID"
+// @Param variety_tag_id		query int false "标签ID"
 // @Param reply_status			query int false "回复状态 0-全部 2-待回答 3-已回答"
 // @Success 200 {object} []respond.CommunityQuestionItem
 // @failure 400 {string} string "获取失败"
@@ -43,7 +43,7 @@ func QuestionList(c *gin.Context) {
 		req.PageSize = utils.PageSize20
 	}
 	userinfo := user.GetInfoByClaims(c)
-	list, err := community.GetQuestionList(req.PageIndex, req.PageSize, req.OnlyMine, req.ChartPermissionId, req.ReplyStatus, req.GroupId, userinfo)
+	list, err := community.GetQuestionList(req.PageIndex, req.PageSize, req.OnlyMine, req.VarietyTagId, req.ReplyStatus, req.GroupId, userinfo)
 	if err != nil {
 		response.FailMsg("获取失败", "QuestionList ErrMsg:"+err.Error(), c)
 		return
@@ -285,7 +285,7 @@ func QuestionUnread(c *gin.Context) {
 // @Success 200 {int} int "获取成功"
 // @failure 400 {string} string "获取失败"
 // @Router /question/research_group [get]
-func ResearchGroupList(c *gin.Context)  {
+func ResearchGroupList(c *gin.Context) {
 	list, err := community.GetResearchGroupTree()
 	if err != nil {
 		fmt.Println(err.Error())
@@ -323,4 +323,4 @@ func AddAudioLog(c *gin.Context) {
 		return
 	}
 	response.Ok("操作成功", c)
-}
+}

+ 2 - 2
controller/community/video.go

@@ -16,7 +16,7 @@ import (
 // @Param page_size				query int false "每页数量"
 // @Param keywords				query string false "只看我的"
 // @Param video_id				query int false "视频ID"
-// @Param chart_permission_id	query int false "品种权限ID"
+// @Param variety_tag_id		query int false "标签ID"
 // @Success 200 {object}
 // @failure 400 {string} string "获取失败"
 // @Router /video/list [get]
@@ -32,7 +32,7 @@ func VideoList(c *gin.Context) {
 	if req.PageSize == 0 {
 		req.PageSize = utils.PageSize20
 	}
-	list, err := community.GetVideoList(req.PageIndex, req.PageSize, req.VideoId, req.ChartPermissionId, req.Keywords)
+	list, err := community.GetVideoList(req.PageIndex, req.PageSize, req.VideoId, req.VarietyTagId, req.Keywords)
 	if err != nil {
 		response.FailMsg("获取失败", "VideoList ErrMsg:"+err.Error(), c)
 		return

+ 3 - 3
controller/price_driven/price_driven.go

@@ -11,7 +11,7 @@ import (
 // PriceDrivenDetail 价格驱动详情
 // @Tags 价格驱动模块
 // @Description 获取价格驱动详情
-// @Param chart_permission_id  query  int  true  "品种ID"
+// @Param variety_tag_id  query  int  true  "标签ID"
 // @Success 200 {object} response.PriceDrivenItem
 // @failure 400 {string} string "获取失败"
 // @Router /price_driven/detail [get]
@@ -21,11 +21,11 @@ func PriceDrivenDetail(c *gin.Context) {
 		response.Fail("参数有误", c)
 		return
 	}
-	if req.ChartPermissionId <= 0 {
+	if req.VarietyTagId <= 0 {
 		response.Fail("参数有误", c)
 		return
 	}
-	item, errMsg, err := price_driven.GetPriceDrivenDetail(req.ChartPermissionId)
+	item, errMsg, err := price_driven.GetPriceDrivenDetail(req.VarietyTagId)
 	if err != nil {
 		response.FailMsg(errMsg, "GetPriceDrivenDetail ErrMsg:"+err.Error(), c)
 		return

+ 19 - 0
controller/public.go

@@ -140,3 +140,22 @@ func GetSuncodeScene(c *gin.Context) {
 	}
 	response.OkData("获取成功", scene, c)
 }
+
+// GetVarietyTagTree 标签树
+// @Tags 公共模块
+// @Summary  标签树
+// @Description 标签树
+// @Security ApiKeyAuth
+// @Param Authorization	header string true "Bearer 31a165baebe6dec616b1f8f3207b4273"
+// @Param scene_key query string true "scene_key值"
+// @Success 200 {string} string "获取成功"
+// @failure 400 {string} string "获取失败"
+// @Router /public/get_variety_tag_tree [get]
+func GetVarietyTagTree(c *gin.Context) {
+	list, err := services.GetTagTree()
+	if err != nil {
+		response.FailMsg("获取标签树失败", "获取标签树失败, Err: "+err.Error(), c)
+		return
+	}
+	response.OkData("获取成功", list, c)
+}

+ 12 - 12
models/request/community.go

@@ -1,12 +1,12 @@
 package request
 
 type QuestionListReq struct {
-	PageIndex         int `json:"page_index" form:"page_index"`
-	PageSize          int `json:"page_size" form:"page_size"`
-	OnlyMine          int `json:"only_mine" form:"only_mine"`
-	ChartPermissionId int `json:"chart_permission_id" form:"chart_permission_id"`
-	ReplyStatus       int `json:"reply_status" form:"reply_status"`
-	GroupId           int `json:"group_id" form:"group_id"`
+	PageIndex    int `json:"page_index" form:"page_index"`
+	PageSize     int `json:"page_size" form:"page_size"`
+	OnlyMine     int `json:"only_mine" form:"only_mine"`
+	VarietyTagId int `json:"variety_tag_id" form:"variety_tag_id"`
+	ReplyStatus  int `json:"reply_status" form:"reply_status"`
+	GroupId      int `json:"group_id" form:"group_id"`
 }
 
 type QuestionDetailReq struct {
@@ -43,14 +43,14 @@ type CommunityAudioListenLogReq struct {
 }
 
 type VideoListReq struct {
-	PageIndex         int    `json:"page_index" form:"page_index"`
-	PageSize          int    `json:"page_size" form:"page_size"`
-	Keywords          string `json:"keywords" form:"keywords"`
-	VideoId           int    `json:"video_id" form:"video_id"`
-	ChartPermissionId int    `json:"chart_permission_id" form:"chart_permission_id"`
+	PageIndex    int    `json:"page_index" form:"page_index"`
+	PageSize     int    `json:"page_size" form:"page_size"`
+	Keywords     string `json:"keywords" form:"keywords"`
+	VideoId      int    `json:"video_id" form:"video_id"`
+	VarietyTagId int    `json:"variety_tag_id" form:"variety_tag_id"`
 }
 
 type VideoPlayLogReq struct {
 	VideoId     int `json:"video_id" description:"视频ID"`
 	SourceAgent int `json:"source_agent" description:"来源:1-小程序 2-小程序PC 3-公众号 4-Web官网"`
-}
+}

+ 3 - 2
models/request/price_driven.go

@@ -1,10 +1,11 @@
 package request
 
 type PriceDrivenDetailReq struct {
-	ChartPermissionId int `json:"chart_permission_id" form:"chart_permission_id"`
+	//ChartPermissionId int `json:"chart_permission_id" form:"chart_permission_id"`
+	VarietyTagId int `json:"variety_tag_id" form:"variety_tag_id"`
 }
 
 type PriceDrivenVisitReq struct {
 	PriceDrivenId int `json:"price_driven_id" description:"价格驱动ID"`
 	SourceAgent   int `json:"source_agent" description:"来源:1-小程序 2-小程序PC 3-公众号 4-Web官网"`
-}
+}

+ 14 - 14
models/response/community.go

@@ -7,8 +7,8 @@ type CommunityQuestionItem struct {
 	ReplierRealName         string `json:"replier_real_name"`
 	ReplierRank             string `json:"replier_rank"`
 	ReplierAvatar           string `json:"replier_avatar"`
-	ChartPermissionID       int    `json:"chart_permission_id"`
-	ChartPermissionName     string `json:"chart_permission_name"`
+	VarietyTagId            int    `json:"variety_tag_id"`
+	VarietyTagName          string `json:"variety_tag_name"`
 	ResearchGroupSecondId   int    `json:"research_group_second_id"`
 	ResearchGroupSecondName string `json:"research_group_second_name"`
 	IsRead                  int    `json:"is_read"`
@@ -62,15 +62,15 @@ type ResearchGroupMember struct {
 
 // CommunityVideoItem 视频社区
 type CommunityVideoItem struct {
-	CommunityVideoID    int    `json:"community_video_id"`
-	Title               string `json:"title"`
-	ChartPermissionID   int    `json:"chart_permission_id"`
-	ChartPermissionName string `json:"chart_permission_name"`
-	CoverImgUrl         string `json:"cover_img_url"`
-	VideoUrl            string `json:"video_url"`
-	VideoSeconds        string `json:"video_seconds"`
-	PublishState        int    `json:"publish_state"`
-	PublishTime         string `json:"publish_time"`
-	CreateTime          string `json:"create_time"`
-	ModifyTime          string `json:"modify_time"`
-}
+	CommunityVideoID int    `json:"community_video_id"`
+	Title            string `json:"title"`
+	VarietyTagId     int    `json:"variety_tag_id"`
+	VarietyTagName   string `json:"variety_tag_name"`
+	CoverImgUrl      string `json:"cover_img_url"`
+	VideoUrl         string `json:"video_url"`
+	VideoSeconds     string `json:"video_seconds"`
+	PublishState     int    `json:"publish_state"`
+	PublishTime      string `json:"publish_time"`
+	CreateTime       string `json:"create_time"`
+	ModifyTime       string `json:"modify_time"`
+}

+ 1 - 1
models/response/price_driven.go

@@ -3,7 +3,7 @@ package response
 // PriceDrivenItem 价格驱动详情
 type PriceDrivenItem struct {
 	PriceDrivenID     int    `json:"price_driven_id" description:"价格驱动ID"`
-	ChartPermissionID int    `json:"chart_permission_id" description:"品种ID"`
+	VarietyTagID      int    `json:"variety_tag_id" description:"标签ID"`
 	MainVariable      string `json:"main_variable" description:"关键变量"`
 	CoreDrivenType    int    `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
 	CoreDrivenContent string `json:"core_driven_content" description:"核心驱动内容"`

+ 35 - 0
models/tables/variety_classify/entity.go

@@ -0,0 +1,35 @@
+package variety_classify
+
+import "time"
+
+// VarietyClassify 标签库分类表
+type VarietyClassify struct {
+	VarietyClassifyID int       `gorm:"primaryKey;column:variety_classify_id;type:int(10) unsigned;not null" json:"-"`  // 品种分类ID
+	ClassifyName      string    `gorm:"column:classify_name;type:varchar(100);not null;default:''" json:"classifyName"` // 品种分类名称
+	Sort              int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0" json:"sort"`               // 排序
+	State             int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:1" json:"state"`          // 状态:0-禁用 1-开启
+	CreateTime        time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`
+	ModifyTime        time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`
+}
+
+// TableName get sql table name.获取数据库表名
+func (m *VarietyClassify) TableName() string {
+	return "variety_classify"
+}
+
+// VarietyClassifyColumns get sql column name.获取数据库列名
+var VarietyClassifyColumns = struct {
+	VarietyClassifyID string
+	ClassifyName      string
+	Sort              string
+	State             string
+	CreateTime        string
+	ModifyTime        string
+}{
+	VarietyClassifyID: "variety_classify_id",
+	ClassifyName:      "classify_name",
+	Sort:              "sort",
+	State:             "state",
+	CreateTime:        "create_time",
+	ModifyTime:        "modify_time",
+}

+ 11 - 0
models/tables/variety_classify/model.go

@@ -0,0 +1,11 @@
+package variety_classify
+
+import "hongze/hongze_yb/global"
+
+func GetVarietyClassifyList() (list []*VarietyClassify, err error) {
+	err = global.DEFAULT_MYSQL.Model(VarietyClassify{}).
+		Where("state = 1").
+		Order("sort ASC").
+		Scan(&list).Error
+	return
+}

+ 50 - 0
models/tables/variety_tag/entity.go

@@ -0,0 +1,50 @@
+package variety_tag
+
+import "time"
+
+// VarietyTag 品种标签库
+type VarietyTag struct {
+	VarietyTagID                int       `gorm:"primaryKey;column:variety_tag_id;type:int(10) unsigned;not null" json:"-"`                                                   // 品种标签ID
+	VarietyClassifyID           int       `gorm:"index:idx_variety_classify_id;column:variety_classify_id;type:int(10) unsigned;not null;default:0" json:"varietyClassifyId"` // 分类ID
+	VarietyClassifyName         string    `gorm:"column:variety_classify_name;type:varchar(100);not null;default:''" json:"varietyClassifyName"`                              // 品种分类名称
+	TagName                     string    `gorm:"column:tag_name;type:varchar(100);not null;default:''" json:"tagName"`                                                       // 标签名
+	ChartPermissionClassifyName string    `gorm:"column:chart_permission_classify_name;type:varchar(100);not null;default:''" json:"chartPermissionClassifyName"`             // 品种权限分类名
+	ChartPermissionID           int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"chartPermissionId"` // 品种权限ID
+	ChartPermissionName         string    `gorm:"column:chart_permission_name;type:varchar(100);not null;default:''" json:"chartPermissionName"`                              // 品种权限名称
+	Sort                        int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0" json:"sort"`                                                           // 排序
+	State                       int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:1" json:"state"`                                                      // 状态:0-禁用 1-启用
+	CreateTime                  time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`
+	ModifyTime                  time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`
+}
+
+// TableName get sql table name.获取数据库表名
+func (m *VarietyTag) TableName() string {
+	return "variety_tag"
+}
+
+// VarietyTagColumns get sql column name.获取数据库列名
+var VarietyTagColumns = struct {
+	VarietyTagID                string
+	VarietyClassifyID           string
+	VarietyClassifyName         string
+	TagName                     string
+	ChartPermissionClassifyName string
+	ChartPermissionID           string
+	ChartPermissionName         string
+	Sort                        string
+	State                       string
+	CreateTime                  string
+	ModifyTime                  string
+}{
+	VarietyTagID:                "variety_tag_id",
+	VarietyClassifyID:           "variety_classify_id",
+	VarietyClassifyName:         "variety_classify_name",
+	TagName:                     "tag_name",
+	ChartPermissionClassifyName: "chart_permission_classify_name",
+	ChartPermissionID:           "chart_permission_id",
+	ChartPermissionName:         "chart_permission_name",
+	Sort:                        "sort",
+	State:                       "state",
+	CreateTime:                  "create_time",
+	ModifyTime:                  "modify_time",
+}

+ 11 - 0
models/tables/variety_tag/model.go

@@ -0,0 +1,11 @@
+package variety_tag
+
+import "hongze/hongze_yb/global"
+
+func GetVarietyTagList() (list []*VarietyTag, err error) {
+	err = global.DEFAULT_MYSQL.Model(VarietyTag{}).
+		Where("state = 1").
+		Order("sort ASC").
+		Scan(&list).Error
+	return
+}

+ 31 - 31
models/tables/yb_community_question/entity.go

@@ -7,33 +7,33 @@ import (
 // YbCommunityQuestion 研报-问答社区表
 type YbCommunityQuestion struct {
 	CommunityQuestionID     int       `gorm:"primaryKey;column:community_question_id;type:int(10) unsigned;not null" json:"-"`
-	UserID                  int       `gorm:"index:idx_user_id;column:user_id;type:int(10) unsigned;not null;default:0" json:"userId"`                                    // 提问用户ID
-	UserOpenid              string    `gorm:"column:user_openid;type:varchar(32);not null;default:''" json:"userOpenid"`                                                  // 提问人openid
-	Mobile                  string    `gorm:"column:mobile;type:varchar(20);not null;default:''" json:"mobile"`                                                           // 用户手机号
-	RealName                string    `gorm:"column:real_name;type:varchar(100);not null;default:''" json:"realName"`                                                     // 用户名
-	QuestionContent         string    `gorm:"column:question_content;type:varchar(255);not null;default:''" json:"questionContent"`                                       // 问题描述
-	ReplierUserID           int       `gorm:"index:idx_replier_user_id;column:replier_user_id;type:int(10) unsigned;not null;default:0" json:"replierUserId"`             // 回复人的user_id
-	ReplierOpenid           string    `gorm:"column:replier_openid;type:varchar(32);not null;default:''" json:"replierOpenid"`                                            // 回复人openid
-	ReplierAdminID          int       `gorm:"column:replier_admin_id;type:int(10) unsigned;not null;default:0" json:"replierAdminId"`                                     // 回复人关联的admin_id
-	ReplierRealName         string    `gorm:"column:replier_real_name;type:varchar(30);not null;default:''" json:"replierRealName"`                                       // 回复人姓名
-	ReplierAvatar           string    `gorm:"column:replier_avatar;type:varchar(255);not null;default:''" json:"replierAvatar"`                                           // 回复人头像
-	ResearchGroupFirstID    int       `gorm:"column:research_group_first_id;type:int(10) unsigned;not null;default:0" json:"researchGroupFirstId"`                        // 回复人研究方向一级分组ID
-	ResearchGroupSecondID   int       `gorm:"column:research_group_second_id;type:int(10) unsigned;not null;default:0" json:"researchGroupSecondId"`                      // 回复人研究方向二级分组ID
-	ResearchGroupFirstName  string    `gorm:"column:research_group_first_name;type:varchar(100);not null;default:''" json:"researchGroupFirstName"`                       // 研究方向一级分组名称
-	ResearchGroupSecondName string    `gorm:"column:research_group_second_name;type:varchar(100);not null;default:''" json:"researchGroupSecondName"`                     // 研究方向二级分组名称
-	DistributeAdminID       int       `gorm:"column:distribute_admin_id;type:int(10) unsigned;not null;default:0" json:"distributeAdminId"`                               // 分配人admin_id
-	DistributeTime          time.Time `gorm:"column:distribute_time;type:datetime" json:"distributeTime"`                                                                 // 分配时间
-	ChartPermissionID       int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"chartPermissionId"` // 关联权限ID
-	ChartPermissionName     string    `gorm:"column:chart_permission_name;type:varchar(100);not null;default:''" json:"chartPermissionName"`                              // 关联权限name
-	IsRead                  int       `gorm:"column:is_read;type:tinyint(4) unsigned;not null;default:0" json:"isRead"`                                                   // 用户是否已读 0-未读 1-已读
-	ReplierIsRead           int       `gorm:"column:replier_is_read;type:tinyint(4) unsigned;not null;default:0" json:"replierIsRead"`                                    // 回复人是否已读 0-未读 1-已读
-	ReplyStatus             int       `gorm:"column:reply_status;type:tinyint(4) unsigned;not null;default:0" json:"replyStatus"`                                         // 回复状态 1-待分配 2-待回答 3-已回答
-	MsgSendStatus           int       `gorm:"column:msg_send_status;type:tinyint(4) unsigned;not null;default:0" json:"msgSendStatus"`                                    // 消息推送进度 0-待推送 1-已推送回答人 2-已推送提问人
-	ReplyTime               time.Time `gorm:"column:reply_time;type:datetime" json:"replyTime"`                                                                           // 回复时间
-	CreateTime              time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                               // 提问时间
-	ModifyTime              time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                               // 修改时间
-	IsDeleted               int       `gorm:"column:is_deleted;type:tinyint(4) unsigned;not null;default:0" json:"isDeleted"`                                             // 是否已删除 0-否 1-是
-	DeleteTime              time.Time `gorm:"column:delete_time;type:datetime" json:"deleteTime"`                                                                         // 删除时间
+	UserID                  int       `gorm:"index:idx_user_id;column:user_id;type:int(10) unsigned;not null;default:0" json:"userId"`                        // 提问用户ID
+	UserOpenid              string    `gorm:"column:user_openid;type:varchar(32);not null;default:''" json:"userOpenid"`                                      // 提问人openid
+	Mobile                  string    `gorm:"column:mobile;type:varchar(20);not null;default:''" json:"mobile"`                                               // 用户手机号
+	RealName                string    `gorm:"column:real_name;type:varchar(100);not null;default:''" json:"realName"`                                         // 用户名
+	QuestionContent         string    `gorm:"column:question_content;type:varchar(255);not null;default:''" json:"questionContent"`                           // 问题描述
+	ReplierUserID           int       `gorm:"index:idx_replier_user_id;column:replier_user_id;type:int(10) unsigned;not null;default:0" json:"replierUserId"` // 回复人的user_id
+	ReplierOpenid           string    `gorm:"column:replier_openid;type:varchar(32);not null;default:''" json:"replierOpenid"`                                // 回复人openid
+	ReplierAdminID          int       `gorm:"column:replier_admin_id;type:int(10) unsigned;not null;default:0" json:"replierAdminId"`                         // 回复人关联的admin_id
+	ReplierRealName         string    `gorm:"column:replier_real_name;type:varchar(30);not null;default:''" json:"replierRealName"`                           // 回复人姓名
+	ReplierAvatar           string    `gorm:"column:replier_avatar;type:varchar(255);not null;default:''" json:"replierAvatar"`                               // 回复人头像
+	ResearchGroupFirstID    int       `gorm:"column:research_group_first_id;type:int(10) unsigned;not null;default:0" json:"researchGroupFirstId"`            // 回复人研究方向一级分组ID
+	ResearchGroupSecondID   int       `gorm:"column:research_group_second_id;type:int(10) unsigned;not null;default:0" json:"researchGroupSecondId"`          // 回复人研究方向二级分组ID
+	ResearchGroupFirstName  string    `gorm:"column:research_group_first_name;type:varchar(100);not null;default:''" json:"researchGroupFirstName"`           // 研究方向一级分组名称
+	ResearchGroupSecondName string    `gorm:"column:research_group_second_name;type:varchar(100);not null;default:''" json:"researchGroupSecondName"`         // 研究方向二级分组名称
+	DistributeAdminID       int       `gorm:"column:distribute_admin_id;type:int(10) unsigned;not null;default:0" json:"distributeAdminId"`                   // 分配人admin_id
+	DistributeTime          time.Time `gorm:"column:distribute_time;type:datetime" json:"distributeTime"`                                                     // 分配时间
+	VarietyTagID            int       `gorm:"index:idx_variety_tag_id;column:variety_tag_id;type:int(10) unsigned;not null;default:0" json:"varietyTagId"`    // 标签ID
+	VarietyTagName          string    `gorm:"column:variety_tag_name;type:varchar(100);not null;default:''" json:"varietyTagName"`                            // 标签名称
+	IsRead                  int       `gorm:"column:is_read;type:tinyint(4) unsigned;not null;default:0" json:"isRead"`                                       // 用户是否已读 0-未读 1-已读
+	ReplierIsRead           int       `gorm:"column:replier_is_read;type:tinyint(4) unsigned;not null;default:0" json:"replierIsRead"`                        // 回复者是否已读  0-未读 1-已读
+	ReplyStatus             int       `gorm:"column:reply_status;type:tinyint(4) unsigned;not null;default:0" json:"replyStatus"`                             // 回复状态 1-待分配 2-待回答 3-已回答
+	MsgSendStatus           int       `gorm:"column:msg_send_status;type:tinyint(4) unsigned;not null;default:0" json:"msgSendStatus"`                        // 消息推送进度 0-待推送 1-已推送回答人 2-已推送提问人
+	ReplyTime               time.Time `gorm:"column:reply_time;type:datetime" json:"replyTime"`                                                               // 回复时间
+	CreateTime              time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                   // 提问时间
+	ModifyTime              time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                   // 修改时间
+	IsDeleted               int       `gorm:"column:is_deleted;type:tinyint(4) unsigned;not null;default:0" json:"isDeleted"`                                 // 是否已删除 0-否 1-是
+	DeleteTime              time.Time `gorm:"column:delete_time;type:datetime" json:"deleteTime"`                                                             // 删除时间
 }
 
 // TableName get sql table name.获取数据库表名
@@ -60,8 +60,8 @@ var YbCommunityQuestionColumns = struct {
 	ResearchGroupSecondName string
 	DistributeAdminID       string
 	DistributeTime          string
-	ChartPermissionID       string
-	ChartPermissionName     string
+	VarietyTagID            string
+	VarietyTagName          string
 	IsRead                  string
 	ReplierIsRead           string
 	ReplyStatus             string
@@ -89,8 +89,8 @@ var YbCommunityQuestionColumns = struct {
 	ResearchGroupSecondName: "research_group_second_name",
 	DistributeAdminID:       "distribute_admin_id",
 	DistributeTime:          "distribute_time",
-	ChartPermissionID:       "chart_permission_id",
-	ChartPermissionName:     "chart_permission_name",
+	VarietyTagID:            "variety_tag_id",
+	VarietyTagName:          "variety_tag_name",
 	IsRead:                  "is_read",
 	ReplierIsRead:           "replier_is_read",
 	ReplyStatus:             "reply_status",

+ 45 - 45
models/tables/yb_community_video/entity.go

@@ -4,21 +4,21 @@ import "time"
 
 // YbCommunityVideo 研报-视频社区表
 type YbCommunityVideo struct {
-	CommunityVideoID    int       `gorm:"primaryKey;column:community_video_id;type:int(10) unsigned;not null" json:"-"`
-	Title               string    `gorm:"column:title;type:varchar(255);not null;default:''" json:"title"`                                                            // 视频标题
-	ChartPermissionID   int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"chartPermissionId"` // 品种权限ID
-	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(30);not null;default:''" json:"chartPermissionName"`                               // 品种权限名称
-	CoverImgURL         string    `gorm:"column:cover_img_url;type:varchar(255);not null;default:''" json:"coverImgUrl"`                                              // 封面图地址
-	VideoURL            string    `gorm:"column:video_url;type:varchar(255);not null;default:''" json:"videoUrl"`                                                     // 视频地址
-	VideoSeconds        string    `gorm:"column:video_seconds;type:varchar(30);not null;default:''" json:"videoSeconds"`                                              // 视频时长
-	PublishState        int       `gorm:"column:publish_state;type:tinyint(4) unsigned;not null;default:0" json:"publishState"`                                       // 发布状态:0-未发布 1-已发布
-	SendThsState        int       `gorm:"column:send_ths_state;type:tinyint(4) unsigned;not null;default:0" json:"sendThsState"`                                      // 推送客群状态:0-未推送 1-已推送
-	IsDeleted           int       `gorm:"column:is_deleted;type:tinyint(4) unsigned;not null;default:0" json:"isDeleted"`                                             // 是否已删除:0-未删除 1-已删除
-	PublishTime         time.Time `gorm:"column:publish_time;type:datetime" json:"publishTime"`                                                                       // 发布时间
-	SendThsTime         time.Time `gorm:"column:send_ths_time;type:datetime" json:"sendThsTime"`                                                                      // 推送客群时间
-	CreateTime          time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                               // 创建时间
-	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                               // 更新时间
-	DeleteTime          time.Time `gorm:"column:delete_time;type:datetime" json:"deleteTime"`
+	CommunityVideoID int       `gorm:"primaryKey;column:community_video_id;type:int(10) unsigned;not null" json:"-"`
+	Title            string    `gorm:"column:title;type:varchar(255);not null;default:''" json:"title"`                                                       // 视频标题
+	VarietyTagId     int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"varietyTagId"` // 品种权限ID
+	VarietyTagName   string    `gorm:"column:chart_permission_name;type:varchar(30);not null;default:''" json:"varietyTagName"`                               // 品种权限名称
+	CoverImgURL      string    `gorm:"column:cover_img_url;type:varchar(255);not null;default:''" json:"coverImgUrl"`                                         // 封面图地址
+	VideoURL         string    `gorm:"column:video_url;type:varchar(255);not null;default:''" json:"videoUrl"`                                                // 视频地址
+	VideoSeconds     string    `gorm:"column:video_seconds;type:varchar(30);not null;default:''" json:"videoSeconds"`                                         // 视频时长
+	PublishState     int       `gorm:"column:publish_state;type:tinyint(4) unsigned;not null;default:0" json:"publishState"`                                  // 发布状态:0-未发布 1-已发布
+	SendThsState     int       `gorm:"column:send_ths_state;type:tinyint(4) unsigned;not null;default:0" json:"sendThsState"`                                 // 推送客群状态:0-未推送 1-已推送
+	IsDeleted        int       `gorm:"column:is_deleted;type:tinyint(4) unsigned;not null;default:0" json:"isDeleted"`                                        // 是否已删除:0-未删除 1-已删除
+	PublishTime      time.Time `gorm:"column:publish_time;type:datetime" json:"publishTime"`                                                                  // 发布时间
+	SendThsTime      time.Time `gorm:"column:send_ths_time;type:datetime" json:"sendThsTime"`                                                                 // 推送客群时间
+	CreateTime       time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                          // 创建时间
+	ModifyTime       time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                          // 更新时间
+	DeleteTime       time.Time `gorm:"column:delete_time;type:datetime" json:"deleteTime"`
 }
 
 // TableName get sql table name.获取数据库表名
@@ -28,35 +28,35 @@ func (m *YbCommunityVideo) TableName() string {
 
 // YbCommunityVideoColumns get sql column name.获取数据库列名
 var YbCommunityVideoColumns = struct {
-	CommunityVideoID    string
-	Title               string
-	ChartPermissionID   string
-	ChartPermissionName string
-	CoverImgURL         string
-	VideoURL            string
-	VideoSeconds        string
-	PublishState        string
-	SendThsState        string
-	IsDeleted           string
-	PublishTime         string
-	SendThsTime         string
-	CreateTime          string
-	ModifyTime          string
-	DeleteTime          string
+	CommunityVideoID string
+	Title            string
+	varietyTagId     string
+	varietyTagName   string
+	CoverImgURL      string
+	VideoURL         string
+	VideoSeconds     string
+	PublishState     string
+	SendThsState     string
+	IsDeleted        string
+	PublishTime      string
+	SendThsTime      string
+	CreateTime       string
+	ModifyTime       string
+	DeleteTime       string
 }{
-	CommunityVideoID:    "community_video_id",
-	Title:               "title",
-	ChartPermissionID:   "chart_permission_id",
-	ChartPermissionName: "chart_permission_name",
-	CoverImgURL:         "cover_img_url",
-	VideoURL:            "video_url",
-	VideoSeconds:        "video_seconds",
-	PublishState:        "publish_state",
-	SendThsState:        "send_ths_state",
-	IsDeleted:           "is_deleted",
-	PublishTime:         "publish_time",
-	SendThsTime:         "send_ths_time",
-	CreateTime:          "create_time",
-	ModifyTime:          "modify_time",
-	DeleteTime:          "delete_time",
+	CommunityVideoID: "community_video_id",
+	Title:            "title",
+	varietyTagId:     "variety_tag_id",
+	varietyTagName:   "variety_tag_name",
+	CoverImgURL:      "cover_img_url",
+	VideoURL:         "video_url",
+	VideoSeconds:     "video_seconds",
+	PublishState:     "publish_state",
+	SendThsState:     "send_ths_state",
+	IsDeleted:        "is_deleted",
+	PublishTime:      "publish_time",
+	SendThsTime:      "send_ths_time",
+	CreateTime:       "create_time",
+	ModifyTime:       "modify_time",
+	DeleteTime:       "delete_time",
 }

+ 29 - 17
models/tables/yb_price_driven/entity.go

@@ -7,17 +7,21 @@ import (
 // YbPriceDriven 研报-价格驱动表
 type YbPriceDriven struct {
 	PriceDrivenID       int       `gorm:"primaryKey;column:price_driven_id;type:int(10) unsigned;not null" json:"-"`
-	ChartPermissionID   int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"chartPermissionId"` // 品种权限ID
-	MainVariable        string    `gorm:"column:main_variable;type:varchar(255);not null;default:''" json:"mainVariable"`                                             // 关键变量
-	CoreDrivenType      int       `gorm:"column:core_driven_type;type:tinyint(4) unsigned;not null;default:0" json:"coreDrivenType"`                                  // 核心驱动类型 0-多 1-空
-	CoreDrivenContent   string    `gorm:"column:core_driven_content;type:varchar(255);not null;default:''" json:"coreDrivenContent"`                                  // 核心驱动内容
-	CoreContent         string    `gorm:"column:core_content;type:longtext" json:"coreContent"`                                                                       // 核心内容
-	LastUpdateAdminID   int       `gorm:"column:last_update_admin_id;type:int(10) unsigned;not null;default:0" json:"lastUpdateAdminId"`                              // 最后一次更新人ID
-	LastUpdateAdminName string    `gorm:"column:last_update_admin_name;type:varchar(30);not null;default:''" json:"lastUpdateAdminName"`                              // 最后一次更新人姓名
-	LastThsMsgTime      time.Time `gorm:"column:last_ths_msg_time;type:datetime" json:"lastThsMsgTime"`                                                               // 最后一次推送客群消息的时间
-	LastTemplateMsgTime time.Time `gorm:"column:last_template_msg_time;type:datetime" json:"lastTemplateMsgTime"`                                                     // 最后一次推送模板消息的时间
-	CreateTime          time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                               // 创建时间
-	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                               // 修改时间
+	VarietyTagID        int       `gorm:"index:idx_variety_tag_id;column:variety_tag_id;type:int(10) unsigned;not null;default:0" json:"varietyTagId"` // 标签ID
+	VarietyTagName      string    `gorm:"column:variety_tag_name;type:varchar(10);not null;default:''" json:"varietyTagName"`                          // 标签名称
+	MainVariable        string    `gorm:"column:main_variable;type:varchar(255);not null;default:''" json:"mainVariable"`                              // 关键变量
+	CoreDrivenType      int       `gorm:"column:core_driven_type;type:tinyint(4) unsigned;not null;default:0" json:"coreDrivenType"`                   // 核心驱动类型 0-多 1-空
+	CoreDrivenContent   string    `gorm:"column:core_driven_content;type:varchar(255);not null;default:''" json:"coreDrivenContent"`                   // 核心驱动内容
+	CoreContent         string    `gorm:"column:core_content;type:longtext" json:"coreContent"`                                                        // 核心内容
+	LastUpdateAdminID   int       `gorm:"column:last_update_admin_id;type:int(10) unsigned;not null;default:0" json:"lastUpdateAdminId"`               // 最后一次更新人ID
+	LastUpdateAdminName string    `gorm:"column:last_update_admin_name;type:varchar(30);not null;default:''" json:"lastUpdateAdminName"`               // 最后一次更新人姓名
+	SendThsMsgTime      time.Time `gorm:"column:send_ths_msg_time;type:datetime" json:"sendThsMsgTime"`                                                // 最后一次推送客群消息的时间
+	SendTemplateMsgTime time.Time `gorm:"column:send_template_msg_time;type:datetime" json:"sendTemplateMsgTime"`                                      // 最后一次推送模板消息的时间
+	ThsMsgState         int       `gorm:"column:ths_msg_state;type:tinyint(4) unsigned;not null;default:0" json:"thsMsgState"`                         // 同花顺推送状态:0-未推送 1-已推送
+	TemplateMsgState    int       `gorm:"column:template_msg_state;type:tinyint(4) unsigned;not null;default:0" json:"templateMsgState"`               // 模板消息推送状态:0-未推送 1-已推送
+	PublishState        int       `gorm:"column:publish_state;type:tinyint(4) unsigned;not null;default:0" json:"publishState"`                        // 发布状态:0-未发布 1-已发布
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`                                // 修改时间
 }
 
 // TableName get sql table name.获取数据库表名
@@ -28,28 +32,36 @@ func (m *YbPriceDriven) TableName() string {
 // YbPriceDrivenColumns get sql column name.获取数据库列名
 var YbPriceDrivenColumns = struct {
 	PriceDrivenID       string
-	ChartPermissionID   string
+	VarietyTagID        string
+	VarietyTagName      string
 	MainVariable        string
 	CoreDrivenType      string
 	CoreDrivenContent   string
 	CoreContent         string
 	LastUpdateAdminID   string
 	LastUpdateAdminName string
-	LastThsMsgTime      string
-	LastTemplateMsgTime string
+	SendThsMsgTime      string
+	SendTemplateMsgTime string
+	ThsMsgState         string
+	TemplateMsgState    string
+	PublishState        string
 	CreateTime          string
 	ModifyTime          string
 }{
 	PriceDrivenID:       "price_driven_id",
-	ChartPermissionID:   "chart_permission_id",
+	VarietyTagID:        "variety_tag_id",
+	VarietyTagName:      "variety_tag_name",
 	MainVariable:        "main_variable",
 	CoreDrivenType:      "core_driven_type",
 	CoreDrivenContent:   "core_driven_content",
 	CoreContent:         "core_content",
 	LastUpdateAdminID:   "last_update_admin_id",
 	LastUpdateAdminName: "last_update_admin_name",
-	LastThsMsgTime:      "last_ths_msg_time",
-	LastTemplateMsgTime: "last_template_msg_time",
+	SendThsMsgTime:      "send_ths_msg_time",
+	SendTemplateMsgTime: "send_template_msg_time",
+	ThsMsgState:         "ths_msg_state",
+	TemplateMsgState:    "template_msg_state",
+	PublishState:        "publish_state",
 	CreateTime:          "create_time",
 	ModifyTime:          "modify_time",
 }

+ 3 - 3
models/tables/yb_price_driven/model.go

@@ -2,10 +2,10 @@ package yb_price_driven
 
 import "hongze/hongze_yb/global"
 
-// GetPriceDrivenByChartPermissionId 通过品种获取价格驱动
-func GetPriceDrivenByChartPermissionId(chartPermissionId int) (item *YbPriceDriven, err error) {
+// GetPriceDrivenByVarietyTagId 通过标签获取价格驱动
+func GetPriceDrivenByVarietyTagId(varietyTagId int) (item *YbPriceDriven, err error) {
 	err = global.DEFAULT_MYSQL.
-		Where("chart_permission_id = ? AND publish_state = 1", chartPermissionId).
+		Where("variety_tag_id = ? AND publish_state = 1", varietyTagId).
 		Order("create_time DESC").
 		First(&item).Error
 	return

+ 35 - 0
models/tables/yb_price_driven_tag/entity.go

@@ -0,0 +1,35 @@
+package yb_price_driven_tag
+
+import "time"
+
+// YbPriceDrivenTag 研报价格驱动标签表
+type YbPriceDrivenTag struct {
+	ID             int       `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
+	VarietyTagID   int       `gorm:"unique;column:variety_tag_id;type:int(10) unsigned;not null;default:0" json:"varietyTagId"` // 标签ID
+	VarietyTagName string    `gorm:"column:variety_tag_name;type:varchar(100);not null;default:''" json:"varietyTagName"`       // 标签名称
+	State          int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:1" json:"state"`                     // 状态:0-禁用 1-开启
+	CreateTime     time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`
+	ModifyTime     time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP" json:"modifyTime"`
+}
+
+// TableName get sql table name.获取数据库表名
+func (m *YbPriceDrivenTag) TableName() string {
+	return "yb_price_driven_tag"
+}
+
+// YbPriceDrivenTagColumns get sql column name.获取数据库列名
+var YbPriceDrivenTagColumns = struct {
+	ID             string
+	VarietyTagID   string
+	VarietyTagName string
+	State          string
+	CreateTime     string
+	ModifyTime     string
+}{
+	ID:             "id",
+	VarietyTagID:   "variety_tag_id",
+	VarietyTagName: "variety_tag_name",
+	State:          "state",
+	CreateTime:     "create_time",
+	ModifyTime:     "modify_time",
+}

+ 9 - 0
models/tables/yb_price_driven_tag/model.go

@@ -0,0 +1,9 @@
+package yb_price_driven_tag
+
+import "hongze/hongze_yb/global"
+
+// GetPriceDrivenTagList 获取价格驱动标签列表
+func GetPriceDrivenTagList() (list []*YbPriceDrivenTag, err error) {
+	err = global.DEFAULT_MYSQL.Model(YbPriceDrivenTag{}).Scan(&list).Error
+	return
+}

+ 39 - 39
models/tables/yb_price_driven_visit_log/entity.go

@@ -4,19 +4,19 @@ import "time"
 
 // YbPriceDrivenVisitLog 研报-价格驱动访问记录表
 type YbPriceDrivenVisitLog struct {
-	ID                  int       `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`
-	PriceDrivenID       int       `gorm:"index:idx_price_driven_id;column:price_driven_id;type:int(10) unsigned;not null" json:"priceDrivenId"`                       // 价格驱动ID
-	ChartPermissionID   int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0" json:"chartPermissionId"` // 品种权限ID
-	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(100);not null;default:''" json:"chartPermissionName"`                              // 品种权限名称
-	UserID              int       `gorm:"index:idx_user_id;column:user_id;type:int(10) unsigned;not null;default:0" json:"userId"`                                    // 用户ID
-	Mobile              string    `gorm:"column:mobile;type:varchar(30);not null;default:''" json:"mobile"`                                                           // 手机号
-	RealName            string    `gorm:"column:real_name;type:varchar(100);not null;default:''" json:"realName"`                                                     // 真实姓名
-	NickName            string    `gorm:"column:nick_name;type:varchar(100);not null;default:''" json:"nickName"`                                                     // 昵称
-	CompanyID           int       `gorm:"column:company_id;type:int(10) unsigned;not null;default:0" json:"companyId"`                                                // 客户ID
-	CompanyName         string    `gorm:"column:company_name;type:varchar(100);not null;default:''" json:"companyName"`                                               // 客户名称
-	CompanyStatus       string    `gorm:"column:company_status;type:varchar(30);not null;default:''" json:"companyStatus"`                                            // 客户状态
-	SourceAgent         int       `gorm:"column:source_agent;type:tinyint(4) unsigned;not null;default:1" json:"sourceAgent"`                                         // 来源:1-小程序 2-小程序 PC 3-弘则研究公众号 4-Web PC
-	CreateTime          time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                               // 创建时间
+	ID             int       `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`
+	PriceDrivenID  int       `gorm:"index:idx_price_driven_id;column:price_driven_id;type:int(10) unsigned;not null" json:"priceDrivenId"`        // 价格驱动ID
+	VarietyTagID   int       `gorm:"index:idx_variety_tag_id;column:variety_tag_id;type:int(10) unsigned;not null;default:0" json:"varietyTagId"` // 标签ID
+	VarietyTagName string    `gorm:"column:variety_tag_name;type:varchar(100);not null;default:''" json:"varietyTagName"`                         // 标签名称
+	UserID         int       `gorm:"index:idx_user_id;column:user_id;type:int(10) unsigned;not null;default:0" json:"userId"`                     // 用户ID
+	Mobile         string    `gorm:"column:mobile;type:varchar(30);not null;default:''" json:"mobile"`                                            // 手机号
+	RealName       string    `gorm:"column:real_name;type:varchar(100);not null;default:''" json:"realName"`                                      // 真实姓名
+	NickName       string    `gorm:"column:nick_name;type:varchar(100);not null;default:''" json:"nickName"`                                      // 昵称
+	CompanyID      int       `gorm:"column:company_id;type:int(10) unsigned;not null;default:0" json:"companyId"`                                 // 客户ID
+	CompanyName    string    `gorm:"column:company_name;type:varchar(100);not null;default:''" json:"companyName"`                                // 客户名称
+	CompanyStatus  string    `gorm:"column:company_status;type:varchar(30);not null;default:''" json:"companyStatus"`                             // 客户状态
+	SourceAgent    int       `gorm:"column:source_agent;type:tinyint(4) unsigned;not null;default:1" json:"sourceAgent"`                          // 来源:1-小程序 2-小程序 PC 3-弘则研究公众号 4-Web PC
+	CreateTime     time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP" json:"createTime"`                                // 创建时间
 }
 
 // TableName get sql table name.获取数据库表名
@@ -26,31 +26,31 @@ func (m *YbPriceDrivenVisitLog) TableName() string {
 
 // YbPriceDrivenVisitLogColumns get sql column name.获取数据库列名
 var YbPriceDrivenVisitLogColumns = struct {
-	ID                  string
-	PriceDrivenID       string
-	ChartPermissionID   string
-	ChartPermissionName string
-	UserID              string
-	Mobile              string
-	RealName            string
-	NickName            string
-	CompanyID           string
-	CompanyName         string
-	CompanyStatus       string
-	SourceAgent         string
-	CreateTime          string
+	ID             string
+	PriceDrivenID  string
+	VarietyTagID   string
+	VarietyTagName string
+	UserID         string
+	Mobile         string
+	RealName       string
+	NickName       string
+	CompanyID      string
+	CompanyName    string
+	CompanyStatus  string
+	SourceAgent    string
+	CreateTime     string
 }{
-	ID:                  "id",
-	PriceDrivenID:       "price_driven_id",
-	ChartPermissionID:   "chart_permission_id",
-	ChartPermissionName: "chart_permission_name",
-	UserID:              "user_id",
-	Mobile:              "mobile",
-	RealName:            "real_name",
-	NickName:            "nick_name",
-	CompanyID:           "company_id",
-	CompanyName:         "company_name",
-	CompanyStatus:       "company_status",
-	SourceAgent:         "source_agent",
-	CreateTime:          "create_time",
+	ID:             "id",
+	PriceDrivenID:  "price_driven_id",
+	VarietyTagID:   "variety_tag_id",
+	VarietyTagName: "variety_tag_name",
+	UserID:         "user_id",
+	Mobile:         "mobile",
+	RealName:       "real_name",
+	NickName:       "nick_name",
+	CompanyID:      "company_id",
+	CompanyName:    "company_name",
+	CompanyStatus:  "company_status",
+	SourceAgent:    "source_agent",
+	CreateTime:     "create_time",
 }

+ 1 - 0
routers/public.go

@@ -25,5 +25,6 @@ func initPublic(r *gin.Engine) {
 		rGroup.POST("/upload", controller.Upload)
 		rGroup.POST("/get_share_poster", controller.GetSharePoster)
 		rGroup.GET("/get_suncode_scene", controller.GetSuncodeScene)
+		rGroup.GET("/get_variety_tag_tree", controller.GetVarietyTagTree)
 	}
 }

+ 7 - 7
services/community/question.go

@@ -19,7 +19,7 @@ import (
 )
 
 // GetQuestionList 获取问答列表
-func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStatus, groupId int, userInfo user.UserInfo) (resp []*response.CommunityQuestionItem, err error) {
+func GetQuestionList(pageIndex, pageSize, onlyMine, varietyTagId, replyStatus, groupId int, userInfo user.UserInfo) (resp []*response.CommunityQuestionItem, err error) {
 	condition := make(map[string]interface{})
 	condition["is_deleted ="] = 0
 	// 用户身份
@@ -49,8 +49,8 @@ func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStat
 			condition["reply_status >"] = 1
 		}
 	}
-	if chartPermissionId > 0 {
-		condition["chart_permission_id ="] = chartPermissionId
+	if varietyTagId > 0 {
+		condition["variety_tag_id ="] = varietyTagId
 	}
 	if groupId > 0 {
 		condition["research_group_second_id ="] = groupId
@@ -110,8 +110,8 @@ func GetQuestionList(pageIndex, pageSize, onlyMine, chartPermissionId, replyStat
 			ReplierRealName:         v.ReplierRealName,
 			ReplierRank:             replierRank,
 			ReplierAvatar:           avatar,
-			ChartPermissionID:       v.CommunityQuestionID,
-			ChartPermissionName:     v.ChartPermissionName,
+			VarietyTagId:       v.VarietyTagID,
+			VarietyTagName:     v.VarietyTagName,
 			ResearchGroupSecondId:   v.ResearchGroupSecondID,
 			ResearchGroupSecondName: v.ResearchGroupSecondName,
 			IsRead:                  v.IsRead,
@@ -176,8 +176,8 @@ func GetQuestionDetail(questionId int, userInfo user.UserInfo) (item *response.C
 		ReplierRealName:         detail.ReplierRealName,
 		ReplierRank:             replierRank,
 		ReplierAvatar:           detail.ReplierAvatar,
-		ChartPermissionID:       detail.ChartPermissionID,
-		ChartPermissionName:     detail.ChartPermissionName,
+		VarietyTagId:       detail.VarietyTagID,
+		VarietyTagName:     detail.VarietyTagName,
 		ResearchGroupSecondId:   detail.ResearchGroupSecondID,
 		ResearchGroupSecondName: detail.ResearchGroupSecondName,
 		IsRead:                  detail.IsRead,

+ 15 - 15
services/community/video.go

@@ -12,14 +12,14 @@ import (
 )
 
 // GetVideoList 获取视频列表
-func GetVideoList(pageIndex, pageSize, videoId, chartPermissionId int, keywords string) (resp []*response.CommunityVideoItem, err error) {
+func GetVideoList(pageIndex, pageSize, videoId, varietyTagId int, keywords string) (resp []*response.CommunityVideoItem, err error) {
 	condition := make(map[string]interface{})
 	// 分享点进来的直接定位到具体视频
 	if videoId > 0 {
 		condition["community_video_id ="] = videoId
 	} else {
-		if chartPermissionId > 0 {
-			condition["chart_permission_id ="] = chartPermissionId
+		if varietyTagId > 0 {
+			condition["variety_tag_id ="] = varietyTagId
 		}
 		if keywords != "" {
 			condition["title like"] = "%" + keywords + "%"
@@ -36,17 +36,17 @@ func GetVideoList(pageIndex, pageSize, videoId, chartPermissionId int, keywords
 	}
 	for _, v := range list {
 		item := &response.CommunityVideoItem{
-			CommunityVideoID:    v.CommunityVideoID,
-			Title:               v.Title,
-			ChartPermissionID:   v.ChartPermissionID,
-			ChartPermissionName: v.ChartPermissionName,
-			CoverImgUrl:         v.CoverImgURL,
-			VideoUrl:            v.VideoURL,
-			VideoSeconds:        v.VideoSeconds,
-			PublishState:        v.PublishState,
-			PublishTime:         v.PublishTime.Format(utils.FormatDateTime),
-			CreateTime:          v.CreateTime.Format(utils.FormatDateTime),
-			ModifyTime:          v.ModifyTime.Format(utils.FormatDateTime),
+			CommunityVideoID: v.CommunityVideoID,
+			Title:            v.Title,
+			VarietyTagId:     v.VarietyTagId,
+			VarietyTagName:   v.VarietyTagName,
+			CoverImgUrl:      v.CoverImgURL,
+			VideoUrl:         v.VideoURL,
+			VideoSeconds:     v.VideoSeconds,
+			PublishState:     v.PublishState,
+			PublishTime:      v.PublishTime.Format(utils.FormatDateTime),
+			CreateTime:       v.CreateTime.Format(utils.FormatDateTime),
+			ModifyTime:       v.ModifyTime.Format(utils.FormatDateTime),
 		}
 		resp = append(resp, item)
 	}
@@ -91,4 +91,4 @@ func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int) (errMsg
 		return
 	}
 	return
-}
+}

+ 20 - 30
services/price_driven/price_driven.go

@@ -3,7 +3,6 @@ package price_driven
 import (
 	"errors"
 	"hongze/hongze_yb/models/response"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company_product"
 	"hongze/hongze_yb/models/tables/yb_price_driven"
 	"hongze/hongze_yb/models/tables/yb_price_driven_visit_log"
@@ -12,10 +11,10 @@ import (
 )
 
 // GetPriceDrivenDetail 获取价格驱动详情
-func GetPriceDrivenDetail(chartPermissionId int) (resp *response.PriceDrivenItem, errMsg string, err error) {
+func GetPriceDrivenDetail(varietyTagId int) (resp *response.PriceDrivenItem, errMsg string, err error) {
 	resp = new(response.PriceDrivenItem)
 	// 获取详情
-	item, e := yb_price_driven.GetPriceDrivenByChartPermissionId(chartPermissionId)
+	item, e := yb_price_driven.GetPriceDrivenByVarietyTagId(varietyTagId)
 	if e != nil && e != utils.ErrNoRow {
 		errMsg = "获取失败"
 		err = errors.New("获取价格驱动信息失败, Err:" + e.Error())
@@ -23,7 +22,7 @@ func GetPriceDrivenDetail(chartPermissionId int) (resp *response.PriceDrivenItem
 	}
 	if item != nil {
 		resp.PriceDrivenID = item.PriceDrivenID
-		resp.ChartPermissionID = item.ChartPermissionID
+		resp.VarietyTagID = item.VarietyTagID
 		resp.MainVariable = item.MainVariable
 		resp.CoreDrivenType = item.CoreDrivenType
 		resp.CoreDrivenContent = item.CoreDrivenContent
@@ -54,33 +53,24 @@ func SavePriceDrivenVisitLog(priceDrivenId, sourceAgent int, userInfo user.UserI
 		err = errors.New("获取价格驱动信息失败, Err:" + e.Error())
 		return
 	}
-	permissionId := 0
-	permissionName := ""
-	if item != nil {
-		// 研报10.0这里需要调整成标签,目前急着上线先用着品种
-		chartPermission, e := chart_permission.GetByChartPermissionId(item.ChartPermissionID)
-		if e != nil && e != utils.ErrNoRow {
-			errMsg = "保存失败"
-			err = errors.New("获取品种权限失败, Err:" + e.Error())
-			return
-		}
-		if chartPermission != nil {
-			permissionId = int(chartPermission.ChartPermissionID)
-			permissionName = chartPermission.PermissionName
-		}
+	tagId := 0
+	tagName := ""
+	if item != nil && item.PriceDrivenID > 0 {
+		tagId = item.VarietyTagID
+		tagName = item.VarietyTagName
 	}
 	logItem := &yb_price_driven_visit_log.YbPriceDrivenVisitLog{
-		PriceDrivenID:       priceDrivenId,
-		ChartPermissionID:   permissionId,
-		ChartPermissionName: permissionName,
-		UserID:              int(userInfo.UserID),
-		Mobile:              userInfo.Mobile,
-		RealName:            userInfo.RealName,
-		NickName:            userInfo.NickName,
-		CompanyID:           int(userInfo.CompanyID),
-		CompanyName:         companyName,
-		CompanyStatus:       companyStatus,
-		SourceAgent:         sourceAgent,
+		PriceDrivenID:  priceDrivenId,
+		VarietyTagID:   tagId,
+		VarietyTagName: tagName,
+		UserID:         int(userInfo.UserID),
+		Mobile:         userInfo.Mobile,
+		RealName:       userInfo.RealName,
+		NickName:       userInfo.NickName,
+		CompanyID:      int(userInfo.CompanyID),
+		CompanyName:    companyName,
+		CompanyStatus:  companyStatus,
+		SourceAgent:    sourceAgent,
 	}
 	if e := logItem.Create(); e != nil {
 		errMsg = "保存失败"
@@ -88,4 +78,4 @@ func SavePriceDrivenVisitLog(priceDrivenId, sourceAgent int, userInfo user.UserI
 		return
 	}
 	return
-}
+}

+ 99 - 0
services/variety_tag.go

@@ -0,0 +1,99 @@
+package services
+
+import (
+	"errors"
+	"hongze/hongze_yb/models/tables/variety_classify"
+	"hongze/hongze_yb/models/tables/variety_tag"
+	"hongze/hongze_yb/models/tables/yb_price_driven_tag"
+)
+
+// TagTreeItem 标签树
+type TagTreeItem struct {
+	ClassifyId   int    `json:"classify_id" description:"分类ID"`
+	ClassifyName string `json:"classify_name" description:"分类名称"`
+	//TagId        int        `json:"tag_id" description:"分类ID(用于前端组件)"`
+	//TagName      string     `json:"tag_name" description:"分类名称(用于前端组件)"`
+	Sort int        `json:"sort" description:"排序"`
+	Tags []*TagItem `json:"tags" description:"标签"`
+}
+
+// TagItem 标签
+type TagItem struct {
+	TagId             int    `json:"tag_id" description:"标签ID"`
+	TagName           string `json:"tag_name" description:"标签名称"`
+	Sort              int    `json:"sort" description:"排序"`
+	ClassifyId        int    `json:"classify_id" description:"分类ID"`
+	ChartPermissionId int    `json:"chart_permission_id" description:"品种权限ID"`
+	PriceDrivenState  int    `json:"price_driven_state" description:"价格驱动状态:0-关闭 1-开启"`
+	//ResearcherList    []*TagResearcher `json:"researcher_list" description:"研究员列表"`
+}
+
+// TagResearcher 研究员信息
+type TagResearcher struct {
+	AdminId   int    `json:"admin_id"`
+	AdminName string `json:"admin_name"`
+}
+
+// 获取标签树
+func GetTagTree() (respList []*TagTreeItem, err error) {
+	respList = make([]*TagTreeItem, 0)
+	// 获取标签分类
+	classifyList, e := variety_classify.GetVarietyClassifyList()
+	if e != nil {
+		err = errors.New("获取标签分类列表失败, Err: " + e.Error())
+		return
+	}
+	classifyLen := len(classifyList)
+	if classifyLen == 0 {
+		return
+	}
+	// 获取标签列表
+	tagList, e := variety_tag.GetVarietyTagList()
+	if e != nil {
+		err = errors.New("获取标签列表失败, Err: " + e.Error())
+		return
+	}
+	// 价格驱动标签
+	priceTagList, e := yb_price_driven_tag.GetPriceDrivenTagList()
+	if e != nil {
+		err = errors.New("获取价格驱动标签列表失败, Err:" + e.Error())
+		return
+	}
+	priceTagLen := len(priceTagList)
+	priceTagMap := make(map[int]int, 0)
+	for i := 0; i < priceTagLen; i++ {
+		priceTagMap[priceTagList[i].VarietyTagID] = priceTagList[i].State
+	}
+	// 价格驱动状态
+	tagsArr := make([]*TagItem, 0)
+	tagLen := len(tagList)
+	for i := 0; i < tagLen; i++ {
+		item := tagList[i]
+		priceState := priceTagMap[item.VarietyTagID]
+		tagsArr = append(tagsArr, &TagItem{
+			TagId:             item.VarietyTagID,
+			TagName:           item.TagName,
+			Sort:              item.Sort,
+			ClassifyId:        item.VarietyClassifyID,
+			ChartPermissionId: item.ChartPermissionID,
+			PriceDrivenState:  priceState,
+		})
+	}
+	// 分类标签
+	for i := 0; i < classifyLen; i++ {
+		classifyItem := new(TagTreeItem)
+		classifyItem.ClassifyId = classifyList[i].VarietyClassifyID
+		classifyItem.ClassifyName = classifyList[i].ClassifyName
+		//classifyItem.TagId = classifyList[i].VarietyClassifyID
+		//classifyItem.TagName = classifyList[i].ClassifyName
+		classifyItem.Sort = classifyList[i].Sort
+		classifyItem.Tags = make([]*TagItem, 0)
+		for _, t := range tagsArr {
+			if classifyItem.ClassifyId == t.ClassifyId {
+				classifyItem.Tags = append(classifyItem.Tags, t)
+			}
+		}
+		respList = append(respList, classifyItem)
+	}
+	return
+}