Jelajahi Sumber

feature(系统管理): 统一错误处理

ZZH-wl 3 tahun lalu
induk
melakukan
f79d88f572

+ 25 - 17
opms_libary/myerrors/errorPlugin.go

@@ -43,17 +43,17 @@ var ErrorTips = g.MapIntStr{
 	SysErr:  "系统异常,请重新尝试",
 }
 
-func New(errCode int, err error, errMsg string) error {
+func New(errCode int, err error, errMsg ...string) error {
 	if err == nil {
-		return gerror.NewCode(errCode, errMsg)
+		return gerror.NewCode(errCode, handleErrMsg(ConvErr, errMsg...))
 	}
-	return gerror.WrapCode(errCode, err, errMsg)
+	return gerror.WrapCode(errCode, err, handleErrMsg(ConvErr, errMsg...))
 }
 func TipsError(errMsg string) error {
 	return gerror.NewCode(TipsErr, errMsg)
 }
-func ValidError(errMsg string) error {
-	return gerror.NewCode(ValidErr, ErrorTips[ValidErr]+": "+errMsg)
+func ValidError(errMsg ...string) error {
+	return gerror.NewCode(ValidErr, handleErrMsg(ConvErr, errMsg...))
 }
 func QueryError(err error, module string) error {
 	return gerror.WrapCodef(QueryErr, err, ErrorTips[QueryErr], module)
@@ -67,23 +67,31 @@ func UpdateError(err error, module string) error {
 func DeleteError(err error, module string) error {
 	return gerror.WrapCodef(DeleteErr, err, ErrorTips[DeleteErr], module)
 }
-func AuthError(errMsg string) error {
-	return gerror.NewCode(AuthErr, errMsg)
+func AuthError(errMsg ...string) error {
+	return gerror.NewCode(AuthErr, handleErrMsg(ConvErr, errMsg...))
 }
-func PermError(errMsg string) error {
-	return gerror.NewCode(PermErr, errMsg)
+func PermError(errMsg ...string) error {
+	return gerror.NewCode(PermErr, handleErrMsg(ConvErr, errMsg...))
 }
-func MicroCallError(errMsg string) error {
-	return gerror.NewCode(MicroCallErr, errMsg)
+func MicroCallError(errMsg ...string) error {
+	return gerror.NewCode(MicroCallErr, handleErrMsg(ConvErr, errMsg...))
 }
-func ConvError(errMsg string) error {
-	return gerror.NewCode(ConvErr, errMsg)
+func ConvError(errMsg ...string) error {
+	return gerror.NewCode(ConvErr, handleErrMsg(ConvErr, errMsg...))
 }
-func DbError(errMsg string) error {
-	return gerror.NewCode(DbErr, errMsg)
+func DbError(errMsg ...string) error {
+	return gerror.NewCode(DbErr, handleErrMsg(DbErr, errMsg...))
 }
-func SysError(errMsg string) error {
-	return gerror.NewCode(SysErr, errMsg)
+func SysError() error {
+	return gerror.NewCode(SysErr, ErrorTips[SysErr])
+}
+
+func handleErrMsg(errCode int, errMsg ...string) string {
+	msg, ok := ErrorTips[errCode]
+	if ok && len(errMsg) > 0 {
+		msg = ErrorTips[errCode] + ": " + strings.Join(errMsg, ", ")
+	}
+	return msg
 }
 
 type HandleErrorPlugin struct{}

+ 6 - 7
opms_parent/app/service/proj/business.go

@@ -8,7 +8,6 @@ import (
 	"dashoo.cn/opms_libary/myerrors"
 	"dashoo.cn/opms_libary/utils"
 	"github.com/gogf/gf/database/gdb"
-	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/os/gtime"
 	"github.com/gogf/gf/util/gconv"
@@ -47,7 +46,7 @@ func (p *businessService) GetList(req *model.ProjBusinessSearchReq) (total int,
 	total, err = db.Count()
 	if err != nil {
 		g.Log().Error(err)
-		err = gerror.New("获取总行数失败")
+		err = myerrors.DbError("获取总行数失败。")
 		return
 	}
 
@@ -193,7 +192,7 @@ func (p *businessService) UpdateById(req *model.UpdateProjBusinessReq) error {
 		return err
 	}
 	if record == 0 {
-		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
+		return myerrors.TipsError("项目不存在。")
 	}
 	businessData := gconv.Map(req)
 	businessData = utils.MapKeySnakeCamelCase(businessData, "snake")
@@ -252,7 +251,7 @@ func (p *businessService) BusinessTransfer(req *model.BusinessTransferReq) error
 		return err
 	}
 	if business == nil {
-		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
+		return myerrors.TipsError("项目不存在。")
 	}
 	businessMap := g.Map{
 		p.Dao.Columns.SaleId:   req.UserId,
@@ -289,10 +288,10 @@ func (p *businessService) BusinessGradation(req *model.BusinessGradationReq) err
 		return err
 	}
 	if business == nil {
-		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
+		return myerrors.TipsError("项目不存在。")
 	}
 	if business.NboType == req.NboType {
-		return gerror.NewCode(myerrors.TipsErr, "同级无法进行调级。")
+		return myerrors.TipsError("同级无法进行调级。")
 	}
 	opnType := "40"
 	// A < B return -1 项目降级
@@ -332,7 +331,7 @@ func (p *businessService) SetPrimacyContact(req *model.BusinessPrimacyContactReq
 		return err
 	}
 	if business == nil {
-		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
+		return myerrors.TipsError("项目不存在。")
 	}
 	businessMap := g.Map{
 		p.Dao.Columns.ContactId:        req.ContactId,

+ 1 - 1
opms_parent/app/service/proj/business_contact.go

@@ -77,7 +77,7 @@ func (p *businessContactService) DeleteByIds(ids []int64) (err error) {
 		return err
 	}
 	if result == nil {
-		return myerrors.NewMsgError(nil, "联系人不存在")
+		return myerrors.TipsError("联系人不存在")
 	}
 	b, _ := NewBusinessService(p.Ctx)
 	err = p.Dao.Transaction(context.TODO(), func(ctx context.Context, tx *gdb.TX) error {