| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package dao
- import (
- "demo/configs"
- "demo/data/domain"
- "demo/data/domain/vo"
- "time"
- )
- type ArticleCollectionVo struct {
- Topic domain.ArticleTopic `json:"topic"`
- ArticleList []ArticleTitleVo `json:"articleList"`
- Total int64 `json:"total"`
- }
- type ArticleTitleVo struct {
- Id int64 `json:"id"` // 11 0 注释:id
- Image string `xorm:"image" json:"image"` // 255 0 注释:文章名称
- ArticleTitle string `xorm:"article_title" json:"articleTitle"` // 255 0 注释:文章名称
- ArticleDesc string `xorm:"article_desc" json:"articleDesc"` // 255 0 注释:文章简介 1
- State string `xorm:"state" json:"state"` // 255 0 注释:状态
- ArticleTagIds string `xorm:"article_tag_ids" json:"articleTagIds"` // 255 0 注释:文章标签
- PublishTime time.Time `xorm:"publish_time" json:"publishTime"` // 0 0 注释:发表时间
- EyeFill int64 `xorm:"eye_fill" json:"eyeFill"` // 11 0 注释:浏览量
- LikeCount int64 `xorm:"like_count" json:"likeCount"` // 255 0 注释:点赞量
- CreateBy string `xorm:"create_by" json:"createBy"`
- CreateTime time.Time `xorm:"create_time" json:"createTime"`
- }
- func GetArticleList(pageNum, pageSize int) (vo.BaseListVo, error) {
- var arr []domain.ArticleTopic
- var vo vo.BaseListVo
- c, err := configs.Engine.Table("article_topic").
- Limit(pageSize, (pageNum-1)*pageSize).Desc("id").FindAndCount(&arr)
- if err != nil {
- return vo, err
- }
- m := make(map[int64]ArticleCollectionVo)
- for i := range arr {
- var list = make([]ArticleTitleVo, 0)
- count, _ := configs.Engine.Table("article").
- Select("id, article_title, article_tag_ids, state, publish_time, eye_fill, like_count, create_time, article_tag_ids").
- Where("article_topic_id = ? and state = '1'", arr[i].Id).
- Limit(5).Desc("create_time").FindAndCount(&list)
- m[arr[i].Id] = ArticleCollectionVo{
- Topic: arr[i],
- ArticleList: list,
- Total: count,
- }
- }
- var VoList = make([]interface{}, 0)
- for _, v := range m {
- VoList = append(VoList, v)
- }
- vo.Total = int(c)
- vo.PageNum = pageNum
- vo.PageSize = pageSize
- vo.List = VoList
- return vo, nil
- }
- func GetArticleListByTopicId(topicId int64, pageNum, pageSize int) (domain.ArticleTopic, vo.BaseListVo, error) {
- var topic = domain.ArticleTopic{}
- var vo vo.BaseListVo
- _, err := configs.Engine.Table("article_topic").
- Where("id = ?", topicId).Desc("id").Get(&topic)
- if err != nil {
- return topic, vo, err
- }
- var list = make([]ArticleTitleVo, 0)
- count, _ := configs.Engine.Table("article").
- Select("id, image, article_title, article_desc, article_desc, article_tag_ids, state, publish_time, eye_fill, like_count, create_time,create_by, article_tag_ids").
- Where("article_topic_id = ? and state = '1'", topic.Id).
- Limit(pageSize, (pageNum-1)*pageSize).Desc("create_time").FindAndCount(&list)
- var VoList = make([]interface{}, 0)
- for _, v := range list {
- VoList = append(VoList, v)
- }
- vo.Total = int(count)
- vo.PageNum = pageNum
- vo.PageSize = pageSize
- vo.List = VoList
- return topic, vo, nil
- }
|