Add get power set
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package top.fatweb.api.controller.permission
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation
|
||||
import io.swagger.v3.oas.annotations.tags.Tag
|
||||
import org.springframework.web.bind.annotation.GetMapping
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
import org.springframework.web.bind.annotation.RestController
|
||||
import top.fatweb.api.converter.permission.PowerConverter
|
||||
import top.fatweb.api.service.permission.IPowerService
|
||||
|
||||
/**
|
||||
* 权限 前端控制器
|
||||
*/
|
||||
@Tag(name = "权限管理", description = "权限管理相关接口")
|
||||
@RestController
|
||||
@RequestMapping("/system/power")
|
||||
class PowerController(
|
||||
private val powerService: IPowerService
|
||||
) {
|
||||
@Operation(summary = "获取权限列表")
|
||||
@GetMapping
|
||||
fun get() = PowerConverter.powerSetToPowerSetVo(powerService.getAll())
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.Element
|
||||
import top.fatweb.api.vo.permission.ElementVo
|
||||
|
||||
object ElementConverter {
|
||||
fun elementToElementVo(element: Element) = ElementVo(
|
||||
id = element.id,
|
||||
name = element.name,
|
||||
powerId = element.powerId,
|
||||
parentId = element.parentId,
|
||||
menuId = element.menuId
|
||||
)
|
||||
}
|
||||
@@ -6,17 +6,19 @@ import top.fatweb.api.vo.PageVo
|
||||
import top.fatweb.api.vo.permission.GroupVo
|
||||
|
||||
object GroupConverter {
|
||||
fun groupPageToGroupPageVo(groupPage: IPage<Group>): PageVo<GroupVo> = PageVo(
|
||||
groupPage.total,
|
||||
groupPage.pages,
|
||||
groupPage.size,
|
||||
groupPage.current,
|
||||
groupPage.records.map {
|
||||
GroupVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
enable = it.enable == 1
|
||||
fun groupToGroupVo(group: Group) = GroupVo(
|
||||
id = group.id,
|
||||
name = group.name,
|
||||
enable = group.enable == 1
|
||||
)
|
||||
|
||||
fun groupPageToGroupPageVo(groupPage: IPage<Group>): PageVo<GroupVo> = PageVo(
|
||||
total = groupPage.total,
|
||||
pages = groupPage.pages,
|
||||
size = groupPage.size,
|
||||
current = groupPage.current,
|
||||
records = groupPage.records.map {
|
||||
groupToGroupVo(it)
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.Menu
|
||||
import top.fatweb.api.vo.permission.MenuVo
|
||||
|
||||
object MenuConverter {
|
||||
fun menuToMenuVo(menu: Menu) = MenuVo(
|
||||
id = menu.id,
|
||||
name = menu.name,
|
||||
url = menu.url,
|
||||
powerId = menu.powerId,
|
||||
parentId = menu.parentId,
|
||||
moduleId = menu.moduleId
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.Module
|
||||
import top.fatweb.api.vo.permission.ModuleVo
|
||||
|
||||
object ModuleConverter {
|
||||
fun moduleToModuleVo(module: Module) = ModuleVo(
|
||||
id = module.id,
|
||||
name = module.name,
|
||||
powerId = module.powerId
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.Operation
|
||||
import top.fatweb.api.vo.permission.OperationVo
|
||||
|
||||
object OperationConverter {
|
||||
fun operationToOperationVo(operation: Operation) = OperationVo(
|
||||
id = operation.id,
|
||||
name = operation.name,
|
||||
code = operation.code,
|
||||
powerId = operation.powerId,
|
||||
elementId = operation.elementId
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.PowerSet
|
||||
import top.fatweb.api.vo.permission.PowerSetVo
|
||||
|
||||
object PowerConverter {
|
||||
fun powerSetToPowerSetVo(powerSet: PowerSet) = PowerSetVo(
|
||||
moduleList = powerSet.moduleList?.map { ModuleConverter.moduleToModuleVo(it) },
|
||||
menuList = powerSet.menuList?.map { MenuConverter.menuToMenuVo(it) },
|
||||
elementList = powerSet.elementList?.map { ElementConverter.elementToElementVo(it) },
|
||||
operationList = powerSet.operationList?.map { OperationConverter.operationToOperationVo(it) }
|
||||
)
|
||||
}
|
||||
@@ -8,52 +8,29 @@ import top.fatweb.api.vo.PageVo
|
||||
import top.fatweb.api.vo.permission.*
|
||||
|
||||
object RoleConverter {
|
||||
fun roleToRoleVo(role: Role): RoleVo = RoleVo(
|
||||
id = role.id,
|
||||
name = role.name,
|
||||
enable = role.enable == 1
|
||||
)
|
||||
|
||||
fun roleToRoleWithPowerVo(role: Role) = RoleWithPowerVo(
|
||||
id = role.id,
|
||||
name = role.name,
|
||||
enable = role.enable == 1,
|
||||
modules = role.modules?.map { ModuleConverter.moduleToModuleVo(it) },
|
||||
menus = role.menus?.map { MenuConverter.menuToMenuVo(it) },
|
||||
elements = role.elements?.map { ElementConverter.elementToElementVo(it) },
|
||||
operations = role.operations?.map { OperationConverter.operationToOperationVo(it) }
|
||||
)
|
||||
|
||||
fun rolePageToRoleWithPowerPageVo(rolePage: IPage<Role>): PageVo<RoleWithPowerVo> = PageVo(
|
||||
rolePage.total,
|
||||
rolePage.pages,
|
||||
rolePage.size,
|
||||
rolePage.current,
|
||||
rolePage.records.map {
|
||||
RoleWithPowerVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
enable = it.enable == 1,
|
||||
modules = it.modules?.map { module ->
|
||||
ModuleVo(
|
||||
id = module.id,
|
||||
name = module.name,
|
||||
powerId = module.powerId
|
||||
)
|
||||
},
|
||||
menus = it.menus?.map { menu ->
|
||||
MenuVo(
|
||||
id = menu.id,
|
||||
name = menu.name,
|
||||
url = menu.url,
|
||||
powerId = menu.powerId,
|
||||
parentId = menu.powerId,
|
||||
moduleId = menu.moduleId
|
||||
)
|
||||
},
|
||||
elements = it.elements?.map { element ->
|
||||
ElementVo(
|
||||
id = element.id,
|
||||
name = element.name,
|
||||
powerId = element.powerId,
|
||||
parentId = element.parentId,
|
||||
menuId = element.menuId
|
||||
)
|
||||
},
|
||||
operations = it.operations?.map { operation ->
|
||||
OperationVo(
|
||||
id = operation.id,
|
||||
name = operation.name,
|
||||
code = operation.code,
|
||||
powerId = operation.powerId,
|
||||
elementId = operation.elementId
|
||||
)
|
||||
}
|
||||
)
|
||||
total = rolePage.total,
|
||||
pages = rolePage.pages,
|
||||
size = rolePage.size,
|
||||
current = rolePage.current,
|
||||
records = rolePage.records.map {
|
||||
roleToRoleWithPowerVo(it)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -62,10 +39,4 @@ object RoleConverter {
|
||||
enable = if (roleAddParam.enable == true) 1 else 0
|
||||
powers = roleAddParam.powerIds?.map { Power().apply { id = it } }
|
||||
}
|
||||
|
||||
fun roleToRoleVo(role: Role): RoleVo = RoleVo(
|
||||
id = role.id,
|
||||
name = role.name,
|
||||
enable = role.enable == 1
|
||||
)
|
||||
}
|
||||
@@ -5,15 +5,11 @@ import top.fatweb.api.param.authentication.LoginParam
|
||||
import top.fatweb.api.vo.permission.*
|
||||
|
||||
object UserConverter {
|
||||
fun loginParamToUser(loginParam: LoginParam): User {
|
||||
val user = User().apply {
|
||||
fun loginParamToUser(loginParam: LoginParam) = User().apply {
|
||||
username = loginParam.username
|
||||
password = loginParam.password
|
||||
}
|
||||
|
||||
return user
|
||||
}
|
||||
|
||||
fun userToUserWithPowerInfoVo(user: User) = UserWithPowerInfoVo(
|
||||
id = user.id,
|
||||
username = user.username,
|
||||
@@ -27,49 +23,20 @@ object UserConverter {
|
||||
lastLoginIp = user.lastLoginIp,
|
||||
createTime = user.createTime,
|
||||
updateTime = user.updateTime,
|
||||
userInfo = user.userInfo?.let { UserInfoVo(
|
||||
id = it.id,
|
||||
userId = it.userId,
|
||||
nickname = it.nickname,
|
||||
avatar = it.avatar,
|
||||
email = it.email,
|
||||
createTime = it.createTime,
|
||||
updateTime = it.updateTime
|
||||
) },
|
||||
userInfo = user.userInfo?.let {
|
||||
UserInfoConverter.userInfoToUserInfoVo(it)
|
||||
},
|
||||
modules = user.modules?.map {
|
||||
ModuleVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
powerId = it.powerId
|
||||
)
|
||||
ModuleConverter.moduleToModuleVo(it)
|
||||
},
|
||||
menus = user.menus?.map {
|
||||
MenuVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
url = it.url,
|
||||
powerId = it.powerId,
|
||||
parentId = it.parentId,
|
||||
moduleId = it.moduleId
|
||||
)
|
||||
MenuConverter.menuToMenuVo(it)
|
||||
},
|
||||
elements = user.elements?.map {
|
||||
ElementVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
powerId = it.powerId,
|
||||
parentId = it.parentId,
|
||||
menuId = it.menuId
|
||||
)
|
||||
ElementConverter.elementToElementVo(it)
|
||||
},
|
||||
operations = user.operations?.map {
|
||||
OperationVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
code = it.code,
|
||||
powerId = it.powerId,
|
||||
elementId = it.elementId
|
||||
)
|
||||
OperationConverter.operationToOperationVo(it)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -86,28 +53,14 @@ object UserConverter {
|
||||
lastLoginIp = user.lastLoginIp,
|
||||
createTime = user.createTime,
|
||||
updateTime = user.updateTime,
|
||||
userInfo = user.userInfo?.let { UserInfoVo(
|
||||
id = it.id,
|
||||
userId = it.userId,
|
||||
nickname = it.nickname,
|
||||
avatar = it.avatar,
|
||||
email = it.email,
|
||||
createTime = it.createTime,
|
||||
updateTime = it.updateTime
|
||||
) },
|
||||
userInfo = user.userInfo?.let {
|
||||
UserInfoConverter.userInfoToUserInfoVo(it)
|
||||
},
|
||||
roles = user.roles?.map {
|
||||
RoleVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
enable = it.enable == 1
|
||||
)
|
||||
RoleConverter.roleToRoleVo(it)
|
||||
},
|
||||
groups = user.groups?.map {
|
||||
GroupVo(
|
||||
id = it.id,
|
||||
name = it.name,
|
||||
enable = it.enable == 1
|
||||
)
|
||||
GroupConverter.groupToGroupVo(it)
|
||||
}
|
||||
)
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package top.fatweb.api.converter.permission
|
||||
|
||||
import top.fatweb.api.entity.permission.UserInfo
|
||||
import top.fatweb.api.vo.permission.UserInfoVo
|
||||
|
||||
object UserInfoConverter {
|
||||
fun userInfoToUserInfoVo(userInfo: UserInfo) = UserInfoVo(
|
||||
id = userInfo.id,
|
||||
userId = userInfo.userId,
|
||||
nickname = userInfo.nickname,
|
||||
avatar = userInfo.avatar,
|
||||
email = userInfo.email,
|
||||
createTime = userInfo.createTime,
|
||||
updateTime = userInfo.updateTime
|
||||
)
|
||||
}
|
||||
16
src/main/kotlin/top/fatweb/api/entity/permission/PowerSet.kt
Normal file
16
src/main/kotlin/top/fatweb/api/entity/permission/PowerSet.kt
Normal file
@@ -0,0 +1,16 @@
|
||||
package top.fatweb.api.entity.permission
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
/**
|
||||
* 权限集合
|
||||
*/
|
||||
class PowerSet : Serializable {
|
||||
var moduleList: List<Module>? = null
|
||||
|
||||
var menuList: List<Menu>? = null
|
||||
|
||||
var elementList: List<Element>? = null
|
||||
|
||||
var operationList: List<Operation>? = null
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package top.fatweb.api.service.permission
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService
|
||||
import top.fatweb.api.entity.permission.Power
|
||||
import top.fatweb.api.entity.permission.PowerSet
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -11,4 +12,6 @@ import top.fatweb.api.entity.permission.Power
|
||||
* @author FatttSnake
|
||||
* @since 2023-10-25
|
||||
*/
|
||||
interface IPowerService : IService<Power>
|
||||
interface IPowerService : IService<Power> {
|
||||
fun getAll(): PowerSet
|
||||
}
|
||||
|
||||
@@ -3,8 +3,9 @@ package top.fatweb.api.service.permission.impl
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||
import org.springframework.stereotype.Service
|
||||
import top.fatweb.api.entity.permission.Power
|
||||
import top.fatweb.api.entity.permission.PowerSet
|
||||
import top.fatweb.api.mapper.permission.PowerMapper
|
||||
import top.fatweb.api.service.permission.IPowerService
|
||||
import top.fatweb.api.service.permission.*
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -15,4 +16,16 @@ import top.fatweb.api.service.permission.IPowerService
|
||||
* @since 2023-10-25
|
||||
*/
|
||||
@Service
|
||||
class PowerServiceImpl : ServiceImpl<PowerMapper, Power>(), IPowerService
|
||||
class PowerServiceImpl(
|
||||
private val moduleService: IModuleService,
|
||||
private val menuService: IMenuService,
|
||||
private val elementService: IElementService,
|
||||
private val operationService: IOperationService
|
||||
) : ServiceImpl<PowerMapper, Power>(), IPowerService {
|
||||
override fun getAll() = PowerSet().apply {
|
||||
moduleList = moduleService.list()
|
||||
menuList = menuService.list()
|
||||
elementList = elementService.list()
|
||||
operationList = operationService.list()
|
||||
}
|
||||
}
|
||||
|
||||
18
src/main/kotlin/top/fatweb/api/vo/permission/PowerSetVo.kt
Normal file
18
src/main/kotlin/top/fatweb/api/vo/permission/PowerSetVo.kt
Normal file
@@ -0,0 +1,18 @@
|
||||
package top.fatweb.api.vo.permission
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema
|
||||
|
||||
@Schema(description = "权限集合返回参数")
|
||||
data class PowerSetVo(
|
||||
@Schema(description = "模块列表")
|
||||
val moduleList: List<ModuleVo>?,
|
||||
|
||||
@Schema(description = "菜单列表")
|
||||
val menuList: List<MenuVo>?,
|
||||
|
||||
@Schema(description = "页面元素列表")
|
||||
val elementList: List<ElementVo>?,
|
||||
|
||||
@Schema(description = "功能列表")
|
||||
val operationList: List<OperationVo>?
|
||||
)
|
||||
Reference in New Issue
Block a user