Просмотр исходного кода

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

ZZH-wl 3 лет назад
Родитель
Сommit
bf3ce639e6

+ 1 - 1
opms_libary/micro_srv/micro_srv.go

@@ -305,7 +305,7 @@ func GetUserInfo(ctx context.Context) (request.UserInfo, error) {
 
 	userInfo, err := getUserInfoDataString(userStr)
 	if err != nil {
-		return request.UserInfo{}, err
+		return request.UserInfo{}, errors.New("用户信息解码失败。")
 	}
 	return userInfo, nil
 }

+ 33 - 31
opms_libary/myerrors/error.go

@@ -6,10 +6,10 @@ import (
 )
 
 const (
-	SysErr  = "系统异常,请重新尝试"
-	ConvErr = "数据转换异常,请重新尝试"
-	DbErr   = "数据库操作异常,请重新尝试"
-	AuthErr = "认证异常,请重新尝试"
+// SysErr  = "系统异常,请重新尝试"
+// ConvErr = "数据转换异常,请重新尝试"
+// DbErr   = "数据库操作异常,请重新尝试"
+// AuthErr = "认证异常,请重新尝试"
 )
 
 type apiCode interface {
@@ -55,12 +55,12 @@ func (err *Error) Code() int {
 	return gerror.Code(err.error)
 }
 
-func New(text string, topErr error) error {
-	return &Error{
-		topError: topErr,
-		error:    gerror.New(text),
-	}
-}
+//func New(text string, topErr error) error {
+//	return &Error{
+//		topError: topErr,
+//		error:    gerror.New(text),
+//	}
+//}
 
 func NewCode(code int, text string, topErr error) error {
 	return &Error{
@@ -97,7 +97,7 @@ func CheckError(err error, msg ...string) (bool, error, int32, string) {
 			message = msg[0]
 		}
 		if _, ok := err.(*gerror.Error); ok && gerror.Code(err) == -1 && message == "" {
-			message = SysErr
+			//message = SysErr
 		}
 		if Code(err) == 210 { // 提示性异常,不返回Error
 			return false, nil, 210, err.Error()
@@ -131,36 +131,38 @@ func NewMsgError(topErr error, msg string) error {
 
 // 系统级别异常
 func NewSysError(topErr error, msg ...string) error {
-	message := SysErr
-	if len(msg) > 0 {
-		message = msg[0]
-	}
-	return NewCode(900, message, topErr)
+	//message := SysErr
+	//if len(msg) > 0 {
+	//	message = 1
+	//}
+	//return NewCode(900, message, topErr)
+	return nil
 }
 
 // 数据库操作异常
 func NewDbError(topErr error, msg ...string) error {
-	message := DbErr
-	if len(msg) > 0 {
-		message = msg[0]
-	}
-	return NewCode(500, message, topErr)
+	//message := DbErr
+	//if len(msg) > 0 {
+	//	message = msg[0]
+	//}
+	return nil
 }
 
 // 类型转换异常
 func NewConvError(topErr error, msg ...string) error {
-	message := ConvErr
-	if len(msg) > 0 {
-		message = msg[0]
-	}
-	return NewCode(500, message, topErr)
+	//message := ConvErr
+	//if len(msg) > 0 {
+	//	message = msg[0]
+	//}
+	return nil
 }
 
 // 认证异常
 func NewAuthError(topErr error, msg ...string) error {
-	message := AuthErr
-	if len(msg) > 0 {
-		message = msg[0]
-	}
-	return NewCode(401, message, topErr)
+	//message := AuthErr
+	//if len(msg) > 0 {
+	//	message = msg[0]
+	//}
+	//return NewCode(401, message, topErr)
+	return nil
 }

+ 152 - 0
opms_libary/myerrors/errorPlugin.go

@@ -0,0 +1,152 @@
+package myerrors
+
+import (
+	"context"
+	"github.com/gogf/gf/errors/gerror"
+	"github.com/gogf/gf/frame/g"
+	"github.com/gogf/gf/util/gconv"
+	"github.com/smallnest/rpcx/protocol"
+	"strings"
+)
+
+const (
+	_ = 1000 + iota
+	TipsErr
+	ValidErr
+	QueryErr
+	CreateErr
+	UpdateErr
+	DeleteErr
+
+	AuthErr      = 1010
+	PermErr      = 1011
+	MicroCallErr = 1100
+	ConvErr      = 1200
+	DbErr        = 1201
+	SysErr       = 500
+)
+
+var ErrorTips = g.MapIntStr{
+	TipsErr:   "错误提示",
+	ValidErr:  "数据校验失败",
+	QueryErr:  "%s查询失败",
+	CreateErr: "%s创建失败",
+	UpdateErr: "%s更新失败",
+	DeleteErr: "%s删除失败",
+
+	AuthErr:      "登录失效或认证失败,请重新尝试",
+	PermErr:      "权限验证失败,请重新尝试",
+	MicroCallErr: "微服务调用失败,请重新尝试",
+
+	ConvErr: "数据转换异常,请重新尝试",
+	DbErr:   "数据库操作异常,请重新尝试",
+	SysErr:  "系统异常,请重新尝试",
+}
+
+func New(errCode int, err error, errMsg string) error {
+	if err == nil {
+		return gerror.NewCode(errCode, errMsg)
+	}
+	return gerror.WrapCode(errCode, err, errMsg)
+}
+func TipsError(errMsg string) error {
+	return gerror.NewCode(TipsErr, errMsg)
+}
+func ValidError(errMsg string) error {
+	return gerror.NewCode(ValidErr, ErrorTips[ValidErr]+": "+errMsg)
+}
+func QueryError(err error, module string) error {
+	return gerror.WrapCodef(QueryErr, err, ErrorTips[QueryErr], module)
+}
+func CreateError(err error, module string) error {
+	return gerror.WrapCodef(CreateErr, err, ErrorTips[CreateErr], module)
+}
+func UpdateError(err error, module string) error {
+	return gerror.WrapCodef(UpdateErr, err, ErrorTips[UpdateErr], module)
+}
+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 PermError(errMsg string) error {
+	return gerror.NewCode(PermErr, errMsg)
+}
+func MicroCallError(errMsg string) error {
+	return gerror.NewCode(MicroCallErr, errMsg)
+}
+func ConvError(errMsg string) error {
+	return gerror.NewCode(ConvErr, errMsg)
+}
+func DbError(errMsg string) error {
+	return gerror.NewCode(DbErr, errMsg)
+}
+func SysError(errMsg string) error {
+	return gerror.NewCode(SysErr, errMsg)
+}
+
+type HandleErrorPlugin struct{}
+
+func (p HandleErrorPlugin) PreWriteResponse(ctx context.Context, req *protocol.Message, res *protocol.Message, err error) error {
+	if err == nil {
+		// todo 正常数据处理
+		resData := gconv.Map(res.Payload)
+		resData["code"] = 200
+		if val, ok := resData["msg"]; ok && val != "" {
+		} else {
+			resData["msg"] = "操作成功"
+		}
+		res.Payload = gconv.Bytes(gconv.String(resData))
+		return nil
+	}
+	// error 堆栈信息输出
+	g.Log().Error(gerror.Stack(err))
+
+	if gErr, ok := err.(*gerror.Error); ok {
+		var resData = g.Map{}
+		// 检查是否存在二级错误,如存在取底层错误信息
+		gNextError := gerror.Next(gErr)
+		nextErrFlag := false
+		if gNextError != nil {
+			if err, ok := gNextError.(*gerror.Error); ok {
+				gErr = err
+				nextErrFlag = true
+			}
+		}
+		code := gerror.Code(gErr)
+		if code > 1000 {
+			// 业务级异常处理
+			resData = g.Map{
+				"code": code,
+				"msg":  err,
+			}
+		} else {
+			// 系统级异常处理
+			resData = g.Map{
+				"code": SysErr,
+				"msg":  ErrorTips[SysErr],
+			}
+			// 检查是否存在业务信息,添加显示
+			code := gerror.Code(err)
+			if nextErrFlag && code > 1000 {
+				resData = g.Map{
+					"code": code,
+					"msg":  splitErrorStr(err.Error()),
+				}
+			}
+		}
+		res.Payload = gconv.Bytes(gconv.String(resData))
+		res.SetMessageStatusType(protocol.Normal)
+		if res.Metadata != nil {
+			delete(res.Metadata, protocol.ServiceError)
+		}
+	}
+
+	return nil
+}
+
+func splitErrorStr(errMsg string) string {
+	errStrIndex := strings.Index(errMsg, ": ")
+	return errMsg[:errStrIndex] + ": " + ErrorTips[SysErr]
+}

+ 26 - 37
opms_parent/app/handler/proj/business.go

@@ -2,14 +2,11 @@ package base
 
 import (
 	"context"
-
-	"github.com/gogf/gf/errors/gerror"
+	"dashoo.cn/opms_libary/myerrors"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/util/gvalid"
 
 	"dashoo.cn/common_definition/comm_def"
-	"dashoo.cn/opms_libary/myerrors"
-
 	projModel "dashoo.cn/micro/app/model/proj"
 	projSrv "dashoo.cn/micro/app/service/proj"
 )
@@ -21,9 +18,7 @@ func (p *BusinessHandler) GetList(ctx context.Context, req *projModel.ProjBusine
 	if err != nil {
 		return err
 	}
-	g.Log().Info("搜索值", req)
 	total, list, err := businessService.GetList(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -34,16 +29,15 @@ func (p *BusinessHandler) GetList(ctx context.Context, req *projModel.ProjBusine
 func (p *BusinessHandler) GetEntityById(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if req.Id == 0 {
-		return gerror.New("参数有误!")
+		return myerrors.ValidError("id参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	rsp.Data, err = businessService.GetEntityById(req.Id)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		return err
+		return myerrors.QueryError(err, "项目")
 	}
 	return nil
 }
@@ -51,14 +45,13 @@ func (p *BusinessHandler) GetEntityById(ctx context.Context, req *comm_def.IdReq
 func (p *BusinessHandler) GetBusinessProduct(ctx context.Context, req *comm_def.IdReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if req.Id == 0 {
-		return gerror.New("参数有误!")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	productList, err := businessService.GetBusinessProduct(req.Id)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -68,14 +61,13 @@ func (p *BusinessHandler) GetBusinessProduct(ctx context.Context, req *comm_def.
 
 func (p *BusinessHandler) GetBusinessDynamics(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error {
 	if req.BusId == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
 		return err
 	}
 	total, list, err := businessService.GetBusinessDynamics(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -85,14 +77,13 @@ func (p *BusinessHandler) GetBusinessDynamics(ctx context.Context, req *projMode
 
 func (p *BusinessHandler) GetBusinessDynamicsList(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error {
 	if req.BusId == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
 		return err
 	}
 	total, list, err := businessService.GetBusinessDynamicsList(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -103,12 +94,12 @@ func (p *BusinessHandler) GetBusinessDynamicsList(ctx context.Context, req *proj
 func (p *BusinessHandler) Create(ctx context.Context, req *projModel.AddProjBusinessReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	// 校验产品数据
 	for _, v := range req.Products {
 		if err := gvalid.CheckStruct(ctx, v, nil); err != nil {
-			return err
+			return myerrors.ValidError(err.Error())
 		}
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
@@ -116,22 +107,24 @@ func (p *BusinessHandler) Create(ctx context.Context, req *projModel.AddProjBusi
 		return err
 	}
 	err = businessService.Create(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		return err
+		return myerrors.CreateError(err, "项目")
 	}
 	return nil
 }
 
 func (p *BusinessHandler) UpdateById(ctx context.Context, req *projModel.UpdateProjBusinessReq, rsp *comm_def.CommonMsg) error {
+	// 参数校验
+	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
+		return myerrors.ValidError(err.Error())
+	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.UpdateById(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		return err
+		return myerrors.UpdateError(err, "项目")
 	}
 	return nil
 }
@@ -139,16 +132,15 @@ func (p *BusinessHandler) UpdateById(ctx context.Context, req *projModel.UpdateP
 func (p *BusinessHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if len(req.Ids) == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("id参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.DeleteByIds(req.Ids)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
-		return err
+		return myerrors.DeleteError(err, "项目")
 	}
 	return nil
 }
@@ -157,14 +149,13 @@ func (p *BusinessHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq,
 func (p *BusinessHandler) BusinessGradation(ctx context.Context, req *projModel.BusinessGradationReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.BusinessGradation(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -175,14 +166,13 @@ func (p *BusinessHandler) BusinessGradation(ctx context.Context, req *projModel.
 func (p *BusinessHandler) BusinessTransfer(ctx context.Context, req *projModel.BusinessTransferReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.BusinessTransfer(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -193,14 +183,13 @@ func (p *BusinessHandler) BusinessTransfer(ctx context.Context, req *projModel.B
 func (p *BusinessHandler) SetPrimacyContact(ctx context.Context, req *projModel.BusinessPrimacyContactReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	businessService, err := projSrv.NewBusinessService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.SetPrimacyContact(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}

+ 4 - 8
opms_parent/app/handler/proj/business_contact.go

@@ -4,7 +4,6 @@ import (
 	"context"
 	"dashoo.cn/common_definition/comm_def"
 	"dashoo.cn/opms_libary/myerrors"
-	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/frame/g"
 	"github.com/gogf/gf/util/gvalid"
 
@@ -16,14 +15,13 @@ type BusinessContactHandler struct{}
 
 func (p *BusinessContactHandler) GetList(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error {
 	if req.BusId == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	contactService, err := projSrv.NewBusinessContactService(ctx)
 	if err != nil {
 		return err
 	}
 	total, list, err := contactService.GetList(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -34,14 +32,13 @@ func (p *BusinessContactHandler) GetList(ctx context.Context, req *projModel.Bus
 func (p *BusinessContactHandler) Create(ctx context.Context, req *projModel.BusinessContactReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	contactService, err := projSrv.NewBusinessContactService(ctx)
 	if err != nil {
 		return err
 	}
 	err = contactService.Create(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -51,13 +48,12 @@ func (p *BusinessContactHandler) Create(ctx context.Context, req *projModel.Busi
 func (p *BusinessContactHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if len(req.Ids) == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("id参数有误!")
 	}
 	contactService, err := projSrv.NewBusinessContactService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = contactService.DeleteByIds(req.Ids)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return err
 }

+ 4 - 8
opms_parent/app/handler/proj/business_file.go

@@ -4,7 +4,6 @@ import (
 	"context"
 	"dashoo.cn/common_definition/comm_def"
 	"dashoo.cn/opms_libary/myerrors"
-	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/util/gvalid"
 
 	projModel "dashoo.cn/micro/app/model/proj"
@@ -16,14 +15,13 @@ type BusinessFileHandler struct{}
 // GetList 获取列表
 func (p *BusinessFileHandler) GetList(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error {
 	if req.BusId == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessFileService(ctx)
 	if err != nil {
 		return err
 	}
 	list, err := businessService.GetList(req.BusId)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -35,14 +33,13 @@ func (p *BusinessFileHandler) GetList(ctx context.Context, req *projModel.Busine
 func (p *BusinessFileHandler) Create(ctx context.Context, req *projModel.ProjBusinessFileReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	businessService, err := projSrv.NewBusinessFileService(ctx)
 	if err != nil {
 		return err
 	}
 	err = businessService.Create(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -52,13 +49,12 @@ func (p *BusinessFileHandler) Create(ctx context.Context, req *projModel.ProjBus
 func (p *BusinessFileHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if len(req.Ids) == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("id参数有误!")
 	}
 	businessService, err := projSrv.NewBusinessFileService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = businessService.DeleteByIds(req.Ids)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return err
 }

+ 4 - 8
opms_parent/app/handler/proj/business_team.go

@@ -4,7 +4,6 @@ import (
 	"context"
 	"dashoo.cn/common_definition/comm_def"
 	"dashoo.cn/opms_libary/myerrors"
-	"github.com/gogf/gf/errors/gerror"
 	"github.com/gogf/gf/util/gvalid"
 
 	projModel "dashoo.cn/micro/app/model/proj"
@@ -16,14 +15,13 @@ type BusinessTeamHandler struct{}
 // GetList 获取列表
 func (p *BusinessTeamHandler) GetList(ctx context.Context, req *projModel.BusinessReq, rsp *comm_def.CommonMsg) error {
 	if req.BusId == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("项目参数有误!")
 	}
 	teamService, err := projSrv.NewBusinessTeamService(ctx)
 	if err != nil {
 		return err
 	}
 	list, err := teamService.GetList(req.BusId)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -34,14 +32,13 @@ func (p *BusinessTeamHandler) GetList(ctx context.Context, req *projModel.Busine
 func (p *BusinessTeamHandler) Create(ctx context.Context, req *projModel.BusinessTeamReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if err := gvalid.CheckStruct(ctx, req, nil); err != nil {
-		return err
+		return myerrors.ValidError(err.Error())
 	}
 	teamService, err := projSrv.NewBusinessTeamService(ctx)
 	if err != nil {
 		return err
 	}
 	err = teamService.Create(req)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	if err != nil {
 		return err
 	}
@@ -51,13 +48,12 @@ func (p *BusinessTeamHandler) Create(ctx context.Context, req *projModel.Busines
 func (p *BusinessTeamHandler) DeleteByIds(ctx context.Context, req *comm_def.IdsReq, rsp *comm_def.CommonMsg) error {
 	// 参数校验
 	if len(req.Ids) == 0 {
-		return gerror.New("参数为空,操作失败")
+		return myerrors.ValidError("id参数有误!")
 	}
 	teamService, err := projSrv.NewBusinessTeamService(ctx)
 	if err != nil {
-		return gerror.New("系统异常,请重新尝试")
+		return err
 	}
 	err = teamService.DeleteByIds(req.Ids)
-	_, err, rsp.Code, rsp.Msg = myerrors.CheckError(err)
 	return err
 }

+ 8 - 3
opms_parent/app/service/context.go

@@ -2,6 +2,8 @@ package service
 
 import (
 	"context"
+	"dashoo.cn/opms_libary/myerrors"
+	"github.com/gogf/gf/errors/gerror"
 
 	"github.com/gogf/gf/os/glog"
 
@@ -28,16 +30,19 @@ func (c *ContextService) Init(ctx context.Context) (*ContextService, error) {
 	// 获取租户码
 	tenant, err := micro_srv.GetTenant(ctx)
 	if err != nil {
-		return nil, err
+		return nil, gerror.NewCode(myerrors.MicroCallErr, err.Error())
+	}
+	reqMethod, err := micro_srv.GetReqMethod(ctx)
+	if err != nil {
+		return nil, gerror.NewCode(myerrors.MicroCallErr, err.Error())
 	}
-	reqMethod, _ := micro_srv.GetReqMethod(ctx)
 	glog.Info("Received " + reqMethod + " request @ " + tenant)
 	c.Tenant = tenant
 	c.CxtUser = nil
 	if !micro_srv.IsAuthExclude(ctx) {
 		userInfo, err := micro_srv.GetUserInfo(ctx)
 		if err != nil {
-			return nil, err
+			return nil, gerror.NewCode(myerrors.MicroCallErr, err.Error())
 		}
 		c.CxtUser = &userInfo
 	}

+ 12 - 9
opms_parent/app/service/proj/business.go

@@ -187,21 +187,24 @@ func (p *businessService) Create(req *model.AddProjBusinessReq) (err error) {
 	return
 }
 
-func (p *businessService) UpdateById(req *model.UpdateProjBusinessReq) (err error) {
+func (p *businessService) UpdateById(req *model.UpdateProjBusinessReq) error {
 	record, err := p.Dao.Count("Id", req.Id)
-	if err != nil || record == 0 {
-		err = gerror.New("该数据不存在")
+	if err != nil {
 		return err
 	}
+	if record == 0 {
+		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
+	}
 	businessData := gconv.Map(req)
 	businessData = utils.MapKeySnakeCamelCase(businessData, "snake")
 	products := make([]*model.ProjBusinessProduct, len(req.Products))
 	if err = gconv.Structs(req.Products, &products); err != nil {
-		return
+		return err
 	}
 	var totalPrice float64
 	for _, v := range products {
 		v.Id = 0
+		v.BusId = req.Id
 		v.TotalPrice = v.ProdPrice * float64(v.ProdNum)
 		totalPrice += v.TotalPrice
 		service.SetCreatedInfo(v, p.GetCxtUserId(), p.GetCxtUserName())
@@ -234,7 +237,7 @@ func (p *businessService) UpdateById(req *model.UpdateProjBusinessReq) (err erro
 		err = p.CreateProjBusinessDynamics(tx, dynamics, req)
 		return err
 	})
-	return
+	return err
 }
 
 func (p *businessService) DeleteByIds(ids []int64) (err error) {
@@ -249,7 +252,7 @@ func (p *businessService) BusinessTransfer(req *model.BusinessTransferReq) error
 		return err
 	}
 	if business == nil {
-		return myerrors.NewMsgError(nil, "项目不存在")
+		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
 	}
 	businessMap := g.Map{
 		p.Dao.Columns.SaleId:   req.UserId,
@@ -286,10 +289,10 @@ func (p *businessService) BusinessGradation(req *model.BusinessGradationReq) err
 		return err
 	}
 	if business == nil {
-		return myerrors.NewMsgError(nil, "项目不存在")
+		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
 	}
 	if business.NboType == req.NboType {
-		return myerrors.NewMsgError(nil, "同级无法进行调级。")
+		return gerror.NewCode(myerrors.TipsErr, "同级无法进行调级。")
 	}
 	opnType := "40"
 	// A < B return -1 项目降级
@@ -329,7 +332,7 @@ func (p *businessService) SetPrimacyContact(req *model.BusinessPrimacyContactReq
 		return err
 	}
 	if business == nil {
-		return myerrors.NewMsgError(nil, "项目不存在")
+		return gerror.NewCode(myerrors.TipsErr, "项目不存在。")
 	}
 	businessMap := g.Map{
 		p.Dao.Columns.ContactId:        req.ContactId,

+ 3 - 0
opms_parent/main.go

@@ -2,6 +2,7 @@ package main
 
 import (
 	"context"
+	"dashoo.cn/opms_libary/myerrors"
 	"net/http"
 
 	"dashoo.cn/opms_libary/micro_srv"
@@ -55,6 +56,8 @@ func main() {
 	//dynamic.BeanFactory.BeanRegister(service.NewRoleService())
 	// 注册auth处理
 	s.AuthFunc = handleAuth
+	s.Plugins.Add(&myerrors.HandleErrorPlugin{})
+
 	// 运行服务
 	if err := s.Serve("tcp", srvAddr); err != nil {
 		g.Log().Fatal(err)