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
|
import top.fatweb.api.vo.permission.GroupVo
|
||||||
|
|
||||||
object GroupConverter {
|
object GroupConverter {
|
||||||
fun groupPageToGroupPageVo(groupPage: IPage<Group>): PageVo<GroupVo> = PageVo(
|
fun groupToGroupVo(group: Group) = GroupVo(
|
||||||
groupPage.total,
|
id = group.id,
|
||||||
groupPage.pages,
|
name = group.name,
|
||||||
groupPage.size,
|
enable = group.enable == 1
|
||||||
groupPage.current,
|
|
||||||
groupPage.records.map {
|
|
||||||
GroupVo(
|
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
enable = it.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.*
|
import top.fatweb.api.vo.permission.*
|
||||||
|
|
||||||
object RoleConverter {
|
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(
|
fun rolePageToRoleWithPowerPageVo(rolePage: IPage<Role>): PageVo<RoleWithPowerVo> = PageVo(
|
||||||
rolePage.total,
|
total = rolePage.total,
|
||||||
rolePage.pages,
|
pages = rolePage.pages,
|
||||||
rolePage.size,
|
size = rolePage.size,
|
||||||
rolePage.current,
|
current = rolePage.current,
|
||||||
rolePage.records.map {
|
records = rolePage.records.map {
|
||||||
RoleWithPowerVo(
|
roleToRoleWithPowerVo(it)
|
||||||
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
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -62,10 +39,4 @@ object RoleConverter {
|
|||||||
enable = if (roleAddParam.enable == true) 1 else 0
|
enable = if (roleAddParam.enable == true) 1 else 0
|
||||||
powers = roleAddParam.powerIds?.map { Power().apply { id = it } }
|
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.*
|
import top.fatweb.api.vo.permission.*
|
||||||
|
|
||||||
object UserConverter {
|
object UserConverter {
|
||||||
fun loginParamToUser(loginParam: LoginParam): User {
|
fun loginParamToUser(loginParam: LoginParam) = User().apply {
|
||||||
val user = User().apply {
|
|
||||||
username = loginParam.username
|
username = loginParam.username
|
||||||
password = loginParam.password
|
password = loginParam.password
|
||||||
}
|
}
|
||||||
|
|
||||||
return user
|
|
||||||
}
|
|
||||||
|
|
||||||
fun userToUserWithPowerInfoVo(user: User) = UserWithPowerInfoVo(
|
fun userToUserWithPowerInfoVo(user: User) = UserWithPowerInfoVo(
|
||||||
id = user.id,
|
id = user.id,
|
||||||
username = user.username,
|
username = user.username,
|
||||||
@@ -27,49 +23,20 @@ object UserConverter {
|
|||||||
lastLoginIp = user.lastLoginIp,
|
lastLoginIp = user.lastLoginIp,
|
||||||
createTime = user.createTime,
|
createTime = user.createTime,
|
||||||
updateTime = user.updateTime,
|
updateTime = user.updateTime,
|
||||||
userInfo = user.userInfo?.let { UserInfoVo(
|
userInfo = user.userInfo?.let {
|
||||||
id = it.id,
|
UserInfoConverter.userInfoToUserInfoVo(it)
|
||||||
userId = it.userId,
|
},
|
||||||
nickname = it.nickname,
|
|
||||||
avatar = it.avatar,
|
|
||||||
email = it.email,
|
|
||||||
createTime = it.createTime,
|
|
||||||
updateTime = it.updateTime
|
|
||||||
) },
|
|
||||||
modules = user.modules?.map {
|
modules = user.modules?.map {
|
||||||
ModuleVo(
|
ModuleConverter.moduleToModuleVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
powerId = it.powerId
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
menus = user.menus?.map {
|
menus = user.menus?.map {
|
||||||
MenuVo(
|
MenuConverter.menuToMenuVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
url = it.url,
|
|
||||||
powerId = it.powerId,
|
|
||||||
parentId = it.parentId,
|
|
||||||
moduleId = it.moduleId
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
elements = user.elements?.map {
|
elements = user.elements?.map {
|
||||||
ElementVo(
|
ElementConverter.elementToElementVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
powerId = it.powerId,
|
|
||||||
parentId = it.parentId,
|
|
||||||
menuId = it.menuId
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
operations = user.operations?.map {
|
operations = user.operations?.map {
|
||||||
OperationVo(
|
OperationConverter.operationToOperationVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
code = it.code,
|
|
||||||
powerId = it.powerId,
|
|
||||||
elementId = it.elementId
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -86,28 +53,14 @@ object UserConverter {
|
|||||||
lastLoginIp = user.lastLoginIp,
|
lastLoginIp = user.lastLoginIp,
|
||||||
createTime = user.createTime,
|
createTime = user.createTime,
|
||||||
updateTime = user.updateTime,
|
updateTime = user.updateTime,
|
||||||
userInfo = user.userInfo?.let { UserInfoVo(
|
userInfo = user.userInfo?.let {
|
||||||
id = it.id,
|
UserInfoConverter.userInfoToUserInfoVo(it)
|
||||||
userId = it.userId,
|
},
|
||||||
nickname = it.nickname,
|
|
||||||
avatar = it.avatar,
|
|
||||||
email = it.email,
|
|
||||||
createTime = it.createTime,
|
|
||||||
updateTime = it.updateTime
|
|
||||||
) },
|
|
||||||
roles = user.roles?.map {
|
roles = user.roles?.map {
|
||||||
RoleVo(
|
RoleConverter.roleToRoleVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
enable = it.enable == 1
|
|
||||||
)
|
|
||||||
},
|
},
|
||||||
groups = user.groups?.map {
|
groups = user.groups?.map {
|
||||||
GroupVo(
|
GroupConverter.groupToGroupVo(it)
|
||||||
id = it.id,
|
|
||||||
name = it.name,
|
|
||||||
enable = it.enable == 1
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -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 com.baomidou.mybatisplus.extension.service.IService
|
||||||
import top.fatweb.api.entity.permission.Power
|
import top.fatweb.api.entity.permission.Power
|
||||||
|
import top.fatweb.api.entity.permission.PowerSet
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -11,4 +12,6 @@ import top.fatweb.api.entity.permission.Power
|
|||||||
* @author FatttSnake
|
* @author FatttSnake
|
||||||
* @since 2023-10-25
|
* @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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
|
||||||
import org.springframework.stereotype.Service
|
import org.springframework.stereotype.Service
|
||||||
import top.fatweb.api.entity.permission.Power
|
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.mapper.permission.PowerMapper
|
||||||
import top.fatweb.api.service.permission.IPowerService
|
import top.fatweb.api.service.permission.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -15,4 +16,16 @@ import top.fatweb.api.service.permission.IPowerService
|
|||||||
* @since 2023-10-25
|
* @since 2023-10-25
|
||||||
*/
|
*/
|
||||||
@Service
|
@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