From d947142c4073453ea9e499414ac0bd541e28fd52 Mon Sep 17 00:00:00 2001 From: lixxxww <941403820@qq.com> Date: Tue, 23 Jan 2024 07:38:19 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8F=90=E4=BA=A4kit/biz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lixxxww <941403820@qq.com> --- kit/biz/assets.go | 73 +++++++++++++++++++++++++++++++++++++++++++++ kit/biz/bizerror.go | 35 ++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 kit/biz/assets.go create mode 100644 kit/biz/bizerror.go diff --git a/kit/biz/assets.go b/kit/biz/assets.go new file mode 100644 index 0000000..b510aea --- /dev/null +++ b/kit/biz/assets.go @@ -0,0 +1,73 @@ +package biz + +import ( + "fmt" + "pandax/kit/utils" + "reflect" +) + +func ErrIsNil(err error, msg string, params ...any) { + if err != nil { + if err.Error() == "record not found" { + return + } + panic(NewBizErr(fmt.Sprintf(msg, params...))) + } +} + +func ErrIsNilAppendErr(err error, msg string) { + if err != nil { + panic(NewBizErr(fmt.Sprintf(msg, err.Error()))) + } +} + +func IsNil(err error) { + switch t := err.(type) { + case *BizError: + panic(any(t)) + case error: + panic(any(NewBizErr(fmt.Sprintf("非业务异常: %s", err.Error())))) + } +} + +func IsTrue(exp bool, msg string, params ...any) { + if !exp { + panic(any(NewBizErr(fmt.Sprintf(msg, params...)))) + } +} + +func IsTrueBy(exp bool, err BizError) { + if !exp { + panic(any(err)) + } +} + +func NotEmpty(str string, msg string, params ...any) { + if str == "" { + panic(any(NewBizErr(fmt.Sprintf(msg, params...)))) + } +} + +func NotNil(data any, msg string) { + if reflect.ValueOf(data).IsNil() { + panic(NewBizErr(msg)) + } +} + +func NotBlank(data any, msg string) { + if utils.IsBlank(reflect.ValueOf(data)) { + panic(NewBizErr(msg)) + } +} + +func IsEquals(data1 any, data2 any, msg string) { + if !reflect.DeepEqual(data1, data2) { + panic(NewBizErr(msg)) + } +} + +func Nil(data any, msg string) { + if !reflect.ValueOf(data).IsNil() { + panic(NewBizErr(msg)) + } +} diff --git a/kit/biz/bizerror.go b/kit/biz/bizerror.go new file mode 100644 index 0000000..d846c7b --- /dev/null +++ b/kit/biz/bizerror.go @@ -0,0 +1,35 @@ +package biz + +// 业务错误 +type BizError struct { + code int16 + err string +} + +var ( + Success *BizError = NewBizErrCode(200, "success") + BizErr *BizError = NewBizErrCode(400, "biz error") + ServerError *BizError = NewBizErrCode(500, "服务器异常,请联系管理员") + PermissionErr *BizError = NewBizErrCode(4001, "没有权限操作,可能是TOKEN过期了,请先登录") + CasbinErr *BizError = NewBizErrCode(403, "没有API接口访问权限,请联系管理员") +) + +// 错误消息 +func (e *BizError) Error() string { + return e.err +} + +// 错误码 +func (e *BizError) Code() int16 { + return e.code +} + +// 创建业务逻辑错误结构体,默认为业务逻辑错误 +func NewBizErr(msg string) *BizError { + return &BizError{code: BizErr.code, err: msg} +} + +// 创建业务逻辑错误结构体,可设置指定错误code +func NewBizErrCode(code int16, msg string) *BizError { + return &BizError{code: code, err: msg} +}