From 46d3f672bff6bc8b1f13abce48e93b4e7226d33a Mon Sep 17 00:00:00 2001 From: zzw <1464003642@qq.com> Date: Fri, 16 Oct 2026 15:36:17 +0800 Subject: [PATCH] feat: device info and bind --- pkg/utils/encrypt.go | 3 + rpc/analysis/analysis.pb | Bin 15585 -> 16311 bytes rpc/analysis/analysis.proto | 52 ++ rpc/analysis/pb/analysis.pb.go | 281 +++++++++- rpc/analysis/pb/analysis_grpc.pb.go | 206 ++++++- rpc/equipment/equipment.pb | Bin 18539 -> 19761 bytes rpc/equipment/equipment.proto | 44 ++ rpc/equipment/pb/equipment.pb.go | 504 ++++++++++++++---- rpc/equipment/pb/equipment_grpc.pb.go | 154 +++++- .../client/analysisstore/analysisStore.go | 4 - .../client/analysisuser/analysisUser.go | 49 +- services/analysis/internal/dao/authorize.go | 14 +- services/analysis/internal/dao/const.go | 6 +- .../logic/analysisstore/storeAuthLogic.go | 4 +- .../logic/analysisuser/deviceBindLogic.go | 76 +++ .../logic/analysisuser/deviceInfoLogic.go | 64 +++ .../logic/analysisuser/userAuthDeleteLogic.go | 46 ++ .../logic/analysisuser/userAuthListLogic.go | 112 ++++ .../logic/analysisuser/userAuthLogic.go | 8 +- .../logic/analysisuser/userAuthUpdateLogic.go | 46 ++ .../internal/logic/common/authorize.go | 44 +- .../analysis/internal/logic/common/helper.go | 22 + services/analysis/internal/model/authorize.go | 2 +- .../analysisstore/analysisStoreServer.go | 2 - .../server/analysisuser/analysisUserServer.go | 26 +- .../analysis/internal/svc/servicecontext.go | 26 +- services/analysis/run.toml | 2 + services/analysis/validator/user.go | 36 ++ .../equipment/equipmentclient/equipment.go | 30 +- services/equipment/internal/dao/bind.go | 15 +- .../internal/logic/apiBindAddLogic.go | 2 +- .../internal/logic/apiBindInfoLogic.go | 71 +++ .../internal/logic/apiBindUpdateLogic.go | 60 +++ .../internal/logic/apiMaskAddLogic.go | 2 +- .../internal/logic/internalBindAddLogic.go | 109 ++++ .../internal/logic/internalBindInfoLogic.go | 74 +++ .../internal/server/equipmentServer.go | 22 +- services/equipment/validator/bind.go | 68 ++- services/user/internal/logic/authHelper.go | 5 +- services/user/internal/logic/bizUser.go | 8 +- services/user/internal/logic/loginLogic.go | 2 +- services/user/internal/svc/servicecontext.go | 38 +- 42 files changed, 2142 insertions(+), 197 deletions(-) create mode 100644 services/analysis/internal/logic/analysisuser/deviceBindLogic.go create mode 100644 services/analysis/internal/logic/analysisuser/deviceInfoLogic.go create mode 100644 services/analysis/internal/logic/analysisuser/userAuthDeleteLogic.go create mode 100644 services/analysis/internal/logic/analysisuser/userAuthListLogic.go create mode 100644 services/analysis/internal/logic/analysisuser/userAuthUpdateLogic.go create mode 100644 services/equipment/internal/logic/apiBindInfoLogic.go create mode 100644 services/equipment/internal/logic/apiBindUpdateLogic.go create mode 100644 services/equipment/internal/logic/internalBindAddLogic.go create mode 100644 services/equipment/internal/logic/internalBindInfoLogic.go diff --git a/pkg/utils/encrypt.go b/pkg/utils/encrypt.go index 8c7c674..f9738eb 100644 --- a/pkg/utils/encrypt.go +++ b/pkg/utils/encrypt.go @@ -101,6 +101,9 @@ func EncryptPhone(phone string) (string, Error) { } func DecryptPhone(phone string) (string, Error) { + if phone == StringEmpty || len(phone) < 72 { + return StringEmpty, nil + } // 提取各部分 prefix := phone[NumberZero:24] // 前三位 middle := phone[24:48] // 中四位 diff --git a/rpc/analysis/analysis.pb b/rpc/analysis/analysis.pb index 816f373dc0e1c3b45e4ca572a15d86330f906756..d86410dd3c1a5ae02149cf156f7738b7c562d870 100644 GIT binary patch delta 557 zcmaD@xxIdalPS|@kP(r6n0YnZ+eRsf9|)T!Jtmm(-lpl2o9e z5FZy)W{L!(0;2|V5Rj$hflw4$kdla1k&rSMZ&_kaW=dvBWqe6yZmI+mP(No74@@w` z2`H$f!^P{8T9%od>Xez60lkF^}%u9iu*G~lcUOxw@ z+=@|4D4&ZDrV`?PA!$rACd*mNaq2W(elnR!O-XU`11m90upuen07Ekd5tfh<~0i~Y=3`-QPpy0yP3KE5B<%Vj_ M1d46mZ>_`#06}fG^8f$< delta 33 pcmdm9|FCj{lPS|&{>?6?LCl-OEwve${xffGvHH)rd4`=lBLL%+40Heh diff --git a/rpc/analysis/analysis.proto b/rpc/analysis/analysis.proto index 7a08293..2c2b41c 100644 --- a/rpc/analysis/analysis.proto +++ b/rpc/analysis/analysis.proto @@ -58,6 +58,41 @@ service AnalysisUser { body: "*" }; } + + rpc UserAuthList(UserAuthListReq) returns (Response) { + option (google.api.http) = { + post: "/api/v2/analysis/user/auth/list" + body: "*" + }; + } + + rpc UserAuthDelete(UserAuthDeleteReq) returns (Response) { + option (google.api.http) = { + post: "/api/v2/analysis/user/auth/delete" + body: "*" + }; + } + + rpc UserAuthUpdate(UserAuthUpdateReq) returns (Response) { + option (google.api.http) = { + post: "/api/v2/analysis/user/auth/update" + body: "*" + }; + } + + rpc DeviceBind(DeviceBindReq) returns (Response) { + option (google.api.http) = { + post: "/api/v2/analysis/device/bind" + body: "*" + }; + } + + rpc DeviceInfo(DeviceInfoReq) returns (Response) { + option (google.api.http) = { + post: "/api/v2/analysis/device/info" + body: "*" + }; + } } service AnalysisStore { @@ -134,3 +169,20 @@ message UserAuthReq { int64 store_id = 2; string validity_time = 3; } + +message UserAuthListReq {} + +message UserAuthDeleteReq { + int64 id = 1; +} + +message UserAuthUpdateReq { + int64 id = 1; + string validity_time = 2; +} + +message DeviceBindReq { + string device_no = 1; +} + +message DeviceInfoReq {} diff --git a/rpc/analysis/pb/analysis.pb.go b/rpc/analysis/pb/analysis.pb.go index b2b90b1..f4b9adf 100644 --- a/rpc/analysis/pb/analysis.pb.go +++ b/rpc/analysis/pb/analysis.pb.go @@ -638,6 +638,218 @@ func (x *UserAuthReq) GetValidityTime() string { return "" } +type UserAuthListReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserAuthListReq) Reset() { + *x = UserAuthListReq{} + mi := &file_analysis_analysis_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserAuthListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAuthListReq) ProtoMessage() {} + +func (x *UserAuthListReq) ProtoReflect() protoreflect.Message { + mi := &file_analysis_analysis_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAuthListReq.ProtoReflect.Descriptor instead. +func (*UserAuthListReq) Descriptor() ([]byte, []int) { + return file_analysis_analysis_proto_rawDescGZIP(), []int{12} +} + +type UserAuthDeleteReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserAuthDeleteReq) Reset() { + *x = UserAuthDeleteReq{} + mi := &file_analysis_analysis_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserAuthDeleteReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAuthDeleteReq) ProtoMessage() {} + +func (x *UserAuthDeleteReq) ProtoReflect() protoreflect.Message { + mi := &file_analysis_analysis_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAuthDeleteReq.ProtoReflect.Descriptor instead. +func (*UserAuthDeleteReq) Descriptor() ([]byte, []int) { + return file_analysis_analysis_proto_rawDescGZIP(), []int{13} +} + +func (x *UserAuthDeleteReq) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type UserAuthUpdateReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ValidityTime string `protobuf:"bytes,2,opt,name=validity_time,json=validityTime,proto3" json:"validity_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UserAuthUpdateReq) Reset() { + *x = UserAuthUpdateReq{} + mi := &file_analysis_analysis_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UserAuthUpdateReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserAuthUpdateReq) ProtoMessage() {} + +func (x *UserAuthUpdateReq) ProtoReflect() protoreflect.Message { + mi := &file_analysis_analysis_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserAuthUpdateReq.ProtoReflect.Descriptor instead. +func (*UserAuthUpdateReq) Descriptor() ([]byte, []int) { + return file_analysis_analysis_proto_rawDescGZIP(), []int{14} +} + +func (x *UserAuthUpdateReq) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UserAuthUpdateReq) GetValidityTime() string { + if x != nil { + return x.ValidityTime + } + return "" +} + +type DeviceBindReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + DeviceNo string `protobuf:"bytes,1,opt,name=device_no,json=deviceNo,proto3" json:"device_no,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceBindReq) Reset() { + *x = DeviceBindReq{} + mi := &file_analysis_analysis_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceBindReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceBindReq) ProtoMessage() {} + +func (x *DeviceBindReq) ProtoReflect() protoreflect.Message { + mi := &file_analysis_analysis_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceBindReq.ProtoReflect.Descriptor instead. +func (*DeviceBindReq) Descriptor() ([]byte, []int) { + return file_analysis_analysis_proto_rawDescGZIP(), []int{15} +} + +func (x *DeviceBindReq) GetDeviceNo() string { + if x != nil { + return x.DeviceNo + } + return "" +} + +type DeviceInfoReq struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceInfoReq) Reset() { + *x = DeviceInfoReq{} + mi := &file_analysis_analysis_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceInfoReq) ProtoMessage() {} + +func (x *DeviceInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_analysis_analysis_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceInfoReq.ProtoReflect.Descriptor instead. +func (*DeviceInfoReq) Descriptor() ([]byte, []int) { + return file_analysis_analysis_proto_rawDescGZIP(), []int{16} +} + var File_analysis_analysis_proto protoreflect.FileDescriptor const file_analysis_analysis_proto_rawDesc = "" + @@ -677,18 +889,34 @@ const file_analysis_analysis_proto_rawDesc = "" + "\vUserAuthReq\x12\x12\n" + "\x04type\x18\x01 \x01(\x05R\x04type\x12\x19\n" + "\bstore_id\x18\x02 \x01(\x03R\astoreId\x12#\n" + - "\rvalidity_time\x18\x03 \x01(\tR\fvalidityTime2\xa7\x02\n" + + "\rvalidity_time\x18\x03 \x01(\tR\fvalidityTime\"\x11\n" + + "\x0fUserAuthListReq\"#\n" + + "\x11UserAuthDeleteReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\"H\n" + + "\x11UserAuthUpdateReq\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12#\n" + + "\rvalidity_time\x18\x02 \x01(\tR\fvalidityTime\",\n" + + "\rDeviceBindReq\x12\x1b\n" + + "\tdevice_no\x18\x01 \x01(\tR\bdeviceNo\"\x0f\n" + + "\rDeviceInfoReq2\xa7\x02\n" + "\bAnalysis\x12W\n" + "\x12InternalCreateUser\x12\x1f.analysis.InternalCreateUserReq\x1a .analysis.InternalCreateUserData\x12k\n" + "\rAgreementInfo\x12\x1a.analysis.AgreementInfoReq\x1a\x12.analysis.Response\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v2/analysis/agreement/info\x12U\n" + - "\x06Switch\x12\x13.analysis.SwitchReq\x1a\x12.analysis.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v2/analysis/switch2\xff\x03\n" + + "\x06Switch\x12\x13.analysis.SwitchReq\x1a\x12.analysis.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\"\x17/api/v2/analysis/switch2\x94\b\n" + "\fAnalysisUser\x12h\n" + "\fUserRegister\x12\x19.analysis.UserRegisterReq\x1a\x12.analysis.Response\")\x82\xd3\xe4\x93\x02#:\x01*\"\x1e/api/v2/analysis/user/register\x12\\\n" + "\bFaceBind\x12\x15.analysis.FaceBindReq\x1a\x12.analysis.Response\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v2/analysis/face/bind\x12e\n" + "\vUserImprove\x12\x18.analysis.UserImproveReq\x1a\x12.analysis.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\"\x1d/api/v2/analysis/user/improve\x12b\n" + "\n" + "UserDelete\x12\x17.analysis.UserDeleteReq\x1a\x12.analysis.Response\"'\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/api/v2/analysis/user/delete\x12\\\n" + - "\bUserAuth\x12\x15.analysis.UserAuthReq\x1a\x12.analysis.Response\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v2/analysis/user/auth2\xe4\x01\n" + + "\bUserAuth\x12\x15.analysis.UserAuthReq\x1a\x12.analysis.Response\"%\x82\xd3\xe4\x93\x02\x1f:\x01*\"\x1a/api/v2/analysis/user/auth\x12i\n" + + "\fUserAuthList\x12\x19.analysis.UserAuthListReq\x1a\x12.analysis.Response\"*\x82\xd3\xe4\x93\x02$:\x01*\"\x1f/api/v2/analysis/user/auth/list\x12o\n" + + "\x0eUserAuthDelete\x12\x1b.analysis.UserAuthDeleteReq\x1a\x12.analysis.Response\",\x82\xd3\xe4\x93\x02&:\x01*\"!/api/v2/analysis/user/auth/delete\x12o\n" + + "\x0eUserAuthUpdate\x12\x1b.analysis.UserAuthUpdateReq\x1a\x12.analysis.Response\",\x82\xd3\xe4\x93\x02&:\x01*\"!/api/v2/analysis/user/auth/update\x12b\n" + + "\n" + + "DeviceBind\x12\x17.analysis.DeviceBindReq\x1a\x12.analysis.Response\"'\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/api/v2/analysis/device/bind\x12b\n" + + "\n" + + "DeviceInfo\x12\x17.analysis.DeviceInfoReq\x1a\x12.analysis.Response\"'\x82\xd3\xe4\x93\x02!:\x01*\"\x1c/api/v2/analysis/device/info2\xe4\x01\n" + "\rAnalysisStore\x12_\n" + "\tStoreAuth\x12\x16.analysis.StoreAuthReq\x1a\x12.analysis.Response\"&\x82\xd3\xe4\x93\x02 :\x01*\"\x1b/api/v2/analysis/store/auth\x12r\n" + "\x0fStoreAuthQrcode\x12\x1c.analysis.StoreAuthQrcodeReq\x1a\x12.analysis.Response\"-\x82\xd3\xe4\x93\x02':\x01*\"\"/api/v2/analysis/store/auth/qrcode2\x10\n" + @@ -706,7 +934,7 @@ func file_analysis_analysis_proto_rawDescGZIP() []byte { return file_analysis_analysis_proto_rawDescData } -var file_analysis_analysis_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_analysis_analysis_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_analysis_analysis_proto_goTypes = []any{ (*Response)(nil), // 0: analysis.Response (*InternalCreateUserReq)(nil), // 1: analysis.InternalCreateUserReq @@ -720,6 +948,11 @@ var file_analysis_analysis_proto_goTypes = []any{ (*StoreAuthReq)(nil), // 9: analysis.StoreAuthReq (*StoreAuthQrcodeReq)(nil), // 10: analysis.StoreAuthQrcodeReq (*UserAuthReq)(nil), // 11: analysis.UserAuthReq + (*UserAuthListReq)(nil), // 12: analysis.UserAuthListReq + (*UserAuthDeleteReq)(nil), // 13: analysis.UserAuthDeleteReq + (*UserAuthUpdateReq)(nil), // 14: analysis.UserAuthUpdateReq + (*DeviceBindReq)(nil), // 15: analysis.DeviceBindReq + (*DeviceInfoReq)(nil), // 16: analysis.DeviceInfoReq } var file_analysis_analysis_proto_depIdxs = []int32{ 1, // 0: analysis.Analysis.InternalCreateUser:input_type -> analysis.InternalCreateUserReq @@ -730,20 +963,30 @@ var file_analysis_analysis_proto_depIdxs = []int32{ 3, // 5: analysis.AnalysisUser.UserImprove:input_type -> analysis.UserImproveReq 7, // 6: analysis.AnalysisUser.UserDelete:input_type -> analysis.UserDeleteReq 11, // 7: analysis.AnalysisUser.UserAuth:input_type -> analysis.UserAuthReq - 9, // 8: analysis.AnalysisStore.StoreAuth:input_type -> analysis.StoreAuthReq - 10, // 9: analysis.AnalysisStore.StoreAuthQrcode:input_type -> analysis.StoreAuthQrcodeReq - 2, // 10: analysis.Analysis.InternalCreateUser:output_type -> analysis.InternalCreateUserData - 0, // 11: analysis.Analysis.AgreementInfo:output_type -> analysis.Response - 0, // 12: analysis.Analysis.Switch:output_type -> analysis.Response - 0, // 13: analysis.AnalysisUser.UserRegister:output_type -> analysis.Response - 0, // 14: analysis.AnalysisUser.FaceBind:output_type -> analysis.Response - 0, // 15: analysis.AnalysisUser.UserImprove:output_type -> analysis.Response - 0, // 16: analysis.AnalysisUser.UserDelete:output_type -> analysis.Response - 0, // 17: analysis.AnalysisUser.UserAuth:output_type -> analysis.Response - 0, // 18: analysis.AnalysisStore.StoreAuth:output_type -> analysis.Response - 0, // 19: analysis.AnalysisStore.StoreAuthQrcode:output_type -> analysis.Response - 10, // [10:20] is the sub-list for method output_type - 0, // [0:10] is the sub-list for method input_type + 12, // 8: analysis.AnalysisUser.UserAuthList:input_type -> analysis.UserAuthListReq + 13, // 9: analysis.AnalysisUser.UserAuthDelete:input_type -> analysis.UserAuthDeleteReq + 14, // 10: analysis.AnalysisUser.UserAuthUpdate:input_type -> analysis.UserAuthUpdateReq + 15, // 11: analysis.AnalysisUser.DeviceBind:input_type -> analysis.DeviceBindReq + 16, // 12: analysis.AnalysisUser.DeviceInfo:input_type -> analysis.DeviceInfoReq + 9, // 13: analysis.AnalysisStore.StoreAuth:input_type -> analysis.StoreAuthReq + 10, // 14: analysis.AnalysisStore.StoreAuthQrcode:input_type -> analysis.StoreAuthQrcodeReq + 2, // 15: analysis.Analysis.InternalCreateUser:output_type -> analysis.InternalCreateUserData + 0, // 16: analysis.Analysis.AgreementInfo:output_type -> analysis.Response + 0, // 17: analysis.Analysis.Switch:output_type -> analysis.Response + 0, // 18: analysis.AnalysisUser.UserRegister:output_type -> analysis.Response + 0, // 19: analysis.AnalysisUser.FaceBind:output_type -> analysis.Response + 0, // 20: analysis.AnalysisUser.UserImprove:output_type -> analysis.Response + 0, // 21: analysis.AnalysisUser.UserDelete:output_type -> analysis.Response + 0, // 22: analysis.AnalysisUser.UserAuth:output_type -> analysis.Response + 0, // 23: analysis.AnalysisUser.UserAuthList:output_type -> analysis.Response + 0, // 24: analysis.AnalysisUser.UserAuthDelete:output_type -> analysis.Response + 0, // 25: analysis.AnalysisUser.UserAuthUpdate:output_type -> analysis.Response + 0, // 26: analysis.AnalysisUser.DeviceBind:output_type -> analysis.Response + 0, // 27: analysis.AnalysisUser.DeviceInfo:output_type -> analysis.Response + 0, // 28: analysis.AnalysisStore.StoreAuth:output_type -> analysis.Response + 0, // 29: analysis.AnalysisStore.StoreAuthQrcode:output_type -> analysis.Response + 15, // [15:30] is the sub-list for method output_type + 0, // [0:15] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -760,7 +1003,7 @@ func file_analysis_analysis_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_analysis_analysis_proto_rawDesc), len(file_analysis_analysis_proto_rawDesc)), NumEnums: 0, - NumMessages: 12, + NumMessages: 17, NumExtensions: 0, NumServices: 4, }, diff --git a/rpc/analysis/pb/analysis_grpc.pb.go b/rpc/analysis/pb/analysis_grpc.pb.go index 45d27e7..7fdea95 100644 --- a/rpc/analysis/pb/analysis_grpc.pb.go +++ b/rpc/analysis/pb/analysis_grpc.pb.go @@ -197,11 +197,16 @@ var Analysis_ServiceDesc = grpc.ServiceDesc{ } const ( - AnalysisUser_UserRegister_FullMethodName = "/analysis.AnalysisUser/UserRegister" - AnalysisUser_FaceBind_FullMethodName = "/analysis.AnalysisUser/FaceBind" - AnalysisUser_UserImprove_FullMethodName = "/analysis.AnalysisUser/UserImprove" - AnalysisUser_UserDelete_FullMethodName = "/analysis.AnalysisUser/UserDelete" - AnalysisUser_UserAuth_FullMethodName = "/analysis.AnalysisUser/UserAuth" + AnalysisUser_UserRegister_FullMethodName = "/analysis.AnalysisUser/UserRegister" + AnalysisUser_FaceBind_FullMethodName = "/analysis.AnalysisUser/FaceBind" + AnalysisUser_UserImprove_FullMethodName = "/analysis.AnalysisUser/UserImprove" + AnalysisUser_UserDelete_FullMethodName = "/analysis.AnalysisUser/UserDelete" + AnalysisUser_UserAuth_FullMethodName = "/analysis.AnalysisUser/UserAuth" + AnalysisUser_UserAuthList_FullMethodName = "/analysis.AnalysisUser/UserAuthList" + AnalysisUser_UserAuthDelete_FullMethodName = "/analysis.AnalysisUser/UserAuthDelete" + AnalysisUser_UserAuthUpdate_FullMethodName = "/analysis.AnalysisUser/UserAuthUpdate" + AnalysisUser_DeviceBind_FullMethodName = "/analysis.AnalysisUser/DeviceBind" + AnalysisUser_DeviceInfo_FullMethodName = "/analysis.AnalysisUser/DeviceInfo" ) // AnalysisUserClient is the client API for AnalysisUser service. @@ -212,8 +217,12 @@ type AnalysisUserClient interface { FaceBind(ctx context.Context, in *FaceBindReq, opts ...grpc.CallOption) (*Response, error) UserImprove(ctx context.Context, in *UserImproveReq, opts ...grpc.CallOption) (*Response, error) UserDelete(ctx context.Context, in *UserDeleteReq, opts ...grpc.CallOption) (*Response, error) - // 用户扫码确认/拒绝授权 UserAuth(ctx context.Context, in *UserAuthReq, opts ...grpc.CallOption) (*Response, error) + UserAuthList(ctx context.Context, in *UserAuthListReq, opts ...grpc.CallOption) (*Response, error) + UserAuthDelete(ctx context.Context, in *UserAuthDeleteReq, opts ...grpc.CallOption) (*Response, error) + UserAuthUpdate(ctx context.Context, in *UserAuthUpdateReq, opts ...grpc.CallOption) (*Response, error) + DeviceBind(ctx context.Context, in *DeviceBindReq, opts ...grpc.CallOption) (*Response, error) + DeviceInfo(ctx context.Context, in *DeviceInfoReq, opts ...grpc.CallOption) (*Response, error) } type analysisUserClient struct { @@ -274,6 +283,56 @@ func (c *analysisUserClient) UserAuth(ctx context.Context, in *UserAuthReq, opts return out, nil } +func (c *analysisUserClient) UserAuthList(ctx context.Context, in *UserAuthListReq, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, AnalysisUser_UserAuthList_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *analysisUserClient) UserAuthDelete(ctx context.Context, in *UserAuthDeleteReq, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, AnalysisUser_UserAuthDelete_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *analysisUserClient) UserAuthUpdate(ctx context.Context, in *UserAuthUpdateReq, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, AnalysisUser_UserAuthUpdate_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *analysisUserClient) DeviceBind(ctx context.Context, in *DeviceBindReq, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, AnalysisUser_DeviceBind_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *analysisUserClient) DeviceInfo(ctx context.Context, in *DeviceInfoReq, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, AnalysisUser_DeviceInfo_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // AnalysisUserServer is the server API for AnalysisUser service. // All implementations must embed UnimplementedAnalysisUserServer // for forward compatibility. @@ -282,8 +341,12 @@ type AnalysisUserServer interface { FaceBind(context.Context, *FaceBindReq) (*Response, error) UserImprove(context.Context, *UserImproveReq) (*Response, error) UserDelete(context.Context, *UserDeleteReq) (*Response, error) - // 用户扫码确认/拒绝授权 UserAuth(context.Context, *UserAuthReq) (*Response, error) + UserAuthList(context.Context, *UserAuthListReq) (*Response, error) + UserAuthDelete(context.Context, *UserAuthDeleteReq) (*Response, error) + UserAuthUpdate(context.Context, *UserAuthUpdateReq) (*Response, error) + DeviceBind(context.Context, *DeviceBindReq) (*Response, error) + DeviceInfo(context.Context, *DeviceInfoReq) (*Response, error) mustEmbedUnimplementedAnalysisUserServer() } @@ -309,6 +372,21 @@ func (UnimplementedAnalysisUserServer) UserDelete(context.Context, *UserDeleteRe func (UnimplementedAnalysisUserServer) UserAuth(context.Context, *UserAuthReq) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method UserAuth not implemented") } +func (UnimplementedAnalysisUserServer) UserAuthList(context.Context, *UserAuthListReq) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method UserAuthList not implemented") +} +func (UnimplementedAnalysisUserServer) UserAuthDelete(context.Context, *UserAuthDeleteReq) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method UserAuthDelete not implemented") +} +func (UnimplementedAnalysisUserServer) UserAuthUpdate(context.Context, *UserAuthUpdateReq) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method UserAuthUpdate not implemented") +} +func (UnimplementedAnalysisUserServer) DeviceBind(context.Context, *DeviceBindReq) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method DeviceBind not implemented") +} +func (UnimplementedAnalysisUserServer) DeviceInfo(context.Context, *DeviceInfoReq) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method DeviceInfo not implemented") +} func (UnimplementedAnalysisUserServer) mustEmbedUnimplementedAnalysisUserServer() {} func (UnimplementedAnalysisUserServer) testEmbeddedByValue() {} @@ -420,6 +498,96 @@ func _AnalysisUser_UserAuth_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _AnalysisUser_UserAuthList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserAuthListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnalysisUserServer).UserAuthList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AnalysisUser_UserAuthList_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnalysisUserServer).UserAuthList(ctx, req.(*UserAuthListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnalysisUser_UserAuthDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserAuthDeleteReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnalysisUserServer).UserAuthDelete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AnalysisUser_UserAuthDelete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnalysisUserServer).UserAuthDelete(ctx, req.(*UserAuthDeleteReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnalysisUser_UserAuthUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserAuthUpdateReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnalysisUserServer).UserAuthUpdate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AnalysisUser_UserAuthUpdate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnalysisUserServer).UserAuthUpdate(ctx, req.(*UserAuthUpdateReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnalysisUser_DeviceBind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeviceBindReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnalysisUserServer).DeviceBind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AnalysisUser_DeviceBind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnalysisUserServer).DeviceBind(ctx, req.(*DeviceBindReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _AnalysisUser_DeviceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeviceInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AnalysisUserServer).DeviceInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AnalysisUser_DeviceInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AnalysisUserServer).DeviceInfo(ctx, req.(*DeviceInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + // AnalysisUser_ServiceDesc is the grpc.ServiceDesc for AnalysisUser service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -447,6 +615,26 @@ var AnalysisUser_ServiceDesc = grpc.ServiceDesc{ MethodName: "UserAuth", Handler: _AnalysisUser_UserAuth_Handler, }, + { + MethodName: "UserAuthList", + Handler: _AnalysisUser_UserAuthList_Handler, + }, + { + MethodName: "UserAuthDelete", + Handler: _AnalysisUser_UserAuthDelete_Handler, + }, + { + MethodName: "UserAuthUpdate", + Handler: _AnalysisUser_UserAuthUpdate_Handler, + }, + { + MethodName: "DeviceBind", + Handler: _AnalysisUser_DeviceBind_Handler, + }, + { + MethodName: "DeviceInfo", + Handler: _AnalysisUser_DeviceInfo_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "analysis/analysis.proto", @@ -461,9 +649,7 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type AnalysisStoreClient interface { - // 门店账号密码授权用户 StoreAuth(ctx context.Context, in *StoreAuthReq, opts ...grpc.CallOption) (*Response, error) - // 门店获取扫码授权二维码 StoreAuthQrcode(ctx context.Context, in *StoreAuthQrcodeReq, opts ...grpc.CallOption) (*Response, error) } @@ -499,9 +685,7 @@ func (c *analysisStoreClient) StoreAuthQrcode(ctx context.Context, in *StoreAuth // All implementations must embed UnimplementedAnalysisStoreServer // for forward compatibility. type AnalysisStoreServer interface { - // 门店账号密码授权用户 StoreAuth(context.Context, *StoreAuthReq) (*Response, error) - // 门店获取扫码授权二维码 StoreAuthQrcode(context.Context, *StoreAuthQrcodeReq) (*Response, error) mustEmbedUnimplementedAnalysisStoreServer() } diff --git a/rpc/equipment/equipment.pb b/rpc/equipment/equipment.pb index 7dd01259af7d0d06e32de61171e16b2b049a2102..82a8a69c6b307b45d57f09a092ca52ff9d277463 100644 GIT binary patch delta 1209 zcmah|OHUI~6waN#rc;4(L+oS#!B*1R=+p)_WuXE3u%eX=V0tOpOc(X+i z2RZ#UF+%JC{S%R?J|Z9g*!v5-tN52G!Qx>KN7!6to)wUqFN=yMm)YegM)-Mg3GqiT zuOf{{D;kniQI?pCZMu?XN4z;_8fgiO?tkGh#%)9Ah%JvU2JboF0vq|orSAkU>A!;0 zR(d1E=%vu2m3|DJ(SL^u1Bc{I;D+|h%}jz`b8P|-blysE>Es>yKwmwd@3S~Pu3{V~Qf+XgPQnrL>!YsSFQy9!NFicvIRgG_wY&sho1a|%YsITfU z8yuWnd#E7TOS#peDDgOqtIT1g%peHWVx-{wz z+go&WQiQoFR%YYO$UjTLF-62T!H??i%$BiO)H_M_G~ii9$Z7}|0wK1oXEdTSZfFpKrY5u7`~@ L7s@&7e~saPOuvv* delta 280 zcmdlui}CdY#tmzkm^uOMou9X{{UA%iRbJfB`+r5(a4_ct0~6{ z;bm!N0CfP>`1$*}g4F|chq(rMx<$fueAG;qS;QzJ#P8$k=N{q_9}wi~<{1Gt9%4v= zR@~$(TIvuZH~-Rl&dAQj@q%5T+i!E8E;kd?R;JC>`WlRAK9DrjWMOL4-0Wi7%ewiB o&2Ltwr-GX=Iz8nOcjArW*3(ZdEX^#)P0cGwVk;=hFUdCs09^iDsQ>@~ diff --git a/rpc/equipment/equipment.proto b/rpc/equipment/equipment.proto index 17651a8..d32beac 100644 --- a/rpc/equipment/equipment.proto +++ b/rpc/equipment/equipment.proto @@ -79,6 +79,34 @@ message ApiBindAddRequest { int32 type = 3; } +message InternalBindAddRequest { + int64 user_id = 1; + string user_nickname = 2; + string host_nickname = 3; + string host_code = 4; + int32 type = 5; + int32 skin_type = 6; +} + +message InternalBindInfoRequest { + int64 user_id = 1; + int32 skin_type = 2; + string host_code = 3; + int32 type = 4; + int64 id = 5; +} + +message ApiBindInfoRequest { + int64 id = 1; + string host_code = 2; + int32 type = 3; +} + +message ApiBindUpdateRequest { + int64 id = 1; + string host_nickname = 2; +} + message ApiUnBindRequest { string host_code = 1; int32 type = 2; @@ -308,4 +336,20 @@ service Equipment { }; }; + rpc ApiBindInfo(ApiBindInfoRequest) returns(Response){ + option (google.api.http) = { + post: "/api/v3/device/info" + body: "*" + }; + }; + + rpc ApiBindUpdate(ApiBindUpdateRequest) returns(Response){ + option (google.api.http) = { + post: "/api/v3/device/update" + body: "*" + }; + }; + + rpc InternalBindAdd(InternalBindAddRequest) returns(Response); + rpc InternalBindInfo(InternalBindInfoRequest) returns(Response); } \ No newline at end of file diff --git a/rpc/equipment/pb/equipment.pb.go b/rpc/equipment/pb/equipment.pb.go index 8aa587b..fb5983e 100644 --- a/rpc/equipment/pb/equipment.pb.go +++ b/rpc/equipment/pb/equipment.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 -// protoc v4.25.8 +// protoc v3.19.4 // source: equipment/equipment.proto package equipment @@ -722,6 +722,278 @@ func (x *ApiBindAddRequest) GetType() int32 { return 0 } +type InternalBindAddRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + UserNickname string `protobuf:"bytes,2,opt,name=user_nickname,json=userNickname,proto3" json:"user_nickname,omitempty"` + HostNickname string `protobuf:"bytes,3,opt,name=host_nickname,json=hostNickname,proto3" json:"host_nickname,omitempty"` + HostCode string `protobuf:"bytes,4,opt,name=host_code,json=hostCode,proto3" json:"host_code,omitempty"` + Type int32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + SkinType int32 `protobuf:"varint,6,opt,name=skin_type,json=skinType,proto3" json:"skin_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InternalBindAddRequest) Reset() { + *x = InternalBindAddRequest{} + mi := &file_equipment_equipment_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InternalBindAddRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InternalBindAddRequest) ProtoMessage() {} + +func (x *InternalBindAddRequest) ProtoReflect() protoreflect.Message { + mi := &file_equipment_equipment_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InternalBindAddRequest.ProtoReflect.Descriptor instead. +func (*InternalBindAddRequest) Descriptor() ([]byte, []int) { + return file_equipment_equipment_proto_rawDescGZIP(), []int{9} +} + +func (x *InternalBindAddRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *InternalBindAddRequest) GetUserNickname() string { + if x != nil { + return x.UserNickname + } + return "" +} + +func (x *InternalBindAddRequest) GetHostNickname() string { + if x != nil { + return x.HostNickname + } + return "" +} + +func (x *InternalBindAddRequest) GetHostCode() string { + if x != nil { + return x.HostCode + } + return "" +} + +func (x *InternalBindAddRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *InternalBindAddRequest) GetSkinType() int32 { + if x != nil { + return x.SkinType + } + return 0 +} + +type InternalBindInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserId int64 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` + SkinType int32 `protobuf:"varint,2,opt,name=skin_type,json=skinType,proto3" json:"skin_type,omitempty"` + HostCode string `protobuf:"bytes,3,opt,name=host_code,json=hostCode,proto3" json:"host_code,omitempty"` + Type int32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + Id int64 `protobuf:"varint,5,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InternalBindInfoRequest) Reset() { + *x = InternalBindInfoRequest{} + mi := &file_equipment_equipment_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InternalBindInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InternalBindInfoRequest) ProtoMessage() {} + +func (x *InternalBindInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_equipment_equipment_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InternalBindInfoRequest.ProtoReflect.Descriptor instead. +func (*InternalBindInfoRequest) Descriptor() ([]byte, []int) { + return file_equipment_equipment_proto_rawDescGZIP(), []int{10} +} + +func (x *InternalBindInfoRequest) GetUserId() int64 { + if x != nil { + return x.UserId + } + return 0 +} + +func (x *InternalBindInfoRequest) GetSkinType() int32 { + if x != nil { + return x.SkinType + } + return 0 +} + +func (x *InternalBindInfoRequest) GetHostCode() string { + if x != nil { + return x.HostCode + } + return "" +} + +func (x *InternalBindInfoRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *InternalBindInfoRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +type ApiBindInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + HostCode string `protobuf:"bytes,2,opt,name=host_code,json=hostCode,proto3" json:"host_code,omitempty"` + Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ApiBindInfoRequest) Reset() { + *x = ApiBindInfoRequest{} + mi := &file_equipment_equipment_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ApiBindInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApiBindInfoRequest) ProtoMessage() {} + +func (x *ApiBindInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_equipment_equipment_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApiBindInfoRequest.ProtoReflect.Descriptor instead. +func (*ApiBindInfoRequest) Descriptor() ([]byte, []int) { + return file_equipment_equipment_proto_rawDescGZIP(), []int{11} +} + +func (x *ApiBindInfoRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ApiBindInfoRequest) GetHostCode() string { + if x != nil { + return x.HostCode + } + return "" +} + +func (x *ApiBindInfoRequest) GetType() int32 { + if x != nil { + return x.Type + } + return 0 +} + +type ApiBindUpdateRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + HostNickname string `protobuf:"bytes,2,opt,name=host_nickname,json=hostNickname,proto3" json:"host_nickname,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ApiBindUpdateRequest) Reset() { + *x = ApiBindUpdateRequest{} + mi := &file_equipment_equipment_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ApiBindUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApiBindUpdateRequest) ProtoMessage() {} + +func (x *ApiBindUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_equipment_equipment_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ApiBindUpdateRequest.ProtoReflect.Descriptor instead. +func (*ApiBindUpdateRequest) Descriptor() ([]byte, []int) { + return file_equipment_equipment_proto_rawDescGZIP(), []int{12} +} + +func (x *ApiBindUpdateRequest) GetId() int64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ApiBindUpdateRequest) GetHostNickname() string { + if x != nil { + return x.HostNickname + } + return "" +} + type ApiUnBindRequest struct { state protoimpl.MessageState `protogen:"open.v1"` HostCode string `protobuf:"bytes,1,opt,name=host_code,json=hostCode,proto3" json:"host_code,omitempty"` @@ -732,7 +1004,7 @@ type ApiUnBindRequest struct { func (x *ApiUnBindRequest) Reset() { *x = ApiUnBindRequest{} - mi := &file_equipment_equipment_proto_msgTypes[9] + mi := &file_equipment_equipment_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -744,7 +1016,7 @@ func (x *ApiUnBindRequest) String() string { func (*ApiUnBindRequest) ProtoMessage() {} func (x *ApiUnBindRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[9] + mi := &file_equipment_equipment_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -757,7 +1029,7 @@ func (x *ApiUnBindRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiUnBindRequest.ProtoReflect.Descriptor instead. func (*ApiUnBindRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{9} + return file_equipment_equipment_proto_rawDescGZIP(), []int{13} } func (x *ApiUnBindRequest) GetHostCode() string { @@ -782,7 +1054,7 @@ type EmptyRequest struct { func (x *EmptyRequest) Reset() { *x = EmptyRequest{} - mi := &file_equipment_equipment_proto_msgTypes[10] + mi := &file_equipment_equipment_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -794,7 +1066,7 @@ func (x *EmptyRequest) String() string { func (*EmptyRequest) ProtoMessage() {} func (x *EmptyRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[10] + mi := &file_equipment_equipment_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -807,7 +1079,7 @@ func (x *EmptyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EmptyRequest.ProtoReflect.Descriptor instead. func (*EmptyRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{10} + return file_equipment_equipment_proto_rawDescGZIP(), []int{14} } type ApiBindExpiryRequest struct { @@ -821,7 +1093,7 @@ type ApiBindExpiryRequest struct { func (x *ApiBindExpiryRequest) Reset() { *x = ApiBindExpiryRequest{} - mi := &file_equipment_equipment_proto_msgTypes[11] + mi := &file_equipment_equipment_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -833,7 +1105,7 @@ func (x *ApiBindExpiryRequest) String() string { func (*ApiBindExpiryRequest) ProtoMessage() {} func (x *ApiBindExpiryRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[11] + mi := &file_equipment_equipment_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -846,7 +1118,7 @@ func (x *ApiBindExpiryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiBindExpiryRequest.ProtoReflect.Descriptor instead. func (*ApiBindExpiryRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{11} + return file_equipment_equipment_proto_rawDescGZIP(), []int{15} } func (x *ApiBindExpiryRequest) GetHostCode() string { @@ -880,7 +1152,7 @@ type ApiBindExpiryGetRequest struct { func (x *ApiBindExpiryGetRequest) Reset() { *x = ApiBindExpiryGetRequest{} - mi := &file_equipment_equipment_proto_msgTypes[12] + mi := &file_equipment_equipment_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -892,7 +1164,7 @@ func (x *ApiBindExpiryGetRequest) String() string { func (*ApiBindExpiryGetRequest) ProtoMessage() {} func (x *ApiBindExpiryGetRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[12] + mi := &file_equipment_equipment_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -905,7 +1177,7 @@ func (x *ApiBindExpiryGetRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiBindExpiryGetRequest.ProtoReflect.Descriptor instead. func (*ApiBindExpiryGetRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{12} + return file_equipment_equipment_proto_rawDescGZIP(), []int{16} } func (x *ApiBindExpiryGetRequest) GetHostCode() string { @@ -932,7 +1204,7 @@ type ApiBeansItemsRequest struct { func (x *ApiBeansItemsRequest) Reset() { *x = ApiBeansItemsRequest{} - mi := &file_equipment_equipment_proto_msgTypes[13] + mi := &file_equipment_equipment_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -944,7 +1216,7 @@ func (x *ApiBeansItemsRequest) String() string { func (*ApiBeansItemsRequest) ProtoMessage() {} func (x *ApiBeansItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[13] + mi := &file_equipment_equipment_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -957,7 +1229,7 @@ func (x *ApiBeansItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiBeansItemsRequest.ProtoReflect.Descriptor instead. func (*ApiBeansItemsRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{13} + return file_equipment_equipment_proto_rawDescGZIP(), []int{17} } func (x *ApiBeansItemsRequest) GetPage() int32 { @@ -984,7 +1256,7 @@ type ApiBeansAddRequest struct { func (x *ApiBeansAddRequest) Reset() { *x = ApiBeansAddRequest{} - mi := &file_equipment_equipment_proto_msgTypes[14] + mi := &file_equipment_equipment_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -996,7 +1268,7 @@ func (x *ApiBeansAddRequest) String() string { func (*ApiBeansAddRequest) ProtoMessage() {} func (x *ApiBeansAddRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[14] + mi := &file_equipment_equipment_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1009,7 +1281,7 @@ func (x *ApiBeansAddRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiBeansAddRequest.ProtoReflect.Descriptor instead. func (*ApiBeansAddRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{14} + return file_equipment_equipment_proto_rawDescGZIP(), []int{18} } func (x *ApiBeansAddRequest) GetImage() string { @@ -1046,7 +1318,7 @@ type ApiMaskAddRequest struct { func (x *ApiMaskAddRequest) Reset() { *x = ApiMaskAddRequest{} - mi := &file_equipment_equipment_proto_msgTypes[15] + mi := &file_equipment_equipment_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1058,7 +1330,7 @@ func (x *ApiMaskAddRequest) String() string { func (*ApiMaskAddRequest) ProtoMessage() {} func (x *ApiMaskAddRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[15] + mi := &file_equipment_equipment_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1071,7 +1343,7 @@ func (x *ApiMaskAddRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiMaskAddRequest.ProtoReflect.Descriptor instead. func (*ApiMaskAddRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{15} + return file_equipment_equipment_proto_rawDescGZIP(), []int{19} } func (x *ApiMaskAddRequest) GetFaceMaskId() string { @@ -1176,7 +1448,7 @@ type ApiMaskUseRequest struct { func (x *ApiMaskUseRequest) Reset() { *x = ApiMaskUseRequest{} - mi := &file_equipment_equipment_proto_msgTypes[16] + mi := &file_equipment_equipment_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1188,7 +1460,7 @@ func (x *ApiMaskUseRequest) String() string { func (*ApiMaskUseRequest) ProtoMessage() {} func (x *ApiMaskUseRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[16] + mi := &file_equipment_equipment_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1201,7 +1473,7 @@ func (x *ApiMaskUseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiMaskUseRequest.ProtoReflect.Descriptor instead. func (*ApiMaskUseRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{16} + return file_equipment_equipment_proto_rawDescGZIP(), []int{20} } func (x *ApiMaskUseRequest) GetFacialMaskId() string { @@ -1285,7 +1557,7 @@ type ApiMaskUsedItemsRequest struct { func (x *ApiMaskUsedItemsRequest) Reset() { *x = ApiMaskUsedItemsRequest{} - mi := &file_equipment_equipment_proto_msgTypes[17] + mi := &file_equipment_equipment_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1297,7 +1569,7 @@ func (x *ApiMaskUsedItemsRequest) String() string { func (*ApiMaskUsedItemsRequest) ProtoMessage() {} func (x *ApiMaskUsedItemsRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[17] + mi := &file_equipment_equipment_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1310,7 +1582,7 @@ func (x *ApiMaskUsedItemsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiMaskUsedItemsRequest.ProtoReflect.Descriptor instead. func (*ApiMaskUsedItemsRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{17} + return file_equipment_equipment_proto_rawDescGZIP(), []int{21} } func (x *ApiMaskUsedItemsRequest) GetFacialMaskId() string { @@ -1345,7 +1617,7 @@ type BindExpiryRequest struct { func (x *BindExpiryRequest) Reset() { *x = BindExpiryRequest{} - mi := &file_equipment_equipment_proto_msgTypes[18] + mi := &file_equipment_equipment_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1357,7 +1629,7 @@ func (x *BindExpiryRequest) String() string { func (*BindExpiryRequest) ProtoMessage() {} func (x *BindExpiryRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[18] + mi := &file_equipment_equipment_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1370,7 +1642,7 @@ func (x *BindExpiryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use BindExpiryRequest.ProtoReflect.Descriptor instead. func (*BindExpiryRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{18} + return file_equipment_equipment_proto_rawDescGZIP(), []int{22} } func (x *BindExpiryRequest) GetId() int64 { @@ -1405,7 +1677,7 @@ type SetExpiryRequest struct { func (x *SetExpiryRequest) Reset() { *x = SetExpiryRequest{} - mi := &file_equipment_equipment_proto_msgTypes[19] + mi := &file_equipment_equipment_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1417,7 +1689,7 @@ func (x *SetExpiryRequest) String() string { func (*SetExpiryRequest) ProtoMessage() {} func (x *SetExpiryRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[19] + mi := &file_equipment_equipment_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1430,7 +1702,7 @@ func (x *SetExpiryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetExpiryRequest.ProtoReflect.Descriptor instead. func (*SetExpiryRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{19} + return file_equipment_equipment_proto_rawDescGZIP(), []int{23} } func (x *SetExpiryRequest) GetId() int64 { @@ -1463,7 +1735,7 @@ type UserBindRequest struct { func (x *UserBindRequest) Reset() { *x = UserBindRequest{} - mi := &file_equipment_equipment_proto_msgTypes[20] + mi := &file_equipment_equipment_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1475,7 +1747,7 @@ func (x *UserBindRequest) String() string { func (*UserBindRequest) ProtoMessage() {} func (x *UserBindRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[20] + mi := &file_equipment_equipment_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1488,7 +1760,7 @@ func (x *UserBindRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UserBindRequest.ProtoReflect.Descriptor instead. func (*UserBindRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{20} + return file_equipment_equipment_proto_rawDescGZIP(), []int{24} } func (x *UserBindRequest) GetId() int64 { @@ -1508,7 +1780,7 @@ type ApiVersionRequest struct { func (x *ApiVersionRequest) Reset() { *x = ApiVersionRequest{} - mi := &file_equipment_equipment_proto_msgTypes[21] + mi := &file_equipment_equipment_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1520,7 +1792,7 @@ func (x *ApiVersionRequest) String() string { func (*ApiVersionRequest) ProtoMessage() {} func (x *ApiVersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_equipment_equipment_proto_msgTypes[21] + mi := &file_equipment_equipment_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1533,7 +1805,7 @@ func (x *ApiVersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiVersionRequest.ProtoReflect.Descriptor instead. func (*ApiVersionRequest) Descriptor() ([]byte, []int) { - return file_equipment_equipment_proto_rawDescGZIP(), []int{21} + return file_equipment_equipment_proto_rawDescGZIP(), []int{25} } func (x *ApiVersionRequest) GetType() int32 { @@ -1613,7 +1885,27 @@ const file_equipment_equipment_proto_rawDesc = "" + "\x11ApiBindAddRequest\x12#\n" + "\rhost_nickname\x18\x01 \x01(\tR\fhostNickname\x12\x1b\n" + "\thost_code\x18\x02 \x01(\tR\bhostCode\x12\x12\n" + - "\x04type\x18\x03 \x01(\x05R\x04type\"C\n" + + "\x04type\x18\x03 \x01(\x05R\x04type\"\xc9\x01\n" + + "\x16InternalBindAddRequest\x12\x17\n" + + "\auser_id\x18\x01 \x01(\x03R\x06userId\x12#\n" + + "\ruser_nickname\x18\x02 \x01(\tR\fuserNickname\x12#\n" + + "\rhost_nickname\x18\x03 \x01(\tR\fhostNickname\x12\x1b\n" + + "\thost_code\x18\x04 \x01(\tR\bhostCode\x12\x12\n" + + "\x04type\x18\x05 \x01(\x05R\x04type\x12\x1b\n" + + "\tskin_type\x18\x06 \x01(\x05R\bskinType\"\x90\x01\n" + + "\x17InternalBindInfoRequest\x12\x17\n" + + "\auser_id\x18\x01 \x01(\x03R\x06userId\x12\x1b\n" + + "\tskin_type\x18\x02 \x01(\x05R\bskinType\x12\x1b\n" + + "\thost_code\x18\x03 \x01(\tR\bhostCode\x12\x12\n" + + "\x04type\x18\x04 \x01(\x05R\x04type\x12\x0e\n" + + "\x02id\x18\x05 \x01(\x03R\x02id\"U\n" + + "\x12ApiBindInfoRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12\x1b\n" + + "\thost_code\x18\x02 \x01(\tR\bhostCode\x12\x12\n" + + "\x04type\x18\x03 \x01(\x05R\x04type\"K\n" + + "\x14ApiBindUpdateRequest\x12\x0e\n" + + "\x02id\x18\x01 \x01(\x03R\x02id\x12#\n" + + "\rhost_nickname\x18\x02 \x01(\tR\fhostNickname\"C\n" + "\x10ApiUnBindRequest\x12\x1b\n" + "\thost_code\x18\x01 \x01(\tR\bhostCode\x12\x12\n" + "\x04type\x18\x02 \x01(\x05R\x04type\"\x0e\n" + @@ -1678,7 +1970,7 @@ const file_equipment_equipment_proto_rawDesc = "" + "\x02id\x18\x01 \x01(\x03R\x02id\"A\n" + "\x11ApiVersionRequest\x12\x12\n" + "\x04type\x18\x01 \x01(\x05R\x04type\x12\x18\n" + - "\aversion\x18\x02 \x01(\tR\aversion2\xe5\x11\n" + + "\aversion\x18\x02 \x01(\tR\aversion2\xc9\x14\n" + "\tEquipment\x12Y\n" + "\x05Items\x12\x17.equipment.ItemsRequest\x1a\x13.equipment.Response\"\"\x82\xd3\xe4\x93\x02\x1c:\x01*\x12\x17/admin/v3/version/items\x12T\n" + "\x04Info\x12\x14.equipment.IdRequest\x1a\x13.equipment.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\x12\x16/admin/v3/version/info\x12\\\n" + @@ -1708,7 +2000,11 @@ const file_equipment_equipment_proto_rawDesc = "" + "\x0fApiMaskStoreUse\x12\x1c.equipment.ApiMaskUseRequest\x1a\x13.equipment.Response\"!\x82\xd3\xe4\x93\x02\x1b:\x01*\"\x16/api/v3/mask/store/use\x12y\n" + "\x14ApiMaskStoreUseItems\x12\".equipment.ApiMaskUsedItemsRequest\x1a\x13.equipment.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\"\x1d/api/v3/mask/store/used/items\x12[\n" + "\n" + - "ApiVersion\x12\x1c.equipment.ApiVersionRequest\x1a\x13.equipment.Response\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\x12\x0f/api/v3/versionB\rZ\v./equipmentb\x06proto3" + "ApiVersion\x12\x1c.equipment.ApiVersionRequest\x1a\x13.equipment.Response\"\x1a\x82\xd3\xe4\x93\x02\x14:\x01*\x12\x0f/api/v3/version\x12a\n" + + "\vApiBindInfo\x12\x1d.equipment.ApiBindInfoRequest\x1a\x13.equipment.Response\"\x1e\x82\xd3\xe4\x93\x02\x18:\x01*\"\x13/api/v3/device/info\x12g\n" + + "\rApiBindUpdate\x12\x1f.equipment.ApiBindUpdateRequest\x1a\x13.equipment.Response\" \x82\xd3\xe4\x93\x02\x1a:\x01*\"\x15/api/v3/device/update\x12I\n" + + "\x0fInternalBindAdd\x12!.equipment.InternalBindAddRequest\x1a\x13.equipment.Response\x12K\n" + + "\x10InternalBindInfo\x12\".equipment.InternalBindInfoRequest\x1a\x13.equipment.ResponseB\rZ\v./equipmentb\x06proto3" var ( file_equipment_equipment_proto_rawDescOnce sync.Once @@ -1722,7 +2018,7 @@ func file_equipment_equipment_proto_rawDescGZIP() []byte { return file_equipment_equipment_proto_rawDescData } -var file_equipment_equipment_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_equipment_equipment_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_equipment_equipment_proto_goTypes = []any{ (*Response)(nil), // 0: equipment.Response (*CreateRequest)(nil), // 1: equipment.CreateRequest @@ -1733,19 +2029,23 @@ var file_equipment_equipment_proto_goTypes = []any{ (*MaskItemsRequest)(nil), // 6: equipment.MaskItemsRequest (*BeansItemsRequest)(nil), // 7: equipment.BeansItemsRequest (*ApiBindAddRequest)(nil), // 8: equipment.ApiBindAddRequest - (*ApiUnBindRequest)(nil), // 9: equipment.ApiUnBindRequest - (*EmptyRequest)(nil), // 10: equipment.EmptyRequest - (*ApiBindExpiryRequest)(nil), // 11: equipment.ApiBindExpiryRequest - (*ApiBindExpiryGetRequest)(nil), // 12: equipment.ApiBindExpiryGetRequest - (*ApiBeansItemsRequest)(nil), // 13: equipment.ApiBeansItemsRequest - (*ApiBeansAddRequest)(nil), // 14: equipment.ApiBeansAddRequest - (*ApiMaskAddRequest)(nil), // 15: equipment.ApiMaskAddRequest - (*ApiMaskUseRequest)(nil), // 16: equipment.ApiMaskUseRequest - (*ApiMaskUsedItemsRequest)(nil), // 17: equipment.ApiMaskUsedItemsRequest - (*BindExpiryRequest)(nil), // 18: equipment.BindExpiryRequest - (*SetExpiryRequest)(nil), // 19: equipment.SetExpiryRequest - (*UserBindRequest)(nil), // 20: equipment.UserBindRequest - (*ApiVersionRequest)(nil), // 21: equipment.ApiVersionRequest + (*InternalBindAddRequest)(nil), // 9: equipment.InternalBindAddRequest + (*InternalBindInfoRequest)(nil), // 10: equipment.InternalBindInfoRequest + (*ApiBindInfoRequest)(nil), // 11: equipment.ApiBindInfoRequest + (*ApiBindUpdateRequest)(nil), // 12: equipment.ApiBindUpdateRequest + (*ApiUnBindRequest)(nil), // 13: equipment.ApiUnBindRequest + (*EmptyRequest)(nil), // 14: equipment.EmptyRequest + (*ApiBindExpiryRequest)(nil), // 15: equipment.ApiBindExpiryRequest + (*ApiBindExpiryGetRequest)(nil), // 16: equipment.ApiBindExpiryGetRequest + (*ApiBeansItemsRequest)(nil), // 17: equipment.ApiBeansItemsRequest + (*ApiBeansAddRequest)(nil), // 18: equipment.ApiBeansAddRequest + (*ApiMaskAddRequest)(nil), // 19: equipment.ApiMaskAddRequest + (*ApiMaskUseRequest)(nil), // 20: equipment.ApiMaskUseRequest + (*ApiMaskUsedItemsRequest)(nil), // 21: equipment.ApiMaskUsedItemsRequest + (*BindExpiryRequest)(nil), // 22: equipment.BindExpiryRequest + (*SetExpiryRequest)(nil), // 23: equipment.SetExpiryRequest + (*UserBindRequest)(nil), // 24: equipment.UserBindRequest + (*ApiVersionRequest)(nil), // 25: equipment.ApiVersionRequest } var file_equipment_equipment_proto_depIdxs = []int32{ 3, // 0: equipment.Equipment.Items:input_type -> equipment.ItemsRequest @@ -1755,47 +2055,55 @@ var file_equipment_equipment_proto_depIdxs = []int32{ 5, // 4: equipment.Equipment.Status:input_type -> equipment.StatusRequest 6, // 5: equipment.Equipment.MaskItems:input_type -> equipment.MaskItemsRequest 7, // 6: equipment.Equipment.BeansItems:input_type -> equipment.BeansItemsRequest - 18, // 7: equipment.Equipment.BindExpiry:input_type -> equipment.BindExpiryRequest - 20, // 8: equipment.Equipment.UserBind:input_type -> equipment.UserBindRequest - 15, // 9: equipment.Equipment.ApiMaskAdd:input_type -> equipment.ApiMaskAddRequest - 10, // 10: equipment.Equipment.ApiBindItems:input_type -> equipment.EmptyRequest - 9, // 11: equipment.Equipment.ApiUnBind:input_type -> equipment.ApiUnBindRequest + 22, // 7: equipment.Equipment.BindExpiry:input_type -> equipment.BindExpiryRequest + 24, // 8: equipment.Equipment.UserBind:input_type -> equipment.UserBindRequest + 19, // 9: equipment.Equipment.ApiMaskAdd:input_type -> equipment.ApiMaskAddRequest + 14, // 10: equipment.Equipment.ApiBindItems:input_type -> equipment.EmptyRequest + 13, // 11: equipment.Equipment.ApiUnBind:input_type -> equipment.ApiUnBindRequest 8, // 12: equipment.Equipment.ApiBindAdd:input_type -> equipment.ApiBindAddRequest - 11, // 13: equipment.Equipment.ApiBindExpiry:input_type -> equipment.ApiBindExpiryRequest - 12, // 14: equipment.Equipment.ApiBindExpiryGet:input_type -> equipment.ApiBindExpiryGetRequest - 14, // 15: equipment.Equipment.ApiBeansAdd:input_type -> equipment.ApiBeansAddRequest - 10, // 16: equipment.Equipment.ApiBeansLast:input_type -> equipment.EmptyRequest - 13, // 17: equipment.Equipment.ApiBeansItems:input_type -> equipment.ApiBeansItemsRequest - 16, // 18: equipment.Equipment.ApiMaskUse:input_type -> equipment.ApiMaskUseRequest - 17, // 19: equipment.Equipment.ApiMaskUsedItems:input_type -> equipment.ApiMaskUsedItemsRequest - 16, // 20: equipment.Equipment.ApiMaskStoreUse:input_type -> equipment.ApiMaskUseRequest - 17, // 21: equipment.Equipment.ApiMaskStoreUseItems:input_type -> equipment.ApiMaskUsedItemsRequest - 21, // 22: equipment.Equipment.ApiVersion:input_type -> equipment.ApiVersionRequest - 0, // 23: equipment.Equipment.Items:output_type -> equipment.Response - 0, // 24: equipment.Equipment.Info:output_type -> equipment.Response - 0, // 25: equipment.Equipment.Create:output_type -> equipment.Response - 0, // 26: equipment.Equipment.Edit:output_type -> equipment.Response - 0, // 27: equipment.Equipment.Status:output_type -> equipment.Response - 0, // 28: equipment.Equipment.MaskItems:output_type -> equipment.Response - 0, // 29: equipment.Equipment.BeansItems:output_type -> equipment.Response - 0, // 30: equipment.Equipment.BindExpiry:output_type -> equipment.Response - 0, // 31: equipment.Equipment.UserBind:output_type -> equipment.Response - 0, // 32: equipment.Equipment.ApiMaskAdd:output_type -> equipment.Response - 0, // 33: equipment.Equipment.ApiBindItems:output_type -> equipment.Response - 0, // 34: equipment.Equipment.ApiUnBind:output_type -> equipment.Response - 0, // 35: equipment.Equipment.ApiBindAdd:output_type -> equipment.Response - 0, // 36: equipment.Equipment.ApiBindExpiry:output_type -> equipment.Response - 0, // 37: equipment.Equipment.ApiBindExpiryGet:output_type -> equipment.Response - 0, // 38: equipment.Equipment.ApiBeansAdd:output_type -> equipment.Response - 0, // 39: equipment.Equipment.ApiBeansLast:output_type -> equipment.Response - 0, // 40: equipment.Equipment.ApiBeansItems:output_type -> equipment.Response - 0, // 41: equipment.Equipment.ApiMaskUse:output_type -> equipment.Response - 0, // 42: equipment.Equipment.ApiMaskUsedItems:output_type -> equipment.Response - 0, // 43: equipment.Equipment.ApiMaskStoreUse:output_type -> equipment.Response - 0, // 44: equipment.Equipment.ApiMaskStoreUseItems:output_type -> equipment.Response - 0, // 45: equipment.Equipment.ApiVersion:output_type -> equipment.Response - 23, // [23:46] is the sub-list for method output_type - 0, // [0:23] is the sub-list for method input_type + 15, // 13: equipment.Equipment.ApiBindExpiry:input_type -> equipment.ApiBindExpiryRequest + 16, // 14: equipment.Equipment.ApiBindExpiryGet:input_type -> equipment.ApiBindExpiryGetRequest + 18, // 15: equipment.Equipment.ApiBeansAdd:input_type -> equipment.ApiBeansAddRequest + 14, // 16: equipment.Equipment.ApiBeansLast:input_type -> equipment.EmptyRequest + 17, // 17: equipment.Equipment.ApiBeansItems:input_type -> equipment.ApiBeansItemsRequest + 20, // 18: equipment.Equipment.ApiMaskUse:input_type -> equipment.ApiMaskUseRequest + 21, // 19: equipment.Equipment.ApiMaskUsedItems:input_type -> equipment.ApiMaskUsedItemsRequest + 20, // 20: equipment.Equipment.ApiMaskStoreUse:input_type -> equipment.ApiMaskUseRequest + 21, // 21: equipment.Equipment.ApiMaskStoreUseItems:input_type -> equipment.ApiMaskUsedItemsRequest + 25, // 22: equipment.Equipment.ApiVersion:input_type -> equipment.ApiVersionRequest + 11, // 23: equipment.Equipment.ApiBindInfo:input_type -> equipment.ApiBindInfoRequest + 12, // 24: equipment.Equipment.ApiBindUpdate:input_type -> equipment.ApiBindUpdateRequest + 9, // 25: equipment.Equipment.InternalBindAdd:input_type -> equipment.InternalBindAddRequest + 10, // 26: equipment.Equipment.InternalBindInfo:input_type -> equipment.InternalBindInfoRequest + 0, // 27: equipment.Equipment.Items:output_type -> equipment.Response + 0, // 28: equipment.Equipment.Info:output_type -> equipment.Response + 0, // 29: equipment.Equipment.Create:output_type -> equipment.Response + 0, // 30: equipment.Equipment.Edit:output_type -> equipment.Response + 0, // 31: equipment.Equipment.Status:output_type -> equipment.Response + 0, // 32: equipment.Equipment.MaskItems:output_type -> equipment.Response + 0, // 33: equipment.Equipment.BeansItems:output_type -> equipment.Response + 0, // 34: equipment.Equipment.BindExpiry:output_type -> equipment.Response + 0, // 35: equipment.Equipment.UserBind:output_type -> equipment.Response + 0, // 36: equipment.Equipment.ApiMaskAdd:output_type -> equipment.Response + 0, // 37: equipment.Equipment.ApiBindItems:output_type -> equipment.Response + 0, // 38: equipment.Equipment.ApiUnBind:output_type -> equipment.Response + 0, // 39: equipment.Equipment.ApiBindAdd:output_type -> equipment.Response + 0, // 40: equipment.Equipment.ApiBindExpiry:output_type -> equipment.Response + 0, // 41: equipment.Equipment.ApiBindExpiryGet:output_type -> equipment.Response + 0, // 42: equipment.Equipment.ApiBeansAdd:output_type -> equipment.Response + 0, // 43: equipment.Equipment.ApiBeansLast:output_type -> equipment.Response + 0, // 44: equipment.Equipment.ApiBeansItems:output_type -> equipment.Response + 0, // 45: equipment.Equipment.ApiMaskUse:output_type -> equipment.Response + 0, // 46: equipment.Equipment.ApiMaskUsedItems:output_type -> equipment.Response + 0, // 47: equipment.Equipment.ApiMaskStoreUse:output_type -> equipment.Response + 0, // 48: equipment.Equipment.ApiMaskStoreUseItems:output_type -> equipment.Response + 0, // 49: equipment.Equipment.ApiVersion:output_type -> equipment.Response + 0, // 50: equipment.Equipment.ApiBindInfo:output_type -> equipment.Response + 0, // 51: equipment.Equipment.ApiBindUpdate:output_type -> equipment.Response + 0, // 52: equipment.Equipment.InternalBindAdd:output_type -> equipment.Response + 0, // 53: equipment.Equipment.InternalBindInfo:output_type -> equipment.Response + 27, // [27:54] is the sub-list for method output_type + 0, // [0:27] is the sub-list for method input_type 0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name @@ -1812,7 +2120,7 @@ func file_equipment_equipment_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_equipment_equipment_proto_rawDesc), len(file_equipment_equipment_proto_rawDesc)), NumEnums: 0, - NumMessages: 22, + NumMessages: 26, NumExtensions: 0, NumServices: 1, }, diff --git a/rpc/equipment/pb/equipment_grpc.pb.go b/rpc/equipment/pb/equipment_grpc.pb.go index 40b31f4..5b14578 100644 --- a/rpc/equipment/pb/equipment_grpc.pb.go +++ b/rpc/equipment/pb/equipment_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.6.2 -// - protoc v4.25.8 +// - protoc v3.19.4 // source: equipment/equipment.proto package equipment @@ -42,6 +42,10 @@ const ( Equipment_ApiMaskStoreUse_FullMethodName = "/equipment.Equipment/ApiMaskStoreUse" Equipment_ApiMaskStoreUseItems_FullMethodName = "/equipment.Equipment/ApiMaskStoreUseItems" Equipment_ApiVersion_FullMethodName = "/equipment.Equipment/ApiVersion" + Equipment_ApiBindInfo_FullMethodName = "/equipment.Equipment/ApiBindInfo" + Equipment_ApiBindUpdate_FullMethodName = "/equipment.Equipment/ApiBindUpdate" + Equipment_InternalBindAdd_FullMethodName = "/equipment.Equipment/InternalBindAdd" + Equipment_InternalBindInfo_FullMethodName = "/equipment.Equipment/InternalBindInfo" ) // EquipmentClient is the client API for Equipment service. @@ -72,6 +76,10 @@ type EquipmentClient interface { ApiMaskStoreUse(ctx context.Context, in *ApiMaskUseRequest, opts ...grpc.CallOption) (*Response, error) ApiMaskStoreUseItems(ctx context.Context, in *ApiMaskUsedItemsRequest, opts ...grpc.CallOption) (*Response, error) ApiVersion(ctx context.Context, in *ApiVersionRequest, opts ...grpc.CallOption) (*Response, error) + ApiBindInfo(ctx context.Context, in *ApiBindInfoRequest, opts ...grpc.CallOption) (*Response, error) + ApiBindUpdate(ctx context.Context, in *ApiBindUpdateRequest, opts ...grpc.CallOption) (*Response, error) + InternalBindAdd(ctx context.Context, in *InternalBindAddRequest, opts ...grpc.CallOption) (*Response, error) + InternalBindInfo(ctx context.Context, in *InternalBindInfoRequest, opts ...grpc.CallOption) (*Response, error) } type equipmentClient struct { @@ -312,6 +320,46 @@ func (c *equipmentClient) ApiVersion(ctx context.Context, in *ApiVersionRequest, return out, nil } +func (c *equipmentClient) ApiBindInfo(ctx context.Context, in *ApiBindInfoRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Equipment_ApiBindInfo_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *equipmentClient) ApiBindUpdate(ctx context.Context, in *ApiBindUpdateRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Equipment_ApiBindUpdate_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *equipmentClient) InternalBindAdd(ctx context.Context, in *InternalBindAddRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Equipment_InternalBindAdd_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *equipmentClient) InternalBindInfo(ctx context.Context, in *InternalBindInfoRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Equipment_InternalBindInfo_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + // EquipmentServer is the server API for Equipment service. // All implementations must embed UnimplementedEquipmentServer // for forward compatibility. @@ -340,6 +388,10 @@ type EquipmentServer interface { ApiMaskStoreUse(context.Context, *ApiMaskUseRequest) (*Response, error) ApiMaskStoreUseItems(context.Context, *ApiMaskUsedItemsRequest) (*Response, error) ApiVersion(context.Context, *ApiVersionRequest) (*Response, error) + ApiBindInfo(context.Context, *ApiBindInfoRequest) (*Response, error) + ApiBindUpdate(context.Context, *ApiBindUpdateRequest) (*Response, error) + InternalBindAdd(context.Context, *InternalBindAddRequest) (*Response, error) + InternalBindInfo(context.Context, *InternalBindInfoRequest) (*Response, error) mustEmbedUnimplementedEquipmentServer() } @@ -419,6 +471,18 @@ func (UnimplementedEquipmentServer) ApiMaskStoreUseItems(context.Context, *ApiMa func (UnimplementedEquipmentServer) ApiVersion(context.Context, *ApiVersionRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method ApiVersion not implemented") } +func (UnimplementedEquipmentServer) ApiBindInfo(context.Context, *ApiBindInfoRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ApiBindInfo not implemented") +} +func (UnimplementedEquipmentServer) ApiBindUpdate(context.Context, *ApiBindUpdateRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method ApiBindUpdate not implemented") +} +func (UnimplementedEquipmentServer) InternalBindAdd(context.Context, *InternalBindAddRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method InternalBindAdd not implemented") +} +func (UnimplementedEquipmentServer) InternalBindInfo(context.Context, *InternalBindInfoRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method InternalBindInfo not implemented") +} func (UnimplementedEquipmentServer) mustEmbedUnimplementedEquipmentServer() {} func (UnimplementedEquipmentServer) testEmbeddedByValue() {} @@ -854,6 +918,78 @@ func _Equipment_ApiVersion_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } +func _Equipment_ApiBindInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ApiBindInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EquipmentServer).ApiBindInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Equipment_ApiBindInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EquipmentServer).ApiBindInfo(ctx, req.(*ApiBindInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Equipment_ApiBindUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ApiBindUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EquipmentServer).ApiBindUpdate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Equipment_ApiBindUpdate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EquipmentServer).ApiBindUpdate(ctx, req.(*ApiBindUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Equipment_InternalBindAdd_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InternalBindAddRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EquipmentServer).InternalBindAdd(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Equipment_InternalBindAdd_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EquipmentServer).InternalBindAdd(ctx, req.(*InternalBindAddRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Equipment_InternalBindInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InternalBindInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(EquipmentServer).InternalBindInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Equipment_InternalBindInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(EquipmentServer).InternalBindInfo(ctx, req.(*InternalBindInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + // Equipment_ServiceDesc is the grpc.ServiceDesc for Equipment service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -953,6 +1089,22 @@ var Equipment_ServiceDesc = grpc.ServiceDesc{ MethodName: "ApiVersion", Handler: _Equipment_ApiVersion_Handler, }, + { + MethodName: "ApiBindInfo", + Handler: _Equipment_ApiBindInfo_Handler, + }, + { + MethodName: "ApiBindUpdate", + Handler: _Equipment_ApiBindUpdate_Handler, + }, + { + MethodName: "InternalBindAdd", + Handler: _Equipment_InternalBindAdd_Handler, + }, + { + MethodName: "InternalBindInfo", + Handler: _Equipment_InternalBindInfo_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "equipment/equipment.proto", diff --git a/services/analysis/client/analysisstore/analysisStore.go b/services/analysis/client/analysisstore/analysisStore.go index df0f4ea..40f9e05 100644 --- a/services/analysis/client/analysisstore/analysisStore.go +++ b/services/analysis/client/analysisstore/analysisStore.go @@ -19,9 +19,7 @@ type ( StoreAuthReq = analysis.StoreAuthReq AnalysisStore interface { - // 门店账号密码授权用户 StoreAuth(ctx context.Context, in *StoreAuthReq, opts ...grpc.CallOption) (*Response, error) - // 门店获取扫码授权二维码 StoreAuthQrcode(ctx context.Context, in *StoreAuthQrcodeReq, opts ...grpc.CallOption) (*Response, error) } @@ -36,13 +34,11 @@ func NewAnalysisStore(cli zrpc.Client) AnalysisStore { } } -// 门店账号密码授权用户 func (m *defaultAnalysisStore) StoreAuth(ctx context.Context, in *StoreAuthReq, opts ...grpc.CallOption) (*Response, error) { client := analysis.NewAnalysisStoreClient(m.cli.Conn()) return client.StoreAuth(ctx, in, opts...) } -// 门店获取扫码授权二维码 func (m *defaultAnalysisStore) StoreAuthQrcode(ctx context.Context, in *StoreAuthQrcodeReq, opts ...grpc.CallOption) (*Response, error) { client := analysis.NewAnalysisStoreClient(m.cli.Conn()) return client.StoreAuthQrcode(ctx, in, opts...) diff --git a/services/analysis/client/analysisuser/analysisUser.go b/services/analysis/client/analysisuser/analysisUser.go index 12991fb..1ac1d8d 100644 --- a/services/analysis/client/analysisuser/analysisUser.go +++ b/services/analysis/client/analysisuser/analysisUser.go @@ -14,20 +14,29 @@ import ( ) type ( - FaceBindReq = analysis.FaceBindReq - Response = analysis.Response - UserAuthReq = analysis.UserAuthReq - UserDeleteReq = analysis.UserDeleteReq - UserImproveReq = analysis.UserImproveReq - UserRegisterReq = analysis.UserRegisterReq + DeviceBindReq = analysis.DeviceBindReq + DeviceInfoReq = analysis.DeviceInfoReq + FaceBindReq = analysis.FaceBindReq + Response = analysis.Response + UserAuthDeleteReq = analysis.UserAuthDeleteReq + UserAuthListReq = analysis.UserAuthListReq + UserAuthReq = analysis.UserAuthReq + UserAuthUpdateReq = analysis.UserAuthUpdateReq + UserDeleteReq = analysis.UserDeleteReq + UserImproveReq = analysis.UserImproveReq + UserRegisterReq = analysis.UserRegisterReq AnalysisUser interface { UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*Response, error) FaceBind(ctx context.Context, in *FaceBindReq, opts ...grpc.CallOption) (*Response, error) UserImprove(ctx context.Context, in *UserImproveReq, opts ...grpc.CallOption) (*Response, error) UserDelete(ctx context.Context, in *UserDeleteReq, opts ...grpc.CallOption) (*Response, error) - // 用户扫码确认/拒绝授权 UserAuth(ctx context.Context, in *UserAuthReq, opts ...grpc.CallOption) (*Response, error) + UserAuthList(ctx context.Context, in *UserAuthListReq, opts ...grpc.CallOption) (*Response, error) + UserAuthDelete(ctx context.Context, in *UserAuthDeleteReq, opts ...grpc.CallOption) (*Response, error) + UserAuthUpdate(ctx context.Context, in *UserAuthUpdateReq, opts ...grpc.CallOption) (*Response, error) + DeviceBind(ctx context.Context, in *DeviceBindReq, opts ...grpc.CallOption) (*Response, error) + DeviceInfo(ctx context.Context, in *DeviceInfoReq, opts ...grpc.CallOption) (*Response, error) } defaultAnalysisUser struct { @@ -61,8 +70,32 @@ func (m *defaultAnalysisUser) UserDelete(ctx context.Context, in *UserDeleteReq, return client.UserDelete(ctx, in, opts...) } -// 用户扫码确认/拒绝授权 func (m *defaultAnalysisUser) UserAuth(ctx context.Context, in *UserAuthReq, opts ...grpc.CallOption) (*Response, error) { client := analysis.NewAnalysisUserClient(m.cli.Conn()) return client.UserAuth(ctx, in, opts...) } + +func (m *defaultAnalysisUser) UserAuthList(ctx context.Context, in *UserAuthListReq, opts ...grpc.CallOption) (*Response, error) { + client := analysis.NewAnalysisUserClient(m.cli.Conn()) + return client.UserAuthList(ctx, in, opts...) +} + +func (m *defaultAnalysisUser) UserAuthDelete(ctx context.Context, in *UserAuthDeleteReq, opts ...grpc.CallOption) (*Response, error) { + client := analysis.NewAnalysisUserClient(m.cli.Conn()) + return client.UserAuthDelete(ctx, in, opts...) +} + +func (m *defaultAnalysisUser) UserAuthUpdate(ctx context.Context, in *UserAuthUpdateReq, opts ...grpc.CallOption) (*Response, error) { + client := analysis.NewAnalysisUserClient(m.cli.Conn()) + return client.UserAuthUpdate(ctx, in, opts...) +} + +func (m *defaultAnalysisUser) DeviceBind(ctx context.Context, in *DeviceBindReq, opts ...grpc.CallOption) (*Response, error) { + client := analysis.NewAnalysisUserClient(m.cli.Conn()) + return client.DeviceBind(ctx, in, opts...) +} + +func (m *defaultAnalysisUser) DeviceInfo(ctx context.Context, in *DeviceInfoReq, opts ...grpc.CallOption) (*Response, error) { + client := analysis.NewAnalysisUserClient(m.cli.Conn()) + return client.DeviceInfo(ctx, in, opts...) +} diff --git a/services/analysis/internal/dao/authorize.go b/services/analysis/internal/dao/authorize.go index 29c7cb1..978c96c 100644 --- a/services/analysis/internal/dao/authorize.go +++ b/services/analysis/internal/dao/authorize.go @@ -5,10 +5,18 @@ import "lone-services/pkg/utils" type UserStoreAuth struct { Id int64 `gorm:"column:id;primaryKey;autoIncrement" json:"id"` UserId int64 `gorm:"column:user_id" json:"user_id"` - ObjId int64 `gorm:"column:obj_id" json:"obj_id"` StoreId int64 `gorm:"column:store_id" json:"store_id"` ValidityTime utils.CustomTime `gorm:"column:validity_time" json:"validity_time"` Status uint8 `gorm:"column:status" json:"status"` - IP string `gorm:"column:ip" json:"ip"` - CreateTime utils.CustomTime `gorm:"column:create_time" json:"create_time"` + CreatedAt utils.CustomTime `gorm:"column:created_at" json:"created_at"` +} + +type StoreAuthItem struct { + Id int64 `json:"id"` + StoreId int64 `json:"store_id"` + Name string `json:"name"` + Address string `json:"address"` + ValidityTime string `json:"validity_time"` + CreatedAt string `json:"created_at"` + Status int `json:"status"` } diff --git a/services/analysis/internal/dao/const.go b/services/analysis/internal/dao/const.go index 1cec92b..9bbf324 100644 --- a/services/analysis/internal/dao/const.go +++ b/services/analysis/internal/dao/const.go @@ -5,8 +5,12 @@ const ( TypeStore uint8 = 2 TypeUser uint8 = 3 - ClientCodeUserSkin = "user_skin" + ClientCodeUserSkin = "user_skin" + ClientCodeStoreSkin = "store_skin" StatusEnabled uint8 = 1 StatusDisabled uint8 = 2 + + SkinTypeUser int32 = 1 + SkinTypeStore int32 = 2 ) diff --git a/services/analysis/internal/logic/analysisstore/storeAuthLogic.go b/services/analysis/internal/logic/analysisstore/storeAuthLogic.go index 3a69739..73158b4 100644 --- a/services/analysis/internal/logic/analysisstore/storeAuthLogic.go +++ b/services/analysis/internal/logic/analysisstore/storeAuthLogic.go @@ -78,10 +78,10 @@ func (l *StoreAuthLogic) StoreAuth(in *analysis.StoreAuthReq) (*analysis.Respons return common.OutResponse(utils.ErrorParams, "用户未开通"), nil } - if err := common.BindStoreAuth(verified.UserId, verified.BizId, storeId, req.ValidityTime); err != nil { + if err := common.BindStoreAuth(verified.BizId, storeId, req.ValidityTime); err != nil { l.Errorf("store auth bind: %v", err) return common.FailResponse(utils.Fail), nil } - return common.OkResponse(map[string]int64{"user_id": verified.UserId}), nil + return common.OkResponse(map[string]int64{"user_id": verified.BizId}), nil } diff --git a/services/analysis/internal/logic/analysisuser/deviceBindLogic.go b/services/analysis/internal/logic/analysisuser/deviceBindLogic.go new file mode 100644 index 0000000..ef034e1 --- /dev/null +++ b/services/analysis/internal/logic/analysisuser/deviceBindLogic.go @@ -0,0 +1,76 @@ +package analysisuserlogic + +import ( + "context" + + "lone-services/pkg/utils" + "lone-services/pkg/validate" + analysis "lone-services/rpc/analysis/pb" + equipmentpb "lone-services/rpc/equipment/pb" + "lone-services/services/analysis/internal/logic/common" + "lone-services/services/analysis/internal/svc" + "lone-services/services/analysis/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +const skinAnalyzerType int32 = 3 + +type DeviceBindLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeviceBindLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeviceBindLogic { + return &DeviceBindLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *DeviceBindLogic) DeviceBind(in *analysis.DeviceBindReq) (*analysis.Response, error) { + var req validator.DeviceBindValidator + if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { + return common.OutResponse(utils.ErrorParams, msg), nil + } + + loginUser := utils.GetUserFromCtx(l.ctx) + if !loginUser.Valid || loginUser.ID < utils.NumberOne { + return common.FailResponse(utils.ErrorNoLogin), nil + } + skinType, ok := common.SkinTypeOf(loginUser.ClientCode) + if !ok { + return common.FailResponse(utils.ErrorAuthority), nil + } + if l.svcCtx.EquipmentSvcName == utils.StringEmpty { + return common.FailResponse(utils.Fail), nil + } + + cli, err := svc.GetRpcClient(l.svcCtx.EquipmentSvcName) + if err != nil { + l.Errorf("device bind get equipment rpc: %v", err) + return common.FailResponse(utils.Fail), nil + } + + out, err := equipmentpb.NewEquipmentClient(cli.Conn()).InternalBindAdd(l.ctx, &equipmentpb.InternalBindAddRequest{ + UserId: loginUser.ID, + UserNickname: loginUser.Name, + HostNickname: utils.StringEmpty, + HostCode: req.DeviceNo, + Type: skinAnalyzerType, + SkinType: skinType, + }) + if err != nil { + l.Errorf("device bind internal add: %v", err) + return common.FailResponse(utils.Fail), nil + } + if out == nil { + return common.FailResponse(utils.Fail), nil + } + return &analysis.Response{ + Code: out.Code, + Msg: out.Msg, + }, nil +} diff --git a/services/analysis/internal/logic/analysisuser/deviceInfoLogic.go b/services/analysis/internal/logic/analysisuser/deviceInfoLogic.go new file mode 100644 index 0000000..a9f602e --- /dev/null +++ b/services/analysis/internal/logic/analysisuser/deviceInfoLogic.go @@ -0,0 +1,64 @@ +package analysisuserlogic + +import ( + "context" + + "lone-services/pkg/utils" + analysis "lone-services/rpc/analysis/pb" + equipmentpb "lone-services/rpc/equipment/pb" + "lone-services/services/analysis/internal/logic/common" + "lone-services/services/analysis/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeviceInfoLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeviceInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeviceInfoLogic { + return &DeviceInfoLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *DeviceInfoLogic) DeviceInfo(in *analysis.DeviceInfoReq) (*analysis.Response, error) { + loginUser := utils.GetUserFromCtx(l.ctx) + if !loginUser.Valid || loginUser.ID < utils.NumberOne { + return common.FailResponse(utils.ErrorNoLogin), nil + } + skinType, ok := common.SkinTypeOf(loginUser.ClientCode) + if !ok { + return common.FailResponse(utils.ErrorAuthority), nil + } + if l.svcCtx.EquipmentSvcName == utils.StringEmpty { + return common.FailResponse(utils.Fail), nil + } + + cli, err := svc.GetRpcClient(l.svcCtx.EquipmentSvcName) + if err != nil { + l.Errorf("device info get equipment rpc: %v", err) + return common.FailResponse(utils.Fail), nil + } + + out, err := equipmentpb.NewEquipmentClient(cli.Conn()).InternalBindInfo(l.ctx, &equipmentpb.InternalBindInfoRequest{ + UserId: loginUser.ID, + SkinType: skinType, + }) + if err != nil { + l.Errorf("device info internal: %v", err) + return common.FailResponse(utils.Fail), nil + } + if out == nil { + return common.FailResponse(utils.Fail), nil + } + return &analysis.Response{ + Code: out.Code, + Msg: out.Msg, + Data: out.Data, + }, nil +} diff --git a/services/analysis/internal/logic/analysisuser/userAuthDeleteLogic.go b/services/analysis/internal/logic/analysisuser/userAuthDeleteLogic.go new file mode 100644 index 0000000..160a814 --- /dev/null +++ b/services/analysis/internal/logic/analysisuser/userAuthDeleteLogic.go @@ -0,0 +1,46 @@ +package analysisuserlogic + +import ( + "context" + + "lone-services/pkg/utils" + "lone-services/pkg/validate" + analysis "lone-services/rpc/analysis/pb" + "lone-services/services/analysis/internal/logic/common" + "lone-services/services/analysis/internal/svc" + "lone-services/services/analysis/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UserAuthDeleteLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUserAuthDeleteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserAuthDeleteLogic { + return &UserAuthDeleteLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *UserAuthDeleteLogic) UserAuthDelete(in *analysis.UserAuthDeleteReq) (*analysis.Response, error) { + var req validator.UserAuthDeleteValidator + if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { + return common.OutResponse(utils.ErrorParams, msg), nil + } + + bizId, _, fail := common.RequireAnalysisUserId(l.ctx) + if fail != nil { + return fail, nil + } + + if _, err := common.DisableStoreAuth(req.Id, bizId); err != nil { + l.Errorf("user auth delete: %v", err) + return common.FailResponse(utils.Fail), nil + } + return common.OkResponse(nil), nil +} diff --git a/services/analysis/internal/logic/analysisuser/userAuthListLogic.go b/services/analysis/internal/logic/analysisuser/userAuthListLogic.go new file mode 100644 index 0000000..7823db6 --- /dev/null +++ b/services/analysis/internal/logic/analysisuser/userAuthListLogic.go @@ -0,0 +1,112 @@ +package analysisuserlogic + +import ( + "context" + "time" + + "lone-services/pkg/utils" + analysis "lone-services/rpc/analysis/pb" + storepb "lone-services/rpc/store/pb" + "lone-services/services/analysis/internal/dao" + "lone-services/services/analysis/internal/logic/common" + "lone-services/services/analysis/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +const authTimeLayout = "2006-01-02 15:04" + +type UserAuthListLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUserAuthListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserAuthListLogic { + return &UserAuthListLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *UserAuthListLogic) UserAuthList(in *analysis.UserAuthListReq) (*analysis.Response, error) { + bizId, _, fail := common.RequireAnalysisUserId(l.ctx) + if fail != nil { + return fail, nil + } + + authList, err := common.ListStoreAuth(bizId) + if err != nil { + l.Errorf("user auth list: %v", err) + return common.FailResponse(utils.Fail), nil + } + if len(authList) == utils.NumberZero { + return common.OkResponse([]dao.StoreAuthItem{}), nil + } + + storeMap, err := l.loadStores(authList) + if err != nil { + l.Errorf("user auth list stores: %v", err) + return common.FailResponse(utils.Fail), nil + } + + now := time.Now() + list := make([]dao.StoreAuthItem, 0, len(authList)) + for _, row := range authList { + store, ok := storeMap[row.StoreId] + if !ok { + continue + } + itemStatus := int(dao.StatusEnabled) + if row.ValidityTime.Time.Before(now) { + itemStatus = int(dao.StatusDisabled) + } + list = append(list, dao.StoreAuthItem{ + Id: row.Id, + StoreId: store.Id, + Name: store.Name, + Address: store.Address, + ValidityTime: row.ValidityTime.Format(authTimeLayout), + CreatedAt: row.CreatedAt.Format(authTimeLayout), + Status: itemStatus, + }) + } + return common.OkResponse(list), nil +} + +func (l *UserAuthListLogic) loadStores(authList []dao.UserStoreAuth) (map[int64]*storepb.InfoResponse, error) { + ids := make([]int64, 0, len(authList)) + seen := make(map[int64]struct{}, len(authList)) + for _, row := range authList { + if _, ok := seen[row.StoreId]; ok { + continue + } + seen[row.StoreId] = struct{}{} + ids = append(ids, row.StoreId) + } + + svcName := utils.GetConfigString("services.store") + if svcName == utils.StringEmpty { + return nil, status.Error(codes.FailedPrecondition, "store service empty") + } + cli, err := svc.GetRpcClient(svcName) + if err != nil { + return nil, err + } + res, err := storepb.NewStoreClient(cli.Conn()).GetInfoByIds(l.ctx, &storepb.IdsRequest{Ids: ids}) + if err != nil { + if st, ok := status.FromError(err); ok && st.Message() == utils.ErrorNotFund.Msg { + return map[int64]*storepb.InfoResponse{}, nil + } + return nil, err + } + + storeMap := make(map[int64]*storepb.InfoResponse, len(res.GetItems())) + for _, item := range res.GetItems() { + storeMap[item.Id] = item + } + return storeMap, nil +} diff --git a/services/analysis/internal/logic/analysisuser/userAuthLogic.go b/services/analysis/internal/logic/analysisuser/userAuthLogic.go index aebf40a..2d4bcf1 100644 --- a/services/analysis/internal/logic/analysisuser/userAuthLogic.go +++ b/services/analysis/internal/logic/analysisuser/userAuthLogic.go @@ -36,7 +36,7 @@ func (l *UserAuthLogic) UserAuth(in *analysis.UserAuthReq) (*analysis.Response, return common.OutResponse(utils.ErrorParams, msg), nil } - loginUser, fail := common.RequireUserLogin(l.ctx) + bizId, _, fail := common.RequireAnalysisUserId(l.ctx) if fail != nil { return fail, nil } @@ -52,11 +52,7 @@ func (l *UserAuthLogic) UserAuth(in *analysis.UserAuthReq) (*analysis.Response, } if req.Type == int32(utils.StoreAuthBind) { - bizId := loginUser.BizId - if bizId < utils.NumberOne { - return common.OutResponse(utils.ErrorParams, "业务用户不存在"), nil - } - if err := common.BindStoreAuth(loginUser.ID, bizId, req.StoreId, req.ValidityTime); err != nil { + if err := common.BindStoreAuth(bizId, req.StoreId, req.ValidityTime); err != nil { l.Errorf("user auth bind: %v", err) return common.FailResponse(utils.Fail), nil } diff --git a/services/analysis/internal/logic/analysisuser/userAuthUpdateLogic.go b/services/analysis/internal/logic/analysisuser/userAuthUpdateLogic.go new file mode 100644 index 0000000..d369814 --- /dev/null +++ b/services/analysis/internal/logic/analysisuser/userAuthUpdateLogic.go @@ -0,0 +1,46 @@ +package analysisuserlogic + +import ( + "context" + + "lone-services/pkg/utils" + "lone-services/pkg/validate" + analysis "lone-services/rpc/analysis/pb" + "lone-services/services/analysis/internal/logic/common" + "lone-services/services/analysis/internal/svc" + "lone-services/services/analysis/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UserAuthUpdateLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewUserAuthUpdateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserAuthUpdateLogic { + return &UserAuthUpdateLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *UserAuthUpdateLogic) UserAuthUpdate(in *analysis.UserAuthUpdateReq) (*analysis.Response, error) { + var req validator.UserAuthUpdateValidator + if msg := validate.ValidateFromProto(in, &req); msg != utils.StringEmpty { + return common.OutResponse(utils.ErrorParams, msg), nil + } + + bizId, _, fail := common.RequireAnalysisUserId(l.ctx) + if fail != nil { + return fail, nil + } + + if _, err := common.UpdateStoreAuthTime(req.Id, bizId, req.ValidityTime); err != nil { + l.Errorf("user auth update: %v", err) + return common.FailResponse(utils.Fail), nil + } + return common.OkResponse(nil), nil +} diff --git a/services/analysis/internal/logic/common/authorize.go b/services/analysis/internal/logic/common/authorize.go index e160a4b..714bb23 100644 --- a/services/analysis/internal/logic/common/authorize.go +++ b/services/analysis/internal/logic/common/authorize.go @@ -22,7 +22,7 @@ func parseValidityTime(date string) (utils.CustomTime, error) { return utils.CustomTime{Time: t}, nil } -func BindStoreAuth(userId, objId, storeId int64, validityTime string) error { +func BindStoreAuth(userId, storeId int64, validityTime string) error { vt, err := parseValidityTime(validityTime) if err != nil { return err @@ -50,10 +50,48 @@ func BindStoreAuth(userId, objId, storeId int64, validityTime string) error { return authModel.Create(&dao.UserStoreAuth{ UserId: userId, - ObjId: objId, StoreId: storeId, ValidityTime: vt, Status: dao.StatusEnabled, - CreateTime: utils.Now(), + CreatedAt: utils.Now(), + }) +} + +func ListStoreAuth(userId int64) ([]dao.UserStoreAuth, error) { + var list []dao.UserStoreAuth + err := model.UserStoreAuthModel{}.Init().Items(modelbase.Params{ + Eq: map[string]string{ + "user_id": strconv.FormatInt(userId, utils.NumberTen), + "status": strconv.Itoa(int(dao.StatusEnabled)), + }, + }, &list) + return list, err +} + +func DisableStoreAuth(id, userId int64) (int64, error) { + return model.UserStoreAuthModel{}.Init().Edit(modelbase.Params{ + Eq: map[string]string{ + "id": strconv.FormatInt(id, utils.NumberTen), + "user_id": strconv.FormatInt(userId, utils.NumberTen), + "status": strconv.Itoa(int(dao.StatusEnabled)), + }, + }, map[string]interface{}{ + "status": dao.StatusDisabled, + }) +} + +func UpdateStoreAuthTime(id, userId int64, validityTime string) (int64, error) { + vt, err := parseValidityTime(validityTime) + if err != nil { + return utils.NumberZero, err + } + return model.UserStoreAuthModel{}.Init().Edit(modelbase.Params{ + Eq: map[string]string{ + "id": strconv.FormatInt(id, utils.NumberTen), + "user_id": strconv.FormatInt(userId, utils.NumberTen), + "status": strconv.Itoa(int(dao.StatusEnabled)), + }, + }, map[string]interface{}{ + "validity_time": vt, }) } diff --git a/services/analysis/internal/logic/common/helper.go b/services/analysis/internal/logic/common/helper.go index 1298d4b..32cef8e 100644 --- a/services/analysis/internal/logic/common/helper.go +++ b/services/analysis/internal/logic/common/helper.go @@ -46,6 +46,17 @@ func RequireUserLogin(ctx context.Context) (utils.UserInfo, *analysis.Response) return user, nil } +func RequireAnalysisUserId(ctx context.Context) (int64, utils.UserInfo, *analysis.Response) { + user, fail := RequireUserLogin(ctx) + if fail != nil { + return utils.NumberZero, user, fail + } + if user.BizId < utils.NumberOne { + return utils.NumberZero, user, OutResponse(utils.ErrorParams, "业务用户不存在") + } + return user.BizId, user, nil +} + func LoadAnalysisUser(id int64) (*dao.User, error) { var row dao.User err := model.UserModel{}.Init().GetOne(modelbase.Params{ @@ -59,3 +70,14 @@ func LoadAnalysisUser(id int64) (*dao.User, error) { } return &row, nil } + +func SkinTypeOf(clientCode string) (int32, bool) { + switch clientCode { + case dao.ClientCodeUserSkin: + return dao.SkinTypeUser, true + case dao.ClientCodeStoreSkin: + return dao.SkinTypeStore, true + default: + return 0, false + } +} diff --git a/services/analysis/internal/model/authorize.go b/services/analysis/internal/model/authorize.go index 27c7cac..e02c8e6 100644 --- a/services/analysis/internal/model/authorize.go +++ b/services/analysis/internal/model/authorize.go @@ -10,7 +10,7 @@ type UserStoreAuthModel struct { } func (m UserStoreAuthModel) TableName() string { - return modelbase.Prefix() + "skin_user_images_authorize" + return modelbase.Prefix() + "user_store_authorize" } func (m UserStoreAuthModel) Init() UserStoreAuthModel { diff --git a/services/analysis/internal/server/analysisstore/analysisStoreServer.go b/services/analysis/internal/server/analysisstore/analysisStoreServer.go index fada4e1..098d75b 100644 --- a/services/analysis/internal/server/analysisstore/analysisStoreServer.go +++ b/services/analysis/internal/server/analysisstore/analysisStoreServer.go @@ -23,13 +23,11 @@ func NewAnalysisStoreServer(svcCtx *svc.ServiceContext) *AnalysisStoreServer { } } -// 门店账号密码授权用户 func (s *AnalysisStoreServer) StoreAuth(ctx context.Context, in *analysis.StoreAuthReq) (*analysis.Response, error) { l := analysisstorelogic.NewStoreAuthLogic(ctx, s.svcCtx) return l.StoreAuth(in) } -// 门店获取扫码授权二维码 func (s *AnalysisStoreServer) StoreAuthQrcode(ctx context.Context, in *analysis.StoreAuthQrcodeReq) (*analysis.Response, error) { l := analysisstorelogic.NewStoreAuthQrcodeLogic(ctx, s.svcCtx) return l.StoreAuthQrcode(in) diff --git a/services/analysis/internal/server/analysisuser/analysisUserServer.go b/services/analysis/internal/server/analysisuser/analysisUserServer.go index 01e3e11..98cfef2 100644 --- a/services/analysis/internal/server/analysisuser/analysisUserServer.go +++ b/services/analysis/internal/server/analysisuser/analysisUserServer.go @@ -43,8 +43,32 @@ func (s *AnalysisUserServer) UserDelete(ctx context.Context, in *analysis.UserDe return l.UserDelete(in) } -// 用户扫码确认/拒绝授权 func (s *AnalysisUserServer) UserAuth(ctx context.Context, in *analysis.UserAuthReq) (*analysis.Response, error) { l := analysisuserlogic.NewUserAuthLogic(ctx, s.svcCtx) return l.UserAuth(in) } + +func (s *AnalysisUserServer) UserAuthList(ctx context.Context, in *analysis.UserAuthListReq) (*analysis.Response, error) { + l := analysisuserlogic.NewUserAuthListLogic(ctx, s.svcCtx) + return l.UserAuthList(in) +} + +func (s *AnalysisUserServer) UserAuthDelete(ctx context.Context, in *analysis.UserAuthDeleteReq) (*analysis.Response, error) { + l := analysisuserlogic.NewUserAuthDeleteLogic(ctx, s.svcCtx) + return l.UserAuthDelete(in) +} + +func (s *AnalysisUserServer) UserAuthUpdate(ctx context.Context, in *analysis.UserAuthUpdateReq) (*analysis.Response, error) { + l := analysisuserlogic.NewUserAuthUpdateLogic(ctx, s.svcCtx) + return l.UserAuthUpdate(in) +} + +func (s *AnalysisUserServer) DeviceBind(ctx context.Context, in *analysis.DeviceBindReq) (*analysis.Response, error) { + l := analysisuserlogic.NewDeviceBindLogic(ctx, s.svcCtx) + return l.DeviceBind(in) +} + +func (s *AnalysisUserServer) DeviceInfo(ctx context.Context, in *analysis.DeviceInfoReq) (*analysis.Response, error) { + l := analysisuserlogic.NewDeviceInfoLogic(ctx, s.svcCtx) + return l.DeviceInfo(in) +} diff --git a/services/analysis/internal/svc/servicecontext.go b/services/analysis/internal/svc/servicecontext.go index 11f51b9..ef6de99 100644 --- a/services/analysis/internal/svc/servicecontext.go +++ b/services/analysis/internal/svc/servicecontext.go @@ -69,11 +69,12 @@ func GetRpcClient(serviceName string) (zrpc.Client, error) { } type ServiceContext struct { - Config config.Config - DB *gorm.DB - Prefix string - UserSvcName string - ChoreSvcName string + Config config.Config + DB *gorm.DB + Prefix string + UserSvcName string + ChoreSvcName string + EquipmentSvcName string } func NewServiceContext(c config.Config, db *gorm.DB) *ServiceContext { @@ -85,11 +86,16 @@ func NewServiceContext(c config.Config, db *gorm.DB) *ServiceContext { if choreSvc == utils.StringEmpty { logx.Error("config services.chore empty") } + equipmentSvc := utils.GetConfigString("services.equipment") + if equipmentSvc == utils.StringEmpty { + logx.Error("config services.equipment empty") + } return &ServiceContext{ - Config: c, - DB: db, - Prefix: utils.GetConfigString("mysql.prefix"), - UserSvcName: userSvc, - ChoreSvcName: choreSvc, + Config: c, + DB: db, + Prefix: utils.GetConfigString("mysql.prefix"), + UserSvcName: userSvc, + ChoreSvcName: choreSvc, + EquipmentSvcName: equipmentSvc, } } diff --git a/services/analysis/run.toml b/services/analysis/run.toml index fc66190..ccc6564 100644 --- a/services/analysis/run.toml +++ b/services/analysis/run.toml @@ -57,6 +57,8 @@ [services] user = "user-service" chore = "chore-service" + store = "store-service" + equipment = "equipment-service" [switch] wechat = 1 facepp = 1 diff --git a/services/analysis/validator/user.go b/services/analysis/validator/user.go index 44db928..94a5f4f 100644 --- a/services/analysis/validator/user.go +++ b/services/analysis/validator/user.go @@ -104,3 +104,39 @@ func (p UserAuthValidator) GetMessage() validate.ValidatorMessages { "ValidityTime.max": "有效时间过长", } } + +type UserAuthDeleteValidator struct { + Id int64 `validate:"required,gt=0"` +} + +func (p UserAuthDeleteValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "id 不能为空", + "Id.gt": "id 必须大于0", + } +} + +type DeviceBindValidator struct { + DeviceNo string `validate:"required,max=64"` +} + +func (p DeviceBindValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "DeviceNo.required": "device_no 必传", + "DeviceNo.max": "device_no 过长", + } +} + +type UserAuthUpdateValidator struct { + Id int64 `validate:"required,gt=0"` + ValidityTime string `validate:"required,max=32"` +} + +func (p UserAuthUpdateValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "id 不能为空", + "Id.gt": "id 必须大于0", + "ValidityTime.required": "时间必传", + "ValidityTime.max": "时间过长", + } +} diff --git a/services/equipment/equipmentclient/equipment.go b/services/equipment/equipmentclient/equipment.go index d21af56..4b83c29 100644 --- a/services/equipment/equipmentclient/equipment.go +++ b/services/equipment/equipmentclient/equipment.go @@ -1,5 +1,5 @@ // Code generated by goctl. DO NOT EDIT. -// goctl 1.10.2 +// goctl 1.10.1 // Source: equipment.proto package equipmentClient @@ -19,6 +19,8 @@ type ( ApiBindAddRequest = equipment.ApiBindAddRequest ApiBindExpiryGetRequest = equipment.ApiBindExpiryGetRequest ApiBindExpiryRequest = equipment.ApiBindExpiryRequest + ApiBindInfoRequest = equipment.ApiBindInfoRequest + ApiBindUpdateRequest = equipment.ApiBindUpdateRequest ApiMaskAddRequest = equipment.ApiMaskAddRequest ApiMaskUseRequest = equipment.ApiMaskUseRequest ApiMaskUsedItemsRequest = equipment.ApiMaskUsedItemsRequest @@ -30,6 +32,8 @@ type ( EditRequest = equipment.EditRequest EmptyRequest = equipment.EmptyRequest IdRequest = equipment.IdRequest + InternalBindAddRequest = equipment.InternalBindAddRequest + InternalBindInfoRequest = equipment.InternalBindInfoRequest ItemsRequest = equipment.ItemsRequest MaskItemsRequest = equipment.MaskItemsRequest Response = equipment.Response @@ -62,6 +66,10 @@ type ( ApiMaskStoreUse(ctx context.Context, in *ApiMaskUseRequest, opts ...grpc.CallOption) (*Response, error) ApiMaskStoreUseItems(ctx context.Context, in *ApiMaskUsedItemsRequest, opts ...grpc.CallOption) (*Response, error) ApiVersion(ctx context.Context, in *ApiVersionRequest, opts ...grpc.CallOption) (*Response, error) + ApiBindInfo(ctx context.Context, in *ApiBindInfoRequest, opts ...grpc.CallOption) (*Response, error) + ApiBindUpdate(ctx context.Context, in *ApiBindUpdateRequest, opts ...grpc.CallOption) (*Response, error) + InternalBindAdd(ctx context.Context, in *InternalBindAddRequest, opts ...grpc.CallOption) (*Response, error) + InternalBindInfo(ctx context.Context, in *InternalBindInfoRequest, opts ...grpc.CallOption) (*Response, error) } defaultEquipment struct { @@ -190,3 +198,23 @@ func (m *defaultEquipment) ApiVersion(ctx context.Context, in *ApiVersionRequest client := equipment.NewEquipmentClient(m.cli.Conn()) return client.ApiVersion(ctx, in, opts...) } + +func (m *defaultEquipment) ApiBindInfo(ctx context.Context, in *ApiBindInfoRequest, opts ...grpc.CallOption) (*Response, error) { + client := equipment.NewEquipmentClient(m.cli.Conn()) + return client.ApiBindInfo(ctx, in, opts...) +} + +func (m *defaultEquipment) ApiBindUpdate(ctx context.Context, in *ApiBindUpdateRequest, opts ...grpc.CallOption) (*Response, error) { + client := equipment.NewEquipmentClient(m.cli.Conn()) + return client.ApiBindUpdate(ctx, in, opts...) +} + +func (m *defaultEquipment) InternalBindAdd(ctx context.Context, in *InternalBindAddRequest, opts ...grpc.CallOption) (*Response, error) { + client := equipment.NewEquipmentClient(m.cli.Conn()) + return client.InternalBindAdd(ctx, in, opts...) +} + +func (m *defaultEquipment) InternalBindInfo(ctx context.Context, in *InternalBindInfoRequest, opts ...grpc.CallOption) (*Response, error) { + client := equipment.NewEquipmentClient(m.cli.Conn()) + return client.InternalBindInfo(ctx, in, opts...) +} diff --git a/services/equipment/internal/dao/bind.go b/services/equipment/internal/dao/bind.go index 058bd8d..492db06 100644 --- a/services/equipment/internal/dao/bind.go +++ b/services/equipment/internal/dao/bind.go @@ -10,7 +10,8 @@ type BindCreate struct { HostNickname string `gorm:"column:host_nickname;type:varchar(128);comment:主机昵称;NOT NULL" json:"host_nickname"` UserId int64 `gorm:"column:user_id;type:int(11);comment:用户ID;NOT NULL" json:"user_id"` UserNickname string `gorm:"column:user_nickname;type:varchar(128);comment:用户昵称;NOT NULL" json:"user_nickname"` - Type int32 `json:"type" gorm:"type"` // 类型。1为圆屏,2为卵型屏,3为皮肤分析仪,4为经皮湿水仪,5为AI化妆盒,6为软水机,7为制氧机 + Type int32 `json:"type" gorm:"type"` // 类型。1为圆屏,2为卵型屏,3为皮肤分析仪,4为经皮湿水仪,5为AI化妆盒,6为软水机,7为制氧机 + SkinType int32 `gorm:"column:skin_type" json:"skin_type"` // 1用户 2门店 Image string `gorm:"column:image;type:varchar(128);comment:图片地址;NOT NULL" json:"image"` IsSpeciality int32 `gorm:"column:is_speciality;type:tinyint(1);default:0;comment:1是专业版;NOT NULL" json:"is_speciality"` Status int32 `gorm:"column:status;type:tinyint(1);default:1;comment:状态,1为正常,2为禁用" json:"status"` @@ -24,7 +25,8 @@ type BindInfo struct { UserId int64 `gorm:"column:user_id;type:int(11);comment:用户ID;NOT NULL" json:"user_id"` UserNickname string `gorm:"column:user_nickname;type:varchar(128);comment:用户昵称;NOT NULL" json:"user_nickname"` Image string `gorm:"column:image;type:varchar(128);comment:图片地址;NOT NULL" json:"image"` - Type int32 `json:"type" gorm:"type"` // 类型。1为圆屏,2为卵型屏,3为皮肤分析仪,4为经皮湿水仪,5为AI化妆盒,6为软水机,7为制氧机 + Type int32 `json:"type" gorm:"type"` // 类型。1为圆屏,2为卵型屏,3为皮肤分析仪,4为经皮湿水仪,5为AI化妆盒,6为软水机,7为制氧机 + SkinType int32 `gorm:"column:skin_type" json:"skin_type"` // 1用户 2门店 IsSpeciality int32 `gorm:"column:is_speciality;type:tinyint(1);default:0;comment:1是专业版;NOT NULL" json:"is_speciality"` ExpiryTime string `gorm:"column:expiry_time;type:char(11);comment:过期时间" json:"expiry_time"` Status uint8 `gorm:"column:status;type:tinyint(1);default:1;comment:状态,1为正常,2为禁用" json:"status"` @@ -32,6 +34,15 @@ type BindInfo struct { UpdatedTime utils.CustomTime `gorm:"column:updated_time;type:timestamp;default:CURRENT_TIMESTAMP;NOT NULL" json:"updated_time"` } +type DeviceInfo struct { + Id int64 `json:"id"` + DeviceNo string `json:"device_no"` + DeviceName string `json:"device_name"` + Status uint8 `json:"status"` + CreatedAt utils.CustomTime `json:"created_at"` + UpdatedAt utils.CustomTime `json:"updated_at"` +} + type BindExpiry struct { Id int64 `gorm:"column:id;type:bigint(20);primary_key;AUTO_INCREMENT" json:"id"` HostCode string `gorm:"column:host_code;type:varchar(64);comment:主机编号;NOT NULL" json:"host_code"` diff --git a/services/equipment/internal/logic/apiBindAddLogic.go b/services/equipment/internal/logic/apiBindAddLogic.go index 4f6a7a1..ac72ff7 100644 --- a/services/equipment/internal/logic/apiBindAddLogic.go +++ b/services/equipment/internal/logic/apiBindAddLogic.go @@ -9,7 +9,7 @@ import ( "lone-services/services/equipment/validator" "strconv" - "lone-services/rpc/equipment/pb" + equipment "lone-services/rpc/equipment/pb" "lone-services/services/equipment/internal/svc" "github.com/zeromicro/go-zero/core/logx" diff --git a/services/equipment/internal/logic/apiBindInfoLogic.go b/services/equipment/internal/logic/apiBindInfoLogic.go new file mode 100644 index 0000000..8f8c22f --- /dev/null +++ b/services/equipment/internal/logic/apiBindInfoLogic.go @@ -0,0 +1,71 @@ +package logic + +import ( + "context" + "strconv" + + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + equipment "lone-services/rpc/equipment/pb" + "lone-services/services/equipment/internal/dao" + "lone-services/services/equipment/internal/model" + "lone-services/services/equipment/internal/svc" + "lone-services/services/equipment/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ApiBindInfoLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewApiBindInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ApiBindInfoLogic { + return &ApiBindInfoLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ApiBindInfoLogic) ApiBindInfo(in *equipment.ApiBindInfoRequest) (*equipment.Response, error) { + var v validator.ApiBindInfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + + eq := map[string]string{ + "user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen), + "status": utils.StringStatusOk, + } + if v.Id > utils.NumberZero { + eq["id"] = strconv.FormatInt(v.Id, utils.NumberTen) + } + if v.HostCode != utils.StringEmpty { + eq["host_code"] = v.HostCode + } + if v.Type > utils.NumberZero { + eq["type"] = strconv.Itoa(int(v.Type)) + } + + var info dao.BindInfo + err := model.BindModel{}.Init().GetOne(modelbase.Params{ + Eq: eq, + Order: "id desc", + }, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + if info.Id < utils.NumberOne { + return l.ok(nil) + } + return l.ok(info) +} diff --git a/services/equipment/internal/logic/apiBindUpdateLogic.go b/services/equipment/internal/logic/apiBindUpdateLogic.go new file mode 100644 index 0000000..c0c24bb --- /dev/null +++ b/services/equipment/internal/logic/apiBindUpdateLogic.go @@ -0,0 +1,60 @@ +package logic + +import ( + "context" + "strconv" + + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + equipment "lone-services/rpc/equipment/pb" + "lone-services/services/equipment/internal/model" + "lone-services/services/equipment/internal/svc" + "lone-services/services/equipment/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ApiBindUpdateLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewApiBindUpdateLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ApiBindUpdateLogic { + return &ApiBindUpdateLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *ApiBindUpdateLogic) ApiBindUpdate(in *equipment.ApiBindUpdateRequest) (*equipment.Response, error) { + var v validator.ApiBindUpdateValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + + adminInfo := utils.GetUserFromCtx(l.ctx) + if adminInfo.ID < utils.NumberOne { + return l.fail(utils.ErrorNoLoginInfo) + } + + affected, err := model.BindModel{}.Init().Edit(modelbase.Params{ + Eq: map[string]string{ + "id": strconv.FormatInt(v.Id, utils.NumberTen), + "user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen), + "status": utils.StringStatusOk, + }, + }, map[string]interface{}{ + "host_nickname": v.HostNickname, + }) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + if affected < utils.NumberOne { + return l.fail(utils.ErrorNotFund) + } + return l.ok(nil) +} diff --git a/services/equipment/internal/logic/apiMaskAddLogic.go b/services/equipment/internal/logic/apiMaskAddLogic.go index a7549b1..33eff7e 100644 --- a/services/equipment/internal/logic/apiMaskAddLogic.go +++ b/services/equipment/internal/logic/apiMaskAddLogic.go @@ -4,7 +4,7 @@ import ( "context" "lone-services/pkg/utils" - "lone-services/rpc/equipment/pb" + equipment "lone-services/rpc/equipment/pb" "lone-services/services/equipment/internal/svc" "github.com/zeromicro/go-zero/core/logx" diff --git a/services/equipment/internal/logic/internalBindAddLogic.go b/services/equipment/internal/logic/internalBindAddLogic.go new file mode 100644 index 0000000..5a03cf6 --- /dev/null +++ b/services/equipment/internal/logic/internalBindAddLogic.go @@ -0,0 +1,109 @@ +package logic + +import ( + "context" + "strconv" + + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + equipment "lone-services/rpc/equipment/pb" + "lone-services/services/equipment/internal/dao" + "lone-services/services/equipment/internal/model" + "lone-services/services/equipment/internal/svc" + "lone-services/services/equipment/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type InternalBindAddLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewInternalBindAddLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InternalBindAddLogic { + return &InternalBindAddLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *InternalBindAddLogic) InternalBindAdd(in *equipment.InternalBindAddRequest) (*equipment.Response, error) { + var v validator.InternalBindAddValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + + w := modelbase.Params{ + Eq: map[string]string{ + "host_code": v.HostCode, + "status": utils.StringStatusOk, + "type": strconv.Itoa(int(v.Type)), + }, + } + var info dao.BindCreate + modelObj := model.BindModel{}.Init() + err := modelObj.GetOne(w, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + if info.Id > utils.NumberZero { + if info.UserId == v.UserId { + return l.fail(utils.ErrorBindError) + } + return l.fail(utils.ErrorBindOtherError) + } + + w = modelbase.Params{Eq: map[string]string{ + "host_code": v.HostCode, + "user_id": strconv.FormatInt(v.UserId, utils.NumberTen), + "type": strconv.Itoa(int(v.Type)), + }} + err = modelObj.GetOne(w, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + + info.Status = utils.StatusOk + info.UserId = v.UserId + info.UserNickname = v.UserNickname + info.HostCode = v.HostCode + info.HostNickname = v.HostNickname + info.BindTime = utils.Now() + info.Type = v.Type + info.SkinType = v.SkinType + + w = modelbase.Params{ + Eq: map[string]string{"id": strconv.FormatInt(info.Id, utils.NumberTen)}, + } + + modelObj.Begin() + if info.Id < utils.NumberOne { + err = modelObj.Create(&info) + } else { + _, err = modelObj.Edit(w, &info) + } + if err != nil { + l.Logger.Error(err) + modelObj.Rollback() + return l.fail(utils.Fail) + } + + err = model.BindHistoryModel{}.Init().Create(&dao.BindHistoryCreate{ + HostCode: v.HostCode, + UserId: v.UserId, + Status: utils.StatusOk, + Type: v.Type, + }) + if err != nil { + l.Logger.Error(err) + modelObj.Rollback() + return l.fail(utils.Fail) + } + modelObj.Commit() + return l.ok(utils.NumberOne) +} diff --git a/services/equipment/internal/logic/internalBindInfoLogic.go b/services/equipment/internal/logic/internalBindInfoLogic.go new file mode 100644 index 0000000..eec8840 --- /dev/null +++ b/services/equipment/internal/logic/internalBindInfoLogic.go @@ -0,0 +1,74 @@ +package logic + +import ( + "context" + "strconv" + + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + equipment "lone-services/rpc/equipment/pb" + "lone-services/services/equipment/internal/dao" + "lone-services/services/equipment/internal/model" + "lone-services/services/equipment/internal/svc" + "lone-services/services/equipment/validator" + + "github.com/zeromicro/go-zero/core/logx" +) + +type InternalBindInfoLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewInternalBindInfoLogic(ctx context.Context, svcCtx *svc.ServiceContext) *InternalBindInfoLogic { + return &InternalBindInfoLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *InternalBindInfoLogic) InternalBindInfo(in *equipment.InternalBindInfoRequest) (*equipment.Response, error) { + var v validator.InternalBindInfoValidator + if fail := l.checkParams(in, &v); fail != nil { + return fail, nil + } + + eq := map[string]string{ + "status": utils.StringStatusOk, + } + if v.UserId > utils.NumberZero { + eq["user_id"] = strconv.FormatInt(v.UserId, utils.NumberTen) + } + if v.SkinType > utils.NumberZero { + eq["skin_type"] = strconv.Itoa(int(v.SkinType)) + } + if v.HostCode != utils.StringEmpty { + eq["host_code"] = v.HostCode + } + if v.Type > utils.NumberZero { + eq["type"] = strconv.Itoa(int(v.Type)) + } + if v.Id > utils.NumberZero { + eq["id"] = strconv.FormatInt(v.Id, utils.NumberTen) + } + if len(eq) == utils.NumberOne { + return l.out(utils.ErrorParams, "缺少查询条件") + } + + var info dao.BindInfo + err := model.BindModel{}.Init().GetOne(modelbase.Params{ + Eq: eq, + Order: "id desc", + }, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + if info.Id < utils.NumberOne { + return l.ok(nil) + } + return l.ok(info) +} diff --git a/services/equipment/internal/server/equipmentServer.go b/services/equipment/internal/server/equipmentServer.go index 9c5654a..8a09307 100644 --- a/services/equipment/internal/server/equipmentServer.go +++ b/services/equipment/internal/server/equipmentServer.go @@ -1,5 +1,5 @@ // Code generated by goctl. DO NOT EDIT. -// goctl 1.10.2 +// goctl 1.10.1 // Source: equipment.proto package server @@ -138,3 +138,23 @@ func (s *EquipmentServer) ApiVersion(ctx context.Context, in *equipment.ApiVersi l := logic.NewApiVersionLogic(ctx, s.svcCtx) return l.ApiVersion(in) } + +func (s *EquipmentServer) ApiBindInfo(ctx context.Context, in *equipment.ApiBindInfoRequest) (*equipment.Response, error) { + l := logic.NewApiBindInfoLogic(ctx, s.svcCtx) + return l.ApiBindInfo(in) +} + +func (s *EquipmentServer) ApiBindUpdate(ctx context.Context, in *equipment.ApiBindUpdateRequest) (*equipment.Response, error) { + l := logic.NewApiBindUpdateLogic(ctx, s.svcCtx) + return l.ApiBindUpdate(in) +} + +func (s *EquipmentServer) InternalBindAdd(ctx context.Context, in *equipment.InternalBindAddRequest) (*equipment.Response, error) { + l := logic.NewInternalBindAddLogic(ctx, s.svcCtx) + return l.InternalBindAdd(in) +} + +func (s *EquipmentServer) InternalBindInfo(ctx context.Context, in *equipment.InternalBindInfoRequest) (*equipment.Response, error) { + l := logic.NewInternalBindInfoLogic(ctx, s.svcCtx) + return l.InternalBindInfo(in) +} diff --git a/services/equipment/validator/bind.go b/services/equipment/validator/bind.go index c364162..7ebf7a8 100644 --- a/services/equipment/validator/bind.go +++ b/services/equipment/validator/bind.go @@ -31,8 +31,71 @@ func (p BindSetExpiryValidator) GetMessage() validate.ValidatorMessages { } } +type InternalBindAddValidator struct { + UserId int64 `validate:"required,gt=0"` + UserNickname string `validate:"omitempty,max=128"` + HostNickname string `validate:"omitempty,max=128"` + HostCode string `validate:"required,max=64"` + Type int32 `validate:"required,gt=0"` + SkinType int32 `validate:"required,oneof=1 2"` +} + +func (p InternalBindAddValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "UserId.required": "缺少用户", + "UserId.gt": "缺少用户", + "HostCode.required": "缺少设备编码", + "HostCode.max": "设备编码过长", + "Type.required": "缺少设备类型", + "Type.gt": "缺少设备类型", + "SkinType.required": "缺少绑定类型", + "SkinType.oneof": "绑定类型只能是1或2", + } +} + +type InternalBindInfoValidator struct { + UserId int64 `validate:"omitempty,gte=0"` + SkinType int32 `validate:"omitempty,oneof=1 2"` + HostCode string `validate:"omitempty,max=64"` + Type int32 `validate:"omitempty,gte=0"` + Id int64 `validate:"omitempty,gte=0"` +} + +func (p InternalBindInfoValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "SkinType.oneof": "绑定类型只能是1或2", + "HostCode.max": "设备编码过长", + } +} + +type ApiBindInfoValidator struct { + Id int64 `validate:"omitempty,gte=0"` + HostCode string `validate:"omitempty,max=64"` + Type int32 `validate:"omitempty,gte=0"` +} + +func (p ApiBindInfoValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "HostCode.max": "设备编码过长", + } +} + +type ApiBindUpdateValidator struct { + Id int64 `validate:"required,gt=0"` + HostNickname string `validate:"required,max=128"` +} + +func (p ApiBindUpdateValidator) GetMessage() validate.ValidatorMessages { + return validate.ValidatorMessages{ + "Id.required": "id 必传", + "Id.gt": "id 必传", + "HostNickname.required": "缺少设备名称", + "HostNickname.max": "设备名称过长", + } +} + type BindValidator struct { - HostNickname string `form:"host_nickname" json:"host_nickname" validate:"required"` + HostNickname string `form:"host_nickname" json:"host_nickname"` HostCode string `form:"host_code" json:"host_code" validate:"required"` Type int32 `form:"type" json:"type"` } @@ -40,8 +103,7 @@ type BindValidator struct { // GetMessage 提示消息 func (p BindValidator) GetMessage() validate.ValidatorMessages { return validate.ValidatorMessages{ - "HostNickname.required": "缺少设备名称", - "HostCode.required": "缺少设备编码", + "HostCode.required": "缺少设备编码", } } diff --git a/services/user/internal/logic/authHelper.go b/services/user/internal/logic/authHelper.go index 4b3c760..2738e47 100644 --- a/services/user/internal/logic/authHelper.go +++ b/services/user/internal/logic/authHelper.go @@ -233,7 +233,10 @@ func issueLoginToken(ctx context.Context, jwtAuth *config.JWTAuth, row *dao.User if jwtAuth == nil || jwtAuth.Access == nil || jwtAuth.Refresh == nil { return nil, errors.New("jwt not initialized") } - mobile, _ := utils.DecryptPhone(row.Mobile) + mobile, perr := utils.DecryptPhone(row.Mobile) + if perr != nil { + return nil, errors.New("decrypt phone error") + } session := toSession(*row, mobile, client) if err := fillSessionBizIds(ctx, &session, row.Id, client); err != nil { return nil, err diff --git a/services/user/internal/logic/bizUser.go b/services/user/internal/logic/bizUser.go index b6f0f8a..9d6abf5 100644 --- a/services/user/internal/logic/bizUser.go +++ b/services/user/internal/logic/bizUser.go @@ -16,7 +16,7 @@ import ( "google.golang.org/grpc/status" ) -func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) error { +func ensureClientBizUser(ctx context.Context, svcCtx *svc.ServiceContext, userId int64, clientCode string) error { var row dao.UserClient err := model.UserClientModel{}.Init().GetOne(modelbase.Params{ Eq: map[string]string{ @@ -34,7 +34,7 @@ func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) e return nil } - bizId, err := createBizUser(ctx, clientCode) + bizId, err := createBizUser(ctx, svcCtx, clientCode) if err != nil { return err } @@ -50,10 +50,10 @@ func ensureClientBizUser(ctx context.Context, userId int64, clientCode string) e return err } -func createBizUser(ctx context.Context, serviceKey string) (int64, error) { +func createBizUser(ctx context.Context, svcCtx *svc.ServiceContext, serviceKey string) (int64, error) { switch serviceKey { case "user_skin": - return createAnalysisBizUser(ctx, "analysis") + return createAnalysisBizUser(ctx, svcCtx.AnalysisSvcName) default: return utils.NumberZero, status.Error(codes.InvalidArgument, fmt.Sprintf("unsupported biz_user service: %s", serviceKey)) } diff --git a/services/user/internal/logic/loginLogic.go b/services/user/internal/logic/loginLogic.go index 1b0a26e..c2dce40 100644 --- a/services/user/internal/logic/loginLogic.go +++ b/services/user/internal/logic/loginLogic.go @@ -80,7 +80,7 @@ func (l *LoginLogic) loginByOpenid(req validator.LoginValidator) (*user.Response return failResponse(utils.Fail), nil } - if bizErr := ensureClientBizUser(l.ctx, userId, req.ClientCode); bizErr != nil { + if bizErr := ensureClientBizUser(l.ctx, l.svcCtx, userId, req.ClientCode); bizErr != nil { l.Errorf("login ensure biz user: %v", bizErr) if st, ok := status.FromError(bizErr); ok { return outResponse(utils.Fail, st.Message()), nil diff --git a/services/user/internal/svc/servicecontext.go b/services/user/internal/svc/servicecontext.go index 77b2831..4593288 100644 --- a/services/user/internal/svc/servicecontext.go +++ b/services/user/internal/svc/servicecontext.go @@ -9,12 +9,14 @@ import ( ) type ServiceContext struct { - Config config.Config - DB *gorm.DB - Prefix string - JWT *config.JWTAuth - SaleSvcName string - ChoreSvcName string + Config config.Config + DB *gorm.DB + Prefix string + JWT *config.JWTAuth + SaleSvcName string + ChoreSvcName string + AnalysisSvcName string + StoreSvcName string } func NewServiceContext(c config.Config, db *gorm.DB, jwtAuth *config.JWTAuth) *ServiceContext { @@ -27,12 +29,24 @@ func NewServiceContext(c config.Config, db *gorm.DB, jwtAuth *config.JWTAuth) *S logx.Error("config services.chore empty") } + analysisSvc := utils.GetConfigString("services.analysis") + if analysisSvc == utils.StringEmpty { + logx.Error("config services.analysis empty") + } + + storeSvc := utils.GetConfigString("services.store") + if storeSvc == utils.StringEmpty { + logx.Error("config services.store empty") + } + return &ServiceContext{ - Config: c, - DB: db, - Prefix: utils.GetConfigString("mysql.prefix"), - JWT: jwtAuth, - SaleSvcName: saleSvc, - ChoreSvcName: choreSvc, + Config: c, + DB: db, + Prefix: utils.GetConfigString("mysql.prefix"), + JWT: jwtAuth, + SaleSvcName: saleSvc, + ChoreSvcName: choreSvc, + AnalysisSvcName: analysisSvc, + StoreSvcName: storeSvc, } }