package sys import ( "go_dreamfactory/comm" "go_dreamfactory/pb" "google.golang.org/protobuf/proto" ) func (this *apiComp) FunclistCheck(session comm.IUserSession, req *pb.SysFuncListReq) (code pb.ErrorCode) { return } func (this *apiComp) Funclist(session comm.IUserSession, req *pb.SysFuncListReq) (code pb.ErrorCode, data proto.Message) { rsp := &pb.SysFuncListResp{} iuser := this.moduleSys.ModuleUser user := iuser.GetUser(session.GetUserId()) if user == nil { code = pb.ErrorCode_UserSessionNobeing return } var funcList []string if len(req.Keys) == 0 { confList := this.moduleSys.configure.getOpencondList() for _, v := range confList { // 返回未开启的功能列表 for _, conf := range v.Main { // 校验玩家等级 if conf.Key == "platlv" && user.Lv >= conf.Param { funcList = append(funcList, v.Id) continue } } } } else { for _, key := range req.Keys { opencfg, err := this.moduleSys.configure.getOpencondCfg() if err != nil { continue } if conf, ok := opencfg.GetDataMap()[key]; ok { for _, main := range conf.Main { // 校验玩家等级 if main.Key == "platlv" && user.Lv >= main.Param { funcList = append(funcList, key) continue } } } } } rsp.FuncIds = funcList if err := session.SendMsg(string(this.moduleSys.GetType()), SysSubTypeFunc, rsp); err != nil { code = pb.ErrorCode_SystemError } return }