瀏覽代碼

修改角色同步修改账号表的角色信息

xyxie 1 周之前
父節點
當前提交
3e130fb60d
共有 2 個文件被更改,包括 20 次插入0 次删除
  1. 12 0
      controllers/sys_role.go
  2. 8 0
      models/system/sys_role.go

+ 12 - 0
controllers/sys_role.go

@@ -117,6 +117,8 @@ func (this *SysRoleController) Edit() {
 		br.Msg = "角色不存在, 请刷新页面"
 		return
 	}
+	oldRoleCodeType := item.RoleTypeCode
+	oldRoleName := item.RoleName
 	exists, e := system.GetSysRoleByName(req.RoleName)
 	if e != nil && !utils.IsErrNoRow(e) {
 		br.Msg = "操作失败"
@@ -135,6 +137,16 @@ func (this *SysRoleController) Edit() {
 		return
 	}
 
+	if oldRoleName != req.RoleName || oldRoleCodeType != roleTypeCode {
+		// 查询所有和角色相关的管理员的信息,并更新成最新的角色
+		err = system.UpdateAdminRoleInfoByRoleId(req.RoleId, req.RoleName, roleTypeCode)
+		if err != nil {
+			br.Msg = "操作失败"
+			br.ErrMsg = "更新管理员角色信息失败, Err: " + err.Error()
+			return
+		}
+	}
+
 	// 同步角色缓存
 	if utils.BusinessCode == utils.BusinessCodeRelease {
 		var syncData system.SyncRoleData

+ 8 - 0
models/system/sys_role.go

@@ -285,3 +285,11 @@ func GetSysRoleByIdList(id []int) (items []*SysRole, err error) {
 	err = o.Raw(sql, id).Find(&items).Error
 	return
 }
+
+
+// 更新所有管理员的角色信息
+func UpdateAdminRoleInfoByRoleId(roleId int, roleName, roleCodeType string) (err error) {
+	sql := `UPDATE admin SET role_name=?, role_code_type=? WHERE role_id=?`
+	err = global.DbMap[utils.DbNameMaster].Exec(sql, roleName, roleCodeType, roleId).Error
+	return
+}