|
|
@@ -15,10 +15,8 @@ import (
|
|
|
"reflect"
|
|
|
)
|
|
|
|
|
|
-func CommonEntityCreate(tableName string, dbExecutorType string, callbacks *Callbacks[string]) binding.ServiceFunc[string] {
|
|
|
+func CommonEntityCreate(tableName string, dbExecutor database.Executor, callbacks *Callbacks[string]) binding.ServiceFunc[string] {
|
|
|
return func(c *api.Context, dto request.DTO, objects []domain.Object, i *infrastructure.Infrastructure) (string, error) {
|
|
|
- dbExecutor := i.ChooseDBExecutor(dbExecutorType)
|
|
|
-
|
|
|
e, ok := objects[0].(domain.Entity)
|
|
|
if !ok {
|
|
|
return "", fserr.New("需要传递领域对象应该为实体")
|
|
|
@@ -47,10 +45,8 @@ func CommonEntityCreate(tableName string, dbExecutorType string, callbacks *Call
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func CommonEntityDelete(tableName string, databaseExecutorType string, callbacks *Callbacks[any]) binding.ServiceFunc[any] {
|
|
|
+func CommonEntityDelete(tableName string, dbExecutor database.Executor, callbacks *Callbacks[any]) binding.ServiceFunc[any] {
|
|
|
return func(c *api.Context, dto request.DTO, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
|
|
|
- dbExecute := i.ChooseDBExecutor(databaseExecutorType)
|
|
|
-
|
|
|
e, ok := objects[0].(domain.Entity)
|
|
|
if !ok {
|
|
|
return nil, fserr.New("需要传递领域对象应该为实体")
|
|
|
@@ -58,40 +54,38 @@ func CommonEntityDelete(tableName string, databaseExecutorType string, callbacks
|
|
|
|
|
|
if strutils.IsStringEmpty(e.GetID()) {
|
|
|
err := fserr.New("领域实体ID为空")
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- exist, err := database.CheckExist(dbExecute, &sql.CheckExistExecuteParams{
|
|
|
+ exist, err := database.CheckExist(dbExecutor, &sql.CheckExistExecuteParams{
|
|
|
TableName: tableName,
|
|
|
Conditions: sql.NewConditions().Equal(e.IDColumnName(), e.GetID()),
|
|
|
})
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
if !exist {
|
|
|
err := fserr.New(e.DomainCNName() + "不存在")
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- err = callbackBeforeDBOperate(callbacks, e, dbExecute)
|
|
|
+ err = callbackBeforeDBOperate(callbacks, e, dbExecutor)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- err = database.DeleteEntity(dbExecute, tableName, e)
|
|
|
+ err = database.DeleteEntity(dbExecutor, tableName, e)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- return callbackOnReturn(callbacks, e, dbExecute, nil)
|
|
|
+ return callbackOnReturn(callbacks, e, dbExecutor, nil)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func CommonEntityUpdate(tableName string, databaseExecutorType string, callbacks *Callbacks[any]) binding.ServiceFunc[any] {
|
|
|
+func CommonEntityUpdate(tableName string, dbExecutor database.Executor, callbacks *Callbacks[any]) binding.ServiceFunc[any] {
|
|
|
return func(c *api.Context, dto request.DTO, objects []domain.Object, i *infrastructure.Infrastructure) (any, error) {
|
|
|
- dbExecute := i.ChooseDBExecutor(databaseExecutorType)
|
|
|
-
|
|
|
e, ok := objects[0].(domain.Entity)
|
|
|
if !ok {
|
|
|
return nil, fserr.New("需要传递领域对象应该为实体")
|
|
|
@@ -99,40 +93,38 @@ func CommonEntityUpdate(tableName string, databaseExecutorType string, callbacks
|
|
|
|
|
|
if strutils.IsStringEmpty(e.GetID()) {
|
|
|
err := fserr.New("领域实体ID为空")
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- exist, err := database.CheckExist(dbExecute, &sql.CheckExistExecuteParams{
|
|
|
+ exist, err := database.CheckExist(dbExecutor, &sql.CheckExistExecuteParams{
|
|
|
TableName: tableName,
|
|
|
Conditions: sql.NewConditions().Equal(e.IDColumnName(), e.GetID()),
|
|
|
})
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
if !exist {
|
|
|
err := fserr.New(e.DomainCNName() + "不存在")
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- err = callbackBeforeDBOperate(callbacks, e, dbExecute)
|
|
|
+ err = callbackBeforeDBOperate(callbacks, e, dbExecutor)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- err = database.UpdateEntity(dbExecute, tableName, e)
|
|
|
+ err = database.UpdateEntity(dbExecutor, tableName, e)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, nil)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, nil)
|
|
|
}
|
|
|
|
|
|
- return callbackOnReturn(callbacks, e, dbExecute, nil)
|
|
|
+ return callbackOnReturn(callbacks, e, dbExecutor, nil)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func CommonEntityQuery[O any](tableName string, databaseExecutorType string, callbacks *Callbacks[response.InfosData[O]], conditionFieldCallback domain.ConditionFieldCallback) binding.ServiceFunc[response.InfosData[O]] {
|
|
|
+func CommonEntityQuery[O any](tableName string, dbExecutor database.Executor, callbacks *Callbacks[response.InfosData[O]], conditionFieldCallback domain.ConditionFieldCallback) binding.ServiceFunc[response.InfosData[O]] {
|
|
|
return func(c *api.Context, dto request.DTO, objects []domain.Object, i *infrastructure.Infrastructure) (response.InfosData[O], error) {
|
|
|
- dbExecute := i.ChooseDBExecutor(databaseExecutorType)
|
|
|
-
|
|
|
queryDTO, ok := dto.(request.Query)
|
|
|
if !ok {
|
|
|
return response.InfosData[O]{}, fserr.New("DTO不是Query")
|
|
|
@@ -164,25 +156,25 @@ func CommonEntityQuery[O any](tableName string, databaseExecutorType string, cal
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- err = callbackBeforeDBOperate(callbacks, e, dbExecute)
|
|
|
+ err = callbackBeforeDBOperate(callbacks, e, dbExecutor)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, response.InfosData[O]{})
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, response.InfosData[O]{})
|
|
|
}
|
|
|
|
|
|
- results, totalCount, err := database.Query(dbExecute, &sql.QueryExecuteParams{
|
|
|
+ results, totalCount, err := database.Query(dbExecutor, &sql.QueryExecuteParams{
|
|
|
TableName: tableName,
|
|
|
Conditions: conditions,
|
|
|
PageNo: queryDTO.GetPageNo(),
|
|
|
PageSize: queryDTO.GetPageSize(),
|
|
|
})
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, response.InfosData[O]{})
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, response.InfosData[O]{})
|
|
|
}
|
|
|
|
|
|
infos := make([]O, 0)
|
|
|
err = sql.ParseSqlResult(results, &infos)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, response.InfosData[O]{})
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, response.InfosData[O]{})
|
|
|
}
|
|
|
|
|
|
output := response.InfosData[O]{
|
|
|
@@ -191,11 +183,11 @@ func CommonEntityQuery[O any](tableName string, databaseExecutorType string, cal
|
|
|
PageNo: queryDTO.GetPageNo(),
|
|
|
}
|
|
|
|
|
|
- return callbackOnReturn(callbacks, e, dbExecute, output)
|
|
|
+ return callbackOnReturn(callbacks, e, dbExecutor, output)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func CommonEntityQueryByID[O any](tableName string, databaseExecutorType string, callbacks *Callbacks[O]) binding.ServiceFunc[O] {
|
|
|
+func CommonEntityQueryByID[O any](tableName string, dbExecutor database.Executor, callbacks *Callbacks[O]) binding.ServiceFunc[O] {
|
|
|
return func(c *api.Context, dto request.DTO, objects []domain.Object, i *infrastructure.Infrastructure) (O, error) {
|
|
|
var outputZero O
|
|
|
outputZeroValue := reflect.Zero(reflect.TypeOf(outputZero))
|
|
|
@@ -203,8 +195,6 @@ func CommonEntityQueryByID[O any](tableName string, databaseExecutorType string,
|
|
|
outputZeroValue.Set(reflect.New(outputZeroValue.Type().Elem()))
|
|
|
}
|
|
|
|
|
|
- dbExecute := i.ChooseDBExecutor(databaseExecutorType)
|
|
|
-
|
|
|
e, ok := objects[0].(domain.Entity)
|
|
|
if !ok {
|
|
|
return outputZero, fserr.New("需要传递领域对象应该为实体")
|
|
|
@@ -212,20 +202,20 @@ func CommonEntityQueryByID[O any](tableName string, databaseExecutorType string,
|
|
|
|
|
|
if strutils.IsStringEmpty(e.GetID()) {
|
|
|
err := fserr.New("领域实体ID为空")
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, outputZero)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, outputZero)
|
|
|
}
|
|
|
|
|
|
- err := callbackBeforeDBOperate(callbacks, e, dbExecute)
|
|
|
+ err := callbackBeforeDBOperate(callbacks, e, dbExecutor)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, outputZero)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, outputZero)
|
|
|
}
|
|
|
|
|
|
- result, err := database.QueryOne(dbExecute, &sql.QueryOneExecuteParams{
|
|
|
+ result, err := database.QueryOne(dbExecutor, &sql.QueryOneExecuteParams{
|
|
|
TableName: tableName,
|
|
|
Conditions: sql.NewConditions().Equal(e.IDColumnName(), e.GetID()),
|
|
|
})
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, outputZero)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, outputZero)
|
|
|
}
|
|
|
|
|
|
var info O
|
|
|
@@ -238,9 +228,9 @@ func CommonEntityQueryByID[O any](tableName string, databaseExecutorType string,
|
|
|
|
|
|
err = sql.ParseSqlResult(result, infoPointer)
|
|
|
if err != nil {
|
|
|
- return callbackOnError(callbacks, e, err, dbExecute, outputZero)
|
|
|
+ return callbackOnError(callbacks, e, err, dbExecutor, outputZero)
|
|
|
}
|
|
|
|
|
|
- return callbackOnReturn(callbacks, e, dbExecute, info)
|
|
|
+ return callbackOnReturn(callbacks, e, dbExecutor, info)
|
|
|
}
|
|
|
}
|