用户角色设置

This commit is contained in:
苏尹岚
2020-09-28 15:28:31 +08:00
parent d3749f028a
commit 4752c77cde

View File

@@ -158,52 +158,52 @@ func UpdateUserRole(ctx *jxcontext.Context, userIDs []string, roleIDs []int) (er
for _, v := range userRoles { for _, v := range userRoles {
userRoleMap[v.UserID] = append(userRoleMap[v.UserID], v.RoleID) userRoleMap[v.UserID] = append(userRoleMap[v.UserID], v.RoleID)
} }
} for _, userID := range userIDs {
for _, userID := range userIDs { nowRoleIDs := userRoleMap[userID]
nowRoleIDs := userRoleMap[userID] for _, nowRoleID := range nowRoleIDs {
for _, nowRoleID := range nowRoleIDs { if roleIDMap[nowRoleID] == 0 {
if roleIDMap[nowRoleID] == 0 { deleteUserRoleMap[userID] = append(deleteUserRoleMap[userID], nowRoleID)
deleteUserRoleMap[userID] = append(deleteUserRoleMap[userID], nowRoleID)
}
nowRoleIDMap[nowRoleID] = 1
}
for _, roleID := range roleIDMap {
if nowRoleIDMap[roleID] == 0 {
addUserRoleMap[userID] = append(addUserRoleMap[userID], roleID)
}
}
}
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if len(addUserRoleMap) > 0 {
for userID, roleIDs := range addUserRoleMap {
for _, roleID := range roleIDs {
userRole := &model.UserRole{
UserID: userID,
RoleID: roleID,
} }
dao.WrapAddIDCULDEntity(userRole, ctx.GetUserName()) nowRoleIDMap[nowRoleID] = 1
err = dao.CreateEntity(db, userRole)
} }
} for _, roleID := range roleIDMap {
} if nowRoleIDMap[roleID] == 0 {
if len(deleteUserRoleMap) > 0 { addUserRoleMap[userID] = append(addUserRoleMap[userID], roleID)
for userID, roleIDs := range deleteUserRoleMap {
for _, roleID := range roleIDs {
userRoles, _ := dao.GetUserRole(db, []string{userID}, []int{roleID})
if len(userRoles) > 0 {
userRoles[0].DeletedAt = time.Now()
userRoles[0].LastOperator = ctx.GetUserName()
_, err = dao.UpdateEntity(db, userRoles[0], "DeletedAt", "LastOperator")
} }
} }
} }
dao.Begin(db)
defer func() {
if r := recover(); r != nil {
dao.Rollback(db)
panic(r)
}
}()
if len(addUserRoleMap) > 0 {
for userID, roleIDs := range addUserRoleMap {
for _, roleID := range roleIDs {
userRole := &model.UserRole{
UserID: userID,
RoleID: roleID,
}
dao.WrapAddIDCULDEntity(userRole, ctx.GetUserName())
err = dao.CreateEntity(db, userRole)
}
}
}
if len(deleteUserRoleMap) > 0 {
for userID, roleIDs := range deleteUserRoleMap {
for _, roleID := range roleIDs {
userRoles, _ := dao.GetUserRole(db, []string{userID}, []int{roleID})
if len(userRoles) > 0 {
userRoles[0].DeletedAt = time.Now()
userRoles[0].LastOperator = ctx.GetUserName()
_, err = dao.UpdateEntity(db, userRoles[0], "DeletedAt", "LastOperator")
}
}
}
}
dao.Commit(db)
} }
dao.Commit(db)
return err return err
} }