瀏覽代碼

fix:修复角色编辑

zqbao 9 月之前
父節點
當前提交
a86a8ea6eb
共有 2 個文件被更改,包括 13 次插入6 次删除
  1. 6 6
      controllers/sys_role.go
  2. 7 0
      models/sys_role.go

+ 6 - 6
controllers/sys_role.go

@@ -216,14 +216,14 @@ func (this *SysRoleController) Edit() {
 		br.Msg = "admin角色不可编辑"
 		return
 	}
-	count, err := models.GetSysRoleCountByRoleName(req.SysRoleName)
-	if count > 0 {
-		br.Msg = "名称已存在,请重新输入"
-		return
-	}
+	oldSysRole, err := models.GetSysRoleByRoleName(req.SysRoleName)
 	if err != nil && err != orm.ErrNoRows {
 		br.Msg = "操作失败"
-		br.ErrMsg = "获取重名角色失败,Err:" + err.Error()
+		br.ErrMsg = "获取角色失败, Err:" + err.Error()
+		return
+	}
+	if oldSysRole != nil && oldSysRole.SysRoleId != req.SysRoleId {
+		br.Msg = "名称已存在,请重新输入"
 		return
 	}
 	err = models.UpdateSysUserRoleByRoleId(req.SysRoleId, req.SysRoleName)

+ 7 - 0
models/sys_role.go

@@ -27,6 +27,13 @@ func DeleteSysRoleById(roleId int) (err error) {
 	return
 }
 
+func GetSysRoleByRoleName(roleName string) (item *SysRole, err error) {
+	sql := `SELECT * FROM sys_role WHERE sys_role_name=? `
+	o := orm.NewOrm()
+	err = o.Raw(sql, roleName).QueryRow(&item)
+	return
+}
+
 func GetSysRoleCountByRoleName(roleName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM sys_role WHERE sys_role_name=? `
 	o := orm.NewOrm()