yjp 1 жил өмнө
parent
commit
8de58671d3
46 өөрчлөгдсөн 441 нэмэгдсэн , 328 устгасан
  1. 2 2
      convenient/domain/configuration/api.go
  2. 7 7
      convenient/domain/configuration/entity.go
  3. 6 6
      convenient/domain/sql_executor/entity.go
  4. 4 4
      convenient/domain_gateway/sql_executor.go
  5. 24 24
      convenient/entity_crud/service.go
  6. 12 12
      convenient/relation/many2many/service.go
  7. 24 24
      convenient/relation/one2many/service.go
  8. 14 14
      convenient/relation/one2one/service.go
  9. 17 17
      convenient/relation/remote/service.go
  10. 15 15
      convenient/value_object_crud/service.go
  11. 3 3
      framework/binding/bind_item.go
  12. 3 3
      framework/core/api/api.go
  13. 8 8
      framework/core/api/context.go
  14. 8 8
      framework/core/api/request/params.go
  15. 7 7
      framework/core/api/request/params_bind_func.go
  16. 4 4
      framework/core/api/response/response.go
  17. 5 5
      framework/core/application/config.go
  18. 3 3
      framework/core/domain/entity/utils.go
  19. 10 10
      framework/core/domain/object.go
  20. 9 9
      framework/core/infrastructure/database/data_service/client/client.go
  21. 3 3
      framework/core/infrastructure/database/data_service/client/data_source.go
  22. 3 3
      framework/core/infrastructure/database/data_service/client/namespace.go
  23. 5 5
      framework/core/infrastructure/database/data_service/client/sql.go
  24. 13 13
      framework/core/infrastructure/database/data_service/data_service.go
  25. 13 13
      framework/core/infrastructure/database/data_service/transaction.go
  26. 35 35
      framework/core/infrastructure/database/database.go
  27. 3 3
      framework/core/infrastructure/database/error.go
  28. 5 5
      framework/core/infrastructure/database/operations/db.go
  29. 7 7
      framework/core/infrastructure/database/operations/operations.go
  30. 2 2
      framework/core/infrastructure/database/operations/table.go
  31. 3 3
      framework/core/infrastructure/database/sql/result.go
  32. 3 3
      framework/core/infrastructure/database/sql/sql_template.go
  33. 4 4
      framework/core/infrastructure/database/sql/value.go
  34. 4 4
      framework/core/tag/assign/assign.go
  35. 4 4
      framework/core/tag/assign/tag.go
  36. 2 2
      framework/core/tag/sql/sql_mapping/sql_mapping.go
  37. 5 5
      framework/core/tag/sql/sql_mapping/tag.go
  38. 3 3
      framework/core/tag/sql/sql_mapping/usage.go
  39. 2 2
      framework/core/tag/sql/sql_result/sql_result.go
  40. 4 4
      framework/core/tag/sql/sql_result/tag.go
  41. 3 3
      framework/core/tag/sql/sql_result/usage.go
  42. 116 0
      framework/core/tag/validate/validate.go
  43. 5 5
      framework/gateway/builder.go
  44. 2 2
      framework/gateway/builder_params.go
  45. 5 6
      go.mod
  46. 2 4
      go.sum

+ 2 - 2
convenient/domain/configuration/api.go

@@ -11,7 +11,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 // Simple Bind参数
@@ -57,7 +57,7 @@ func (simple *Simple) bind(binder *binding.Binder) {
 				if !ok {
 					return map[string]any{
 						"values": make([]string, 0),
-					}, fserr.New("传递的实体不是该领域的实体")
+					}, errors.New("传递的实体不是该领域的实体")
 				}
 
 				conditions := sql.NewConditions()

+ 7 - 7
convenient/domain/configuration/entity.go

