go_dreamfactory/modules/hero/api_info.go
2023-04-14 12:21:58 +08:00

53 lines
1.1 KiB
Go

package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
)
//参数校验
func (this *apiComp) InfoCheck(session comm.IUserSession, req *pb.HeroInfoReq) (code pb.ErrorCode) {
if len(req.HeroId) == 0 {
code = pb.ErrorCode_ReqParameterError
}
return
}
func (this *apiComp) Info(session comm.IUserSession, req *pb.HeroInfoReq) (code pb.ErrorCode, data *pb.ErrorData) {
var (
uid string
)
if code = this.InfoCheck(session, req); code != pb.ErrorCode_Success {
return
}
rsp := &pb.HeroInfoResp{}
if req.Uid == "" {
uid = session.GetUserId()
} else {
uid = req.Uid
}
if tag, _, ok := utils.UIdSplit(uid); ok {
if conn, err := db.ServerDBConn(tag); err == nil {
dbModel := db.NewDBModel(comm.TableHero, time.Hour, conn)
for _, v := range req.HeroId {
hero := &pb.DBHero{}
if err = dbModel.GetListObj(uid, v, hero); err == nil {
rsp.Base = append(rsp.Base, hero)
} else {
this.module.Errorf("err:%v,heroid:%s,uid:%s", err, v, uid)
}
}
}
}
rsp.Uid = uid
session.SendMsg(string(this.module.GetType()), HeroSubTypeInfo, rsp)
return
}