41 lines
814 B
Go
41 lines
814 B
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"time"
|
||
|
|
||
|
"go-common/app/admin/main/relation/model"
|
||
|
)
|
||
|
|
||
|
// RelationLog is.
|
||
|
func (s *Service) RelationLog(ctx context.Context, mid, fid int64, from time.Time, to time.Time) (model.RelationLogList, error) {
|
||
|
logs, err := s.dao.RelationLogs(ctx, mid, fid, from, to)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
// order log by mtime with desc
|
||
|
logs.OrderByMTime(true)
|
||
|
|
||
|
uids := make([]int64, 0, len(logs)*2)
|
||
|
for _, l := range logs {
|
||
|
uids = append(uids, l.Mid)
|
||
|
uids = append(uids, l.Fid)
|
||
|
}
|
||
|
uinfos, err := s.dao.RPCInfos(ctx, uids)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
for _, l := range logs {
|
||
|
if mi, ok := uinfos[l.Mid]; ok {
|
||
|
l.MemberName = mi.Name
|
||
|
}
|
||
|
}
|
||
|
for _, l := range logs {
|
||
|
if fi, ok := uinfos[l.Fid]; ok {
|
||
|
l.FollowingName = fi.Name
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return logs, nil
|
||
|
}
|