@@ -3,7 +3,7 @@ package configuration
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/domain/value_object"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 const (
@@ -68,11 +68,11 @@ func (e *Entity) ForCreate() error {
 
 func (e *Entity) checkFieldScope() error {
 	if strutils.IsStringEmpty(e.Scope) {
-		return fserr.New(e.DomainCNName() + "范围为空")
+		return errors.New(e.DomainCNName() + "范围为空")
 	}
 
 	if len(e.Scope) > fieldScopeMaxLen {
-		return fserr.New(e.DomainCNName() + "范围超出限定长度")
+		return errors.New(e.DomainCNName() + "范围超出限定长度")
 	}
 
 	return nil
@@ -80,11 +80,11 @@ func (e *Entity) checkFieldScope() error {
 
 func (e *Entity) checkFieldGroup() error {
 	if strutils.IsStringEmpty(e.Group) {
-		return fserr.New(e.DomainCNName() + "组为空")
+		return errors.New(e.DomainCNName() + "组为空")
 	}
 
 	if len(e.Group) > fieldGroupMaxLen {
-		return fserr.New(e.DomainCNName() + "组超出限定长度")
+		return errors.New(e.DomainCNName() + "组超出限定长度")
 	}
 
 	return nil
@@ -92,11 +92,11 @@ func (e *Entity) checkFieldGroup() error {
 
 func (e *Entity) checkFieldValue() error {
 	if strutils.IsStringEmpty(e.Value) {
-		return fserr.New(e.DomainCNName() + "值为空")
+		return errors.New(e.DomainCNName() + "值为空")
 	}
 
 	if len(e.Value) > fieldValueMaxLen {
-		return fserr.New(e.DomainCNName() + "值超出限定长度")
+		return errors.New(e.DomainCNName() + "值超出限定长度")
 	}
 
 	return nil

+ 6 - 6
convenient/domain/sql_executor/entity.go

@@ -3,7 +3,7 @@ package sql_executor
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/domain/value_object"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"time"
 )
 
@@ -58,7 +58,7 @@ func (e *SqlExecuteLog) ForCreate() error {
 
 func (e *SqlExecuteLog) checkFieldSql() error {
 	if strutils.IsStringEmpty(e.Sql) {
-		return fserr.New(e.DomainCNName() + "sql为空")
+		return errors.New(e.DomainCNName() + "sql为空")
 	}
 
 	return nil
@@ -66,11 +66,11 @@ func (e *SqlExecuteLog) checkFieldSql() error {
 
 func (e *SqlExecuteLog) checkFieldExecutorID() error {
 	if strutils.IsStringEmpty(e.ExecutorID) {
-		return fserr.New(e.DomainCNName() + "执行人ID为空")
+		return errors.New(e.DomainCNName() + "执行人ID为空")
 	}
 
 	if len(e.ExecutorID) != fieldExecutorIDLen {
-		return fserr.New(e.DomainCNName() + "执行人ID长度不正确")
+		return errors.New(e.DomainCNName() + "执行人ID长度不正确")
 	}
 
 	return nil
@@ -78,11 +78,11 @@ func (e *SqlExecuteLog) checkFieldExecutorID() error {
 
 func (e *SqlExecuteLog) checkFieldExecutorName() error {
 	if strutils.IsStringEmpty(e.ExecutorName) {
-		return fserr.New(e.DomainCNName() + "执行人姓名为空")
+		return errors.New(e.DomainCNName() + "执行人姓名为空")
 	}
 
 	if len(e.ExecutorName) > fieldExecutorNameMaxLen {
-		return fserr.New(e.DomainCNName() + "执行人姓名超出限定长度")
+		return errors.New(e.DomainCNName() + "执行人姓名超出限定长度")
 	}
 
 	return nil

+ 4 - 4
convenient/domain_gateway/sql_executor.go

@@ -3,7 +3,7 @@ package domain_gateway
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/api"
 	"git.sxidc.com/go-framework/baize/framework/gateway"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/http"
 )
 
@@ -25,12 +25,12 @@ func SqlExecutorGateway(baseUrlNoUrlPrefix string, builder *gateway.Builder) {
 
 			urlPrefixValue, ok := bodyMap["urlPrefix"]
 			if !ok {
-				return nil, fserr.New("没有传递服务名")
+				return nil, errors.New("没有传递服务名")
 			}
 
 			urlPrefix, ok := urlPrefixValue.(string)
 			if !ok {
-				return nil, fserr.New("服务名不是string类型")
+				return nil, errors.New("服务名不是string类型")
 			}
 
 			delete(bodyMap, "urlPrefix")
@@ -52,7 +52,7 @@ func SqlExecutorGateway(baseUrlNoUrlPrefix string, builder *gateway.Builder) {
 
 			urlPrefix, ok := queryPrams["urlPrefix"]
 			if !ok {
-				return nil, fserr.New("没有传递服务名")
+				return nil, errors.New("没有传递服务名")
 			}
 
 			delete(queryPrams, "urlPrefix")

+ 24 - 24
convenient/entity_crud/service.go

@@ -12,7 +12,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_mapping"
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -20,14 +20,14 @@ func Create(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[st
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (string, error) {
 		object := objects[0]
 		if object == nil {
-			return "", fserr.New("领域实体为空")
+			return "", errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return "", fserr.New("需要传递领域对象应该为实体")
+			return "", errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.GenerateID()
@@ -53,7 +53,7 @@ func Create(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[st
 		err = database.InsertEntity(dbExecutor, tableName, e)
 		if err != nil {
 			if database.IsErrorDBRecordHasExist(err) {
-				err = fserr.New(e.DomainCNName() + "已存在")
+				err = errors.New(e.DomainCNName() + "已存在")
 			}
 
 			return callbackOnCreateErrorReturn(callbacks, e, prepared, err, i)
@@ -72,14 +72,14 @@ func Delete(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[an
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为实体")
+			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.ForDelete()
@@ -115,14 +115,14 @@ func Update(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[an
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为实体")
+			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.ForUpdate()
@@ -139,7 +139,7 @@ func Update(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[an
 		}
 
 		if !exist {
-			err := fserr.New(e.DomainCNName() + "不存在")
+			err := errors.New(e.DomainCNName() + "不存在")
 			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), err, i)
 		}
 
@@ -176,24 +176,24 @@ func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionField
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("需要传递领域对象应该为实体")
+			return errResponse, errors.New("需要传递领域对象应该为实体")
 		}
 
 		conditions := sql.NewConditions()
@@ -259,14 +259,14 @@ func GetByID[O any](tableName string, callbacks *GetByIDCallbacks[O]) binding.Se
 
 		object := objects[0]
 		if object == nil {
-			return outputZero, fserr.New("领域实体为空")
+			return outputZero, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return outputZero, fserr.New("需要传递领域对象应该为实体")
+			return outputZero, errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.CheckFieldID()
@@ -285,7 +285,7 @@ func GetByID[O any](tableName string, callbacks *GetByIDCallbacks[O]) binding.Se
 		})
 		if err != nil {
 			if database.IsErrorDBRecordNotExist(err) {
-				err = fserr.New(e.DomainCNName() + "不存在")
+				err = errors.New(e.DomainCNName() + "不存在")
 			}
 
 			return callbackOnGetByIDErrorReturn(callbacks, e, err, i)
@@ -310,14 +310,14 @@ func CreateTx(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (string, error) {
 		object := objects[0]
 		if object == nil {
-			return "", fserr.New("领域实体为空")
+			return "", errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return "", fserr.New("需要传递领域对象应该为实体")
+			return "", errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.GenerateID()
@@ -344,7 +344,7 @@ func CreateTx(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[
 			err = database.InsertEntity(tx, tableName, e)
 			if err != nil {
 				if database.IsErrorDBRecordHasExist(err) {
-					err = fserr.New(e.DomainCNName() + "已存在")
+					err = errors.New(e.DomainCNName() + "已存在")
 				}
 
 				return err
@@ -369,14 +369,14 @@ func DeleteTx(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为实体")
+			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.CheckFieldID()
@@ -419,14 +419,14 @@ func UpdateTx(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		e, ok := objects[0].(entity.Entity)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为实体")
+			return nil, errors.New("需要传递领域对象应该为实体")
 		}
 
 		err := e.CheckFieldID()
@@ -443,7 +443,7 @@ func UpdateTx(tableName string, callbacks *UpdateCallbacks) binding.ServiceFunc[
 		}
 
 		if !exist {
-			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), fserr.New(e.DomainCNName()+"不存在"), i)
+			return nil, callbackOnUpdateErrorReturn(callbacks, e, make(map[string]any), errors.New(e.DomainCNName()+"不存在"), i)
 		}
 
 		prepared, err := callbackPrepareUpdate(callbacks, e, i)

+ 12 - 12
convenient/relation/many2many/service.go

@@ -11,7 +11,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-tools/utils/slice"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 func Update(middleTableName string,
@@ -20,14 +20,14 @@ func Update(middleTableName string,
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return nil, fserr.New("领域对象不是实体")
+			return nil, errors.New("领域对象不是实体")
 		}
 
 		// 字段校验
@@ -46,11 +46,11 @@ func Update(middleTableName string,
 		}
 
 		if !fromExist {
-			return nil, fserr.New(fromEntity.DomainCNName() + "不存在")
+			return nil, errors.New(fromEntity.DomainCNName() + "不存在")
 		}
 
 		if !domain.HasField(object, fromRelationFieldName) {
-			return nil, fserr.New("关联字段" + fromRelationFieldName + "不存在")
+			return nil, errors.New("关联字段" + fromRelationFieldName + "不存在")
 		}
 
 		toIDs, err := domain.Field[[]string](object, fromRelationFieldName)
@@ -91,7 +91,7 @@ func Update(middleTableName string,
 			}
 
 			if int(toCount) != len(toIDs) {
-				return fserr.New("部分{{ $toCNName }}不存在")
+				return errors.New("部分{{ $toCNName }}不存在")
 			}
 
 			tableRows := make([]sql.TableRow, len(toIDs))
@@ -107,7 +107,7 @@ func Update(middleTableName string,
 			})
 			if err != nil {
 				if database.IsErrorDBRecordHasExist(err) {
-					return fserr.New("关联项已存在")
+					return errors.New("关联项已存在")
 				}
 
 				return err
@@ -132,24 +132,24 @@ func Query[TI any](middleTableName string,
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryWithIDRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		// from存在性校验
@@ -162,7 +162,7 @@ func Query[TI any](middleTableName string,
 		}
 
 		if !fromExist {
-			return errResponse, fserr.New(fromEntity.DomainCNName() + "不存在")
+			return errResponse, errors.New(fromEntity.DomainCNName() + "不存在")
 		}
 
 		toIDResults, totalCount, err := database.Query(dbExecutor, &sql.QueryExecuteParams{

+ 24 - 24
convenient/relation/one2many/service.go

@@ -14,7 +14,7 @@ import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/slice"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -23,14 +23,14 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		leftEntity, ok := object.(entity.Entity)
 		if !ok {
-			return nil, fserr.New("领域对象不是实体")
+			return nil, errors.New("领域对象不是实体")
 		}
 
 		// 字段校验
@@ -49,11 +49,11 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 		}
 
 		if !leftExist {
-			return nil, fserr.New(leftEntity.DomainCNName() + "不存在")
+			return nil, errors.New(leftEntity.DomainCNName() + "不存在")
 		}
 
 		if !domain.HasField(object, leftRelationFieldName) {
-			return nil, fserr.New("关联字段" + leftRelationFieldName + "不存在")
+			return nil, errors.New("关联字段" + leftRelationFieldName + "不存在")
 		}
 
 		rightIDs, err := domain.Field[[]string](object, leftRelationFieldName)
@@ -95,7 +95,7 @@ func UpdateLeft(leftTableName string, leftDomainCNName string, leftRelationField
 			}
 
 			if int(rightCount) != len(rightIDs) {
-				return fserr.New("部分" + rightDomainCNName + "不存在")
+				return errors.New("部分" + rightDomainCNName + "不存在")
 			}
 
 			err = database.Update(tx, &sql.UpdateExecuteParams{
@@ -125,24 +125,24 @@ func QueryLeft[RI any](leftTableName string,
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryWithIDRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		leftEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		// left存在性校验
@@ -155,7 +155,7 @@ func QueryLeft[RI any](leftTableName string,
 		}
 
 		if !leftExist {
-			return errResponse, fserr.New(leftEntity.DomainCNName() + "不存在")
+			return errResponse, errors.New(leftEntity.DomainCNName() + "不存在")
 		}
 
 		rightResults, totalCount, err := database.Query(dbExecutor, &sql.QueryExecuteParams{
@@ -185,14 +185,14 @@ func UpdateRight(rightTableName string, rightRelationFieldName string, rightRela
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		rightEntity, ok := object.(entity.Entity)
 		if !ok {
-			return nil, fserr.New("领域对象不是实体")
+			return nil, errors.New("领域对象不是实体")
 		}
 
 		// 字段校验
@@ -211,11 +211,11 @@ func UpdateRight(rightTableName string, rightRelationFieldName string, rightRela
 		}
 
 		if !rightExist {
-			return nil, fserr.New(rightEntity.DomainCNName() + "不存在")
+			return nil, errors.New(rightEntity.DomainCNName() + "不存在")
 		}
 
 		if !domain.HasField(object, rightRelationFieldName) {
-			return nil, fserr.New("关联字段" + rightRelationFieldName + "不存在")
+			return nil, errors.New("关联字段" + rightRelationFieldName + "不存在")
 		}
 
 		leftID, err := domain.Field[string](object, rightRelationFieldName)
@@ -233,7 +233,7 @@ func UpdateRight(rightTableName string, rightRelationFieldName string, rightRela
 			}
 
 			if !leftExist {
-				return nil, fserr.New(leftDomainCNName + "不存在")
+				return nil, errors.New(leftDomainCNName + "不存在")
 			}
 		}
 
@@ -258,12 +258,12 @@ func QueryRight[LI any](rightTableName string, rightRelationFieldName string, le
 
 		object := objects[0]
 		if object == nil {
-			return outputZero, fserr.New("领域实体为空")
+			return outputZero, errors.New("领域实体为空")
 		}
 
 		rightEntity, ok := object.(entity.Entity)
 		if !ok {
-			return outputZero, fserr.New("领域对象不是实体")
+			return outputZero, errors.New("领域对象不是实体")
 		}
 
 		// right存在性校验
@@ -273,7 +273,7 @@ func QueryRight[LI any](rightTableName string, rightRelationFieldName string, le
 		})
 		if err != nil {
 			if database.IsErrorDBRecordNotExist(err) {
-				return outputZero, fserr.New(rightEntity.DomainCNName() + "不存在")
+				return outputZero, errors.New(rightEntity.DomainCNName() + "不存在")
 			}
 
 			return outputZero, err
@@ -286,7 +286,7 @@ func QueryRight[LI any](rightTableName string, rightRelationFieldName string, le
 		}
 
 		if !domain.HasField(existRightEntity, rightRelationFieldName) {
-			return outputZero, fserr.New("关联字段" + rightRelationFieldName + "不存在")
+			return outputZero, errors.New("关联字段" + rightRelationFieldName + "不存在")
 		}
 
 		leftID, err := domain.Field[string](existRightEntity, rightRelationFieldName)
@@ -321,24 +321,24 @@ func QueryRightWithLeftInfo[RI any, LI any](rightTableName string, rightRelation
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		rightEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		conditions := sql.NewConditions()

+ 14 - 14
convenient/relation/one2one/service.go

@@ -13,7 +13,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_mapping"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -22,14 +22,14 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return nil, fserr.New("领域对象不是实体")
+			return nil, errors.New("领域对象不是实体")
 		}
 
 		// 字段校验
@@ -45,14 +45,14 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 		})
 		if err != nil {
 			if database.IsErrorDBRecordNotExist(err) {
-				return nil, fserr.New(fromEntity.DomainCNName() + "不存在")
+				return nil, errors.New(fromEntity.DomainCNName() + "不存在")
 			}
 
 			return nil, err
 		}
 
 		if !domain.HasField(object, fromRelationFieldName) {
-			return nil, fserr.New("关联字段" + fromRelationFieldName + "不存在")
+			return nil, errors.New("关联字段" + fromRelationFieldName + "不存在")
 		}
 
 		existFrom := reflect.New(reflect.TypeOf(object).Elem()).Interface().(domain.Object)
@@ -82,7 +82,7 @@ func Update(fromTableName string, fromRelationFieldName string, fromRelationColu
 			}
 
 			if !toExist {
-				return nil, fserr.New(fromEntity.DomainCNName() + "关联的" + toDomainCNName + "不存在")
+				return nil, errors.New(fromEntity.DomainCNName() + "关联的" + toDomainCNName + "不存在")
 			}
 		}
 
@@ -136,14 +136,14 @@ func Query[TI any](fromTableName string, fromRelationFieldName string, toTableNa
 
 		object := objects[0]
 		if object == nil {
-			return outputZero, fserr.New("领域实体为空")
+			return outputZero, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return outputZero, fserr.New("领域对象不是实体")
+			return outputZero, errors.New("领域对象不是实体")
 		}
 
 		// from存在性校验
@@ -153,7 +153,7 @@ func Query[TI any](fromTableName string, fromRelationFieldName string, toTableNa
 		})
 		if err != nil {
 			if database.IsErrorDBRecordNotExist(err) {
-				return outputZero, fserr.New(fromEntity.DomainCNName() + "不存在")
+				return outputZero, errors.New(fromEntity.DomainCNName() + "不存在")
 			}
 
 			return outputZero, err
@@ -166,7 +166,7 @@ func Query[TI any](fromTableName string, fromRelationFieldName string, toTableNa
 		}
 
 		if !domain.HasField(existFromEntity, fromRelationFieldName) {
-			return outputZero, fserr.New("关联字段" + fromRelationFieldName + "不存在")
+			return outputZero, errors.New("关联字段" + fromRelationFieldName + "不存在")
 		}
 
 		toID, err := domain.Field[string](existFromEntity, fromRelationFieldName)
@@ -201,24 +201,24 @@ func QueryWithOtherInfo[FI any, TI any](fromTableName string, fromRelationColumn
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		conditions := sql.NewConditions()

+ 17 - 17
convenient/relation/remote/service.go

@@ -11,7 +11,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-tools/utils/slice"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 func Update(middleTableName string,
@@ -20,14 +20,14 @@ func Update(middleTableName string,
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return nil, fserr.New("领域对象不是实体")
+			return nil, errors.New("领域对象不是实体")
 		}
 
 		// 字段校验
@@ -47,12 +47,12 @@ func Update(middleTableName string,
 			}
 
 			if !fromExist {
-				return nil, fserr.New(fromEntity.DomainCNName() + "不存在")
+				return nil, errors.New(fromEntity.DomainCNName() + "不存在")
 			}
 		}
 
 		if !domain.HasField(object, fromRelationFieldName) {
-			return nil, fserr.New("关联字段" + fromRelationFieldName + "不存在")
+			return nil, errors.New("关联字段" + fromRelationFieldName + "不存在")
 		}
 
 		toIDs, err := domain.Field[[]string](object, fromRelationFieldName)
@@ -94,7 +94,7 @@ func Update(middleTableName string,
 				}
 
 				if int(toCount) != len(toIDs) {
-					return fserr.New("部分{{ $toCNName }}不存在")
+					return errors.New("部分{{ $toCNName }}不存在")
 				}
 			}
 
@@ -111,7 +111,7 @@ func Update(middleTableName string,
 			})
 			if err != nil {
 				if database.IsErrorDBRecordHasExist(err) {
-					return fserr.New("关联项已存在")
+					return errors.New("关联项已存在")
 				}
 
 				return err
@@ -136,24 +136,24 @@ func QueryToExist[TI any](middleTableName string,
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		if !fromRemote {
@@ -167,7 +167,7 @@ func QueryToExist[TI any](middleTableName string,
 			}
 
 			if !fromExist {
-				return errResponse, fserr.New(fromEntity.DomainCNName() + "不存在")
+				return errResponse, errors.New(fromEntity.DomainCNName() + "不存在")
 			}
 		}
 
@@ -226,24 +226,24 @@ func QueryToRemote(middleTableName string, fromRemote bool, fromTableName string
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		fromEntity, ok := object.(entity.Entity)
 		if !ok {
-			return errResponse, fserr.New("领域对象不是实体")
+			return errResponse, errors.New("领域对象不是实体")
 		}
 
 		if !fromRemote {
@@ -257,7 +257,7 @@ func QueryToRemote(middleTableName string, fromRemote bool, fromTableName string
 			}
 
 			if !fromExist {
-				return errResponse, fserr.New(fromEntity.DomainCNName() + "不存在")
+				return errResponse, errors.New(fromEntity.DomainCNName() + "不存在")
 			}
 		}
 

+ 15 - 15
convenient/value_object_crud/service.go

@@ -11,7 +11,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_mapping"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -19,14 +19,14 @@ func Create(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[an
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		valueObject, ok := objects[0].(value_object.ValueObject)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为值对象")
+			return nil, errors.New("需要传递领域对象应该为值对象")
 		}
 
 		err := valueObject.ForCreate()
@@ -47,7 +47,7 @@ func Create(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[an
 		err = database.InsertEntity(dbExecutor, tableName, valueObject)
 		if err != nil {
 			if database.IsErrorDBRecordHasExist(err) {
-				err = fserr.New(valueObject.DomainCNName() + "已存在")
+				err = errors.New(valueObject.DomainCNName() + "已存在")
 			}
 
 			return nil, callbackOnCreateErrorReturn(callbacks, valueObject, prepared, err, i)
@@ -66,14 +66,14 @@ func Delete(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[an
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		valueObject, ok := objects[0].(value_object.ValueObject)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为值对象")
+			return nil, errors.New("需要传递领域对象应该为值对象")
 		}
 
 		err := valueObject.CheckKeyFields()
@@ -114,24 +114,24 @@ func Query[O any](tableName string, callbacks *QueryCallbacks[O], conditionField
 		}
 
 		if params == nil {
-			return errResponse, fserr.New("请求参数为空")
+			return errResponse, errors.New("请求参数为空")
 		}
 
 		object := objects[0]
 		if object == nil {
-			return errResponse, fserr.New("领域实体为空")
+			return errResponse, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		queryParams, ok := params.(request.QueryRequestParams)
 		if !ok {
-			return errResponse, fserr.New("请求参数不是Query接口")
+			return errResponse, errors.New("请求参数不是Query接口")
 		}
 
 		valueObject, ok := objects[0].(value_object.ValueObject)
 		if !ok {
-			return errResponse, fserr.New("需要传递领域对象应该为值对象")
+			return errResponse, errors.New("需要传递领域对象应该为值对象")
 		}
 
 		conditions := sql.NewConditions()
@@ -195,14 +195,14 @@ func CreateTx(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		valueObject, ok := objects[0].(value_object.ValueObject)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为值对象")
+			return nil, errors.New("需要传递领域对象应该为值对象")
 		}
 
 		prepared, err := callbackPrepareCreate(callbacks, valueObject, i)
@@ -219,7 +219,7 @@ func CreateTx(tableName string, callbacks *CreateCallbacks) binding.ServiceFunc[
 			err = database.InsertEntity(tx, tableName, valueObject)
 			if err != nil {
 				if database.IsErrorDBRecordHasExist(err) {
-					err = fserr.New(valueObject.DomainCNName() + "已存在")
+					err = errors.New(valueObject.DomainCNName() + "已存在")
 				}
 
 				return err
@@ -244,14 +244,14 @@ func DeleteTx(tableName string, callbacks *DeleteCallbacks) binding.ServiceFunc[
 	return func(c *api.Context, params request.Params, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
 		object := objects[0]
 		if object == nil {
-			return nil, fserr.New("领域实体为空")
+			return nil, errors.New("领域实体为空")
 		}
 
 		dbExecutor := i.DBExecutor()
 
 		valueObject, ok := objects[0].(value_object.ValueObject)
 		if !ok {
-			return nil, fserr.New("需要传递领域对象应该为值对象")
+			return nil, errors.New("需要传递领域对象应该为值对象")
 		}
 
 		err := valueObject.CheckKeyFields()

+ 3 - 3
framework/binding/bind_item.go

@@ -6,7 +6,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/domain"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/http"
 	"reflect"
 	"strings"
@@ -61,7 +61,7 @@ func (item *BindItem[O]) bind(binder *Binder, middlewares ...api.Handler) {
 			if item.RequestParams != nil {
 				requestParamsType := reflect.TypeOf(item.RequestParams)
 				if !reflectutils.IsTypeStructOrStructPointer(requestParamsType) {
-					item.SendResponseFunc(c, http.StatusOK, outputZero, fserr.New("请求参数不是结构或结构指针"))
+					item.SendResponseFunc(c, http.StatusOK, outputZero, errors.New("请求参数不是结构或结构指针"))
 					return
 				}
 
@@ -119,7 +119,7 @@ func (item *BindItem[O]) bind(binder *Binder, middlewares ...api.Handler) {
 
 						objectType := reflect.TypeOf(object)
 						if !reflectutils.IsTypeStructOrStructPointer(objectType) {
-							item.SendResponseFunc(c, http.StatusOK, outputZero, fserr.New("领域对象不是结构或结构指针"))
+							item.SendResponseFunc(c, http.StatusOK, outputZero, errors.New("领域对象不是结构或结构指针"))
 							return
 						}
 

+ 3 - 3
framework/core/api/api.go

@@ -3,8 +3,8 @@ package api
 import (
 	"context"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/gin-gonic/gin"
+	"github.com/pkg/errors"
 	"net/http"
 )
 
@@ -74,7 +74,7 @@ func NewWithEngine(server *http.Server, engine *gin.Engine, opts ...Option) *Api
 func (api *Api) Start() error {
 	err := api.server.ListenAndServe()
 	if err != nil && !fserr.Is(err, http.ErrServerClosed) {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -83,7 +83,7 @@ func (api *Api) Start() error {
 func (api *Api) Finish() error {
 	err := api.server.Shutdown(context.Background())
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil

+ 8 - 8
framework/core/api/context.go

@@ -4,8 +4,8 @@ import (
 	"bytes"
 	"encoding/json"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/gin-gonic/gin"
+	"github.com/pkg/errors"
 	"io"
 	"mime/multipart"
 	"strings"
@@ -19,20 +19,20 @@ type Context struct {
 func (c *Context) GetFileHeaderBytes(fileHeader *multipart.FileHeader) (string, []byte, error) {
 	file, err := fileHeader.Open()
 	if err != nil {
-		return "", nil, fserr.New(err.Error())
+		return "", nil, errors.New(err.Error())
 	}
 
 	defer func(file multipart.File) {
 		err := file.Close()
 		if err != nil {
-			logger.GetInstance().Error(fserr.New(err.Error()))
+			logger.GetInstance().Error(errors.New(err.Error()))
 			return
 		}
 	}(file)
 
 	contentBytes, err := io.ReadAll(file)
 	if err != nil {
-		return "", nil, fserr.New(err.Error())
+		return "", nil, errors.New(err.Error())
 	}
 
 	return fileHeader.Filename, contentBytes, nil
@@ -55,13 +55,13 @@ func (c *Context) ReadBody() ([]byte, error) {
 
 	body, err := io.ReadAll(c.Request.Body)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	defer func(Body io.ReadCloser) {
 		err := Body.Close()
 		if err != nil {
-			logger.GetInstance().Error(fserr.New(err.Error()))
+			logger.GetInstance().Error(errors.New(err.Error()))
 			return
 		}
 	}(c.Request.Body)
@@ -75,7 +75,7 @@ func (c *Context) ReplaceBody(body []byte) error {
 	if c.Request.Body != nil {
 		err := c.Request.Body.Close()
 		if err != nil {
-			return fserr.New(err.Error())
+			return errors.New(err.Error())
 		}
 	}
 
@@ -96,7 +96,7 @@ func (c *Context) ReadJsonBody(output any) error {
 func (c *Context) ReplaceJsonBody(body any) error {
 	bodyBytes, err := json.Marshal(body)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return c.ReplaceBody(bodyBytes)

+ 8 - 8
framework/core/api/request/params.go

@@ -4,7 +4,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/domain"
 	"git.sxidc.com/go-framework/baize/framework/core/tag/assign"
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -18,7 +18,7 @@ func Field[T any](params Params, fieldName string) (T, error) {
 	zero := reflectutils.Zero[T]()
 
 	if params == nil {
-		return zero, fserr.New("请求参数为nil")
+		return zero, errors.New("请求参数为nil")
 	}
 
 	fieldValue, err := getRequestParamsValue(params, fieldName)
@@ -27,12 +27,12 @@ func Field[T any](params Params, fieldName string) (T, error) {
 	}
 
 	if !fieldValue.IsValid() {
-		return zero, fserr.New("请求参数" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
+		return zero, errors.New("请求参数" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
 	}
 
 	retValue, ok := fieldValue.Interface().(T)
 	if !ok {
-		return zero, fserr.New("请求参数" + fieldValue.Type().String() + "的字段" + fieldName + "无法转换类型")
+		return zero, errors.New("请求参数" + fieldValue.Type().String() + "的字段" + fieldName + "无法转换类型")
 	}
 
 	return retValue, nil
@@ -42,12 +42,12 @@ func ToConcrete[T Params](params Params) (T, error) {
 	zero := reflectutils.Zero[T]()
 
 	if params == nil {
-		return zero, fserr.New("请求参数为nil")
+		return zero, errors.New("请求参数为nil")
 	}
 
 	concrete, ok := params.(T)
 	if !ok {
-		return zero, fserr.New("请求参数转化失败")
+		return zero, errors.New("请求参数转化失败")
 	}
 
 	return concrete, nil
@@ -55,13 +55,13 @@ func ToConcrete[T Params](params Params) (T, error) {
 
 func getRequestParamsValue(params Params, fieldName string) (*reflect.Value, error) {
 	if params == nil {
-		return nil, fserr.New("请求参数为nil")
+		return nil, errors.New("请求参数为nil")
 	}
 
 	paramsValue := reflect.ValueOf(params)
 
 	if !reflectutils.IsValueStructOrStructPointer(paramsValue) {
-		return nil, fserr.New("请求参数必须是结构或结构指针")
+		return nil, errors.New("请求参数必须是结构或结构指针")
 	}
 
 	fieldValue := reflectutils.PointerValueElem(paramsValue).FieldByName(fieldName)

+ 7 - 7
framework/core/api/request/params_bind_func.go

@@ -2,8 +2,8 @@ package request
 
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/api"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/gin-gonic/gin/binding"
+	"github.com/pkg/errors"
 )
 
 type BindRequestParamsFunc func(c *api.Context, params Params) error
@@ -11,7 +11,7 @@ type BindRequestParamsFunc func(c *api.Context, params Params) error
 func BindJsonBody(c *api.Context, params Params) error {
 	err := c.ShouldBindJSON(params)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -20,7 +20,7 @@ func BindJsonBody(c *api.Context, params Params) error {
 func BindQueryParams(c *api.Context, params Params) error {
 	err := c.ShouldBindQuery(params)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -29,7 +29,7 @@ func BindQueryParams(c *api.Context, params Params) error {
 func BindPathParams(c *api.Context, params Params) error {
 	err := c.ShouldBindUri(params)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -38,7 +38,7 @@ func BindPathParams(c *api.Context, params Params) error {
 func BindMultipartForm(c *api.Context, params Params) error {
 	err := c.ShouldBindWith(params, binding.FormMultipart)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -47,7 +47,7 @@ func BindMultipartForm(c *api.Context, params Params) error {
 func BindFormBody(c *api.Context, params Params) error {
 	err := c.ShouldBindWith(params, binding.Form)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -56,7 +56,7 @@ func BindFormBody(c *api.Context, params Params) error {
 func BindXMLBody(c *api.Context, params Params) error {
 	err := c.ShouldBindXML(params)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil

+ 4 - 4
framework/core/api/response/response.go

@@ -4,8 +4,8 @@ import (
 	"encoding/json"
 	"git.sxidc.com/go-framework/baize/framework/core/api"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
-	"git.sxidc.com/service-supports/fserr"
 	"git.sxidc.com/service-supports/websocket"
+	"github.com/pkg/errors"
 )
 
 type SendResponseFunc[O any] func(c *api.Context, statusCode int, data O, err error)
@@ -130,13 +130,13 @@ func formMapMsgResponse(err error) map[string]any {
 func WSSendMessage(groupID string, obj any) {
 	message, err := json.Marshal(obj)
 	if err != nil {
-		logger.GetInstance().Error(fserr.New(err.Error()))
+		logger.GetInstance().Error(errors.New(err.Error()))
 		return
 	}
 
 	err = websocket.GetInstance().BroadCast(groupID, message)
 	if err != nil {
-		logger.GetInstance().Error(fserr.New(err.Error()))
+		logger.GetInstance().Error(errors.New(err.Error()))
 		return
 	}
 }
@@ -158,7 +158,7 @@ func WriteBytes(c *api.Context, statusCode int, bytes []byte, err error) {
 
 	_, err = c.Writer.Write(bytes)
 	if err != nil {
-		logger.GetInstance().Error(fserr.New(err.Error()))
+		logger.GetInstance().Error(errors.New(err.Error()))
 		c.AbortWithStatus(statusCode)
 		return
 	}

+ 5 - 5
framework/core/application/config.go

@@ -4,7 +4,7 @@ import (
 	"encoding/json"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure"
 	"git.sxidc.com/go-tools/utils/fileutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"gopkg.in/yaml.v3"
 	"os"
 )
@@ -25,7 +25,7 @@ type InfrastructureConfig struct {
 
 func LoadFromJsonFile(jsonFilePath string) (Config, error) {
 	if !fileutils.PathExists(jsonFilePath) {
-		return Config{}, fserr.New("配置文件不存在")
+		return Config{}, errors.New("配置文件不存在")
 	}
 
 	jsonBytes, err := os.ReadFile(jsonFilePath)
@@ -38,7 +38,7 @@ func LoadFromJsonFile(jsonFilePath string) (Config, error) {
 
 func LoadFromYamlFile(yamlFilePath string) (Config, error) {
 	if !fileutils.PathExists(yamlFilePath) {
-		return Config{}, fserr.New("配置文件不存在")
+		return Config{}, errors.New("配置文件不存在")
 	}
 
 	yamlBytes, err := os.ReadFile(yamlFilePath)
@@ -61,7 +61,7 @@ func loadFromJson(jsonBytes []byte) (Config, error) {
 	conf := new(Config)
 	err := json.Unmarshal(jsonBytes, conf)
 	if err != nil {
-		return Config{}, fserr.New(err.Error())
+		return Config{}, errors.New(err.Error())
 	}
 
 	return *conf, nil
@@ -71,7 +71,7 @@ func loadFromYaml(yamlBytes []byte) (Config, error) {
 	conf := new(Config)
 	err := yaml.Unmarshal(yamlBytes, conf)
 	if err != nil {
-		return Config{}, fserr.New(err.Error())
+		return Config{}, errors.New(err.Error())
 	}
 
 	return *conf, nil

+ 3 - 3
framework/core/domain/entity/utils.go

@@ -2,7 +2,7 @@ package entity
 
 import (
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 const (
@@ -11,11 +11,11 @@ const (
 
 func CheckID(domainCNName string, fieldCNName string, id string) error {
 	if strutils.IsStringEmpty(id) {
-		return fserr.New(domainCNName + fieldCNName + "为空")
+		return errors.New(domainCNName + fieldCNName + "为空")
 	}
 
 	if len(id) != fieldIDLen {
-		return fserr.New(domainCNName + fieldCNName + "长度不正确")
+		return errors.New(domainCNName + fieldCNName + "长度不正确")
 	}
 
 	return nil

+ 10 - 10
framework/core/domain/object.go

@@ -4,8 +4,8 @@ import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
 	"git.sxidc.com/go-tools/utils/template"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/iancoleman/strcase"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -21,7 +21,7 @@ func HasField(object Object, fieldName string) bool {
 
 func SetField[T any](object Object, fieldName string, value T) error {
 	if object == nil {
-		return fserr.New("领域对象为nil")
+		return errors.New("领域对象为nil")
 	}
 
 	fieldValue, err := getFieldValue(object, fieldName)
@@ -30,7 +30,7 @@ func SetField[T any](object Object, fieldName string, value T) error {
 	}
 
 	if !fieldValue.IsValid() || !fieldValue.CanSet() {
-		return fserr.New("领域对象" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
+		return errors.New("领域对象" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
 	}
 
 	fieldValue.Set(reflect.ValueOf(value))
@@ -42,7 +42,7 @@ func Field[T any](object Object, fieldName string) (T, error) {
 	zero := reflectutils.Zero[T]()
 
 	if object == nil {
-		return zero, fserr.New("领域对象为nil")
+		return zero, errors.New("领域对象为nil")
 	}
 
 	fieldValue, err := getFieldValue(object, fieldName)
@@ -51,12 +51,12 @@ func Field[T any](object Object, fieldName string) (T, error) {
 	}
 
 	if !fieldValue.IsValid() {
-		return zero, fserr.New("领域对象" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
+		return zero, errors.New("领域对象" + fieldValue.Type().String() + "的字段" + fieldName + "无法赋值")
 	}
 
 	retValue, ok := fieldValue.Interface().(T)
 	if !ok {
-		return zero, fserr.New("转换字段类型失败")
+		return zero, errors.New("转换字段类型失败")
 	}
 
 	return retValue, nil
@@ -66,12 +66,12 @@ func ToConcrete[T Object](object Object) (T, error) {
 	zero := reflectutils.Zero[T]()
 
 	if object == nil {
-		return zero, fserr.New("领域对象为nil")
+		return zero, errors.New("领域对象为nil")
 	}
 
 	concrete, ok := object.(T)
 	if !ok {
-		return zero, fserr.New("领域对象转化失败")
+		return zero, errors.New("领域对象转化失败")
 	}
 
 	return concrete, nil
@@ -97,13 +97,13 @@ func hasField(object Object, fieldName string) bool {
 
 func getFieldValue(object Object, fieldName string) (*reflect.Value, error) {
 	if object == nil {
-		return nil, fserr.New("领域对象为nil")
+		return nil, errors.New("领域对象为nil")
 	}
 
 	objectValue := reflect.ValueOf(object)
 
 	if !reflectutils.IsValueStructOrStructPointer(objectValue) {
-		return nil, fserr.New("领域对象必须是结构或结构指针")
+		return nil, errors.New("领域对象必须是结构或结构指针")
 	}
 
 	fieldValue := reflectutils.PointerValueElem(objectValue).FieldByName(fieldName)

+ 9 - 9
framework/core/infrastructure/database/data_service/client/client.go

@@ -2,7 +2,7 @@ package client
 
 import (
 	"git.sxidc.com/go-tools/utils/http_client"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"time"
 )
 
@@ -53,12 +53,12 @@ func (c *Client) post(token string, url string, request interface{}, result inte
 			"Authorization": token,
 		}))
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	err = resp.Json(result)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -74,12 +74,12 @@ func (c *Client) delete(token string, url string, queryMap map[string]string, re
 		}),
 		http_client.WithRequestQueryParams(queryMap))
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	err = resp.Json(result)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -94,12 +94,12 @@ func (c *Client) put(token string, url string, request interface{}, result inter
 			"Authorization": token,
 		}))
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	err = resp.Json(result)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil
@@ -115,12 +115,12 @@ func (c *Client) get(token string, url string, queryMap map[string]string, resul
 		}),
 		http_client.WithRequestQueryParams(queryMap))
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	err = resp.Json(result)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil

+ 3 - 3
framework/core/infrastructure/database/data_service/client/data_source.go

@@ -1,7 +1,7 @@
 package client
 
 import (
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/url"
 	"strconv"
 )
@@ -13,7 +13,7 @@ const (
 func (c *Client) GetDataSources(token string, baseUrl string, namespace string, name string, typeStr string, pageNo int, pageSize int) ([]DataSourceInfo, error) {
 	fullUrl, err := url.JoinPath(baseUrl, getDataSourcesUrl)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	resp := new(struct {
@@ -36,7 +36,7 @@ func (c *Client) GetDataSources(token string, baseUrl string, namespace string,
 	}
 
 	if !resp.Success {
-		return nil, fserr.New(resp.Msg)
+		return nil, errors.New(resp.Msg)
 	}
 
 	return resp.Infos, nil

+ 3 - 3
framework/core/infrastructure/database/data_service/client/namespace.go

@@ -1,7 +1,7 @@
 package client
 
 import (
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/url"
 	"strconv"
 )
@@ -13,7 +13,7 @@ const (
 func (c *Client) GetNamespaces(token string, baseUrl string, name string, pageNo int, pageSize int) ([]NamespaceInfo, error) {
 	fullUrl, err := url.JoinPath(baseUrl, getNamespacesUrl)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	resp := new(struct {
@@ -34,7 +34,7 @@ func (c *Client) GetNamespaces(token string, baseUrl string, name string, pageNo
 	}
 
 	if !resp.Success {
-		return nil, fserr.New(resp.Msg)
+		return nil, errors.New(resp.Msg)
 	}
 
 	return resp.Infos, nil

+ 5 - 5
framework/core/infrastructure/database/data_service/client/sql.go

@@ -1,7 +1,7 @@
 package client
 
 import (
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/url"
 )
 
@@ -14,7 +14,7 @@ func (c *Client) ExecuteRawSql(token string, baseUrl string,
 	namespace string, dataSource string, sql string, executeParams map[string]any) ([]map[string]any, error) {
 	fullUrl, err := url.JoinPath(baseUrl, executeRawSqlUrl)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	resp := new(struct {
@@ -34,7 +34,7 @@ func (c *Client) ExecuteRawSql(token string, baseUrl string,
 	}
 
 	if !resp.Success {
-		return nil, fserr.New(resp.Msg)
+		return nil, errors.New(resp.Msg)
 	}
 
 	return resp.Results, nil
@@ -44,7 +44,7 @@ func (c *Client) ExecuteSql(token string, baseUrl string,
 	namespace string, dataSource string, name string, executeParams map[string]any) ([]map[string]any, error) {
 	fullUrl, err := url.JoinPath(baseUrl, executeSqlUrl)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	resp := new(struct {
@@ -64,7 +64,7 @@ func (c *Client) ExecuteSql(token string, baseUrl string,
 	}
 
 	if !resp.Success {
-		return nil, fserr.New(resp.Msg)
+		return nil, errors.New(resp.Msg)
 	}
 
 	return resp.Results, nil

+ 13 - 13
framework/core/infrastructure/database/data_service/data_service.go

@@ -7,7 +7,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"io"
 	"time"
 )
@@ -45,7 +45,7 @@ func NewDataService(config *Config) (*DataService, error) {
 	}
 
 	if namespaceInfos == nil || len(namespaceInfos) == 0 {
-		return nil, fserr.New("命名空间不存在")
+		return nil, errors.New("命名空间不存在")
 	}
 
 	dataSourceInfos, err := c.GetDataSources(
@@ -55,12 +55,12 @@ func NewDataService(config *Config) (*DataService, error) {
 	}
 
 	if dataSourceInfos == nil || len(dataSourceInfos) == 0 {
-		return nil, fserr.New("数据源不存在")
+		return nil, errors.New("数据源不存在")
 	}
 
 	grpcClient, err := grpc_client.NewClient(grpcAddress)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	return &DataService{
@@ -77,7 +77,7 @@ func DestroyDataService(ds *DataService) error {
 
 	err := grpc_client.Destroy(ds.grpcClient)
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	ds = nil
@@ -109,7 +109,7 @@ func (ds *DataService) ExecuteRawSql(sqlStr string, executeParams map[string]any
 
 func (ds *DataService) ExecuteSql(name string, executeParams map[string]any) ([]sql.Result, error) {
 	if strutils.IsStringEmpty(name) {
-		return nil, fserr.New("没有传递SQL资源名称")
+		return nil, errors.New("没有传递SQL资源名称")
 	}
 
 	config := ds.config
@@ -132,13 +132,13 @@ func (ds *DataService) ExecuteSql(name string, executeParams map[string]any) ([]
 func (ds *DataService) Transaction(txFunc TxFunc) error {
 	stream, err := ds.grpcClient.Transaction()
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	defer func() {
 		innerErr := stream.CloseSend()
 		if innerErr != nil {
-			logger.GetInstance().Error(fserr.New(innerErr.Error()))
+			logger.GetInstance().Error(errors.New(innerErr.Error()))
 			return
 		}
 	}()
@@ -152,16 +152,16 @@ func (ds *DataService) Transaction(txFunc TxFunc) error {
 			},
 		}})
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	resp, err := stream.Recv()
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	if !resp.Success {
-		return fserr.New(resp.Msg)
+		return errors.New(resp.Msg)
 	}
 
 	err = txFunc(&Transaction{
@@ -176,12 +176,12 @@ func (ds *DataService) Transaction(txFunc TxFunc) error {
 			TransactionEndRequest: &request.TransactionEndRequest{},
 		}})
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	_, err = stream.Recv()
 	if err != nil && err != io.EOF {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	return nil

+ 13 - 13
framework/core/infrastructure/database/data_service/transaction.go

@@ -6,7 +6,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/data_service/grpc_client/v1/request"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 type TxFunc func(tx *Transaction) error
@@ -22,7 +22,7 @@ func (tx *Transaction) ExecuteRawSql(sqlStr string, executeParams map[string]any
 		if retErr != nil {
 			innerErr := tx.stream.CloseSend()
 			if innerErr != nil {
-				logger.GetInstance().Error(fserr.New(innerErr.Error()))
+				logger.GetInstance().Error(errors.New(innerErr.Error()))
 				return
 			}
 		}
@@ -30,7 +30,7 @@ func (tx *Transaction) ExecuteRawSql(sqlStr string, executeParams map[string]any
 
 	executeParamsJsonBytes, err := json.Marshal(executeParams)
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
@@ -43,25 +43,25 @@ func (tx *Transaction) ExecuteRawSql(sqlStr string, executeParams map[string]any
 		},
 	})
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
 	resp, err := tx.stream.Recv()
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
 	if !resp.Success {
-		retErr = fserr.New(resp.Msg)
+		retErr = errors.New(resp.Msg)
 		return nil, retErr
 	}
 
 	tableRows := make([]map[string]any, 0)
 	err = json.Unmarshal([]byte(resp.Results), &tableRows)
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
@@ -80,7 +80,7 @@ func (tx *Transaction) ExecuteSql(name string, executeParams map[string]any) ([]
 		if retErr != nil {
 			innerErr := tx.stream.CloseSend()
 			if innerErr != nil {
-				logger.GetInstance().Error(fserr.New(innerErr.Error()))
+				logger.GetInstance().Error(errors.New(innerErr.Error()))
 				return
 			}
 		}
@@ -88,7 +88,7 @@ func (tx *Transaction) ExecuteSql(name string, executeParams map[string]any) ([]
 
 	executeParamsJsonBytes, err := json.Marshal(executeParams)
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
@@ -101,25 +101,25 @@ func (tx *Transaction) ExecuteSql(name string, executeParams map[string]any) ([]
 		},
 	})
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
 	resp, err := tx.stream.Recv()
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 
 	if !resp.Success {
-		retErr = fserr.New(resp.Msg)
+		retErr = errors.New(resp.Msg)
 		return nil, retErr
 	}
 
 	tableRows := make([]map[string]any, 0)
 	err = json.Unmarshal([]byte(resp.Results), &tableRows)
 	if err != nil {
-		retErr = fserr.New(err.Error())
+		retErr = errors.New(err.Error())
 		return nil, retErr
 	}
 

+ 35 - 35
framework/core/infrastructure/database/database.go

@@ -7,7 +7,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_mapping"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -54,11 +54,11 @@ func Transaction(executor Executor, txFunc func(tx Executor) error) error {
 
 func InsertEntity(executor Executor, tableName string, e any) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(tableName) {
-		return fserr.New("没有传递表名")
+		return errors.New("没有传递表名")
 	}
 
 	if e == nil {
@@ -67,7 +67,7 @@ func InsertEntity(executor Executor, tableName string, e any) error {
 
 	entityType := reflect.TypeOf(e)
 	if !reflectutils.IsTypeStructOrStructPointer(entityType) {
-		return fserr.New("实体参数不是结构或结构指针")
+		return errors.New("实体参数不是结构或结构指针")
 	}
 
 	fields, err := sql_mapping.DefaultUsage(e)
@@ -97,11 +97,11 @@ func InsertEntity(executor Executor, tableName string, e any) error {
 
 func InsertEntityBatch(executor Executor, tableName string, es []any) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(tableName) {
-		return fserr.New("没有传递表名")
+		return errors.New("没有传递表名")
 	}
 
 	tableRowBatch := make([]sql.TableRow, 0)
@@ -113,7 +113,7 @@ func InsertEntityBatch(executor Executor, tableName string, es []any) error {
 
 		entityType := reflect.TypeOf(e)
 		if !reflectutils.IsTypeStructOrStructPointer(entityType) {
-			return fserr.New("实体参数不是结构或结构指针")
+			return errors.New("实体参数不是结构或结构指针")
 		}
 
 		fields, err := sql_mapping.DefaultUsage(e)
@@ -163,11 +163,11 @@ func formInsertTableRow(fields []sql_mapping.Field) *sql.TableRow {
 
 func DeleteEntity(executor Executor, tableName string, e any) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(tableName) {
-		return fserr.New("没有传递表名")
+		return errors.New("没有传递表名")
 	}
 
 	if e == nil {
@@ -176,7 +176,7 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
 
 	entityType := reflect.TypeOf(e)
 	if !reflectutils.IsTypeStructOrStructPointer(entityType) {
-		return fserr.New("实体参数不是结构或结构指针")
+		return errors.New("实体参数不是结构或结构指针")
 	}
 
 	fields, err := sql_mapping.DefaultUsage(e)
@@ -212,11 +212,11 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
 
 func UpdateEntity(executor Executor, tableName string, e any) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(tableName) {
-		return fserr.New("没有传递表名")
+		return errors.New("没有传递表名")
 	}
 
 	if e == nil {
@@ -225,7 +225,7 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
 
 	entityType := reflect.TypeOf(e)
 	if !reflectutils.IsTypeStructOrStructPointer(entityType) {
-		return fserr.New("实体参数不是结构或结构指针")
+		return errors.New("实体参数不是结构或结构指针")
 	}
 
 	fields, err := sql_mapping.DefaultUsage(e)
@@ -282,11 +282,11 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
 
 func Insert(executor Executor, executeParams *sql.InsertExecuteParams) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return fserr.New("没有传递执行参数")
+		return errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -304,11 +304,11 @@ func Insert(executor Executor, executeParams *sql.InsertExecuteParams) error {
 
 func InsertBatch(executor Executor, executeParams *sql.InsertBatchExecuteParams) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return fserr.New("没有传递执行参数")
+		return errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -326,11 +326,11 @@ func InsertBatch(executor Executor, executeParams *sql.InsertBatchExecuteParams)
 
 func Delete(executor Executor, executeParams *sql.DeleteExecuteParams) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return fserr.New("没有传递执行参数")
+		return errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -348,11 +348,11 @@ func Delete(executor Executor, executeParams *sql.DeleteExecuteParams) error {
 
 func Update(executor Executor, executeParams *sql.UpdateExecuteParams) error {
 	if executor == nil {
-		return fserr.New("没有传递执行器")
+		return errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return fserr.New("没有传递执行参数")
+		return errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -370,11 +370,11 @@ func Update(executor Executor, executeParams *sql.UpdateExecuteParams) error {
 
 func Query(executor Executor, executeParams *sql.QueryExecuteParams) ([]sql.Result, int64, error) {
 	if executor == nil {
-		return nil, 0, fserr.New("没有传递执行器")
+		return nil, 0, errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return nil, 0, fserr.New("没有传递执行参数")
+		return nil, 0, errors.New("没有传递执行参数")
 	}
 
 	queryExecuteParamsMap, err := executeParams.Map()
@@ -410,11 +410,11 @@ func Query(executor Executor, executeParams *sql.QueryExecuteParams) ([]sql.Resu
 
 func QueryOne(executor Executor, executeParams *sql.QueryOneExecuteParams) (sql.Result, error) {
 	if executor == nil {
-		return nil, fserr.New("没有传递执行器")
+		return nil, errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return nil, fserr.New("没有传递执行参数")
+		return nil, errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -436,11 +436,11 @@ func QueryOne(executor Executor, executeParams *sql.QueryOneExecuteParams) (sql.
 
 func Count(executor Executor, executeParams *sql.CountExecuteParams) (int64, error) {
 	if executor == nil {
-		return 0, fserr.New("没有传递执行器")
+		return 0, errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return 0, fserr.New("没有传递执行参数")
+		return 0, errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -458,11 +458,11 @@ func Count(executor Executor, executeParams *sql.CountExecuteParams) (int64, err
 
 func CheckExist(executor Executor, executeParams *sql.CheckExistExecuteParams) (bool, error) {
 	if executor == nil {
-		return false, fserr.New("没有传递执行器")
+		return false, errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return false, fserr.New("没有传递执行参数")
+		return false, errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -480,11 +480,11 @@ func CheckExist(executor Executor, executeParams *sql.CheckExistExecuteParams) (
 
 func CheckHasOnlyOne(executor Executor, executeParams *sql.CheckHasOnlyOneExecuteParams) (bool, error) {
 	if executor == nil {
-		return false, fserr.New("没有传递执行器")
+		return false, errors.New("没有传递执行器")
 	}
 
 	if executeParams == nil {
-		return false, fserr.New("没有传递执行参数")
+		return false, errors.New("没有传递执行参数")
 	}
 
 	executeParamsMap, err := executeParams.Map()
@@ -502,11 +502,11 @@ func CheckHasOnlyOne(executor Executor, executeParams *sql.CheckHasOnlyOneExecut
 
 func ExecuteRawSql(executor Executor, sql string, executeParams map[string]any) ([]sql.Result, error) {
 	if executor == nil {
-		return nil, fserr.New("没有传递执行器")
+		return nil, errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(sql) {
-		return nil, fserr.New("没有sql")
+		return nil, errors.New("没有sql")
 	}
 
 	tableRows, err := executor.ExecuteRawSql(sql, executeParams)
@@ -519,11 +519,11 @@ func ExecuteRawSql(executor Executor, sql string, executeParams map[string]any)
 
 func ExecuteSql(executor Executor, name string, executeParams map[string]any) ([]sql.Result, error) {
 	if executor == nil {
-		return nil, fserr.New("没有传递执行器")
+		return nil, errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(name) {
-		return nil, fserr.New("没有sql资源名称")
+		return nil, errors.New("没有sql资源名称")
 	}
 
 	tableRows, err := executor.ExecuteSql(name, executeParams)

+ 3 - 3
framework/core/infrastructure/database/error.go

@@ -1,13 +1,13 @@
 package database
 
 import (
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"strings"
 )
 
 var (
-	ErrDBRecordHasExist = fserr.New("记录已存在")
-	ErrDBRecordNotExist = fserr.New("记录不存在")
+	ErrDBRecordHasExist = errors.New("记录已存在")
+	ErrDBRecordNotExist = errors.New("记录不存在")
 )
 
 func IsErrorDBRecordHasExist(err error) bool {

+ 5 - 5
framework/core/infrastructure/database/operations/db.go

@@ -2,7 +2,7 @@ package operations
 
 import (
 	"fmt"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"gorm.io/driver/postgres"
 	"gorm.io/gorm"
 	"gorm.io/gorm/logger"
@@ -10,7 +10,7 @@ import (
 
 func newGormDB(dbConfig *Config) (*gorm.DB, error) {
 	if dbConfig == nil {
-		return nil, fserr.New("没有传递数据库配置")
+		return nil, errors.New("没有传递数据库配置")
 	}
 
 	gormDB, err := newPostgresGormDB(dbConfig)
@@ -29,7 +29,7 @@ func newPostgresGormDB(dbConfig *Config) (*gorm.DB, error) {
 		PrepareStmt: true,
 	})
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	return gormDB, nil
@@ -42,12 +42,12 @@ func destroyGormDB(gormDB *gorm.DB) error {
 
 	db, err := gormDB.DB()
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	err = db.Close()
 	if err != nil {
-		return fserr.New(err.Error())
+		return errors.New(err.Error())
 	}
 
 	db = nil

+ 7 - 7
framework/core/infrastructure/database/operations/operations.go

@@ -6,7 +6,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/database/sql"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
 	"git.sxidc.com/go-tools/utils/template"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"gorm.io/gorm"
 	"time"
 )
@@ -34,7 +34,7 @@ func NewOperations(dbConfig *Config) (*Operations, error) {
 
 	sqlDB, err := gormDB.DB()
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	if dbConfig.MaxConnections == 0 {
@@ -134,7 +134,7 @@ func (op *Operations) AutoMigrate(tables ...Table) error {
 		err = tx.Table(table.TableName).AutoMigrate(dbModel)
 		if err != nil {
 			tx.Rollback()
-			return fserr.New(err.Error())
+			return errors.New(err.Error())
 		}
 	}
 
@@ -146,24 +146,24 @@ func (op *Operations) AutoMigrate(tables ...Table) error {
 func (op *Operations) ExecuteRawSql(sqlStr string, executeParams map[string]any) ([]sql.Result, error) {
 	parsedSql, err := template.ParseTemplateStringToString(sqlStr, executeParams)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	tableRows := make([]map[string]any, 0)
 	err = op.db.Raw(parsedSql).Scan(&tableRows).Error
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	// 简化一下类型体系,与DataService保持一致
 	jsonTableRows, err := json.Marshal(tableRows)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	err = json.Unmarshal(jsonTableRows, &tableRows)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	results := make([]sql.Result, len(tableRows))

+ 2 - 2
framework/core/infrastructure/database/operations/table.go

@@ -2,8 +2,8 @@ package operations
 
 import (
 	"git.sxidc.com/go-tools/utils/template"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/iancoleman/strcase"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -57,7 +57,7 @@ type TableColumn struct {
 func (column *TableColumn) ToDBModelField() (*reflect.StructField, error) {
 	tag, err := template.ParseTemplateStringToString(tagTpl, column)
 	if err != nil {
-		return nil, fserr.New(err.Error())
+		return nil, errors.New(err.Error())
 	}
 
 	return &reflect.StructField{

+ 3 - 3
framework/core/infrastructure/database/sql/result.go

@@ -4,7 +4,7 @@ import (
 	"fmt"
 	"git.sxidc.com/go-framework/baize/framework/core/tag/sql/sql_result"
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -29,13 +29,13 @@ func ParseSqlResult(input any, e any) error {
 	if !ok {
 		tableRow, ok := input.(Result)
 		if !ok {
-			return fserr.New("输入数据应该为sdk.SqlResult或[]sdk.SqlResult")
+			return errors.New("输入数据应该为sdk.SqlResult或[]sdk.SqlResult")
 		}
 
 		results = []Result{tableRow}
 	}
 
-	typeCheckErr := fserr.New("可以接受的输出类型为结构指针或者结构slice的指针")
+	typeCheckErr := errors.New("可以接受的输出类型为结构指针或者结构slice的指针")
 	outputValue := reflect.ValueOf(e)
 
 	if outputValue.Kind() != reflect.Pointer {

+ 3 - 3
framework/core/infrastructure/database/sql/sql_template.go

@@ -1,7 +1,7 @@
 package sql
 
 import (
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 )
 
 const InsertTpl = `
@@ -68,7 +68,7 @@ func (params InsertBatchExecuteParams) Map() (map[string]any, error) {
 		}
 
 		if len(columns) != len(tableRow.columnValues) {
-			return nil, fserr.New("列数不匹配,保证每个TableRow的Add数量一致")
+			return nil, errors.New("列数不匹配,保证每个TableRow的Add数量一致")
 		}
 
 		columnAndValueMap := make(map[string]any, 0)
@@ -106,7 +106,7 @@ type DeleteExecuteParams struct {
 
 func (params DeleteExecuteParams) Map() (map[string]any, error) {
 	if params.Conditions == nil {
-		return nil, fserr.New("没有传递删除条件")
+		return nil, errors.New("没有传递删除条件")
 	}
 
 	if params.Conditions.err != nil {

+ 4 - 4
framework/core/infrastructure/database/sql/value.go

@@ -2,7 +2,7 @@ package sql
 
 import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -20,7 +20,7 @@ func toSqlValue(value any) (string, error) {
 	valueValue := reflect.ValueOf(value)
 
 	if valueValue.Kind() == reflect.Slice {
-		return "", fserr.New("请使用toSqlValues处理slice类型")
+		return "", errors.New("请使用toSqlValues处理slice类型")
 	}
 
 	switch v := reflectutils.PointerValueElem(valueValue).Interface().(type) {
@@ -32,7 +32,7 @@ func toSqlValue(value any) (string, error) {
 		retStr := new(string)
 		err := reflectutils.AssignStringValue(v, reflect.ValueOf(retStr).Elem())
 		if err != nil {
-			return "", fserr.New(err.Error())
+			return "", errors.New(err.Error())
 		}
 
 		return *retStr, nil
@@ -51,7 +51,7 @@ func toSqlValues(values any) (string, error) {
 	}
 
 	if sliceValue.Kind() != reflect.Slice {
-		return "", fserr.New("传递的不是slice")
+		return "", errors.New("传递的不是slice")
 	}
 
 	parsedValues := make([]string, 0)

+ 4 - 4
framework/core/tag/assign/assign.go

@@ -2,7 +2,7 @@ package assign
 
 import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -18,11 +18,11 @@ func UseTag(from any, to any, onParsedFieldTagFunc OnParsedFieldTagCallback) err
 
 	// 类型校验
 	if !reflectutils.IsValueStructOrStructPointer(fromValue) {
-		return fserr.New("参数不是结构或结构指针")
+		return errors.New("参数不是结构或结构指针")
 	}
 
 	if !reflectutils.IsValueStructPointer(toValue) {
-		return fserr.New("返回类型不是结构指针")
+		return errors.New("返回类型不是结构指针")
 	}
 
 	fromElemValue := reflectutils.PointerValueElem(fromValue)
@@ -31,7 +31,7 @@ func UseTag(from any, to any, onParsedFieldTagFunc OnParsedFieldTagCallback) err
 	for i := 0; i < toElemValue.NumField(); i++ {
 		toField := toElemValue.Field(i)
 		if !toField.IsValid() {
-			return fserr.New("被赋值的结构存在无效字段")
+			return errors.New("被赋值的结构存在无效字段")
 		}
 
 		// 初始化空值指针

+ 4 - 4
framework/core/tag/assign/tag.go

@@ -4,7 +4,7 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -168,13 +168,13 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 				tag.FormatTime = tagPartKeyValue[1]
 			case tagPartJoinWith:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
-					return nil, fserr.New(tagPartJoinWith + "没有赋值分隔符")
+					return nil, errors.New(tagPartJoinWith + "没有赋值分隔符")
 				}
 
 				tag.JoinWith = tagPartKeyValue[1]
 			case tagPartSplitWith:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
-					return nil, fserr.New(tagPartSplitWith + "没有赋值分隔符")
+					return nil, errors.New(tagPartSplitWith + "没有赋值分隔符")
 				}
 
 				tag.SplitWith = tagPartKeyValue[1]
@@ -185,7 +185,7 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 			case tagPartTrimSuffix:
 				tag.TrimSuffix = tagPartKeyValue[1]
 			default:
-				err := fserr.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
+				err := errors.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
 				logger.GetInstance().Error(err)
 				continue
 			}

+ 2 - 2
framework/core/tag/sql/sql_mapping/sql_mapping.go

@@ -2,7 +2,7 @@ package sql_mapping
 
 import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -17,7 +17,7 @@ func UseTag(e any, onParsedFieldTagFunc OnParsedFieldTagFunc) error {
 
 	// 类型校验
 	if !reflectutils.IsValueStructOrStructPointer(entityValue) {
-		return fserr.New("参数不是结构或结构指针")
+		return errors.New("参数不是结构或结构指针")
 	}
 
 	entityElemValue := reflectutils.PointerValueElem(entityValue)

+ 5 - 5
framework/core/tag/sql/sql_mapping/tag.go

@@ -4,8 +4,8 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/iancoleman/strcase"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 )
@@ -131,7 +131,7 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 			switch tagPartKeyValue[0] {
 			case tagPartColumn:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
-					return nil, fserr.New("column没有赋值列名")
+					return nil, errors.New("column没有赋值列名")
 				}
 
 				tag.Name = tagPartKeyValue[1]
@@ -149,13 +149,13 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 				}
 			case tagPartAes:
 				if len(tagPartKeyValue[1]) != 32 {
-					return nil, fserr.New("AES密钥长度应该为32个字节")
+					return nil, errors.New("AES密钥长度应该为32个字节")
 				}
 
 				tag.AESKey = tagPartKeyValue[1]
 			case tagPartJoinWith:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
-					return nil, fserr.New(tagPartJoinWith + "没有赋值分隔符")
+					return nil, errors.New(tagPartJoinWith + "没有赋值分隔符")
 				}
 
 				tag.JoinWith = tagPartKeyValue[1]
@@ -166,7 +166,7 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 			case tagPartTrimSuffix:
 				tag.TrimSuffix = tagPartKeyValue[1]
 			default:
-				err := fserr.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
+				err := errors.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
 				logger.GetInstance().Error(err)
 				continue
 			}

+ 3 - 3
framework/core/tag/sql/sql_mapping/usage.go

@@ -4,7 +4,7 @@ import (
 	"git.sxidc.com/go-tools/utils/encoding"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 )
@@ -50,13 +50,13 @@ func defaultCallback(fields *[]Field) OnParsedFieldTagFunc {
 		switch entityFieldKind {
 		case reflect.Struct:
 			if !reflectutils.IsValueTime(entityFieldElemValue) {
-				return fserr.New(fieldName + " Error: 解析tag内部错误,除time.Time类型之外的结构被回调")
+				return errors.New(fieldName + " Error: 解析tag内部错误,除time.Time类型之外的结构被回调")
 			}
 
 			field.Value = entityFieldElemValue.Interface()
 		case reflect.Slice:
 			if !reflectutils.IsSliceValueOf(entityFieldElemValue, reflect.String) {
-				return fserr.New(fieldName + " Error: slice仅支持[]string")
+				return errors.New(fieldName + " Error: slice仅支持[]string")
 			}
 
 			strValue, err := dealStringValue(strings.Join(entityFieldElemValue.Interface().([]string), tag.JoinWith), tag)

+ 2 - 2
framework/core/tag/sql/sql_result/sql_result.go

@@ -2,7 +2,7 @@ package sql_result
 
 import (
 	"git.sxidc.com/go-tools/utils/reflectutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 )
 
@@ -17,7 +17,7 @@ func UseTag(e any, onParsedFieldTagFunc OnParsedFieldTagFunc) error {
 
 	// 类型校验
 	if !reflectutils.IsValueStructPointer(entityValue) {
-		return fserr.New("参数不是结构指针")
+		return errors.New("参数不是结构指针")
 	}
 
 	entityElemValue := reflectutils.PointerValueElem(entityValue)

+ 4 - 4
framework/core/tag/sql/sql_result/tag.go

@@ -4,8 +4,8 @@ import (
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
 	"github.com/iancoleman/strcase"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -121,13 +121,13 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 				tag.ParseTime = tagPartKeyValue[1]
 			case tagPartAes:
 				if len(tagPartKeyValue[1]) != 32 {
-					return nil, fserr.New("AES密钥长度应该为32个字节")
+					return nil, errors.New("AES密钥长度应该为32个字节")
 				}
 
 				tag.AESKey = tagPartKeyValue[1]
 			case tagPartSplitWith:
 				if strutils.IsStringEmpty(tagPartKeyValue[1]) {
-					return nil, fserr.New(defaultSplitWith + "没有赋值分隔符")
+					return nil, errors.New(defaultSplitWith + "没有赋值分隔符")
 				}
 
 				tag.SplitWith = tagPartKeyValue[1]
@@ -138,7 +138,7 @@ func parseFieldTag(field reflect.StructField, tagStr string) (*Tag, error) {
 			case tagPartTrimSuffix:
 				tag.TrimSuffix = tagPartKeyValue[1]
 			default:
-				err := fserr.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
+				err := errors.New(tagKey + "不支持的tag: " + tagPartKeyValue[0])
 				logger.GetInstance().Error(err)
 				continue
 			}

+ 3 - 3
framework/core/tag/sql/sql_result/usage.go

@@ -5,7 +5,7 @@ import (
 	"git.sxidc.com/go-tools/utils/encoding"
 	"git.sxidc.com/go-tools/utils/reflectutils"
 	"git.sxidc.com/go-tools/utils/strutils"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"reflect"
 	"strings"
 	"time"
@@ -84,12 +84,12 @@ func defaultCallback(result map[string]any) OnParsedFieldTagFunc {
 				fieldName, tag.Name, entityFieldElemValue.Type().String())
 		case reflect.Slice:
 			if reflectutils.IsSliceValueOf(entityFieldElemValue, reflect.String) {
-				return fserr.New(fieldName + " Error: slice仅支持[]string")
+				return errors.New(fieldName + " Error: slice仅支持[]string")
 			}
 
 			strValue, ok := resultValue.(string)
 			if !ok {
-				return fserr.New("Result Type Error: slice仅支持[]string")
+				return errors.New("Result Type Error: slice仅支持[]string")
 			}
 
 			strParts := strings.Split(strValue, tag.SplitWith)

+ 116 - 0
framework/core/tag/validate/validate.go

@@ -0,0 +1,116 @@
+package validate
+
+import (
+	"github.com/go-playground/locales/zh"
+	ut "github.com/go-playground/universal-translator"
+	"github.com/go-playground/validator/v10"
+	zhTranslations "github.com/go-playground/validator/v10/translations/zh"
+	"github.com/pkg/errors"
+	"strings"
+)
+
+var validate = validator.New(validator.WithRequiredStructEnabled())
+var translator ut.Translator
+
+func init() {
+	zhLocale := zh.New()
+	zhTranslator := ut.New(zhLocale)
+	trans, _ := zhTranslator.GetTranslator("zh")
+
+	err := zhTranslations.RegisterDefaultTranslations(validate, trans)
+	if err != nil {
+		panic(err)
+	}
+
+	translator = trans
+}
+
+func Struct(obj any) Result {
+	return Result{err: validate.Struct(obj)}
+}
+
+type Result struct {
+	err            error
+	translatedErrs map[string]string
+}
+
+func (result Result) IsError() bool {
+	return result.err != nil
+}
+
+func (result Result) CheckFields(fieldNames ...string) error {
+	if len(fieldNames) == 0 {
+		return nil
+	}
+
+	return result.checkFields(fieldNames...)
+}
+
+func (result Result) CheckStruct() error {
+	return result.checkStruct()
+}
+
+func (result Result) checkFields(fieldNames ...string) error {
+	if result.err == nil {
+		return nil
+	}
+
+	translatedResult := result.translation()
+
+	if translatedResult.translatedErrs == nil || len(translatedResult.translatedErrs) == 0 {
+		return translatedResult.err
+	}
+
+	errMsg := strings.Builder{}
+
+	for _, fieldName := range fieldNames {
+		for errStructFieldName, translatedErr := range translatedResult.translatedErrs {
+			errFieldName := strings.SplitAfterN(errStructFieldName, ".", 2)[1]
+			if fieldName == errFieldName {
+				errMsg.WriteString(translatedErr + "\n")
+			}
+		}
+	}
+
+	return errors.New(errMsg.String())
+}
+
+func (result Result) checkStruct() error {
+	if result.err == nil {
+		return nil
+	}
+
+	translatedResult := result.translation()
+
+	if translatedResult.translatedErrs == nil || len(translatedResult.translatedErrs) == 0 {
+		return translatedResult.err
+	}
+
+	errMsg := strings.Builder{}
+
+	for _, translatedErr := range translatedResult.translatedErrs {
+		errMsg.WriteString(translatedErr + "\n")
+	}
+
+	return errors.New(errMsg.String())
+}
+
+func (result Result) translation() Result {
+	if result.err == nil {
+		return result
+	}
+
+	if result.translatedErrs != nil {
+		return result
+	}
+
+	var validationErrors validator.ValidationErrors
+	if !errors.As(result.err, &validationErrors) {
+		return result
+	}
+
+	return Result{
+		err:            result.err,
+		translatedErrs: validationErrors.Translate(translator),
+	}
+}

+ 5 - 5
framework/gateway/builder.go

@@ -3,7 +3,7 @@ package gateway
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/api"
 	"git.sxidc.com/go-tools/utils/http_client"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"time"
 )
 
@@ -148,20 +148,20 @@ func (builder *Builder) Build(middlewares ...api.Handler) {
 			for _, requestItem := range builder.params.requestItems {
 				request, err := requestItem.formBuilderRequestFuc(c, historyRequests, resultMap)
 				if err != nil {
-					builder.params.responseErrorCallback(c, fserr.New(err.Error()))
+					builder.params.responseErrorCallback(c, errors.New(err.Error()))
 					return
 				}
 
 				err = request.Request(httpRequest)
 				if err != nil {
-					builder.params.responseErrorCallback(c, fserr.New(err.Error()))
+					builder.params.responseErrorCallback(c, errors.New(err.Error()))
 					return
 				}
 
 				if requestItem.requestResponseCallback != nil {
 					err := requestItem.requestResponseCallback(c, request.Response(), historyRequests, resultMap)
 					if err != nil {
-						builder.params.responseErrorCallback(c, fserr.New(err.Error()))
+						builder.params.responseErrorCallback(c, errors.New(err.Error()))
 						return
 					}
 
@@ -171,7 +171,7 @@ func (builder *Builder) Build(middlewares ...api.Handler) {
 				if builder.params.globalRequestResponseCallback != nil {
 					err := builder.params.globalRequestResponseCallback(c, request, historyRequests, resultMap)
 					if err != nil {
-						builder.params.responseErrorCallback(c, fserr.New(err.Error()))
+						builder.params.responseErrorCallback(c, errors.New(err.Error()))
 						return
 					}
 

+ 2 - 2
framework/gateway/builder_params.go

@@ -3,7 +3,7 @@ package gateway
 import (
 	"git.sxidc.com/go-framework/baize/framework/core/api"
 	"git.sxidc.com/go-framework/baize/framework/core/infrastructure/logger"
-	"git.sxidc.com/service-supports/fserr"
+	"github.com/pkg/errors"
 	"net/http"
 )
 
@@ -28,7 +28,7 @@ func newBuilderParams() *builderParams {
 			if historyRequests != nil && len(historyRequests) != 0 {
 				_, err := c.Writer.Write(historyRequests[len(historyRequests)-1].Response().Body())
 				if err != nil {
-					logger.GetInstance().Error(fserr.New(err.Error()))
+					logger.GetInstance().Error(errors.New(err.Error()))
 					c.AbortWithStatus(http.StatusInternalServerError)
 					return
 				}

+ 5 - 6
go.mod

@@ -4,12 +4,16 @@ go 1.22.3
 
 require (
 	git.sxidc.com/go-tools/utils v1.5.14
-	git.sxidc.com/service-supports/fserr v0.3.5
+	git.sxidc.com/service-supports/fslog v0.5.9
 	git.sxidc.com/service-supports/websocket v1.3.1
 	github.com/gin-gonic/gin v1.10.0
+	github.com/go-playground/locales v0.14.1
+	github.com/go-playground/universal-translator v0.18.1
+	github.com/go-playground/validator/v10 v10.20.0
 	github.com/golang/protobuf v1.5.4
 	github.com/iancoleman/strcase v0.3.0
 	github.com/mwitkow/go-proto-validators v0.3.2
+	github.com/pkg/errors v0.9.1
 	go.uber.org/zap v1.27.0
 	google.golang.org/grpc v1.64.0
 	google.golang.org/protobuf v1.34.1
@@ -20,7 +24,6 @@ require (
 )
 
 require (
-	git.sxidc.com/service-supports/fslog v0.5.9 // indirect
 	github.com/Masterminds/goutils v1.1.1 // indirect
 	github.com/Masterminds/semver/v3 v3.2.0 // indirect
 	github.com/Masterminds/sprig/v3 v3.2.3 // indirect
@@ -30,9 +33,6 @@ require (
 	github.com/cloudwego/iasm v0.2.0 // indirect
 	github.com/gabriel-vasile/mimetype v1.4.3 // indirect
 	github.com/gin-contrib/sse v0.1.0 // indirect
-	github.com/go-playground/locales v0.14.1 // indirect
-	github.com/go-playground/universal-translator v0.18.1 // indirect
-	github.com/go-playground/validator/v10 v10.20.0 // indirect
 	github.com/go-resty/resty/v2 v2.11.0 // indirect
 	github.com/goccy/go-json v0.10.2 // indirect
 	github.com/gogo/protobuf v1.3.0 // indirect
@@ -55,7 +55,6 @@ require (
 	github.com/modern-go/reflect2 v1.0.2 // indirect
 	github.com/olahol/melody v1.2.1 // indirect
 	github.com/pelletier/go-toml/v2 v2.2.2 // indirect
-	github.com/puzpuzpuz/xsync v1.5.2 // indirect
 	github.com/rogpeppe/go-internal v1.12.0 // indirect
 	github.com/satori/go.uuid v1.2.0 // indirect
 	github.com/shopspring/decimal v1.2.0 // indirect

+ 2 - 4
go.sum

@@ -1,7 +1,5 @@
 git.sxidc.com/go-tools/utils v1.5.14 h1:HVYw1wx4BBrh9acQJQ+B4Qb2ejKjFVGslcCnAmSVOsg=
 git.sxidc.com/go-tools/utils v1.5.14/go.mod h1:fkobAXFpOMTvkZ82TQXWcpsayePcyk/MS5TN6GTlRDg=
-git.sxidc.com/service-supports/fserr v0.3.5 h1:1SDC60r3FIDd2iRq/oHRLK4OMa1gf67h9B7kierKTUE=
-git.sxidc.com/service-supports/fserr v0.3.5/go.mod h1:8U+W/ulZIGVPFojV6cE18shkGXqvaICuzaxIJpOcBqI=
 git.sxidc.com/service-supports/fslog v0.5.9 h1:q2XIK2o/fk/qmByy4x5kKLC+k7kolT5LrXHcWRSffXQ=
 git.sxidc.com/service-supports/fslog v0.5.9/go.mod h1:/m03ATmmOle75qtEgvEw8a1+Dcg6iHp08M1bGFXJTBU=
 git.sxidc.com/service-supports/websocket v1.3.1 h1:1mRfUwvpg0QA2JVKVMK8YJ/B33HFpDhY9srqroIuNGc=
@@ -101,10 +99,10 @@ github.com/olahol/melody v1.2.1 h1:xdwRkzHxf+B0w4TKbGpUSSkV516ZucQZJIWLztOWICQ=
 github.com/olahol/melody v1.2.1/go.mod h1:GgkTl6Y7yWj/HtfD48Q5vLKPVoZOH+Qqgfa7CvJgJM4=
 github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
 github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
+github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
+github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/puzpuzpuz/xsync v1.5.2 h1:yRAP4wqSOZG+/4pxJ08fPTwrfL0IzE/LKQ/cw509qGY=
-github.com/puzpuzpuz/xsync v1.5.2/go.mod h1:K98BYhX3k1dQ2M63t1YNVDanbwUPmBCAhNmVrrxfiGg=
 github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
 github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
 github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=