瀏覽代碼

修复越界问题

lxg 3 年之前
父節點
當前提交
a4440f9664
共有 1 個文件被更改,包括 9 次插入9 次删除
  1. 9 9
      entity.go

+ 9 - 9
entity.go

@@ -235,7 +235,7 @@ func (e *Entity) prepareConditions(ctx *http.Context, query *Query, schemas []*S
 		model       interface{}
 		model       interface{}
 		activeModel FilterColumnInterface
 		activeModel FilterColumnInterface
 	)
 	)
-	if e.callback != nil {
+	if e.callback != nil && len(e.callback.BeforeQueries) > 0 {
 		for i := len(e.callback.BeforeQueries); i >= 0; i-- {
 		for i := len(e.callback.BeforeQueries); i >= 0; i-- {
 			if err = e.callback.BeforeQueries[i](ctx, query); err != nil {
 			if err = e.callback.BeforeQueries[i](ctx, query); err != nil {
 				return
 				return
@@ -252,7 +252,7 @@ func (e *Entity) prepareConditions(ctx *http.Context, query *Query, schemas []*S
 				continue
 				continue
 			}
 			}
 		}
 		}
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.EachColumnQueries) > 0 {
 			for i := len(e.callback.EachColumnQueries); i >= 0; i-- {
 			for i := len(e.callback.EachColumnQueries); i >= 0; i-- {
 				if err = e.callback.EachColumnQueries[i](ctx, query, schema); err != nil {
 				if err = e.callback.EachColumnQueries[i](ctx, query, schema); err != nil {
 					skip = true
 					skip = true
@@ -321,7 +321,7 @@ func (e *Entity) prepareConditions(ctx *http.Context, query *Query, schemas []*S
 		}
 		}
 	}
 	}
 	//查询回调
 	//查询回调
-	if e.callback != nil {
+	if e.callback != nil && len(e.callback.AfterQueries) > 0 {
 		for i := len(e.callback.AfterQueries); i >= 0; i-- {
 		for i := len(e.callback.AfterQueries); i >= 0; i-- {
 			if err = e.callback.AfterQueries[i](ctx, query); err != nil {
 			if err = e.callback.AfterQueries[i](ctx, query); err != nil {
 				return
 				return
@@ -533,7 +533,7 @@ func (e *Entity) actionCreate(ctx *http.Context) (err error) {
 	e.setFieldValue(refModel, "UpdatedDept", ctx.ParamValue("@department"))
 	e.setFieldValue(refModel, "UpdatedDept", ctx.ParamValue("@department"))
 
 
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.BeforeCreates) > 0 {
 			for i := len(e.callback.BeforeCreates); i >= 0; i-- {
 			for i := len(e.callback.BeforeCreates); i >= 0; i-- {
 				if errTx = e.callback.BeforeCreates[i](ctx, tx, model); errTx != nil {
 				if errTx = e.callback.BeforeCreates[i](ctx, tx, model); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
@@ -569,7 +569,7 @@ func (e *Entity) actionCreate(ctx *http.Context) (err error) {
 		if errTx = e.callMethod(model, "OnAfterSaveRequest", []interface{}{ctx, tx, model, diffAttrs}); errTx != nil {
 		if errTx = e.callMethod(model, "OnAfterSaveRequest", []interface{}{ctx, tx, model, diffAttrs}); errTx != nil {
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 		}
 		}
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.AfterCreates) > 0 {
 			for i := len(e.callback.AfterCreates); i >= 0; i-- {
 			for i := len(e.callback.AfterCreates); i >= 0; i-- {
 				if errTx = e.callback.AfterCreates[i](ctx, tx, model, diffAttrs); errTx != nil {
 				if errTx = e.callback.AfterCreates[i](ctx, tx, model, diffAttrs); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
@@ -635,7 +635,7 @@ func (e *Entity) actionUpdate(ctx *http.Context) (err error) {
 		return ctx.Error(HttpInvalidPayload, err.Error())
 		return ctx.Error(HttpInvalidPayload, err.Error())
 	}
 	}
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.BeforeUpdates) > 0 {
 			for i := len(e.callback.BeforeUpdates); i >= 0; i-- {
 			for i := len(e.callback.BeforeUpdates); i >= 0; i-- {
 				if errTx = e.callback.BeforeUpdates[i](ctx, tx, model); errTx != nil {
 				if errTx = e.callback.BeforeUpdates[i](ctx, tx, model); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
@@ -677,7 +677,7 @@ func (e *Entity) actionUpdate(ctx *http.Context) (err error) {
 		if errTx = e.callMethod(model, "OnAfterSaveRequest", []interface{}{ctx, tx, model, diffAttrs}); errTx != nil {
 		if errTx = e.callMethod(model, "OnAfterSaveRequest", []interface{}{ctx, tx, model, diffAttrs}); errTx != nil {
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 		}
 		}
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.AfterUpdates) > 0 {
 			for i := len(e.callback.AfterUpdates); i >= 0; i-- {
 			for i := len(e.callback.AfterUpdates); i >= 0; i-- {
 				if errTx = e.callback.AfterUpdates[i](ctx, tx, model, diffAttrs); errTx != nil {
 				if errTx = e.callback.AfterUpdates[i](ctx, tx, model, diffAttrs); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
@@ -727,7 +727,7 @@ func (e *Entity) actionDelete(ctx *http.Context) (err error) {
 		return ctx.Error(HttpDatabaseFindFailed, err.Error())
 		return ctx.Error(HttpDatabaseFindFailed, err.Error())
 	}
 	}
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
 	if err = e.opts.DB.Transaction(func(tx *gorm.DB) error {
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.BeforeDeletes) > 0 {
 			for i := len(e.callback.BeforeDeletes); i >= 0; i-- {
 			for i := len(e.callback.BeforeDeletes); i >= 0; i-- {
 				if errTx = e.callback.BeforeDeletes[i](ctx, tx, model); errTx != nil {
 				if errTx = e.callback.BeforeDeletes[i](ctx, tx, model); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
@@ -746,7 +746,7 @@ func (e *Entity) actionDelete(ctx *http.Context) (err error) {
 		if errTx = e.callMethod(model, "OnAfterDeleteRequest", []interface{}{ctx, tx, model}); errTx != nil {
 		if errTx = e.callMethod(model, "OnAfterDeleteRequest", []interface{}{ctx, tx, model}); errTx != nil {
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 			return ctx.Error(HttpRequestCallbackFailed, err.Error())
 		}
 		}
-		if e.callback != nil {
+		if e.callback != nil && len(e.callback.AfterDeletes) > 0 {
 			for i := len(e.callback.AfterDeletes); i >= 0; i-- {
 			for i := len(e.callback.AfterDeletes); i >= 0; i-- {
 				if errTx = e.callback.AfterDeletes[i](ctx, tx, model); errTx != nil {
 				if errTx = e.callback.AfterDeletes[i](ctx, tx, model); errTx != nil {
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())
 					return ctx.Error(HttpRequestCallbackFailed, err.Error())