From d782595d8c9f721618d20b9f5b149fcd3354e3ca Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 5 Sep 2023 19:25:39 +0800 Subject: [PATCH] =?UTF-8?q?fix=E6=95=B0=E6=8D=AE=E6=8F=92=E5=85=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96=E8=BF=94=E5=9B=9Eid?= =?UTF-8?q?=E5=92=8C=E5=BD=B1=E5=93=8D=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/sys_menu/service/repo_sys_menu.go | 25 ++++++++++--- features/sys_role/service/repo_sys_role.go | 35 +++++++++--------- features/sys_role_menu/repo_sys_role_menu.go | 23 +++++++++--- features/sys_user/service/repo_sys_user.go | 37 +++++++++++--------- features/sys_user_role/repo_sys_user_role.go | 21 +++++++++-- lib/core/datasource/datasource.go | 8 ++--- 6 files changed, 100 insertions(+), 49 deletions(-) diff --git a/features/sys_menu/service/repo_sys_menu.go b/features/sys_menu/service/repo_sys_menu.go index 49b6497b..af809a19 100644 --- a/features/sys_menu/service/repo_sys_menu.go +++ b/features/sys_menu/service/repo_sys_menu.go @@ -317,13 +317,18 @@ func (r *RepoSysMenu) InsertMenu(sysMenu model.SysMenu) string { sql := "insert into sys_menu (" + strings.Join(keys, ",") + ")values(" + placeholder + ")" // 执行插入 - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("insert row : %v", err.Error()) return "" } - return fmt.Sprint(rows) + insertId, err := results.LastInsertId() + if err != nil { + log.Errorf("insert row : %v", err.Error()) + return "" + } + return fmt.Sprint(insertId) } // UpdateMenu 修改菜单信息 @@ -400,12 +405,17 @@ func (r *RepoSysMenu) UpdateMenu(sysMenu model.SysMenu) int64 { // 执行更新 values = append(values, sysMenu.MenuID) - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("update row : %v", err.Error()) return 0 } - return rows + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("update err => %v", err) + return 0 + } + return affected } // DeleteMenuById 删除菜单管理信息 @@ -416,7 +426,12 @@ func (r *RepoSysMenu) DeleteMenuById(menuId string) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // CheckUniqueMenu 校验菜单是否唯一 diff --git a/features/sys_role/service/repo_sys_role.go b/features/sys_role/service/repo_sys_role.go index 00354a36..7f61e8a5 100644 --- a/features/sys_role/service/repo_sys_role.go +++ b/features/sys_role/service/repo_sys_role.go @@ -244,12 +244,17 @@ func (r *RepoSysRole) UpdateRole(sysRole model.SysRole) int64 { // 执行更新 values = append(values, sysRole.RoleID) - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("update row : %v", err.Error()) return 0 } - return rows + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("update err => %v", err) + return 0 + } + return affected } // InsertRole 新增角色信息 @@ -290,24 +295,17 @@ func (r *RepoSysRole) InsertRole(sysRole model.SysRole) string { sql := "insert into sys_role (" + strings.Join(keys, ",") + ")values(" + placeholder + ")" // 执行插入 - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("insert row : %v", err.Error()) return "" } - //取插入ID - if rows > 0 { - results, err := datasource.RawDB("", "SELECT MAX(role_id) AS str FROM sys_role;", nil) - if err != nil { - log.Errorf("query err %v", err) - return "" - } - if len(results) > 0 { - return fmt.Sprintf("%v", results[0]["str"]) - } + insertId, err := results.LastInsertId() + if err != nil { + log.Errorf("insert row : %v", err.Error()) + return "" } - - return "" + return fmt.Sprint(insertId) } // DeleteRoleByIds 批量删除角色信息 @@ -320,7 +318,12 @@ func (r *RepoSysRole) DeleteRoleByIds(roleIds []string) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // CheckUniqueRole 校验角色是否唯一 diff --git a/features/sys_role_menu/repo_sys_role_menu.go b/features/sys_role_menu/repo_sys_role_menu.go index 24d96f2f..02dc8264 100644 --- a/features/sys_role_menu/repo_sys_role_menu.go +++ b/features/sys_role_menu/repo_sys_role_menu.go @@ -39,7 +39,12 @@ func (r *RepoSysRoleMenu) DeleteRoleMenu(roleIds []string) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // DeleteMenuRole 批量删除菜单和角色关联 @@ -52,7 +57,12 @@ func (r *RepoSysRoleMenu) DeleteMenuRole(menuIds []string) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // BatchRoleMenu 批量新增角色菜单信息 @@ -64,8 +74,13 @@ func (r *RepoSysRoleMenu) BatchRoleMenu(sysRoleMenus []SysRoleMenu) int64 { sql := "insert into sys_role_menu(role_id, menu_id) values " + strings.Join(keyValues, ",") results, err := datasource.ExecDB("", sql, nil) if err != nil { - log.Errorf("delete err => %v", err) + log.Errorf("insert err => %v", err) return 0 } - return results + insertId, err := results.LastInsertId() + if err != nil { + log.Errorf("insert row : %v", err.Error()) + return 0 + } + return insertId } diff --git a/features/sys_user/service/repo_sys_user.go b/features/sys_user/service/repo_sys_user.go index 2d2cc67e..622b7e68 100644 --- a/features/sys_user/service/repo_sys_user.go +++ b/features/sys_user/service/repo_sys_user.go @@ -436,24 +436,17 @@ func (r *RepoSysUser) InsertUser(sysUser sysUserModel.SysUser) string { sql := "insert into user (" + strings.Join(keys, ",") + ")values(" + placeholder + ")" // 执行插入 - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("insert row : %v", err.Error()) return "" } - //取插入ID - if rows > 0 { - results, err := datasource.RawDB("", "SELECT MAX(id) AS str FROM user;", nil) - if err != nil { - log.Errorf("query err %v", err) - return "" - } - if len(results) > 0 { - return fmt.Sprintf("%v", results[0]["str"]) - } + insertId, err := results.LastInsertId() + if err != nil { + log.Errorf("insert row : %v", err.Error()) + return "" } - - return "" + return fmt.Sprint(insertId) } // UpdateUser 修改用户信息 @@ -519,12 +512,17 @@ func (r *RepoSysUser) UpdateUser(sysUser sysUserModel.SysUser) int64 { // 执行更新 values = append(values, sysUser.Id) - rows, err := datasource.ExecDB("", sql, values) + results, err := datasource.ExecDB("", sql, values) if err != nil { log.Errorf("update row : %v", err.Error()) return 0 } - return rows + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("update err => %v", err) + return 0 + } + return affected } // DeleteUserByIds 批量删除用户信息 @@ -534,10 +532,15 @@ func (r *RepoSysUser) DeleteUserByIds(userIds []string) int64 { parameters := datasource.ConvertIdsSlice(userIds) results, err := datasource.ExecDB("", sql, parameters) if err != nil { - log.Errorf("update err => %v", err) + log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // CheckUniqueUser 校验用户信息是否唯一 diff --git a/features/sys_user_role/repo_sys_user_role.go b/features/sys_user_role/repo_sys_user_role.go index c7237646..97585a18 100644 --- a/features/sys_user_role/repo_sys_user_role.go +++ b/features/sys_user_role/repo_sys_user_role.go @@ -41,7 +41,12 @@ func (r *RepoSysUserRole) BatchUserRole(sysUserRoles []SysUserRole) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // DeleteUserRole 批量删除用户和角色关联 @@ -54,7 +59,12 @@ func (r *RepoSysUserRole) DeleteUserRole(userIds []string) int64 { log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } // DeleteUserRoleByRoleId 批量取消授权用户角色 @@ -68,5 +78,10 @@ func (r *RepoSysUserRole) DeleteUserRoleByRoleId(roleId string, userIds []string log.Errorf("delete err => %v", err) return 0 } - return results + affected, err := results.RowsAffected() + if err != nil { + log.Errorf("delete err => %v", err) + return 0 + } + return affected } diff --git a/lib/core/datasource/datasource.go b/lib/core/datasource/datasource.go index a36e2ba1..cde0a71b 100644 --- a/lib/core/datasource/datasource.go +++ b/lib/core/datasource/datasource.go @@ -1,6 +1,7 @@ package datasource import ( + "database/sql" "regexp" "ems.agt/lib/dborm" @@ -33,7 +34,7 @@ func RawDB(source string, sql string, parameters []any) ([]map[string]any, error } // ExecDB 原生执行语句 -func ExecDB(source string, sql string, parameters []any) (int64, error) { +func ExecDB(source string, sql string, parameters []any) (sql.Result, error) { // 数据源 db := DefaultDB() @@ -42,8 +43,7 @@ func ExecDB(source string, sql string, parameters []any) (int64, error) { // 执行结果 res, err := db.Exec(append([]any{fmtSql}, parameters...)...) if err != nil { - return 0, err + return nil, err } - affected, err := res.RowsAffected() - return affected, err + return res, err }