|
@@ -0,0 +1,273 @@
|
|
|
|
+package models
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "github.com/beego/beego/v2/client/orm"
|
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
|
+ "time"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+type ChartResultApi struct {
|
|
|
|
+ Data []ChartResultApidate `json:"data"`
|
|
|
|
+ Code int `json:"code"`
|
|
|
|
+ Msg string `json:"msg"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartFavoritesResultApi struct {
|
|
|
|
+ Data []ChartInfo `json:"data"`
|
|
|
|
+ Code int `json:"code"`
|
|
|
|
+ Msg string `json:"msg"`
|
|
|
|
+ Pagination Pagination `json:"pagination"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type Pagination struct {
|
|
|
|
+ Total int `json:"total"`
|
|
|
|
+ Page int `json:"id"`
|
|
|
|
+ PageSize int `json:"page_size"`
|
|
|
|
+ PageTotal int `json:"page_total"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartInfo struct {
|
|
|
|
+ ChartInfo *ChartResultApidate `json:"chart_info"`
|
|
|
|
+ ChartId int `json:"chart_id"`
|
|
|
|
+ CreateDate string `json:"add_favorites_time"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartResultApidate struct {
|
|
|
|
+ ChartId int `json:"id"`
|
|
|
|
+ PtagId int `json:"ptag_id"`
|
|
|
|
+ CtagId int `json:"ctag_id"`
|
|
|
|
+ Title string `json:"title"`
|
|
|
|
+ TitleEn string `json:"title_en"`
|
|
|
|
+ CreateDate string `json:"create_date"`
|
|
|
|
+ UpdateDate string `json:"update_date"`
|
|
|
|
+ PublishStatus int `json:"publish_status"`
|
|
|
|
+ Cover string `json:"cover"`
|
|
|
|
+ Iframe string `json:"iframe"`
|
|
|
|
+ Ptag Ptag `json:"ptag"`
|
|
|
|
+ Ctag Ptag `json:"ctag"`
|
|
|
|
+ PtagTwo Ptag `json:"ptag1"`
|
|
|
|
+ CtagTwo Ptag `json:"ctag1"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type Ptag struct {
|
|
|
|
+ Id int `json:"id"`
|
|
|
|
+ Name string `json:"name"`
|
|
|
|
+ Description string `json:"description"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type Ctag struct {
|
|
|
|
+ Id int `json:"id"`
|
|
|
|
+ Name string `json:"name"`
|
|
|
|
+ Description string `json:"description"`
|
|
|
|
+ PtagId int `json:"ptag_id"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type CygxChart struct {
|
|
|
|
+ Id int `orm:"column(id);pk"`
|
|
|
|
+ ChartId int `description:"图表id"`
|
|
|
|
+ PtagId int `description:"图表父类分类id"`
|
|
|
|
+ CtagId int `description:"图表子类分类id"`
|
|
|
|
+ PtagIdTwo int `description:"图表父类分类id"`
|
|
|
|
+ CtagIdTwo int `description:"图表子类分类id"`
|
|
|
|
+ Title string `description:"标题"`
|
|
|
|
+ TitleEn string `description:"英文标题 "`
|
|
|
|
+ CreateDate string `description:"本地创建时间"`
|
|
|
|
+ CreateDateApi time.Time `description:"图表创建时间"`
|
|
|
|
+ PublishStatus int `description:"发布状态"`
|
|
|
|
+ PtagName string `description:"父类名称"`
|
|
|
|
+ CtagName string `description:"子类名称"`
|
|
|
|
+ Cover string `description:"图表图片"`
|
|
|
|
+ Iframe string `description:"图表详情跳转地址"`
|
|
|
|
+ PtagNameTwo string `description:"父类名称"`
|
|
|
|
+ CtagNameTwo string `description:"子类名称"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type CygxChartDetail struct {
|
|
|
|
+ ChartId int `description:"图表id"`
|
|
|
|
+ Title string `description:"标题"`
|
|
|
|
+ TitleEn string `description:"英文标题 "`
|
|
|
|
+ IsCollection bool `description:"是否收藏 "`
|
|
|
|
+ CollectionNum int `description:"本人收藏数量 "`
|
|
|
|
+ HttpUrl string `orm:"column(iframe)";description:"文章链接跳转地址"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetChartCountById(chartId int) (count int, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `SELECT COUNT(1) AS count FROM cygx_chart WHERE chart_id = ? `
|
|
|
|
+ err = o.Raw(sql, chartId).QueryRow(&count)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//新增图表
|
|
|
|
+func AddCygxChart(item *CygxChart) (lastId int64, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ lastId, err = o.Insert(item)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//标签分类
|
|
|
|
+type ChartPtagResultApi struct {
|
|
|
|
+ Data []ChartPtagResultApidate `json:"data"`
|
|
|
|
+ Code int `json:"code"`
|
|
|
|
+ Msg string `json:"msg"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartPtagResultApidate struct {
|
|
|
|
+ ChartPermissionId int `json:"id"`
|
|
|
|
+ ChartPermissionName string `json:"name"`
|
|
|
|
+ Ctag []Ctag `json:"ctag"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartPtagResp struct {
|
|
|
|
+ ChartPermissionId int `description:"分类ID"`
|
|
|
|
+ PermissionName string `description:"分类名称"`
|
|
|
|
+ List []*CtagResp `description:"子分类"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type CtagResp struct {
|
|
|
|
+ CtagId int `description:"子分类ID"`
|
|
|
|
+ Name string `description:"子分类名称"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartUserTokenResult struct {
|
|
|
|
+ AccessToken string `json:"access_token"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartUserTokenResultApi struct {
|
|
|
|
+ Data ChartUserTokenResult `json:"data"`
|
|
|
|
+ Code int `json:"code"`
|
|
|
|
+ Msg string `json:"msg"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+type HomeChartListItem struct {
|
|
|
|
+ IsBindingMobile bool `description:"是否绑定过手机号"`
|
|
|
|
+ Paging *paging.PagingItem
|
|
|
|
+ List []*HomeChartListResp `description:"图表列表"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+type ChartCollectReq struct {
|
|
|
|
+ ChartId int `description:"图表ID"`
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取图表列表
|
|
|
|
+func GetChartList(condition string, pars []interface{}, startSize, pageSize int) (items []*HomeChartListResp, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := ` SELECT * FROM cygx_chart AS a WHERE a.publish_status=1 `
|
|
|
|
+ if condition != "" {
|
|
|
|
+ sql += condition
|
|
|
|
+ }
|
|
|
|
+ sql += ` ORDER BY create_date DESC LIMIT ?,? `
|
|
|
|
+ _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取所有同步过来的图表
|
|
|
|
+func GetChartListAll() (items []*HomeChartListResp, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := ` SELECT chart_id FROM cygx_chart `
|
|
|
|
+ _, err = o.Raw(sql).QueryRows(&items)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+////获取图表列表
|
|
|
|
+//func GetChartCtagIds(ctagId int ) (items []*HomeChartListResp, err error) {
|
|
|
|
+// o := orm.NewOrm()
|
|
|
|
+// sql := ` SELECT * FROM cygx_chart AS a WHERE a.publish_status=1 AND ctag_id = 1 ORDER BY create_date DESC LIMIT 2 `
|
|
|
|
+// _, err = o.Raw(sql,ctagId).QueryRows(&items)
|
|
|
|
+// return
|
|
|
|
+//}
|
|
|
|
+
|
|
|
|
+//获取图表列表
|
|
|
|
+func GetChartListCollection(chartIds string, userId, startSize, pageSize int) (items []*HomeChartListResp, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := ` SELECT a.*,
|
|
|
|
+ t.create_time AS t_create_time,
|
|
|
|
+ c.create_time AS c_create_time,
|
|
|
|
+ ( SELECT COUNT(*) FROM cygx_chart_top AS t WHERE t.chart_id = a.chart_id AND t.user_id = ? ) AS num_top,
|
|
|
|
+ ( SELECT COUNT(*) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS num_c
|
|
|
|
+ FROM
|
|
|
|
+ cygx_chart_all AS a
|
|
|
|
+ LEFT JOIN cygx_chart_top AS t ON t.chart_id = a.chart_id
|
|
|
|
+ LEFT JOIN cygx_chart_collect AS c ON c.chart_id = a.chart_id
|
|
|
|
+ WHERE
|
|
|
|
+ a.publish_status = 1
|
|
|
|
+ AND a.chart_id IN (` + chartIds + `)
|
|
|
|
+ GROUP BY
|
|
|
|
+ a.chart_id
|
|
|
|
+ ORDER BY
|
|
|
|
+ t_create_time DESC,
|
|
|
|
+ c_create_time DESC LIMIT ?,? `
|
|
|
|
+ _, err = o.Raw(sql, userId, userId, startSize, pageSize).QueryRows(&items)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取图表列表本地
|
|
|
|
+func GetChartListCollectionWithCygx(userId, startSize, pageSize int) (items []*HomeChartListResp, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := ` SELECT
|
|
|
|
+ a.*,
|
|
|
|
+ t.create_time AS t_create_time,
|
|
|
|
+ c.create_time AS c_create_time,
|
|
|
|
+ ( SELECT COUNT(*) FROM cygx_chart_top AS t WHERE t.chart_id = a.chart_id AND t.user_id = ? ) AS num_top,
|
|
|
|
+ ( SELECT COUNT(*) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS num_c
|
|
|
|
+ FROM
|
|
|
|
+ cygx_chart_collect AS c
|
|
|
|
+ INNER JOIN cygx_chart AS a ON c.chart_id = a.chart_id
|
|
|
|
+ LEFT JOIN cygx_chart_top AS t ON t.chart_id = a.chart_id
|
|
|
|
+ WHERE
|
|
|
|
+ a.publish_status = 1
|
|
|
|
+ AND c.user_id =?
|
|
|
|
+ GROUP BY
|
|
|
|
+ a.chart_id
|
|
|
|
+ ORDER BY
|
|
|
|
+ t_create_time DESC,
|
|
|
|
+ c_create_time DESC LIMIT ?,? `
|
|
|
|
+ _, err = o.Raw(sql, userId, userId, userId, startSize, pageSize).QueryRows(&items)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetChartListConfig() (items []*HomeChartListResp, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := ` SELECT * FROM cygx_chart AS a WHERE a.publish_status=1 AND ctag_id IN (7,8,9,10) GROUP BY ctag_id ORDER BY create_date DESC LIMIT 4 `
|
|
|
|
+ _, err = o.Raw(sql).QueryRows(&items)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取图表数量
|
|
|
|
+func GetChartCount(condition string, pars []interface{}) (count int, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `SELECT COUNT(1) AS count
|
|
|
|
+ FROM cygx_chart AS a
|
|
|
|
+ WHERE a.publish_status=1 `
|
|
|
|
+ if condition != "" {
|
|
|
|
+ sql += condition
|
|
|
|
+ }
|
|
|
|
+ err = o.Raw(sql, pars).QueryRow(&count)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取图表数量
|
|
|
|
+func GetChartCollentCount(condition string, pars []interface{}) (count int, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `SELECT COUNT(1) AS count
|
|
|
|
+ FROM cygx_chart_all AS a
|
|
|
|
+ WHERE a.publish_status=1 `
|
|
|
|
+ if condition != "" {
|
|
|
|
+ sql += condition
|
|
|
|
+ }
|
|
|
|
+ err = o.Raw(sql, pars).QueryRow(&count)
|
|
|
|
+ return
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func GetChartDetailById(chartId, uid int) (item *CygxChartDetail, err error) {
|
|
|
|
+ o := orm.NewOrm()
|
|
|
|
+ sql := `SELECT * ,( SELECT COUNT( 1 ) FROM cygx_chart_collect AS c WHERE c.chart_id = a.chart_id AND c.user_id = ? ) AS collection_num
|
|
|
|
+ FROM
|
|
|
|
+ cygx_chart_all as a
|
|
|
|
+ WHERE
|
|
|
|
+ a.chart_id =? `
|
|
|
|
+ err = o.Raw(sql, uid, chartId).QueryRow(&item)
|
|
|
|
+ return
|
|
|
|
+}
|