package logic import ( "lone-services/pkg/utils" "lone-services/pkg/validate" express "lone-services/rpc/express/pb" "reflect" jsoniter "github.com/json-iterator/go" ) type BaseLogic struct { } func (l *BaseLogic) checkParams(in interface{}, v validate.IValidator) *express.Response { rv := reflect.ValueOf(in) if rv.Kind() != reflect.Ptr || rv.IsNil() { return &express.Response{ Code: utils.ErrorParams.Code, Msg: "request must be non‑nil proto pointer", } } resp := validate.ValidateFromProto(in, v) if resp != utils.StringEmpty { return &express.Response{ Code: utils.ErrorParams.Code, Msg: resp, } } return nil } func (l *BaseLogic) fail(status utils.Status) (*express.Response, error) { return l.out(status, status.Msg) } func (l *BaseLogic) out(status utils.Status, msg string) (*express.Response, error) { return &express.Response{Code: status.Code, Msg: msg}, nil } func (l *BaseLogic) ok(data any) (*express.Response, error) { buf, _ := jsoniter.Marshal(data) return &express.Response{Code: utils.Ok.Code, Msg: utils.Ok.Msg, Data: string(buf)}, nil }