package models import ( "github.com/beego/beego/v2/client/orm" "github.com/rdlucklib/rdluck_tools/paging" "time" ) type CygxYanxuanSpecialAuthor struct { Id int `orm:"column(id);pk"` UserId int // 用户ID SpecialName string // 专栏名称 Introduction string // 介绍 Label string // 标签 NickName string // 昵称 RealName string // 姓名 Mobile string // 手机号 CreateTime time.Time // 创建时间 ModifyTime time.Time // 修改时间 HeadImg string // 头像 BgImg string // 背景图 Status int // 1启用2禁用 } type CygxYanxuanSpecialAuthorItem struct { Id int `orm:"column(id);pk"` UserId int // 用户ID SpecialName string // 专栏名称 Introduction string // 介绍 Label string // 标签 NickName string // 昵称 RealName string // 姓名 CompanyName string // 公司名 Mobile string // 手机号 CreateTime string // 创建时间 ModifyTime time.Time // 修改时间 HeadImg string // 头像 BgImg string // 背景图 BgImgPc string // 背景图 Status int // 1启用2禁用 CollectNum int // 被收藏数 FollowNum int // 被关注数 SpecialArticleNum int // 文章数 LatestPublishTime time.Time // 最近更新时间 LatestPublishDate string // 最近更新时间 IsFollow int // 是否已关注 1已关注 0 未关注 //YanxuanSpecialCenter *CygxYanxuanSpecialCenterAuthorResp // 研选专栏文章内容 } type CygxYanxuanSpecialCenterAuthorResp struct { Id int //研选专栏ID UserId int // 用户ID PublishTime string // 提审过审或驳回时间 Title string // 标题 } func AddCygxYanxuanSpecialAuthor(item *CygxYanxuanSpecialAuthor) (lastId int64, err error) { o := orm.NewOrm() lastId, err = o.Insert(item) return } type EnableCygxYanxuanSpecialAuthorReq struct { UserId int // 用户ID Status int // 1启用2禁用 } // 启用禁用作者 func EnableYanxuanSpecialAuthor(userId, status int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET status=?,modify_time=NOW() WHERE user_id = ? ` _, err = o.Raw(sql, status, userId).Exec() return } func GetYanxuanSpecialAuthor(reqUserId, sysUserId int, cond string) (item *CygxYanxuanSpecialAuthorItem, err error) { o := orm.NewOrm() sql := `` sql = `SELECT a.*, ( SELECT count( 1 ) FROM cygx_yanxuan_special_collect AS ac INNER JOIN cygx_yanxuan_special as cs ON ac.yanxuan_special_id = cs.id WHERE cs.user_id = a.user_id ) AS collect_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special_follow AS cf WHERE cf.follow_user_id = a.user_id ) AS follow_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special AS ca WHERE ca.user_id = a.user_id AND ca.status = 3 ) AS special_article_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special_follow AS cf WHERE cf.follow_user_id =? AND cf.user_id = ? ) AS is_follow FROM cygx_yanxuan_special_author as a WHERE a.user_id=? ` if cond != "" { sql += cond } err = o.Raw(sql, reqUserId, sysUserId, reqUserId).QueryRow(&item) return } // 根据用户ID获取专栏详情 func GetCygxYanxuanSpecialAuthorByUserId(userId int) (item *CygxYanxuanSpecialAuthorItem, err error) { o := orm.NewOrm() sql := `SELECT * FROM cygx_yanxuan_special_author WHERE user_id = ? ` err = o.Raw(sql, userId).QueryRow(&item) return } func GetYanxuanSpecialAuthorBySpecialColumnId(specialColumnId, sysUserId int) (item *CygxYanxuanSpecialAuthorItem, err error) { o := orm.NewOrm() sql := `` sql = `SELECT a.*, ( SELECT count( 1 ) FROM cygx_yanxuan_special_collect AS ac INNER JOIN cygx_yanxuan_special as cs ON ac.yanxuan_special_id = cs.id WHERE cs.user_id = a.user_id ) AS collect_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special_follow AS cf WHERE cf.follow_user_id = a.user_id ) AS follow_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special AS ca WHERE ca.user_id = a.user_id AND ca.status = 3 ) AS special_article_num, ( SELECT count( 1 ) FROM cygx_yanxuan_special_follow AS cf INNER JOIN cygx_yanxuan_special_author AS ca ON cf.follow_user_id=ca.user_id WHERE cf.user_id = ? AND ca.id = ? ) AS is_follow FROM cygx_yanxuan_special_author as a WHERE a.id=? ` err = o.Raw(sql, sysUserId, specialColumnId, specialColumnId).QueryRow(&item) return } // 获取数量 func GetCygxYanxuanSpecialAuthorCount(condition string, pars []interface{}) (count int, err error) { sqlCount := ` SELECT COUNT(1) AS count FROM cygx_yanxuan_special_author as a WHERE 1= 1 ` if condition != "" { sqlCount += condition } o := orm.NewOrm() err = o.Raw(sqlCount, pars).QueryRow(&count) return } type SaveCygxYanxuanSpecialAuthorReq struct { SpecialColumnId int // 专栏栏目ID SpecialName string // 专栏名称 Introduction string // 介绍 Label string // 标签 NickName string // 昵称 BgImg string // 背景图 } func UpdateYanxuanSpecialAuthor(item *CygxYanxuanSpecialAuthor) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET special_name=?,introduction=?,label=?,nick_name=? ,modify_time=NOW() WHERE id = ? ` _, err = o.Raw(sql, item.SpecialName, item.Introduction, item.Label, item.NickName, item.Id).Exec() return } func GetYanxuanSpecialAuthorList(conditionUserSort, condition string, pars []interface{}, startSize, pageSize int) (items []*CygxYanxuanSpecialAuthorItem, err error) { o := orm.NewOrm() sql := `` sql = `SELECT ` + conditionUserSort + ` a.*, IFNULL(( SELECT publish_time FROM cygx_yanxuan_special WHERE user_id = a.user_id AND STATUS = 3 ORDER BY publish_time DESC LIMIT 1 ), a.modify_time) AS latest_publish_time FROM cygx_yanxuan_special_author AS a WHERE 1= 1 ` if condition != "" { sql += condition } sql += ` LIMIT ?,? ` _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items) return } type SpecialAuthorListResp struct { Paging *paging.PagingItem `description:"分页数据"` List []*CygxYanxuanSpecialAuthorItem IsAuthor bool IsImproveInformation bool `description:"作者信息是否完善"` HeadImg string // 头像 SpecialColumnId int // 专栏栏目ID } type SpecialAuthorCheckResp struct { IsAuthor bool IsImproveInformation bool `description:"作者信息是否完善"` HeadImg string // 头像 SpecialColumnId int // 专栏栏目ID } type SaveCygxYanxuanSpecialAuthoHeadImgrReq struct { Paging *paging.PagingItem `description:"分页数据"` SpecialColumnId int // 专栏栏目ID HeadImg string // 头像 } func UpdateYanxuanSpecialAuthorHeadImg(item *CygxYanxuanSpecialAuthor) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET head_img=?,modify_time=NOW() WHERE id = ? ` _, err = o.Raw(sql, item.HeadImg, item.Id).Exec() return } func GetYanxuanSpecialAuthorById(specialColumnId int) (item *CygxYanxuanSpecialAuthorItem, err error) { o := orm.NewOrm() sql := `` sql = `SELECT * FROM cygx_yanxuan_special_author WHERE id = ? ` err = o.Raw(sql, specialColumnId).QueryRow(&item) return } // UpdateCygxYanxuanSpecialAuthorPv 修改研选专栏作者的阅读Pv func UpdateCygxYanxuanSpecialAuthorPv(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET pv=pv+1 WHERE user_id = ? ` _, err = o.Raw(sql, userId).Exec() return } // UpdateCygxYanxuanSpecialAuthorUv 修改研选专栏作者的阅读Uv func UpdateCygxYanxuanSpecialAuthorUv(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET uv=uv+1 WHERE user_id = ? ` _, err = o.Raw(sql, userId).Exec() return } // 增加收藏数量 func UpdateYanxuanSpecialAuthorArticleCollectNumIncrease(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET article_collect_num = article_collect_num +1 WHERE id = ? ` _, err = o.Raw(sql, userId).Exec() return } // 减少收藏数量 func UpdateYanxuanSpecialAuthorArticleCollectNumReduce(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET article_collect_num = article_collect_num - 1 WHERE id = ? ` _, err = o.Raw(sql, userId).Exec() return } // 增加粉丝数量 func UpdateYanxuanSpecialAuthorFansNumIncrease(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET fans_num = fans_num +1 WHERE id = ? ` _, err = o.Raw(sql, userId).Exec() return } // 减少粉丝数量 func UpdateYanxuanSpecialAuthorFansNumReduce(userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET fans_num = fans_num - 1 WHERE id = ? ` _, err = o.Raw(sql, userId).Exec() return } // 更新收藏数量 func UpdateYanxuanSpecialAuthorArticleCollectNum(collectNum, userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET article_collect_num = ? WHERE user_id = ? ` _, err = o.Raw(sql, collectNum, userId).Exec() return } // 更新粉丝数量 func UpdateYanxuanSpecialAuthorFansNum(fansNum, userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET fans_num = ? WHERE user_id = ? ` _, err = o.Raw(sql, fansNum, userId).Exec() return } // 更新作者发布文章的数量 func UdpateYanxuanSpecialauthorArticleNum(articleNum, userId int) (err error) { o := orm.NewOrm() sql := `` sql = `UPDATE cygx_yanxuan_special_author SET article_num = ? WHERE user_id = ? ` _, err = o.Raw(sql, articleNum, userId).Exec() return }