go_dreamfactory/modules/hero/api_info.go

55 lines
1.1 KiB
Go

package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"go_dreamfactory/sys/db"
"go_dreamfactory/utils"
"time"
"google.golang.org/protobuf/proto"
)
//参数校验
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 proto.Message) {
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
}
tag, _, b := utils.UIdSplit(uid)
if b {
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", err)
}
}
}
}
session.SendMsg(string(this.module.GetType()), HeroSubTypeInfo, rsp)
return
}