浏览代码

添加接口

yjp 11 月之前
父节点
当前提交
fba9b6a851
共有 1 个文件被更改,包括 26 次插入9 次删除
  1. 26 9
      framework/core/infrastructure/database/database.go

+ 26 - 9
framework/core/infrastructure/database/database.go

@@ -292,26 +292,43 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
 // 返回值:
 // - 错误
 func UpdateEntity(executor Executor, tableName string, e any) error {
+	_, err := UpdateEntityWithRowsAffected(executor, tableName, e)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
+// UpdateEntityWithRowsAffected 通过结构更新数据,返回影响行数
+// 参数:
+// - executor: 数据库基础设施接口
+// - tableName: 表名
+// - e: 结构,结构字段需要使用sqlmapping标注
+// 返回值:
+// - 影响行数
+// - 错误
+func UpdateEntityWithRowsAffected(executor Executor, tableName string, e any) (int64, error) {
 	if executor == nil {
-		return errors.New("没有传递执行器")
+		return 0, errors.New("没有传递执行器")
 	}
 
 	if strutils.IsStringEmpty(tableName) {
-		return errors.New("没有传递表名")
+		return 0, errors.New("没有传递表名")
 	}
 
 	if e == nil {
-		return nil
+		return 0, nil
 	}
 
 	entityType := reflect.TypeOf(e)
 	if !reflectutils.IsTypeStructOrStructPointer(entityType) {
-		return errors.New("实体参数不是结构或结构指针")
+		return 0, errors.New("实体参数不是结构或结构指针")
 	}
 
 	fields, err := sql_mapping.DefaultUsage(e)
 	if err != nil {
-		return err
+		return 0, err
 	}
 
 	now := time.Now().Local()
@@ -358,19 +375,19 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
 
 	executeParamsMap, err := executeParams.Map()
 	if err != nil {
-		return err
+		return 0, err
 	}
 
 	args := make([]any, 0)
 	args = append(args, executeParams.TableRow.Values()...)
 	args = append(args, executeParams.Conditions.Args()...)
 
-	_, _, err = executor.ExecuteRawSqlTemplateWithRowsAffected(sql.UpdateTpl, executeParamsMap, args...)
+	_, rowsAffected, err := executor.ExecuteRawSqlTemplateWithRowsAffected(sql.UpdateTpl, executeParamsMap, args...)
 	if err != nil {
-		return err
+		return 0, err
 	}
 
-	return nil
+	return rowsAffected, nil
 }
 
 // Insert 插入数据