add and fix apis

This commit is contained in:
2026-10-28 13:27:20 +08:00
parent 38cffc2f2a
commit 8775847d20
12 changed files with 176 additions and 43 deletions
+33 -20
View File
@@ -191,6 +191,7 @@ type UsedLogRequest struct {
Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"`
Size int32 `protobuf:"varint,2,opt,name=size,proto3" json:"size,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"` 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 unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
} }
@@ -246,6 +247,13 @@ func (x *UsedLogRequest) GetStamp() string {
return "" return ""
} }
func (x *UsedLogRequest) GetTime() []string {
if x != nil {
return x.Time
}
return nil
}
type Response struct { type Response struct {
state protoimpl.MessageState `protogen:"open.v1"` state protoimpl.MessageState `protogen:"open.v1"`
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` 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" + "\auser_id\x18\x02 \x01(\x03R\x06userId\x12\x12\n" +
"\x04data\x18\x03 \x01(\tR\x04data\x12\x14\n" + "\x04data\x18\x03 \x01(\tR\x04data\x12\x14\n" +
"\x05stamp\x18\x04 \x01(\tR\x05stamp\x12\x1a\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" + "\x0eUsedLogRequest\x12\x12\n" +
"\x04page\x18\x01 \x01(\x05R\x04page\x12\x12\n" + "\x04page\x18\x01 \x01(\x05R\x04page\x12\x12\n" +
"\x04size\x18\x02 \x01(\x05R\x04size\x12\x14\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" + "\bResponse\x12\x12\n" +
"\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" +
"\x03msg\x18\x02 \x01(\tR\x03msg\x12\x12\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" + "\auser_id\x18\x02 \x01(\x03R\x06userId\"\x0e\n" +
"\fEmptyRequest\",\n" + "\fEmptyRequest\",\n" +
"\x0fWsStreamRequest\x12\x19\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" + "\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" + "\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" + "\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" + "\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" + "\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" + "\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" + "\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" + "\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" + "\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 3, // 3: percutaneous.Percutaneous.UsedLog:input_type -> percutaneous.UsedLogRequest
5, // 4: percutaneous.Percutaneous.AddUser:input_type -> percutaneous.AddUserRequest 5, // 4: percutaneous.Percutaneous.AddUser:input_type -> percutaneous.AddUserRequest
6, // 5: percutaneous.Percutaneous.UserItems:input_type -> percutaneous.UserItemsRequest 6, // 5: percutaneous.Percutaneous.UserItems:input_type -> percutaneous.UserItemsRequest
9, // 6: percutaneous.Percutaneous.setPosition:input_type -> percutaneous.setPositionRequest 5, // 6: percutaneous.Percutaneous.UserDelete:input_type -> percutaneous.AddUserRequest
10, // 7: percutaneous.Percutaneous.getWsCode:input_type -> percutaneous.getWsCodeRequest 9, // 7: percutaneous.Percutaneous.setPosition:input_type -> percutaneous.setPositionRequest
10, // 8: percutaneous.Percutaneous.WsClientStatus:input_type -> percutaneous.getWsCodeRequest 10, // 8: percutaneous.Percutaneous.getWsCode:input_type -> percutaneous.getWsCodeRequest
12, // 9: percutaneous.Percutaneous.WsAddUserStream:input_type -> percutaneous.WsStreamRequest 10, // 9: percutaneous.Percutaneous.WsClientStatus:input_type -> percutaneous.getWsCodeRequest
4, // 10: percutaneous.Percutaneous.WifiCheck:output_type -> percutaneous.Response 12, // 10: percutaneous.Percutaneous.WsAddUserStream:input_type -> percutaneous.WsStreamRequest
4, // 11: percutaneous.Percutaneous.WifiSet:output_type -> percutaneous.Response 4, // 11: percutaneous.Percutaneous.WifiCheck:output_type -> percutaneous.Response
4, // 12: percutaneous.Percutaneous.Use:output_type -> percutaneous.Response 4, // 12: percutaneous.Percutaneous.WifiSet:output_type -> percutaneous.Response
4, // 13: percutaneous.Percutaneous.UsedLog:output_type -> percutaneous.Response 4, // 13: percutaneous.Percutaneous.Use:output_type -> percutaneous.Response
4, // 14: percutaneous.Percutaneous.AddUser:output_type -> percutaneous.Response 4, // 14: percutaneous.Percutaneous.UsedLog:output_type -> percutaneous.Response
4, // 15: percutaneous.Percutaneous.UserItems:output_type -> percutaneous.Response 4, // 15: percutaneous.Percutaneous.AddUser:output_type -> percutaneous.Response
4, // 16: percutaneous.Percutaneous.setPosition:output_type -> percutaneous.Response 4, // 16: percutaneous.Percutaneous.UserItems:output_type -> percutaneous.Response
4, // 17: percutaneous.Percutaneous.getWsCode:output_type -> percutaneous.Response 4, // 17: percutaneous.Percutaneous.UserDelete:output_type -> percutaneous.Response
4, // 18: percutaneous.Percutaneous.WsClientStatus:output_type -> percutaneous.Response 4, // 18: percutaneous.Percutaneous.setPosition:output_type -> percutaneous.Response
12, // 19: percutaneous.Percutaneous.WsAddUserStream:output_type -> percutaneous.WsStreamRequest 4, // 19: percutaneous.Percutaneous.getWsCode:output_type -> percutaneous.Response
10, // [10:20] is the sub-list for method output_type 4, // 20: percutaneous.Percutaneous.WsClientStatus:output_type -> percutaneous.Response
0, // [0:10] is the sub-list for method input_type 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 type_name
0, // [0:0] is the sub-list for extension extendee 0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name 0, // [0:0] is the sub-list for field type_name
@@ -25,6 +25,7 @@ const (
Percutaneous_UsedLog_FullMethodName = "/percutaneous.Percutaneous/UsedLog" Percutaneous_UsedLog_FullMethodName = "/percutaneous.Percutaneous/UsedLog"
Percutaneous_AddUser_FullMethodName = "/percutaneous.Percutaneous/AddUser" Percutaneous_AddUser_FullMethodName = "/percutaneous.Percutaneous/AddUser"
Percutaneous_UserItems_FullMethodName = "/percutaneous.Percutaneous/UserItems" Percutaneous_UserItems_FullMethodName = "/percutaneous.Percutaneous/UserItems"
Percutaneous_UserDelete_FullMethodName = "/percutaneous.Percutaneous/UserDelete"
Percutaneous_SetPosition_FullMethodName = "/percutaneous.Percutaneous/setPosition" Percutaneous_SetPosition_FullMethodName = "/percutaneous.Percutaneous/setPosition"
Percutaneous_GetWsCode_FullMethodName = "/percutaneous.Percutaneous/getWsCode" Percutaneous_GetWsCode_FullMethodName = "/percutaneous.Percutaneous/getWsCode"
Percutaneous_WsClientStatus_FullMethodName = "/percutaneous.Percutaneous/WsClientStatus" Percutaneous_WsClientStatus_FullMethodName = "/percutaneous.Percutaneous/WsClientStatus"
@@ -41,6 +42,7 @@ type PercutaneousClient interface {
UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error)
AddUser(ctx context.Context, in *AddUserRequest, 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) 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) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error)
GetWsCode(ctx context.Context, in *GetWsCodeRequest, 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 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) { func (c *percutaneousClient) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(Response) out := new(Response)
@@ -170,6 +182,7 @@ type PercutaneousServer interface {
UsedLog(context.Context, *UsedLogRequest) (*Response, error) UsedLog(context.Context, *UsedLogRequest) (*Response, error)
AddUser(context.Context, *AddUserRequest) (*Response, error) AddUser(context.Context, *AddUserRequest) (*Response, error)
UserItems(context.Context, *UserItemsRequest) (*Response, error) UserItems(context.Context, *UserItemsRequest) (*Response, error)
UserDelete(context.Context, *AddUserRequest) (*Response, error)
// 使用指南 // 使用指南
SetPosition(context.Context, *SetPositionRequest) (*Response, error) SetPosition(context.Context, *SetPositionRequest) (*Response, error)
GetWsCode(context.Context, *GetWsCodeRequest) (*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) { func (UnimplementedPercutaneousServer) UserItems(context.Context, *UserItemsRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method UserItems not implemented") 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) { func (UnimplementedPercutaneousServer) SetPosition(context.Context, *SetPositionRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method SetPosition not implemented") 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) 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) { func _Percutaneous_SetPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetPositionRequest) in := new(SetPositionRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@@ -437,6 +471,10 @@ var Percutaneous_ServiceDesc = grpc.ServiceDesc{
MethodName: "UserItems", MethodName: "UserItems",
Handler: _Percutaneous_UserItems_Handler, Handler: _Percutaneous_UserItems_Handler,
}, },
{
MethodName: "UserDelete",
Handler: _Percutaneous_UserDelete_Handler,
},
{ {
MethodName: "setPosition", MethodName: "setPosition",
Handler: _Percutaneous_SetPosition_Handler, Handler: _Percutaneous_SetPosition_Handler,
Binary file not shown.
+7
View File
@@ -25,6 +25,7 @@ message UsedLogRequest {
int32 page = 1; int32 page = 1;
int32 size = 2; int32 size = 2;
string stamp = 3; string stamp = 3;
repeated string time = 4;
} }
message Response { message Response {
@@ -110,6 +111,12 @@ service Percutaneous {
body: "*" body: "*"
}; };
} }
rpc UserDelete(AddUserRequest) returns (Response) {
option (google.api.http) = {
get: "/api/v3/percutaneous/user/delete"
body: "*"
};
}
// 使用指南 // 使用指南
rpc setPosition(setPositionRequest) returns (Response) { rpc setPosition(setPositionRequest) returns (Response) {
option (google.api.http) = { option (google.api.http) = {
@@ -60,6 +60,13 @@ func (l *AddUserLogic) AddUser(in *percutaneous.AddUserRequest) (*percutaneous.R
l.Logger.Error(err) l.Logger.Error(err)
return l.fail(utils.Fail) 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) sess := l.svcCtx.SessionMgr.Pop(in.HostCode)
@@ -30,21 +30,12 @@ func NewGetWsCodeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetWsCo
} }
func (l *GetWsCodeLogic) GetWsCode(in *percutaneous.GetWsCodeRequest) (*percutaneous.Response, error) { 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 Type := WsTypeApp
if in.Type == utils.NumberTwo { if in.Type == utils.NumberTwo {
Type = WsTypeOperation 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 redisKey := pkgws.RedisKeyQRSession + key
payload, err := jsoniter.MarshalToString(pkgws.Session{ payload, err := jsoniter.MarshalToString(pkgws.Session{
@@ -2,9 +2,9 @@ package logic
import ( import (
"context" "context"
"fmt"
"lone-services/pkg/utils" "lone-services/pkg/utils"
pkgws "lone-services/pkg/ws" pkgws "lone-services/pkg/ws"
"lone-services/rpc/percutaneous/pb" "lone-services/rpc/percutaneous/pb"
"lone-services/services/percutaneous/internal/svc" "lone-services/services/percutaneous/internal/svc"
@@ -38,7 +38,7 @@ func (l *SetPositionLogic) SetPosition(in *percutaneous.SetPositionRequest) (*pe
return l.fail(utils.ErrorQRcodeExp) 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 { if err := pkgws.Publish(l.ctx, in.SessionId, pkgws.Success(data)); err != nil {
l.Errorf("set position publish: %v", err) l.Errorf("set position publish: %v", err)
} }
@@ -42,6 +42,10 @@ func (l *UsedLogLogic) UsedLog(in *percutaneous.UsedLogRequest) (*percutaneous.R
"user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen), "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) err := model.UsedLogModel{}.Init().Items(w, &info)
if err != nil { if err != nil {
l.Logger.Error(err) l.Logger.Error(err)
@@ -55,6 +59,10 @@ func (l *UsedLogLogic) UsedLog(in *percutaneous.UsedLogRequest) (*percutaneous.R
Order: "id desc", Order: "id desc",
Eq: map[string]string{"user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen)}, 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) items, err := model.UsedLogModel{}.Init().Page(w, &info)
if err != nil { if err != nil {
@@ -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)
}
@@ -30,22 +30,13 @@ func NewWsClientStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ws
} }
func (l *WsClientStatusLogic) WsClientStatus(in *percutaneous.GetWsCodeRequest) (*percutaneous.Response, error) { 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 Type := WsTypeApp
//1为web,2为设备 //1为web,2为设备
if in.Type == utils.NumberOne { if in.Type == utils.NumberOne {
Type = WsTypeOperation 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 redisKey := pkgws.RedisKeyQRSession + key
val, err := redis.Client.Get(l.ctx, redisKey).Result() val, err := redis.Client.Get(l.ctx, redisKey).Result()
@@ -58,7 +49,7 @@ func (l *WsClientStatusLogic) WsClientStatus(in *percutaneous.GetWsCodeRequest)
keys := []string{WsTypeApp, WsTypeOperation} keys := []string{WsTypeApp, WsTypeOperation}
for _, k := range keys { 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 redisKey = pkgws.RedisKeyQRSession + key
if err = pkgws.Publish(l.ctx, redisKey, pkgws.Success(data)); err != nil { if err = pkgws.Publish(l.ctx, redisKey, pkgws.Success(data)); err != nil {
l.Errorf("ws client publish: %v", err) l.Errorf("ws client publish: %v", err)
@@ -53,6 +53,11 @@ func (s *PercutaneousServer) UserItems(ctx context.Context, in *percutaneous.Use
return l.UserItems(in) 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) { func (s *PercutaneousServer) SetPosition(ctx context.Context, in *percutaneous.SetPositionRequest) (*percutaneous.Response, error) {
l := logic.NewSetPositionLogic(ctx, s.svcCtx) l := logic.NewSetPositionLogic(ctx, s.svcCtx)
@@ -35,6 +35,7 @@ type (
UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) UsedLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error)
AddUser(ctx context.Context, in *AddUserRequest, 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) 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) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error)
GetWsCode(ctx context.Context, in *GetWsCodeRequest, 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...) 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) { func (m *defaultPercutaneous) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) {
client := percutaneous.NewPercutaneousClient(m.cli.Conn()) client := percutaneous.NewPercutaneousClient(m.cli.Conn())