diff --git a/modules/sys/api_func.go b/modules/sys/api_func.go index adaa56f24..e2e554828 100644 --- a/modules/sys/api_func.go +++ b/modules/sys/api_func.go @@ -12,9 +12,8 @@ func (this *apiComp) FunclistCheck(session comm.IUserSession, req *pb.SysFuncLis } func (this *apiComp) Funclist(session comm.IUserSession, req *pb.SysFuncListReq) (code pb.ErrorCode, data proto.Message) { - rsp := &pb.SysFuncListResp{} - rsp.Cond = make(map[string]int32, 0) + iuser := this.module.ModuleUser user := iuser.GetUser(session.GetUserId()) if user == nil { @@ -22,14 +21,12 @@ func (this *apiComp) Funclist(session comm.IUserSession, req *pb.SysFuncListReq) return } - var funcList []string if len(req.Keys) == 0 { confList := this.module.configure.getOpencondList() for _, v := range confList { id := this.module.modelSys.validCond(session.GetUserId(), v) if id != "" { - funcList = append(funcList, id) - rsp.Cond[id] = 0 + rsp.FuncIds = append(rsp.FuncIds, id) } } } else { @@ -41,19 +38,11 @@ func (this *apiComp) Funclist(session comm.IUserSession, req *pb.SysFuncListReq) if conf, ok := opencfg.GetDataMap()[key]; ok { id := this.module.modelSys.validCond(session.GetUserId(), conf) if id != "" { - funcList = append(funcList, id) - rsp.Cond[id] = 0 + rsp.FuncIds = append(rsp.FuncIds, id) } } } } - - list, _ := this.module.modelSys.GetOpenCondList(session.GetUserId()) - for k, v := range list.Cond { - if _, ok := rsp.Cond[k]; ok { - rsp.Cond[k] = v - } - } if err := session.SendMsg(string(this.module.GetType()), SysSubTypeFunc, rsp); err != nil { code = pb.ErrorCode_SystemError } diff --git a/modules/sys/api_getlist.go b/modules/sys/api_getlist.go new file mode 100644 index 000000000..062cf0581 --- /dev/null +++ b/modules/sys/api_getlist.go @@ -0,0 +1,58 @@ +package sys + +import ( + "go_dreamfactory/comm" + "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" +) + +func (this *apiComp) FuncGetListCheck(session comm.IUserSession, req *pb.SysFuncListReq) (code pb.ErrorCode) { + return +} + +func (this *apiComp) FuncGetList(session comm.IUserSession, req *pb.SysFuncGetListReq) (code pb.ErrorCode, data proto.Message) { + + rsp := &pb.SysFuncGetListResp{} + rsp.Cond = make(map[string]int32, 0) + iuser := this.module.ModuleUser + user := iuser.GetUser(session.GetUserId()) + if user == nil { + code = pb.ErrorCode_UserSessionNobeing + return + } + + if len(req.Keys) == 0 { + confList := this.module.configure.getOpencondList() + for _, v := range confList { + id := this.module.modelSys.validCond(session.GetUserId(), v) + if id != "" { + rsp.Cond[id] = 0 + } + } + } else { + for _, key := range req.Keys { + opencfg, err := this.module.configure.getOpencondCfg() + if err != nil { + continue + } + if conf, ok := opencfg.GetDataMap()[key]; ok { + id := this.module.modelSys.validCond(session.GetUserId(), conf) + if id != "" { + rsp.Cond[id] = 0 + } + } + } + } + + list, _ := this.module.modelSys.GetOpenCondList(session.GetUserId()) + for k, v := range list.Cond { + if _, ok := rsp.Cond[k]; ok { + rsp.Cond[k] = v + } + } + if err := session.SendMsg(string(this.module.GetType()), "funcgetlist", rsp); err != nil { + code = pb.ErrorCode_SystemError + } + return +} diff --git a/pb/sys_msg.pb.go b/pb/sys_msg.pb.go index f72169d5c..3e8a06f00 100644 --- a/pb/sys_msg.pb.go +++ b/pb/sys_msg.pb.go @@ -72,7 +72,7 @@ type SysFuncListResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Cond map[string]int32 `protobuf:"bytes,1,rep,name=cond,proto3" json:"cond" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 功能开启条件 key opencond配置id value:0 自动激活 1 已经激活 + FuncIds []string `protobuf:"bytes,1,rep,name=funcIds,proto3" json:"funcIds"` //功能ID } func (x *SysFuncListResp) Reset() { @@ -107,7 +107,101 @@ func (*SysFuncListResp) Descriptor() ([]byte, []int) { return file_sys_sys_msg_proto_rawDescGZIP(), []int{1} } -func (x *SysFuncListResp) GetCond() map[string]int32 { +func (x *SysFuncListResp) GetFuncIds() []string { + if x != nil { + return x.FuncIds + } + return nil +} + +type SysFuncGetListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Keys []string `protobuf:"bytes,1,rep,name=keys,proto3" json:"keys"` //功能ID +} + +func (x *SysFuncGetListReq) Reset() { + *x = SysFuncGetListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sys_sys_msg_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SysFuncGetListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SysFuncGetListReq) ProtoMessage() {} + +func (x *SysFuncGetListReq) ProtoReflect() protoreflect.Message { + mi := &file_sys_sys_msg_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SysFuncGetListReq.ProtoReflect.Descriptor instead. +func (*SysFuncGetListReq) Descriptor() ([]byte, []int) { + return file_sys_sys_msg_proto_rawDescGZIP(), []int{2} +} + +func (x *SysFuncGetListReq) GetKeys() []string { + if x != nil { + return x.Keys + } + return nil +} + +type SysFuncGetListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cond map[string]int32 `protobuf:"bytes,1,rep,name=cond,proto3" json:"cond" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 功能开启条件 key opencond配置id value:0 自动激活 1 已经激活 +} + +func (x *SysFuncGetListResp) Reset() { + *x = SysFuncGetListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sys_sys_msg_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SysFuncGetListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SysFuncGetListResp) ProtoMessage() {} + +func (x *SysFuncGetListResp) ProtoReflect() protoreflect.Message { + mi := &file_sys_sys_msg_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SysFuncGetListResp.ProtoReflect.Descriptor instead. +func (*SysFuncGetListResp) Descriptor() ([]byte, []int) { + return file_sys_sys_msg_proto_rawDescGZIP(), []int{3} +} + +func (x *SysFuncGetListResp) GetCond() map[string]int32 { if x != nil { return x.Cond } @@ -126,7 +220,7 @@ type SysFuncActivateReq struct { func (x *SysFuncActivateReq) Reset() { *x = SysFuncActivateReq{} if protoimpl.UnsafeEnabled { - mi := &file_sys_sys_msg_proto_msgTypes[2] + mi := &file_sys_sys_msg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -139,7 +233,7 @@ func (x *SysFuncActivateReq) String() string { func (*SysFuncActivateReq) ProtoMessage() {} func (x *SysFuncActivateReq) ProtoReflect() protoreflect.Message { - mi := &file_sys_sys_msg_proto_msgTypes[2] + mi := &file_sys_sys_msg_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -152,7 +246,7 @@ func (x *SysFuncActivateReq) ProtoReflect() protoreflect.Message { // Deprecated: Use SysFuncActivateReq.ProtoReflect.Descriptor instead. func (*SysFuncActivateReq) Descriptor() ([]byte, []int) { - return file_sys_sys_msg_proto_rawDescGZIP(), []int{2} + return file_sys_sys_msg_proto_rawDescGZIP(), []int{4} } func (x *SysFuncActivateReq) GetCid() string { @@ -173,7 +267,7 @@ type SysFuncActivateResp struct { func (x *SysFuncActivateResp) Reset() { *x = SysFuncActivateResp{} if protoimpl.UnsafeEnabled { - mi := &file_sys_sys_msg_proto_msgTypes[3] + mi := &file_sys_sys_msg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -186,7 +280,7 @@ func (x *SysFuncActivateResp) String() string { func (*SysFuncActivateResp) ProtoMessage() {} func (x *SysFuncActivateResp) ProtoReflect() protoreflect.Message { - mi := &file_sys_sys_msg_proto_msgTypes[3] + mi := &file_sys_sys_msg_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -199,7 +293,7 @@ func (x *SysFuncActivateResp) ProtoReflect() protoreflect.Message { // Deprecated: Use SysFuncActivateResp.ProtoReflect.Descriptor instead. func (*SysFuncActivateResp) Descriptor() ([]byte, []int) { - return file_sys_sys_msg_proto_rawDescGZIP(), []int{3} + return file_sys_sys_msg_proto_rawDescGZIP(), []int{5} } func (x *SysFuncActivateResp) GetCid() string { @@ -215,21 +309,27 @@ var file_sys_sys_msg_proto_rawDesc = []byte{ 0x0a, 0x11, 0x73, 0x79, 0x73, 0x2f, 0x73, 0x79, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x24, 0x0a, 0x0e, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x7a, 0x0a, 0x0f, 0x53, 0x79, 0x73, - 0x46, 0x75, 0x6e, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x04, - 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x79, 0x73, - 0x46, 0x75, 0x6e, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f, 0x6e, - 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x09, - 0x43, 0x6f, 0x6e, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x26, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x27, 0x0a, - 0x13, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x2b, 0x0a, 0x0f, 0x53, 0x79, 0x73, + 0x46, 0x75, 0x6e, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x75, 0x6e, 0x63, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x66, + 0x75, 0x6e, 0x63, 0x49, 0x64, 0x73, 0x22, 0x27, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, + 0x63, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, + 0x80, 0x01, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x47, 0x65, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x47, 0x65, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x6f, 0x6e, + 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x26, 0x0a, 0x12, 0x53, 0x79, 0x73, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x79, + 0x73, 0x46, 0x75, 0x6e, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x63, 0x69, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -244,16 +344,18 @@ func file_sys_sys_msg_proto_rawDescGZIP() []byte { return file_sys_sys_msg_proto_rawDescData } -var file_sys_sys_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_sys_sys_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_sys_sys_msg_proto_goTypes = []interface{}{ (*SysFuncListReq)(nil), // 0: SysFuncListReq (*SysFuncListResp)(nil), // 1: SysFuncListResp - (*SysFuncActivateReq)(nil), // 2: SysFuncActivateReq - (*SysFuncActivateResp)(nil), // 3: SysFuncActivateResp - nil, // 4: SysFuncListResp.CondEntry + (*SysFuncGetListReq)(nil), // 2: SysFuncGetListReq + (*SysFuncGetListResp)(nil), // 3: SysFuncGetListResp + (*SysFuncActivateReq)(nil), // 4: SysFuncActivateReq + (*SysFuncActivateResp)(nil), // 5: SysFuncActivateResp + nil, // 6: SysFuncGetListResp.CondEntry } var file_sys_sys_msg_proto_depIdxs = []int32{ - 4, // 0: SysFuncListResp.cond:type_name -> SysFuncListResp.CondEntry + 6, // 0: SysFuncGetListResp.cond:type_name -> SysFuncGetListResp.CondEntry 1, // [1:1] is the sub-list for method output_type 1, // [1:1] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -292,7 +394,7 @@ func file_sys_sys_msg_proto_init() { } } file_sys_sys_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SysFuncActivateReq); i { + switch v := v.(*SysFuncGetListReq); i { case 0: return &v.state case 1: @@ -304,6 +406,30 @@ func file_sys_sys_msg_proto_init() { } } file_sys_sys_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SysFuncGetListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sys_sys_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SysFuncActivateReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sys_sys_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SysFuncActivateResp); i { case 0: return &v.state @@ -322,7 +448,7 @@ func file_sys_sys_msg_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sys_sys_msg_proto_rawDesc, NumEnums: 0, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 0, },