123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package dao
- import (
- "context"
- "go-common/app/interface/bbq/app-bbq/api/http/v1"
- "go-common/app/interface/bbq/app-bbq/model"
- user "go-common/app/service/bbq/user/api"
- accountv1 "go-common/app/service/main/account/api"
- "go-common/library/ecode"
- "go-common/library/log"
- )
- //GetUserBProfile 获取用户全量b站信息
- func (d *Dao) GetUserBProfile(c context.Context, mid int64) (res *accountv1.ProfileReply, err error) {
- req := &accountv1.MidReq{
- Mid: mid,
- RealIp: "",
- }
- res, err = d.accountClient.Profile3(c, req)
- return
- }
- // Login .
- func (d *Dao) Login(c context.Context, userBase *user.UserBase) (res *user.UserBase, err error) {
- res, err = d.userClient.Login(c, userBase)
- if err != nil {
- log.Errorv(c, log.KV("log", "login fail"))
- }
- return
- }
- // BatchUserInfo 提供批量获取UserInfo的方法
- // 由于user service返回的结构和video的回包不同,因此这里进行映射,返回video-c的结构,避免外部使用方多次映射
- func (d *Dao) BatchUserInfo(c context.Context, visitorMID int64, MIDs []int64, needDesc, needStat, needFollowState bool) (res map[int64]*v1.UserInfo, err error) {
- res = make(map[int64]*v1.UserInfo)
- if len(MIDs) == 0 {
- return
- }
- if len(MIDs) > model.BatchUserLen {
- err = ecode.BatchUserTooLong
- return
- }
- userReq := &user.ListUserInfoReq{Mid: visitorMID, UpMid: MIDs, NeedDesc: needDesc, NeedStat: needStat, NeedFollowState: needFollowState}
- reply, err := d.userClient.ListUserInfo(c, userReq)
- if err != nil {
- log.Errorv(c, log.KV("log", "get user info fail: req=%s"+userReq.String()))
- return
- }
- for _, userInfo := range reply.List {
- newUserInfo := &v1.UserInfo{UserBase: *userInfo.UserBase}
- if userInfo.UserStat != nil {
- newUserInfo.UserStat = *userInfo.UserStat
- }
- newUserInfo.FollowState = userInfo.FollowState
- res[userInfo.UserBase.Mid] = newUserInfo
- }
- return
- }
- //JustGetUserBase 只取UserBase,不要其他
- func (d *Dao) JustGetUserBase(c context.Context, mids []int64) (res map[int64]*user.UserBase, err error) {
- res = make(map[int64]*user.UserBase)
- userInfos, err := d.BatchUserInfo(c, 0, mids, false, false, false)
- if err != nil {
- log.Warnv(c, log.KV("log", "get user info fail"))
- return
- }
- for mid, userInfo := range userInfos {
- res[mid] = &userInfo.UserBase
- }
- return
- }
- // EditUserBase .
- func (d *Dao) EditUserBase(c context.Context, userBase *user.UserBase) (err error) {
- _, err = d.userClient.UserEdit(c, userBase)
- if err != nil {
- log.Warnw(c, "log", "edit user base fail: req="+userBase.String(), "err", err.Error())
- return
- }
- return
- }
- // PhoneCheck .
- func (d *Dao) PhoneCheck(c context.Context, mid int64) (telStatus int32, err error) {
- req := &user.PhoneCheckReq{Mid: mid}
- res, err := d.userClient.PhoneCheck(c, req)
- if err != nil {
- log.Errorw(c, "log", "call phone check fail", "err", err, "mid", mid)
- return
- }
- telStatus = res.TelStatus
- return
- }
|