You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
6.3 KiB
198 lines
6.3 KiB
package service |
|
|
|
import ( |
|
"context" |
|
|
|
"go-common/app/service/main/archive/api" |
|
arcmdl "go-common/app/service/main/archive/model/archive" |
|
favpb "go-common/app/service/main/favorite/api" |
|
favmdl "go-common/app/service/main/favorite/model" |
|
"go-common/library/ecode" |
|
"go-common/library/log" |
|
"go-common/library/time" |
|
) |
|
|
|
// ArcRPC find archive by rpc |
|
func (s *Service) ArcRPC(c context.Context, aid int64) (a *api.Arc, err error) { |
|
argAid := &arcmdl.ArgAid2{ |
|
Aid: aid, |
|
} |
|
if a, err = s.arcRPC.Archive3(c, argAid); err != nil { |
|
log.Error("s.arcRPC.Archive3(%v), error(%v)", argAid, err) |
|
} |
|
if !a.IsNormal() { |
|
err = ecode.ArchiveNotExist |
|
} |
|
return |
|
} |
|
|
|
// ArcsRPC find archives by rpc |
|
func (s *Service) ArcsRPC(c context.Context, aids []int64) (as map[int64]*api.Arc, err error) { |
|
if len(aids) == 0 { |
|
return |
|
} |
|
argAids := &arcmdl.ArgAids2{ |
|
Aids: aids, |
|
} |
|
if as, err = s.arcRPC.Archives3(c, argAids); err != nil { |
|
log.Error("s.arcRPC.Archives3(%v, archives), err(%v)", argAids, err) |
|
} |
|
return |
|
} |
|
|
|
// AddFavRPC add favorite . |
|
func (s *Service) AddFavRPC(c context.Context, typ int8, mid, aid, fid int64) (err error) { |
|
arg := &favpb.AddFavReq{Tp: int32(typ), Mid: mid, Oid: aid, Fid: fid} |
|
_, err = s.favClient.AddFav(c, arg) |
|
if err != nil { |
|
log.Error("s.favClient.AddFav(%+v) error(%v)", arg, err) |
|
} |
|
return |
|
} |
|
|
|
// DelFavRPC del favorite . |
|
func (s *Service) DelFavRPC(c context.Context, typ int8, mid, aid, fid int64) (err error) { |
|
arg := &favpb.DelFavReq{Tp: int32(typ), Mid: mid, Oid: aid, Fid: fid} |
|
if _, err = s.favClient.DelFav(c, arg); err != nil { |
|
log.Error("s.favClient.DelFavRPC(%+v) error(%v)", arg, err) |
|
} |
|
return |
|
} |
|
|
|
// FavoritesRPC favorites list. |
|
func (s *Service) FavoritesRPC(c context.Context, typ int8, mid, vmid, fid int64, tid int, keyword, order string, pn, ps int) (favs *favmdl.Favorites, err error) { |
|
arg := &favpb.FavoritesReq{Tp: int32(typ), Mid: mid, Uid: vmid, Fid: fid, Tid: int32(tid), Keyword: keyword, Order: order, Pn: int32(pn), Ps: int32(ps)} |
|
var reply *favpb.FavoritesReply |
|
if reply, err = s.favClient.Favorites(c, arg); err != nil { |
|
log.Error("s.favClient.Favorites(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
favs = &favmdl.Favorites{} |
|
favs.Page.Count = int(reply.Res.Page.Count) |
|
favs.Page.Num = int(reply.Res.Page.Num) |
|
favs.Page.Size = int(reply.Res.Page.Size_) |
|
for _, data := range reply.Res.List { |
|
favs.List = append(favs.List, &favmdl.Favorite{ |
|
ID: data.Id, |
|
Oid: data.Oid, |
|
Mid: data.Mid, |
|
Fid: data.Fid, |
|
Type: int8(data.Type), |
|
State: int8(data.State), |
|
CTime: time.Time(data.Ctime), |
|
MTime: time.Time(data.Mtime), |
|
}) |
|
} |
|
return |
|
} |
|
|
|
// IsFavByFidRPC return user whether favored |
|
func (s *Service) IsFavByFidRPC(c context.Context, typ int8, mid, aid int64, fid int64) (res bool, err error) { |
|
arg := &favpb.IsFavoredByFidReq{Type: int32(typ), Mid: mid, Oid: aid, Fid: fid} |
|
var reply *favpb.IsFavoredReply |
|
if reply, err = s.favClient.IsFavoredByFid(c, arg); err != nil { |
|
log.Error("s.favClient.IsFavoredByFid(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
res = reply.Faved |
|
return |
|
} |
|
|
|
// IsFavRPC return user whether favored |
|
func (s *Service) IsFavRPC(c context.Context, typ int8, mid, aid int64) (res bool, err error) { |
|
arg := &favpb.IsFavoredReq{Typ: int32(typ), Mid: mid, Oid: aid} |
|
var reply *favpb.IsFavoredReply |
|
if reply, err = s.favClient.IsFavored(c, arg); err != nil { |
|
log.Error("s.favClient.IsFavored(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
res = reply.Faved |
|
return |
|
} |
|
|
|
// InDefaultRPC return aid whether in default fodler. |
|
func (s *Service) InDefaultRPC(c context.Context, typ int8, mid, aid int64) (res bool, err error) { |
|
arg := &favpb.InDefaultFolderReq{Typ: int32(typ), Mid: mid, Oid: aid} |
|
var reply *favpb.InDefaultFolderReply |
|
if reply, err = s.favClient.InDefault(c, arg); err != nil { |
|
log.Error("s.favClient.IsFavored(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
res = reply.IsIn |
|
return |
|
} |
|
|
|
// IsFavsRPC return user's oids whether favored |
|
func (s *Service) IsFavsRPC(c context.Context, typ int8, mid int64, aids []int64) (res map[int64]bool, err error) { |
|
arg := &favpb.IsFavoredsReq{Typ: int32(typ), Mid: mid, Oids: aids} |
|
var reply *favpb.IsFavoredsReply |
|
if reply, err = s.favClient.IsFavoreds(c, arg); err != nil { |
|
log.Error("s.favClient.IsFavoreds(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
res = reply.Faveds |
|
return |
|
} |
|
|
|
// AllFoldersRPC user's folders list. |
|
func (s *Service) AllFoldersRPC(c context.Context, typ int8, mid, vmid, oid int64, ip string) (fs []*favmdl.Folder, err error) { |
|
arg := &favpb.UserFoldersReq{Typ: int32(typ), Mid: mid, Vmid: vmid, Oid: oid} |
|
var reply *favpb.UserFoldersReply |
|
if reply, err = s.favClient.UserFolders(c, arg); err != nil { |
|
log.Error("s.favClient.UserFolders(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
fs = reply.GetRes() |
|
return |
|
} |
|
|
|
// FolderRPC user's folder . |
|
func (s *Service) FolderRPC(c context.Context, typ int8, fid, mid, vmid int64) (f *favmdl.Folder, err error) { |
|
arg := &favpb.UserFolderReq{Typ: int32(typ), Mid: mid, Vmid: vmid, Fid: fid} |
|
var reply *favpb.UserFolderReply |
|
if reply, err = s.favClient.UserFolder(c, arg); err != nil { |
|
log.Error("s.favClient.UserFolder(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
f = reply.GetRes() |
|
return |
|
} |
|
|
|
// TlistsRPC archive type list. |
|
func (s *Service) TlistsRPC(c context.Context, typ int8, mid, vmid, fid int64) (ps []*favmdl.Partition, err error) { |
|
arg := &favpb.TlistsReq{Tp: int32(typ), Mid: mid, Uid: vmid, Fid: fid} |
|
var reply *favpb.TlistsReply |
|
if reply, err = s.favClient.Tlists(c, arg); err != nil { |
|
log.Error("s.favClient.Tlists(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
ps = make([]*favmdl.Partition, 0) |
|
for _, v := range reply.Res { |
|
ps = append(ps, &favmdl.Partition{ |
|
Tid: int(v.Tid), |
|
Name: v.Name, |
|
Count: int(v.Count), |
|
}) |
|
} |
|
return |
|
} |
|
|
|
// RecentsRPC recent favs . |
|
func (s *Service) RecentsRPC(c context.Context, typ int8, mid int64, size int) (aids []int64, err error) { |
|
arg := &favpb.RecentFavsReq{Tp: int32(typ), Mid: mid, Size_: int32(size)} |
|
var reply *favpb.RecentFavsReply |
|
if reply, err = s.favClient.RecentFavs(c, arg); err != nil { |
|
log.Error("s.favClient.RecentFavs(%+v) error(%v)", arg, err) |
|
return |
|
} |
|
aids = reply.GetRes() |
|
return |
|
} |
|
|
|
// TypesRPC find all archives's type by rpc |
|
func (s *Service) TypesRPC(c context.Context) (ats map[int16]*arcmdl.ArcType, err error) { |
|
if ats, err = s.arcRPC.Types2(c); err != nil { |
|
log.Error("s.arcRPC.Types2(), error(%v)", err) |
|
} |
|
return |
|
}
|
|
|