mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
73
kit/biz/assets.go
Normal file
73
kit/biz/assets.go
Normal file
@@ -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))
|
||||
}
|
||||
}
|
||||
35
kit/biz/bizerror.go
Normal file
35
kit/biz/bizerror.go
Normal file
@@ -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}
|
||||
}
|
||||
Reference in New Issue
Block a user