作者 yangfu

修改排序

@@ -144,7 +144,9 @@ type( @@ -144,7 +144,9 @@ type(
144 AuthorId int64 `json:"authorId"` // 特定作者ID 144 AuthorId int64 `json:"authorId"` // 特定作者ID
145 LastArticleId int64 `json:"lastArticleId,optional"`// 最后文章ID 145 LastArticleId int64 `json:"lastArticleId,optional"`// 最后文章ID
146 Size int `json:"size"` // 数量 146 Size int `json:"size"` // 数量
147 - OrderByHotScore string `json:"orderByHotScore,options=asc|desc,optional,default=desc"` // 热度排序 升序 asc 降序 desc 147 + //OrderByHotScore string `json:"orderByHotScore,options=asc|desc,optional,default=desc"` // 热度排序 升序 asc 降序 desc
  148 + OrderByKey string `json:"orderByKey,options=HotScore|All|Time,optional,default=desc"` // 按规则排序 (热度:HotScore All:时间排序 Time:时间排序)
  149 + OrderByValue string `json:"orderByValue,options=asc||desc,optional"` // 排序值 升序 asc 降序 desc
148 Keywords string `json:"keywords,optional"` // 关键字 150 Keywords string `json:"keywords,optional"` // 关键字
149 BeginTime int64 `json:"beginTime,optional"`// 开始时间 151 BeginTime int64 `json:"beginTime,optional"`// 开始时间
150 EndTime int64 `json:"endTime,optional"`// 结束时间 152 EndTime int64 `json:"endTime,optional"`// 结束时间
@@ -50,9 +50,17 @@ func (l *MiniHomepageUserNewsLogic) MiniHomepageUserNews(req *types.MiniHomepage @@ -50,9 +50,17 @@ func (l *MiniHomepageUserNewsLogic) MiniHomepageUserNews(req *types.MiniHomepage
50 queryOptions := domain.IndexCompanyId(userToken.CompanyId)(). 50 queryOptions := domain.IndexCompanyId(userToken.CompanyId)().
51 WithKV("beginTime", req.BeginTime). 51 WithKV("beginTime", req.BeginTime).
52 WithKV("endTime", req.EndTime). 52 WithKV("endTime", req.EndTime).
53 - WithKV("keywords", req.Keywords).  
54 - WithKV("orderByHotScore", req.OrderByHotScore)  
55 - 53 + WithKV("keywords", req.Keywords)
  54 + if len(req.OrderByKey) > 0 && len(req.OrderByValue) > 0 {
  55 + switch req.OrderByKey {
  56 + case "HotScore":
  57 + queryOptions.WithKV("orderByHotScore", req.OrderByValue)
  58 + case "All":
  59 + queryOptions.WithKV("orderByAll", req.OrderByValue)
  60 + case "Time":
  61 + queryOptions.WithKV("orderByAll", req.OrderByValue)
  62 + }
  63 + }
56 var users = []int64{req.AuthorId} 64 var users = []int64{req.AuthorId}
57 if _, articles, err = l.svcCtx.ArticleRepository.FindAuthorsLatestArticle(l.ctx, conn, user.CompanyId, users, currentUser.Id, req.LastArticleId, req.Size, queryOptions.Copy().WithFindOnly()); err != nil { 65 if _, articles, err = l.svcCtx.ArticleRepository.FindAuthorsLatestArticle(l.ctx, conn, user.CompanyId, users, currentUser.Id, req.LastArticleId, req.Size, queryOptions.Copy().WithFindOnly()); err != nil {
58 return nil, xerr.NewErrMsgErr("获取快讯异常", err) 66 return nil, xerr.NewErrMsgErr("获取快讯异常", err)
@@ -64,6 +64,7 @@ func (l *MiniAtUsersListLogic) MiniAtUsersList(req *types.MiniUsersListRequest) @@ -64,6 +64,7 @@ func (l *MiniAtUsersListLogic) MiniAtUsersList(req *types.MiniUsersListRequest)
64 Name: item.Name, 64 Name: item.Name,
65 PinYinName: item.PinYinName, 65 PinYinName: item.PinYinName,
66 Avatar: item.Avatar, 66 Avatar: item.Avatar,
  67 + Position: item.Position,
67 }) 68 })
68 }) 69 })
69 return map[string]interface{}{ 70 return map[string]interface{}{
@@ -485,13 +485,14 @@ type MiniHomePageUserBeLikedResponse struct { @@ -485,13 +485,14 @@ type MiniHomePageUserBeLikedResponse struct {
485 } 485 }
486 486
487 type MiniHomepageUserNewsRequest struct { 487 type MiniHomepageUserNewsRequest struct {
488 - AuthorId int64 `json:"authorId"` // 特定作者ID  
489 - LastArticleId int64 `json:"lastArticleId,optional"` // 最后文章ID  
490 - Size int `json:"size"` // 数量  
491 - OrderByHotScore string `json:"orderByHotScore,options=asc|desc,optional,default=desc"` // 热度排序 升序 asc 降序 desc  
492 - Keywords string `json:"keywords,optional"` // 关键字  
493 - BeginTime int64 `json:"beginTime,optional"` // 开始时间  
494 - EndTime int64 `json:"endTime,optional"` // 结束时间 488 + AuthorId int64 `json:"authorId"` // 特定作者ID
  489 + LastArticleId int64 `json:"lastArticleId,optional"` // 最后文章ID
  490 + Size int `json:"size"` // 数量
  491 + OrderByKey string `json:"orderByKey,options=HotScore|All|Time,optional,default=desc"` // 按规则排序 (热度:HotScore All:时间排序 Time:时间排序)
  492 + OrderByValue string `json:"orderByValue,options=asc||desc,optional"`
  493 + Keywords string `json:"keywords,optional"` // 关键字
  494 + BeginTime int64 `json:"beginTime,optional"` // 开始时间
  495 + EndTime int64 `json:"endTime,optional"` // 结束时间
495 } 496 }
496 497
497 type MiniHomepageUserNewsResposne struct { 498 type MiniHomepageUserNewsResposne struct {
@@ -234,6 +234,8 @@ func (repository *ArticleRepository) FindAuthorsLatestArticle(ctx context.Contex @@ -234,6 +234,8 @@ func (repository *ArticleRepository) FindAuthorsLatestArticle(ctx context.Contex
234 } 234 }
235 if v, ok := queryOptions["orderByHotScore"]; ok { 235 if v, ok := queryOptions["orderByHotScore"]; ok {
236 tx.Order(fmt.Sprintf("(count_comment+count_love) %v", v)) 236 tx.Order(fmt.Sprintf("(count_comment+count_love) %v", v))
  237 + } else if v, ok := queryOptions["orderByAll"]; ok {
  238 + tx.Order(fmt.Sprintf("id %v", v))
237 } else { 239 } else {
238 tx.Order("id desc") 240 tx.Order("id desc")
239 } 241 }