go_dreamfactory/modules/pack/api_comp.go
2022-06-06 17:17:37 +08:00

50 lines
1.1 KiB
Go

package login
import (
"context"
"go_dreamfactory/comm"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"go_dreamfactory/sys/cache"
"github.com/liwei1dao/lego/sys/log"
)
const (
QueryUserPackReq = "pack.queryuserpackreq"
QueryUserPackResp = "pack.queryuserpackresp"
)
type Api_Comp struct {
modules.MComp_GateComp
}
///查询用户背包数据
func (this *Api_Comp) QueryUserPackReq(ctx context.Context, session comm.IUserSession, req *pb.QueryUserPackReq) (err error) {
var (
code pb.ErrorCode
pack *pb.DB_UserPackData
items []*pb.ItemAmount
)
defer func() {
session.SendMsg(QueryUserPackResp, &pb.QueryUserPackResp{Code: code, Items: items})
}()
if session.GetUserId() == 0 {
code = pb.ErrorCode_NoLogin
return
}
if pack, err = cache.Defsys.QueryUserPack(session.GetUserId()); err != nil {
log.Errorf("QueryUserPackReq err:%v", err)
code = pb.ErrorCode_CacheReadError
return
} else {
items = make([]*pb.ItemAmount, 0, len(pack.Pack))
for _, v := range pack.Pack {
if v.Itype == req.IType {
items = append(items, &pb.ItemAmount{IsNew: v.IsNew, ItemId: v.ItemId, Amount: v.Amount})
}
}
}
return nil
}