diff --git a/deploy/apisix/lua/auth.lua b/deploy/apisix/lua/auth.lua index e489907..d003ce7 100644 --- a/deploy/apisix/lua/auth.lua +++ b/deploy/apisix/lua/auth.lua @@ -30,6 +30,10 @@ function _M.access(conf, ctx) ["/api/v3/user/qrcode/generate"] = true, ["/api/v3/user/qrcode/scan"] = true, + ["/api/v3/percutaneous/use"] = true, + ["/api/v3/percutaneous/ws/status"] = true, + ["/api/v3/percutaneous/get/code"] = true, + ["/api/v2/analysis/agreement/info"] = true, ["/api/v2/analysis/switch"] = true, ["/api/v2/analysis/qrcode/info"] = true, diff --git a/rpc/percutaneous/pb/percutaneous.pb.go b/rpc/percutaneous/pb/percutaneous.pb.go index e7e4854..ab1020d 100644 --- a/rpc/percutaneous/pb/percutaneous.pb.go +++ b/rpc/percutaneous/pb/percutaneous.pb.go @@ -191,6 +191,7 @@ type UsedLogRequest struct { Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` Stamp string `protobuf:"bytes,3,opt,name=stamp,proto3" json:"stamp,omitempty"` + Time []string `protobuf:"bytes,4,rep,name=time,proto3" json:"time,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -246,6 +247,13 @@ func (x *UsedLogRequest) GetStamp() string { return "" } +func (x *UsedLogRequest) GetTime() []string { + if x != nil { + return x.Time + } + return nil +} + type Response struct { state protoimpl.MessageState `protogen:"open.v1"` Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` @@ -713,11 +721,12 @@ const file_percutaneous_percutaneous_proto_rawDesc = "" + "\auser_id\x18\x02 \x01(\x03R\x06userId\x12\x12\n" + "\x04data\x18\x03 \x01(\tR\x04data\x12\x14\n" + "\x05stamp\x18\x04 \x01(\tR\x05stamp\x12\x1a\n" + - "\bposition\x18\x05 \x01(\x05R\bposition\"N\n" + + "\bposition\x18\x05 \x01(\x05R\bposition\"b\n" + "\x0eUsedLogRequest\x12\x12\n" + "\x04page\x18\x01 \x01(\x05R\x04page\x12\x12\n" + "\x04size\x18\x02 \x01(\x05R\x04size\x12\x14\n" + - "\x05stamp\x18\x03 \x01(\tR\x05stamp\"D\n" + + "\x05stamp\x18\x03 \x01(\tR\x05stamp\x12\x12\n" + + "\x04time\x18\x04 \x03(\tR\x04time\"D\n" + "\bResponse\x12\x12\n" + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" + "\x03msg\x18\x02 \x01(\tR\x03msg\x12\x12\n" + @@ -743,14 +752,16 @@ const file_percutaneous_percutaneous_proto_rawDesc = "" + "\auser_id\x18\x02 \x01(\x03R\x06userId\"\x0e\n" + "\fEmptyRequest\",\n" + "\x0fWsStreamRequest\x12\x19\n" + - "\braw_body\x18\x01 \x01(\fR\arawBody2\xbf\b\n" + + "\braw_body\x18\x01 \x01(\fR\arawBody2\xb0\t\n" + "\fPercutaneous\x12o\n" + "\tWifiCheck\x12\x1e.percutaneous.WifiCheckRequest\x1a\x16.percutaneous.Response\"*\x82\xd3\xe4\x93\x02$:\x01*\x12\x1f/api/v3/percutaneous/wifi/check\x12i\n" + "\aWifiSet\x12\x1c.percutaneous.WifiSetRequest\x1a\x16.percutaneous.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\"\x1d/api/v3/percutaneous/wifi/set\x12\\\n" + "\x03Use\x12\x18.percutaneous.UseRequest\x1a\x16.percutaneous.Response\"#\x82\xd3\xe4\x93\x02\x1d:\x01*\"\x18/api/v3/percutaneous/use\x12i\n" + "\aUsedLog\x12\x1c.percutaneous.UsedLogRequest\x1a\x16.percutaneous.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\x12\x1d/api/v3/percutaneous/used/log\x12i\n" + "\aAddUser\x12\x1c.percutaneous.AddUserRequest\x1a\x16.percutaneous.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\x12\x1d/api/v3/percutaneous/add/user\x12o\n" + - "\tUserItems\x12\x1e.percutaneous.UserItemsRequest\x1a\x16.percutaneous.Response\"*\x82\xd3\xe4\x93\x02$:\x01*\x12\x1f/api/v3/percutaneous/user/items\x12u\n" + + "\tUserItems\x12\x1e.percutaneous.UserItemsRequest\x1a\x16.percutaneous.Response\"*\x82\xd3\xe4\x93\x02$:\x01*\x12\x1f/api/v3/percutaneous/user/items\x12o\n" + + "\n" + + "UserDelete\x12\x1c.percutaneous.AddUserRequest\x1a\x16.percutaneous.Response\"+\x82\xd3\xe4\x93\x02%:\x01*\x12 /api/v3/percutaneous/user/delete\x12u\n" + "\vsetPosition\x12 .percutaneous.setPositionRequest\x1a\x16.percutaneous.Response\",\x82\xd3\xe4\x93\x02&:\x01*\"!/api/v3/percutaneous/use/position\x12m\n" + "\tgetWsCode\x12\x1e.percutaneous.getWsCodeRequest\x1a\x16.percutaneous.Response\"(\x82\xd3\xe4\x93\x02\":\x01*\x12\x1d/api/v3/percutaneous/get/code\x12s\n" + "\x0eWsClientStatus\x12\x1e.percutaneous.getWsCodeRequest\x1a\x16.percutaneous.Response\")\x82\xd3\xe4\x93\x02#:\x01*\x12\x1e/api/v3/percutaneous/ws/status\x12S\n" + @@ -791,22 +802,24 @@ var file_percutaneous_percutaneous_proto_depIdxs = []int32{ 3, // 3: percutaneous.Percutaneous.UsedLog:input_type -> percutaneous.UsedLogRequest 5, // 4: percutaneous.Percutaneous.AddUser:input_type -> percutaneous.AddUserRequest 6, // 5: percutaneous.Percutaneous.UserItems:input_type -> percutaneous.UserItemsRequest - 9, // 6: percutaneous.Percutaneous.setPosition:input_type -> percutaneous.setPositionRequest - 10, // 7: percutaneous.Percutaneous.getWsCode:input_type -> percutaneous.getWsCodeRequest - 10, // 8: percutaneous.Percutaneous.WsClientStatus:input_type -> percutaneous.getWsCodeRequest - 12, // 9: percutaneous.Percutaneous.WsAddUserStream:input_type -> percutaneous.WsStreamRequest - 4, // 10: percutaneous.Percutaneous.WifiCheck:output_type -> percutaneous.Response - 4, // 11: percutaneous.Percutaneous.WifiSet:output_type -> percutaneous.Response - 4, // 12: percutaneous.Percutaneous.Use:output_type -> percutaneous.Response - 4, // 13: percutaneous.Percutaneous.UsedLog:output_type -> percutaneous.Response - 4, // 14: percutaneous.Percutaneous.AddUser:output_type -> percutaneous.Response - 4, // 15: percutaneous.Percutaneous.UserItems:output_type -> percutaneous.Response - 4, // 16: percutaneous.Percutaneous.setPosition:output_type -> percutaneous.Response - 4, // 17: percutaneous.Percutaneous.getWsCode:output_type -> percutaneous.Response - 4, // 18: percutaneous.Percutaneous.WsClientStatus:output_type -> percutaneous.Response - 12, // 19: percutaneous.Percutaneous.WsAddUserStream:output_type -> percutaneous.WsStreamRequest - 10, // [10:20] is the sub-list for method output_type - 0, // [0:10] is the sub-list for method input_type + 5, // 6: percutaneous.Percutaneous.UserDelete:input_type -> percutaneous.AddUserRequest + 9, // 7: percutaneous.Percutaneous.setPosition:input_type -> percutaneous.setPositionRequest + 10, // 8: percutaneous.Percutaneous.getWsCode:input_type -> percutaneous.getWsCodeRequest + 10, // 9: percutaneous.Percutaneous.WsClientStatus:input_type -> percutaneous.getWsCodeRequest + 12, // 10: percutaneous.Percutaneous.WsAddUserStream:input_type -> percutaneous.WsStreamRequest + 4, // 11: percutaneous.Percutaneous.WifiCheck:output_type -> percutaneous.Response + 4, // 12: percutaneous.Percutaneous.WifiSet:output_type -> percutaneous.Response + 4, // 13: percutaneous.Percutaneous.Use:output_type -> percutaneous.Response + 4, // 14: percutaneous.Percutaneous.UsedLog:output_type -> percutaneous.Response + 4, // 15: percutaneous.Percutaneous.AddUser:output_type -> percutaneous.Response + 4, // 16: percutaneous.Percutaneous.UserItems:output_type -> percutaneous.Response + 4, // 17: percutaneous.Percutaneous.UserDelete:output_type -> percutaneous.Response + 4, // 18: percutaneous.Percutaneous.setPosition:output_type -> percutaneous.Response + 4, // 19: percutaneous.Percutaneous.getWsCode:output_type -> percutaneous.Response + 4, // 20: percutaneous.Percutaneous.WsClientStatus:output_type -> percutaneous.Response + 12, // 21: percutaneous.Percutaneous.WsAddUserStream:output_type -> percutaneous.WsStreamRequest + 11, // [11:22] is the sub-list for method output_type + 0, // [0:11] 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 diff --git a/rpc/percutaneous/pb/percutaneous_grpc.pb.go b/rpc/percutaneous/pb/percutaneous_grpc.pb.go index aa98a9f..8067a40 100644 --- a/rpc/percutaneous/pb/percutaneous_grpc.pb.go +++ b/rpc/percutaneous/pb/percutaneous_grpc.pb.go @@ -25,6 +25,7 @@ const ( Percutaneous_UsedLog_FullMethodName = "/percutaneous.Percutaneous/UsedLog" Percutaneous_AddUser_FullMethodName = "/percutaneous.Percutaneous/AddUser" Percutaneous_UserItems_FullMethodName = "/percutaneous.Percutaneous/UserItems" + Percutaneous_UserDelete_FullMethodName = "/percutaneous.Percutaneous/UserDelete" Percutaneous_SetPosition_FullMethodName = "/percutaneous.Percutaneous/setPosition" Percutaneous_GetWsCode_FullMethodName = "/percutaneous.Percutaneous/getWsCode" Percutaneous_WsClientStatus_FullMethodName = "/percutaneous.Percutaneous/WsClientStatus" @@ -41,6 +42,7 @@ type PercutaneousClient interface { UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) AddUser(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) UserItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error) + UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) // 使用指南 SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) GetWsCode(ctx context.Context, in *GetWsCodeRequest, opts ...grpc.CallOption) (*Response, error) @@ -117,6 +119,16 @@ func (c *percutaneousClient) UserItems(ctx context.Context, in *UserItemsRequest return out, nil } +func (c *percutaneousClient) UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(Response) + err := c.cc.Invoke(ctx, Percutaneous_UserDelete_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *percutaneousClient) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(Response) @@ -170,6 +182,7 @@ type PercutaneousServer interface { UsedLog(context.Context, *UsedLogRequest) (*Response, error) AddUser(context.Context, *AddUserRequest) (*Response, error) UserItems(context.Context, *UserItemsRequest) (*Response, error) + UserDelete(context.Context, *AddUserRequest) (*Response, error) // 使用指南 SetPosition(context.Context, *SetPositionRequest) (*Response, error) GetWsCode(context.Context, *GetWsCodeRequest) (*Response, error) @@ -204,6 +217,9 @@ func (UnimplementedPercutaneousServer) AddUser(context.Context, *AddUserRequest) func (UnimplementedPercutaneousServer) UserItems(context.Context, *UserItemsRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method UserItems not implemented") } +func (UnimplementedPercutaneousServer) UserDelete(context.Context, *AddUserRequest) (*Response, error) { + return nil, status.Error(codes.Unimplemented, "method UserDelete not implemented") +} func (UnimplementedPercutaneousServer) SetPosition(context.Context, *SetPositionRequest) (*Response, error) { return nil, status.Error(codes.Unimplemented, "method SetPosition not implemented") } @@ -345,6 +361,24 @@ func _Percutaneous_UserItems_Handler(srv interface{}, ctx context.Context, dec f return interceptor(ctx, in, info, handler) } +func _Percutaneous_UserDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddUserRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PercutaneousServer).UserDelete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: Percutaneous_UserDelete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PercutaneousServer).UserDelete(ctx, req.(*AddUserRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Percutaneous_SetPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetPositionRequest) if err := dec(in); err != nil { @@ -437,6 +471,10 @@ var Percutaneous_ServiceDesc = grpc.ServiceDesc{ MethodName: "UserItems", Handler: _Percutaneous_UserItems_Handler, }, + { + MethodName: "UserDelete", + Handler: _Percutaneous_UserDelete_Handler, + }, { MethodName: "setPosition", Handler: _Percutaneous_SetPosition_Handler, diff --git a/rpc/percutaneous/percutaneous.pb b/rpc/percutaneous/percutaneous.pb index c6a20a1..2a6bf56 100644 Binary files a/rpc/percutaneous/percutaneous.pb and b/rpc/percutaneous/percutaneous.pb differ diff --git a/rpc/percutaneous/percutaneous.proto b/rpc/percutaneous/percutaneous.proto index ea875e1..05eacb0 100644 --- a/rpc/percutaneous/percutaneous.proto +++ b/rpc/percutaneous/percutaneous.proto @@ -25,6 +25,7 @@ message UsedLogRequest { int32 page = 1; int32 size = 2; string stamp = 3; + repeated string time = 4; } message Response { @@ -110,6 +111,12 @@ service Percutaneous { body: "*" }; } + rpc UserDelete(AddUserRequest) returns (Response) { + option (google.api.http) = { + get: "/api/v3/percutaneous/user/delete" + body: "*" + }; + } // 使用指南 rpc setPosition(setPositionRequest) returns (Response) { option (google.api.http) = { diff --git a/services/percutaneous/internal/logic/addUserLogic.go b/services/percutaneous/internal/logic/addUserLogic.go index 2559d9b..be67e87 100644 --- a/services/percutaneous/internal/logic/addUserLogic.go +++ b/services/percutaneous/internal/logic/addUserLogic.go @@ -60,6 +60,13 @@ func (l *AddUserLogic) AddUser(in *percutaneous.AddUserRequest) (*percutaneous.R l.Logger.Error(err) return l.fail(utils.Fail) } + } else { + info.Status = utils.StatusOk + _, err = model.GroupModel{}.Init().Edit(w, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } } sess := l.svcCtx.SessionMgr.Pop(in.HostCode) diff --git a/services/percutaneous/internal/logic/getWsCodeLogic.go b/services/percutaneous/internal/logic/getWsCodeLogic.go index 12df716..39a31a9 100644 --- a/services/percutaneous/internal/logic/getWsCodeLogic.go +++ b/services/percutaneous/internal/logic/getWsCodeLogic.go @@ -30,21 +30,12 @@ func NewGetWsCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetWsCo } func (l *GetWsCodeLogic) GetWsCode(in *percutaneous.GetWsCodeRequest) (*percutaneous.Response, error) { - id := in.UserId - if id < utils.NumberOne { - adminInfo := utils.GetUserFromCtx(l.ctx) - if adminInfo.ID < utils.NumberOne { - return l.fail(utils.ErrorNoLoginInfo) - } - id = adminInfo.ID - } - Type := WsTypeApp if in.Type == utils.NumberTwo { Type = WsTypeOperation } - key := utils.MD5Encrypt(fmt.Sprintf("%d%s%s", id, dao.WsCode, Type)) + key := utils.MD5Encrypt(fmt.Sprintf("%s%s", dao.WsCode, Type)) redisKey := pkgws.RedisKeyQRSession + key payload, err := jsoniter.MarshalToString(pkgws.Session{ diff --git a/services/percutaneous/internal/logic/setPositionLogic.go b/services/percutaneous/internal/logic/setPositionLogic.go index 9e59e5c..8cdb4f5 100644 --- a/services/percutaneous/internal/logic/setPositionLogic.go +++ b/services/percutaneous/internal/logic/setPositionLogic.go @@ -2,9 +2,9 @@ package logic import ( "context" + "fmt" "lone-services/pkg/utils" pkgws "lone-services/pkg/ws" - "lone-services/rpc/percutaneous/pb" "lone-services/services/percutaneous/internal/svc" @@ -38,7 +38,7 @@ func (l *SetPositionLogic) SetPosition(in *percutaneous.SetPositionRequest) (*pe return l.fail(utils.ErrorQRcodeExp) } - data := in.Position + data := fmt.Sprintf("%d,%d", in.Position, adminInfo.ID) if err := pkgws.Publish(l.ctx, in.SessionId, pkgws.Success(data)); err != nil { l.Errorf("set position publish: %v", err) } diff --git a/services/percutaneous/internal/logic/useLogic.go b/services/percutaneous/internal/logic/useLogic.go index 6cb5656..5ac8412 100644 --- a/services/percutaneous/internal/logic/useLogic.go +++ b/services/percutaneous/internal/logic/useLogic.go @@ -2,13 +2,13 @@ package logic import ( "context" + "lone-services/pkg/modelbase" "lone-services/pkg/utils" + "lone-services/rpc/percutaneous/pb" "lone-services/services/percutaneous/internal/dao" "lone-services/services/percutaneous/internal/model" - "lone-services/services/percutaneous/validator" - - "lone-services/rpc/percutaneous/pb" "lone-services/services/percutaneous/internal/svc" + "lone-services/services/percutaneous/validator" "github.com/zeromicro/go-zero/core/logx" ) @@ -33,9 +33,16 @@ func (l *UseLogic) Use(in *percutaneous.UseRequest) (*percutaneous.Response, err 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) + + w := modelbase.Params{ + Eq: map[string]string{ + "host_code": in.HostCode, + }, + } + var hostInfo dao.Group + err := model.GroupModel{}.Init().GetOne(w, &hostInfo) + if err != nil { + return l.fail(utils.Fail) } stamp, err := utils.ParseCustomTime(in.Stamp) @@ -43,7 +50,7 @@ func (l *UseLogic) Use(in *percutaneous.UseRequest) (*percutaneous.Response, err return l.fail(utils.Fail) } info := dao.UsedLog{ - HostUserId: adminInfo.ID, + HostUserId: hostInfo.HostUserId, HostCode: in.HostCode, UserId: in.UserId, Data: in.Data, diff --git a/services/percutaneous/internal/logic/usedLogLogic.go b/services/percutaneous/internal/logic/usedLogLogic.go index 2c35b7a..72a0202 100644 --- a/services/percutaneous/internal/logic/usedLogLogic.go +++ b/services/percutaneous/internal/logic/usedLogLogic.go @@ -42,6 +42,10 @@ func (l *UsedLogLogic) UsedLog(in *percutaneous.UsedLogRequest) (*percutaneous.R "user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen), }, } + if len(in.Time) > utils.NumberOne { + w.Between = map[string][2]string{"create_time": { + in.Time[utils.NumberZero], in.Time[utils.NumberOne]}} + } err := model.UsedLogModel{}.Init().Items(w, &info) if err != nil { l.Logger.Error(err) @@ -55,6 +59,10 @@ func (l *UsedLogLogic) UsedLog(in *percutaneous.UsedLogRequest) (*percutaneous.R Order: "id desc", Eq: map[string]string{"user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen)}, } + if len(in.Time) > utils.NumberOne { + w.Between = map[string][2]string{"create_time": { + in.Time[utils.NumberZero], in.Time[utils.NumberOne]}} + } items, err := model.UsedLogModel{}.Init().Page(w, &info) if err != nil { diff --git a/services/percutaneous/internal/logic/userDeleteLogic.go b/services/percutaneous/internal/logic/userDeleteLogic.go new file mode 100644 index 0000000..6f139cf --- /dev/null +++ b/services/percutaneous/internal/logic/userDeleteLogic.go @@ -0,0 +1,67 @@ +package logic + +import ( + "context" + "lone-services/pkg/modelbase" + "lone-services/pkg/utils" + "lone-services/services/percutaneous/internal/dao" + "lone-services/services/percutaneous/internal/model" + "lone-services/services/percutaneous/validator" + "strconv" + + "lone-services/rpc/percutaneous/pb" + "lone-services/services/percutaneous/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type UserDeleteLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger + BaseLogic +} + +func NewUserDeleteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserDeleteLogic { + return &UserDeleteLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *UserDeleteLogic) UserDelete(in *percutaneous.AddUserRequest) (*percutaneous.Response, error) { + var v validator.GroupValidator + 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) + } + w := modelbase.Params{Eq: map[string]string{ + "host_code": in.HostCode, + "host_user_id": strconv.FormatInt(in.UserId, utils.NumberTen), + "user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen), + }} + + var info dao.Group + err := model.GroupModel{}.Init().GetOne(w, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + if info.Id > utils.NumberZero { + info.HostCode = in.HostCode + info.HostUserId = in.UserId + info.UserId = adminInfo.ID + info.Status = utils.StatusFail + _, err = model.GroupModel{}.Init().Edit(w, &info) + if err != nil { + l.Logger.Error(err) + return l.fail(utils.Fail) + } + } + + return l.ok(utils.NumberOne) +} diff --git a/services/percutaneous/internal/logic/wsClientStatusLogic.go b/services/percutaneous/internal/logic/wsClientStatusLogic.go index 5223533..c7352ba 100644 --- a/services/percutaneous/internal/logic/wsClientStatusLogic.go +++ b/services/percutaneous/internal/logic/wsClientStatusLogic.go @@ -30,22 +30,14 @@ func NewWsClientStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ws } func (l *WsClientStatusLogic) WsClientStatus(in *percutaneous.GetWsCodeRequest) (*percutaneous.Response, error) { - id := in.UserId - if id < utils.NumberOne { - adminInfo := utils.GetUserFromCtx(l.ctx) - if adminInfo.ID < utils.NumberOne { - return l.fail(utils.ErrorNoLoginInfo) - } - id = adminInfo.ID - } - Type := WsTypeApp + //1为web,2为设备 if in.Type == utils.NumberOne { Type = WsTypeOperation } - key := utils.MD5Encrypt(fmt.Sprintf("%d%s%s", id, dao.WsCode, Type)) + key := utils.MD5Encrypt(fmt.Sprintf("%s%s", dao.WsCode, Type)) redisKey := pkgws.RedisKeyQRSession + key val, err := redis.Client.Get(l.ctx, redisKey).Result() @@ -56,16 +48,25 @@ func (l *WsClientStatusLogic) WsClientStatus(in *percutaneous.GetWsCodeRequest) if len(val) > utils.NumberTen { data := "ok" keys := []string{WsTypeApp, WsTypeOperation} - + ok := false for _, k := range keys { - key = utils.MD5Encrypt(fmt.Sprintf("%d%s%s", id, dao.WsCode, k)) + key = utils.MD5Encrypt(fmt.Sprintf("%s%s", dao.WsCode, k)) redisKey = pkgws.RedisKeyQRSession + key if err = pkgws.Publish(l.ctx, redisKey, pkgws.Success(data)); err != nil { l.Errorf("ws client publish: %v", err) + ok = false return l.fail(utils.Fail) } - redis.Client.Del(l.ctx, redisKey).Result() + ok = true } + if ok { + for _, k := range keys { + key = utils.MD5Encrypt(fmt.Sprintf("%s%s", dao.WsCode, k)) + redisKey = pkgws.RedisKeyQRSession + key + redis.Client.Del(l.ctx, redisKey).Result() + } + } + return l.ok(utils.NumberOne) } diff --git a/services/percutaneous/internal/server/percutaneousServer.go b/services/percutaneous/internal/server/percutaneousServer.go index fb91816..8c34584 100644 --- a/services/percutaneous/internal/server/percutaneousServer.go +++ b/services/percutaneous/internal/server/percutaneousServer.go @@ -53,6 +53,11 @@ func (s *PercutaneousServer) UserItems(ctx context.Context, in *percutaneous.Use return l.UserItems(in) } +func (s *PercutaneousServer) UserDelete(ctx context.Context, in *percutaneous.AddUserRequest) (*percutaneous.Response, error) { + l := logic.NewUserDeleteLogic(ctx, s.svcCtx) + return l.UserDelete(in) +} + // 使用指南 func (s *PercutaneousServer) SetPosition(ctx context.Context, in *percutaneous.SetPositionRequest) (*percutaneous.Response, error) { l := logic.NewSetPositionLogic(ctx, s.svcCtx) diff --git a/services/percutaneous/percutaneousclient/percutaneous.go b/services/percutaneous/percutaneousclient/percutaneous.go index 914734a..046fc3c 100644 --- a/services/percutaneous/percutaneousclient/percutaneous.go +++ b/services/percutaneous/percutaneousclient/percutaneous.go @@ -35,6 +35,7 @@ type ( UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) AddUser(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) UserItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error) + UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) // 使用指南 SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) GetWsCode(ctx context.Context, in *GetWsCodeRequest, opts ...grpc.CallOption) (*Response, error) @@ -84,6 +85,11 @@ func (m *defaultPercutaneous) UserItems(ctx context.Context, in *UserItemsReques return client.UserItems(ctx, in, opts...) } +func (m *defaultPercutaneous) UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) { + client := percutaneous.NewPercutaneousClient(m.cli.Conn()) + return client.UserDelete(ctx, in, opts...) +} + // 使用指南 func (m *defaultPercutaneous) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) { client := percutaneous.NewPercutaneousClient(m.cli.Conn())