Merge branch 'develop' of git.ailuowan.com:zzw/lone-services into develop
CI / changes (push) Successful in 1m32s
CI / ad (push) Successful in 27s
CI / admin (push) Successful in 18s
CI / analysis (push) Successful in 23s
CI / bff (push) Successful in 16s
CI / chore (push) Successful in 18s
CI / equipment (push) Successful in 17s
CI / express (push) Successful in 15s
CI / factory (push) Successful in 15s
CI / message (push) Successful in 13s
CI / order (push) Successful in 13s
CI / payment (push) Successful in 13s
CI / percutaneous (push) Successful in 14s
CI / product (push) Successful in 16s
CI / record (push) Successful in 14s
CI / sale (push) Successful in 14s
CI / store (push) Successful in 13s
CI / support (push) Successful in 17s
CI / task (push) Successful in 16s
CI / user (push) Successful in 15s
CI / water (push) Successful in 15s
CI / wecom (push) Successful in 16s
CI / ws (push) Successful in 7s

This commit is contained in:
zzw
2026-10-29 10:18:17 +08:00
12 changed files with 489 additions and 27 deletions
+40 -22
View File
@@ -192,6 +192,7 @@ type UsedLogRequest struct {
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"`
HostCode string `protobuf:"bytes,5,opt,name=host_code,json=hostCode,proto3" json:"host_code,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@@ -254,6 +255,13 @@ func (x *UsedLogRequest) GetTime() []string {
return nil
}
func (x *UsedLogRequest) GetHostCode() string {
if x != nil {
return x.HostCode
}
return ""
}
type Response struct {
state protoimpl.MessageState `protogen:"open.v1"`
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
@@ -721,12 +729,13 @@ 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\"b\n" +
"\bposition\x18\x05 \x01(\x05R\bposition\"\x7f\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\x12\x12\n" +
"\x04time\x18\x04 \x03(\tR\x04time\"D\n" +
"\x04time\x18\x04 \x03(\tR\x04time\x12\x1b\n" +
"\thost_code\x18\x05 \x01(\tR\bhostCode\"D\n" +
"\bResponse\x12\x12\n" +
"\x04code\x18\x01 \x01(\x05R\x04code\x12\x10\n" +
"\x03msg\x18\x02 \x01(\tR\x03msg\x12\x12\n" +
@@ -752,16 +761,19 @@ 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\xb0\t\n" +
"\braw_body\x18\x01 \x01(\fR\arawBody2\x94\f\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\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" +
"\x0eUserStoreItems\x12\x1e.percutaneous.UserItemsRequest\x1a\x16.percutaneous.Response\"+\x82\xd3\xe4\x93\x02%:\x01*\x12 /api/v3/percutaneous/store/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" +
"\x0fUserStoreDelete\x12\x1c.percutaneous.AddUserRequest\x1a\x16.percutaneous.Response\",\x82\xd3\xe4\x93\x02&:\x01*\x12!/api/v3/percutaneous/store/delete\x12t\n" +
"\fUsedStoreLog\x12\x1c.percutaneous.UsedLogRequest\x1a\x16.percutaneous.Response\".\x82\xd3\xe4\x93\x02(:\x01*\x12#/api/v3/percutaneous/store/used/log\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" +
@@ -802,24 +814,30 @@ 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
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
6, // 6: percutaneous.Percutaneous.UserStoreItems:input_type -> percutaneous.UserItemsRequest
5, // 7: percutaneous.Percutaneous.UserDelete:input_type -> percutaneous.AddUserRequest
5, // 8: percutaneous.Percutaneous.UserStoreDelete:input_type -> percutaneous.AddUserRequest
3, // 9: percutaneous.Percutaneous.UsedStoreLog:input_type -> percutaneous.UsedLogRequest
9, // 10: percutaneous.Percutaneous.setPosition:input_type -> percutaneous.setPositionRequest
10, // 11: percutaneous.Percutaneous.getWsCode:input_type -> percutaneous.getWsCodeRequest
10, // 12: percutaneous.Percutaneous.WsClientStatus:input_type -> percutaneous.getWsCodeRequest
12, // 13: percutaneous.Percutaneous.WsAddUserStream:input_type -> percutaneous.WsStreamRequest
4, // 14: percutaneous.Percutaneous.WifiCheck:output_type -> percutaneous.Response
4, // 15: percutaneous.Percutaneous.WifiSet:output_type -> percutaneous.Response
4, // 16: percutaneous.Percutaneous.Use:output_type -> percutaneous.Response
4, // 17: percutaneous.Percutaneous.UsedLog:output_type -> percutaneous.Response
4, // 18: percutaneous.Percutaneous.AddUser:output_type -> percutaneous.Response
4, // 19: percutaneous.Percutaneous.UserItems:output_type -> percutaneous.Response
4, // 20: percutaneous.Percutaneous.UserStoreItems:output_type -> percutaneous.Response
4, // 21: percutaneous.Percutaneous.UserDelete:output_type -> percutaneous.Response
4, // 22: percutaneous.Percutaneous.UserStoreDelete:output_type -> percutaneous.Response
4, // 23: percutaneous.Percutaneous.UsedStoreLog:output_type -> percutaneous.Response
4, // 24: percutaneous.Percutaneous.setPosition:output_type -> percutaneous.Response
4, // 25: percutaneous.Percutaneous.getWsCode:output_type -> percutaneous.Response
4, // 26: percutaneous.Percutaneous.WsClientStatus:output_type -> percutaneous.Response
12, // 27: percutaneous.Percutaneous.WsAddUserStream:output_type -> percutaneous.WsStreamRequest
14, // [14:28] is the sub-list for method output_type
0, // [0:14] 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
+114
View File
@@ -25,7 +25,10 @@ const (
Percutaneous_UsedLog_FullMethodName = "/percutaneous.Percutaneous/UsedLog"
Percutaneous_AddUser_FullMethodName = "/percutaneous.Percutaneous/AddUser"
Percutaneous_UserItems_FullMethodName = "/percutaneous.Percutaneous/UserItems"
Percutaneous_UserStoreItems_FullMethodName = "/percutaneous.Percutaneous/UserStoreItems"
Percutaneous_UserDelete_FullMethodName = "/percutaneous.Percutaneous/UserDelete"
Percutaneous_UserStoreDelete_FullMethodName = "/percutaneous.Percutaneous/UserStoreDelete"
Percutaneous_UsedStoreLog_FullMethodName = "/percutaneous.Percutaneous/UsedStoreLog"
Percutaneous_SetPosition_FullMethodName = "/percutaneous.Percutaneous/setPosition"
Percutaneous_GetWsCode_FullMethodName = "/percutaneous.Percutaneous/getWsCode"
Percutaneous_WsClientStatus_FullMethodName = "/percutaneous.Percutaneous/WsClientStatus"
@@ -42,7 +45,10 @@ 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)
UserStoreItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error)
UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error)
UserStoreDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error)
UsedStoreLog(ctx context.Context, in *UsedLogRequest, 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)
@@ -119,6 +125,16 @@ func (c *percutaneousClient) UserItems(ctx context.Context, in *UserItemsRequest
return out, nil
}
func (c *percutaneousClient) UserStoreItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(Response)
err := c.cc.Invoke(ctx, Percutaneous_UserStoreItems_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
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)
@@ -129,6 +145,26 @@ func (c *percutaneousClient) UserDelete(ctx context.Context, in *AddUserRequest,
return out, nil
}
func (c *percutaneousClient) UserStoreDelete(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_UserStoreDelete_FullMethodName, in, out, cOpts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *percutaneousClient) UsedStoreLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(Response)
err := c.cc.Invoke(ctx, Percutaneous_UsedStoreLog_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)
@@ -182,7 +218,10 @@ type PercutaneousServer interface {
UsedLog(context.Context, *UsedLogRequest) (*Response, error)
AddUser(context.Context, *AddUserRequest) (*Response, error)
UserItems(context.Context, *UserItemsRequest) (*Response, error)
UserStoreItems(context.Context, *UserItemsRequest) (*Response, error)
UserDelete(context.Context, *AddUserRequest) (*Response, error)
UserStoreDelete(context.Context, *AddUserRequest) (*Response, error)
UsedStoreLog(context.Context, *UsedLogRequest) (*Response, error)
// 使用指南
SetPosition(context.Context, *SetPositionRequest) (*Response, error)
GetWsCode(context.Context, *GetWsCodeRequest) (*Response, error)
@@ -217,9 +256,18 @@ 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) UserStoreItems(context.Context, *UserItemsRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method UserStoreItems not implemented")
}
func (UnimplementedPercutaneousServer) UserDelete(context.Context, *AddUserRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method UserDelete not implemented")
}
func (UnimplementedPercutaneousServer) UserStoreDelete(context.Context, *AddUserRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method UserStoreDelete not implemented")
}
func (UnimplementedPercutaneousServer) UsedStoreLog(context.Context, *UsedLogRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method UsedStoreLog not implemented")
}
func (UnimplementedPercutaneousServer) SetPosition(context.Context, *SetPositionRequest) (*Response, error) {
return nil, status.Error(codes.Unimplemented, "method SetPosition not implemented")
}
@@ -361,6 +409,24 @@ func _Percutaneous_UserItems_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
func _Percutaneous_UserStoreItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UserItemsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(PercutaneousServer).UserStoreItems(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Percutaneous_UserStoreItems_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(PercutaneousServer).UserStoreItems(ctx, req.(*UserItemsRequest))
}
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 {
@@ -379,6 +445,42 @@ func _Percutaneous_UserDelete_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _Percutaneous_UserStoreDelete_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).UserStoreDelete(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Percutaneous_UserStoreDelete_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(PercutaneousServer).UserStoreDelete(ctx, req.(*AddUserRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Percutaneous_UsedStoreLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UsedLogRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(PercutaneousServer).UsedStoreLog(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Percutaneous_UsedStoreLog_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(PercutaneousServer).UsedStoreLog(ctx, req.(*UsedLogRequest))
}
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 {
@@ -471,10 +573,22 @@ var Percutaneous_ServiceDesc = grpc.ServiceDesc{
MethodName: "UserItems",
Handler: _Percutaneous_UserItems_Handler,
},
{
MethodName: "UserStoreItems",
Handler: _Percutaneous_UserStoreItems_Handler,
},
{
MethodName: "UserDelete",
Handler: _Percutaneous_UserDelete_Handler,
},
{
MethodName: "UserStoreDelete",
Handler: _Percutaneous_UserStoreDelete_Handler,
},
{
MethodName: "UsedStoreLog",
Handler: _Percutaneous_UsedStoreLog_Handler,
},
{
MethodName: "setPosition",
Handler: _Percutaneous_SetPosition_Handler,
Binary file not shown.
+19
View File
@@ -26,6 +26,7 @@ message UsedLogRequest {
int32 size = 2;
string stamp = 3;
repeated string time = 4;
string host_code = 5;
}
message Response {
@@ -111,12 +112,30 @@ service Percutaneous {
body: "*"
};
}
rpc UserStoreItems(UserItemsRequest) returns (Response) {
option (google.api.http) = {
get: "/api/v3/percutaneous/store/items"
body: "*"
};
}
rpc UserDelete(AddUserRequest) returns (Response) {
option (google.api.http) = {
get: "/api/v3/percutaneous/user/delete"
body: "*"
};
}
rpc UserStoreDelete(AddUserRequest) returns (Response) {
option (google.api.http) = {
get: "/api/v3/percutaneous/store/delete"
body: "*"
};
}
rpc UsedStoreLog(UsedLogRequest) returns (Response) {
option (google.api.http) = {
get: "/api/v3/percutaneous/store/used/log"
body: "*"
};
}
// 使用指南
rpc setPosition(setPositionRequest) returns (Response) {
option (google.api.http) = {
@@ -63,6 +63,10 @@ func (l *UsedLogLogic) UsedLog(in *percutaneous.UsedLogRequest) (*percutaneous.R
w.Between = map[string][2]string{"create_time": {
in.Time[utils.NumberZero], in.Time[utils.NumberOne]}}
}
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 {
@@ -0,0 +1,85 @@
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 UsedStoreLogLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
BaseLogic
}
func NewUsedStoreLogLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UsedStoreLogLogic {
return &UsedStoreLogLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UsedStoreLogLogic) UsedStoreLog(in *percutaneous.UsedLogRequest) (*percutaneous.Response, error) {
var v validator.UsedStoreLogValidator
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)
}
var info []dao.UsedLogInfo
if in.Stamp != utils.StringEmpty {
w := modelbase.Params{
Eq: map[string]string{
"stamp": in.Stamp,
"user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen),
},
}
if len(in.HostCode) > utils.NumberOne {
w.Eq["host_code"] = in.HostCode
}
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)
return l.fail(utils.ErrorNotFund)
}
return l.ok(info)
} else {
w := modelbase.Params{
Page: int(in.Page),
Size: int(in.Size),
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]}}
}
if len(in.HostCode) > utils.NumberOne {
w.Eq["host_code"] = in.HostCode
}
items, err := model.UsedLogModel{}.Init().Page(w, &info)
if err != nil {
l.Logger.Error(err)
return l.fail(utils.ErrorNotFund)
}
return l.ok(items)
}
}
@@ -31,7 +31,7 @@ func NewUserDeleteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserDe
}
func (l *UserDeleteLogic) UserDelete(in *percutaneous.AddUserRequest) (*percutaneous.Response, error) {
var v validator.GroupValidator
var v validator.GroupDeleteValidator
if fail := l.checkParams(in, &v); fail != nil {
return fail, nil
}
@@ -40,7 +40,6 @@ func (l *UserDeleteLogic) UserDelete(in *percutaneous.AddUserRequest) (*percutan
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),
}}
@@ -52,9 +51,6 @@ func (l *UserDeleteLogic) UserDelete(in *percutaneous.AddUserRequest) (*percutan
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 {
@@ -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 UserStoreDeleteLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
BaseLogic
}
func NewUserStoreDeleteLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserStoreDeleteLogic {
return &UserStoreDeleteLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UserStoreDeleteLogic) UserStoreDelete(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)
}
@@ -0,0 +1,104 @@
package logic
import (
"context"
"lone-services/pkg/modelbase"
"lone-services/pkg/utils"
user "lone-services/rpc/user/pb"
"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 UserStoreItemsLogic struct {
ctx context.Context
svcCtx *svc.ServiceContext
logx.Logger
BaseLogic
}
func NewUserStoreItemsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UserStoreItemsLogic {
return &UserStoreItemsLogic{
ctx: ctx,
svcCtx: svcCtx,
Logger: logx.WithContext(ctx),
}
}
func (l *UserStoreItemsLogic) UserStoreItems(in *percutaneous.UserItemsRequest) (*percutaneous.Response, error) {
var v validator.GroupItemsValidator
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_user_id": strconv.FormatInt(adminInfo.ID, utils.NumberTen),
"host_code": in.HostCode,
"status": utils.StringStatusOk,
},
Page: int(in.Page),
Size: int(in.Size),
Order: "id desc",
}
var info []dao.GroupInfo
items, err := model.GroupModel{}.Init().Page(w, &info)
if err != nil {
logx.Errorf("get group err: %v", err)
return l.fail(utils.Fail)
}
var ids []int64
for _, item := range info {
ids = append(ids, item.UserId)
}
l.setUserItems(&info, ids)
items.Items = info
return l.ok(items)
}
func (l *UserStoreItemsLogic) setUserItems(info *[]dao.GroupInfo, ids []int64) {
if len(ids) == utils.NumberZero {
return
}
cli, err := svc.GetRpcClient(l.svcCtx.UserName)
if err != nil {
logx.Errorf("get user err: %v", err)
return
}
client := user.NewUserClient(cli.Conn())
data := user.InternalUsersByIdsReq{
Ids: ids,
}
res, err := client.InternalUsersByIds(context.Background(), &data)
if err != nil {
logx.Errorf("get order err: %v", err)
return
}
type UserItem struct {
Name string `json:"name"`
Avatar string `json:"avatar"`
}
names := make(map[int64]UserItem)
for _, item := range res.Items {
names[item.Id] = UserItem{Name: item.Name, Avatar: item.Avatar}
}
for key, item := range *info {
(*info)[key].UserName = names[item.UserId].Name
(*info)[key].UserAvatar = names[item.UserId].Avatar
}
}
@@ -53,11 +53,26 @@ func (s *PercutaneousServer) UserItems(ctx context.Context, in *percutaneous.Use
return l.UserItems(in)
}
func (s *PercutaneousServer) UserStoreItems(ctx context.Context, in *percutaneous.UserItemsRequest) (*percutaneous.Response, error) {
l := logic.NewUserStoreItemsLogic(ctx, s.svcCtx)
return l.UserStoreItems(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) UserStoreDelete(ctx context.Context, in *percutaneous.AddUserRequest) (*percutaneous.Response, error) {
l := logic.NewUserStoreDeleteLogic(ctx, s.svcCtx)
return l.UserStoreDelete(in)
}
func (s *PercutaneousServer) UsedStoreLog(ctx context.Context, in *percutaneous.UsedLogRequest) (*percutaneous.Response, error) {
l := logic.NewUsedStoreLogLogic(ctx, s.svcCtx)
return l.UsedStoreLog(in)
}
// 使用指南
func (s *PercutaneousServer) SetPosition(ctx context.Context, in *percutaneous.SetPositionRequest) (*percutaneous.Response, error) {
l := logic.NewSetPositionLogic(ctx, s.svcCtx)
@@ -35,7 +35,10 @@ 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)
UserStoreItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error)
UserDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error)
UserStoreDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error)
UsedStoreLog(ctx context.Context, in *UsedLogRequest, 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)
@@ -85,11 +88,26 @@ func (m *defaultPercutaneous) UserItems(ctx context.Context, in *UserItemsReques
return client.UserItems(ctx, in, opts...)
}
func (m *defaultPercutaneous) UserStoreItems(ctx context.Context, in *UserItemsRequest, opts ...grpc.CallOption) (*Response, error) {
client := percutaneous.NewPercutaneousClient(m.cli.Conn())
return client.UserStoreItems(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) UserStoreDelete(ctx context.Context, in *AddUserRequest, opts ...grpc.CallOption) (*Response, error) {
client := percutaneous.NewPercutaneousClient(m.cli.Conn())
return client.UserStoreDelete(ctx, in, opts...)
}
func (m *defaultPercutaneous) UsedStoreLog(ctx context.Context, in *UsedLogRequest, opts ...grpc.CallOption) (*Response, error) {
client := percutaneous.NewPercutaneousClient(m.cli.Conn())
return client.UsedStoreLog(ctx, in, opts...)
}
// 使用指南
func (m *defaultPercutaneous) SetPosition(ctx context.Context, in *SetPositionRequest, opts ...grpc.CallOption) (*Response, error) {
client := percutaneous.NewPercutaneousClient(m.cli.Conn())
+22
View File
@@ -16,6 +16,17 @@ func (p GroupValidator) GetMessage() validate.ValidatorMessages {
}
}
type GroupDeleteValidator struct {
UserId int64 `validate:"required"`
}
// GetMessage 查看列表 - 提示消息
func (p GroupDeleteValidator) GetMessage() validate.ValidatorMessages {
return validate.ValidatorMessages{
"UserId.required": "用户不能为空",
}
}
type GroupItemsValidator struct {
HostCode string `validate:"required"`
}
@@ -26,3 +37,14 @@ func (p GroupItemsValidator) GetMessage() validate.ValidatorMessages {
"HostCode.required": "设备不能为空",
}
}
type UsedStoreLogValidator struct {
HostCode string `validate:"required"`
}
// GetMessage 查看列表 - 提示消息
func (p UsedStoreLogValidator) GetMessage() validate.ValidatorMessages {
return validate.ValidatorMessages{
"HostCode.required": "设备不能为空",
}
}