123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package service
- import (
- "context"
- "fmt"
- "math"
- "strconv"
- "strings"
- "go-common/app/interface/openplatform/article/model"
- account "go-common/app/service/main/account/model"
- )
- // AnniversaryInfo get reader and author info in passed year
- func (s *Service) AnniversaryInfo(c context.Context, mid int64) (res *model.AnniversaryInfo, err error) {
- if res, err = s.dao.CacheAnniversary(c, mid); err != nil {
- return
- }
- if res == nil {
- res = new(model.AnniversaryInfo)
- }
- res.Mid = mid
- user, _ := s.accountRPC.Info3(c, &account.ArgMid{Mid: mid})
- if user != nil {
- res.Uname = user.Name
- res.Face = user.Face
- }
- if res.AuthorInfo != nil && res.AuthorInfo.ReaderMid != 0 {
- user, _ := s.accountRPC.Info3(c, &account.ArgMid{Mid: res.AuthorInfo.ReaderMid})
- if user != nil {
- res.AuthorInfo.ReaderUname = user.Name
- res.AuthorInfo.ReaderFace = user.Face
- }
- }
- if res.ReaderInfo != nil && res.ReaderInfo.AuthorMid != 0 {
- wordsFloat := float64(res.ReaderInfo.Words) / 1000
- res.ReaderInfo.Words = int64(math.Pow(wordsFloat, 2))
- rankFloat, _ := strconv.ParseFloat(strings.Split(res.ReaderInfo.Rank, "%")[0], 10)
- rankFloat = rankFloat / 100
- rankFloat = math.Pow(rankFloat, 2)
- res.ReaderInfo.Rank = fmt.Sprintf("%.2f", rankFloat*100) + "%"
- user, _ := s.accountRPC.Info3(c, &account.ArgMid{Mid: res.ReaderInfo.AuthorMid})
- if user != nil {
- res.ReaderInfo.AuthorUname = user.Name
- }
- }
- return
- }
|