123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- package advisory
- import (
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- "time"
- )
- type AdvisoryArticle struct {
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- Abstract string `description:"简介"`
- PublishStatus int `description:"发布状态1已发布、0未发布"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- ActualPublishTime time.Time `description:"实际发布时间"`
- TimingPublishTime time.Time `description:"定时发布时间"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- CreateTime time.Time `description:"创建时间"`
- LastUpdateTime time.Time `description:"修改时间"`
- AdminId int `description:"发布者的用户ID"`
- IsTiming int `description:"是否定时发布,1,定时发布,0不定时"`
- Code string `description:"分享字符串"`
- }
- type AdvisoryArticleLog struct {
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- Abstract string `description:"简介"`
- PublishStatus int `description:"发布状态1已发布、0未发布"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- ActualPublishTime time.Time `description:"实际发布时间"`
- TimingPublishTime time.Time `description:"定时发布时间"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- CreateTime time.Time `description:"创建时间"`
- LastUpdateTime time.Time `description:"修改时间"`
- AdminId int `description:"发布者的用户ID"`
- }
- //文章详情
- type AdvisoryArticleDetail struct {
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- Abstract string `description:"简介"`
- PublishStatus int `description:"发布状态1已发布、0未发布"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- ActualPublishTime string `description:"实际发布时间"`
- TimingPublishTime string `description:"定时发布时间"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- CreateTime string `description:"创建时间"`
- LastUpdateTime string `description:"修改时间"`
- AdminId int `description:"发布者的用户ID"`
- Code string `description:"分享字符串"`
- ArtCode string `orm:"column(code);"`
- }
- //预览文章详情带文章所属分类
- type PreviewArticleDetail struct {
- WhatWeek string `description:"周几"`
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- TimingPublishTime string `description:"定时发布时间"`
- PublishStatus int `description:"发布状态1已发布、0未发布"`
- //ClassifyChartPermissionName string `description:"所属一级分类名称"`
- ActualPublishTime string `description:"实际发布时间"`
- LastUpdateTime string `description:"上次编辑的时间"`
- Pv int `description:"PV"`
- Uv int `description:"UV"`
- }
- type PreviewArticleDetailList struct {
- List []*PreviewArticleDetail
- }
- type ArticleAddReq struct {
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- Abstract string `description:"文章个简介"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- TimingPublishTime string `description:"定时发布时间"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- }
- //保存文章
- type PreservationArticle struct {
- ArticleId int `orm:"column(advisory_article_id);pk"`
- Title string `description:"标题"`
- Body string `description:"内容"`
- Abstract string `description:"文章个简介"`
- ChartPermissionId int `description:"所属分类ID"`
- ChartPermissionName string `description:"所属分类名称"`
- TimingPublishTime string `description:"定时发布时间"`
- LinkName string `description:"链接名称"`
- LinkAddress string `description:"链接地址"`
- }
- type ArticleDeleteReq struct {
- ArticleId int64 `description:"ArticleId"`
- }
- //添加文章
- func AddArticle(item *AdvisoryArticle) (newId int64, err error) {
- fmt.Println(item)
- o := orm.NewOrm()
- newId, err = o.Insert(item)
- fmt.Println(newId)
- return
- }
- //添加文章日志
- func AddArticleLog(item *AdvisoryArticleLog) (newId int64, err error) {
- o := orm.NewOrm()
- newId, err = o.Insert(item)
- return
- }
- //编辑文章
- func EditArticle(item *AdvisoryArticle) (err error) {
- o := orm.NewOrm()
- sql := " UPDATE advisory_article SET title = ?, body = ?, chart_permission_id = ?,chart_permission_name=?,timing_publish_time=?,publish_status=?, link_name=?, link_address=?, actual_publish_time=? ,is_timing=? ,last_update_time = NOW() WHERE advisory_article_id = ? "
- o.Raw(sql, item.Title, item.Body, item.ChartPermissionId, item.ChartPermissionName, item.TimingPublishTime, item.PublishStatus, item.LinkName, item.LinkAddress, item.ActualPublishTime, item.IsTiming, item.ArticleId).Exec()
- return
- }
- //获取文章详情
- func GetUserArticleInfo(Uid int, ArticleId int64) (items *AdvisoryArticleDetail, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM advisory_article WHERE advisory_article_id = ? LIMIT 1`
- err = o.Raw(sql, ArticleId).QueryRow(&items)
- return
- }
- //获取文章详情
- func GetUserArticleInfoByCode(Code string) (items *AdvisoryArticleDetail, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM advisory_article WHERE publish_status = 1 AND code = ?`
- err = o.Raw(sql, Code).QueryRow(&items)
- return
- }
- //获取管理员今天是否在这个类目下发文章
- func GetUserTodayRticleInfo(Uid int, ChartPermissionId int) (items *AdvisoryArticleDetail, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM advisory_article WHERE admin_id = ? AND chart_permission_id = ? AND publish_status = 1 AND last_update_time>=date(now()) and last_update_time<DATE_ADD(date(now()),INTERVAL 1 DAY) LIMIT 1`
- err = o.Raw(sql, Uid, ChartPermissionId).QueryRow(&items)
- return
- }
- type PreviewRsp struct {
- List []*PreviewArticleDetail
- Item *PreviewArticleDetail
- }
- //获取用户最新编辑的文章
- func GetUserNewArticleInfo(Uid int) (items *PreviewArticleDetail, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM advisory_article WHERE admin_id = ? AND publish_status = 0 ORDER BY last_update_time DESC LIMIT 1`
- err = o.Raw(sql, Uid).QueryRow(&items)
- return
- }
- //文章删除
- func DeleteArticle(ArticleId int64) (err error) {
- sql := `DELETE FROM advisory_article WHERE advisory_article_id=? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, ArticleId).Exec()
- return
- }
- //文章取消发布
- func UnpublishArticle(ArticleId int) (err error) {
- sql := `UPDATE advisory_article SET publish_status = 0 WHERE advisory_article_id=? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, ArticleId).Exec()
- return
- }
- //校验用户是否关注了添加文章的分类
- func CheckIsFllow(fllowList []string, ChartPermissionId string) bool {
- for _, v := range fllowList {
- if ChartPermissionId == v {
- return true
- }
- }
- return false
- }
- //获取预览列表
- func GetPreviewArticleList(condition string, pars []interface{}, startSize, pageSize int) (items []*PreviewArticleDetail, err error) {
- sql := ` SELECT * FROM advisory_article WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY create_time DESC LIMIT ?,? `
- o := orm.NewOrm()
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- //获取预览数量
- func GetPreviewArticleListCount(condition string, pars []interface{}) (count int, err error) {
- sqlCount := ` SELECT COUNT(1) AS count FROM advisory_article WHERE 1=1 `
- if condition != "" {
- sqlCount += condition
- }
- o := orm.NewOrm()
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- //获取文章列表
- func GetArticlerList(condition string, pars []interface{}, startSize, pageSize int) (items []*PreviewArticleDetail, err error) {
- sql := ` SELECT * ,
- (SELECT COUNT(1) FROM advisory_article_view_record AS avr WHERE avr.article_id=advisory_article.advisory_article_id) AS pv,
- (SELECT COUNT(DISTINCT user_id) FROM advisory_article_view_record AS avr WHERE avr.article_id=advisory_article.advisory_article_id) AS uv
- FROM advisory_article WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` LIMIT ?,? `
- o := orm.NewOrm()
- //o.Using("rddp")
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- //获取文章数量
- func GetArticleListCount(condition string, pars []interface{}) (count int, err error) {
- sqlCount := ` SELECT COUNT(1) AS count FROM advisory_article WHERE 1=1 `
- if condition != "" {
- sqlCount += condition
- }
- o := orm.NewOrm()
- //o.Using("rddp")
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- type PreviewArticleListResp struct {
- CharList []*ArtChartPermission
- Preview *PreviewArticleDetail
- List []*PreviewArticleDetail
- Paging *paging.PagingItem `description:"分页数据"`
- }
- type ArticleListResp struct {
- List []*PreviewArticleDetail
- Paging *paging.PagingItem `description:"分页数据"`
- }
- //文章预览分类
- type ArtChartPermission struct {
- ChartPermissionId int `description:"权限id"`
- ClassifyName string `description:"分类名称"`
- PermissionName string `description:"名称"`
- ImageUrl string `description:"图片地址"`
- IsBlongChart bool `description:"是否属于这个分类"`
- ChildPermission []*ArtChartPermission
- }
- //获取一级分类名称
- func GetFirstChartPermissionAll() (items []*ArtChartPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM chart_permission as ch WHERE product_id = 1 AND product_name = 'ficc' GROUP BY ch.classify_name ORDER BY sort ASC; `
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- func GetChartToClassifyName(ClassifyName string) (items []*ArtChartPermission, err error) {
- o := orm.NewOrm()
- sql := `SELECT * FROM chart_permission WHERE product_id = 1 AND product_name = 'ficc' AND classify_name = ? ORDER BY sort ASC `
- _, err = o.Raw(sql, ClassifyName).QueryRows(&items)
- return
- }
- //end
- //定时发布任务
- func ArticleTask() (err error) {
- o := orm.NewOrm()
- sql := " UPDATE advisory_article SET publish_status = 1, actual_publish_time=NOW() ,last_update_time = NOW() WHERE publish_status = 0 AND is_timing = 1 "
- _, err = o.Raw(sql).Exec()
- //fmt.Println(err)
- return
- }
- //获取文章数量
- func GetThisDayTimingPublishTimeCount(condition string, pars []interface{}) (count int, err error) {
- sqlCount := ` SELECT COUNT(1) AS count FROM advisory_article WHERE 1=1 `
- if condition != "" {
- sqlCount += condition
- }
- fmt.Println(sqlCount)
- o := orm.NewOrm()
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- type PvAndUvResp struct {
- Pv int `description:"PV"`
- Uv int `description:"UV"`
- }
- //获取PV和Uv数量
- func GetPVAndUv() (items []*PvAndUvResp, err error) {
- o := orm.NewOrm()
- sql := `SELECT id,
- (SELECT COUNT( id ) FROM advisory_user_chart_article_record) AS pv,
- (SELECT COUNT(DISTINCT user_id) AS uv FROM advisory_user_chart_article_record) AS uv
- FROM advisory_user_chart_article_record LIMIT 0,1 `
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
|