|
@@ -1,10 +1,17 @@
|
|
|
package com.gxzc.zen.api.sys.service.impl
|
|
|
|
|
|
+import com.baomidou.mybatisplus.mapper.EntityWrapper
|
|
|
import com.gxzc.zen.api.sys.model.SysPermission
|
|
|
import com.gxzc.zen.api.sys.mapper.SysPermissionMapper
|
|
|
-import com.gxzc.zen.api.sys.service.ISysPermissionService
|
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl
|
|
|
+import com.gxzc.zen.api.sys.model.SysRolePermission
|
|
|
+import com.gxzc.zen.api.sys.model.SysUser
|
|
|
+import com.gxzc.zen.api.sys.service.*
|
|
|
+import org.springframework.beans.factory.annotation.Autowired
|
|
|
+import org.springframework.cache.annotation.Cacheable
|
|
|
import org.springframework.stereotype.Service
|
|
|
+import java.util.*
|
|
|
+import kotlin.collections.HashSet
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -17,4 +24,29 @@ import org.springframework.stereotype.Service
|
|
|
@Service
|
|
|
class SysPermissionServiceImpl : ServiceImpl<SysPermissionMapper, SysPermission>(), ISysPermissionService {
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private val userRoleService: ISysUserRoleService? = null
|
|
|
+ @Autowired
|
|
|
+ private val rolePermissionService: ISysRolePermissionService? = null
|
|
|
+
|
|
|
+ private fun findRolePermissions(roleId:Long?):MutableList<SysRolePermission>?{
|
|
|
+ val entity=SysRolePermission(roleId,null)
|
|
|
+ return rolePermissionService?.selectList(EntityWrapper(entity))
|
|
|
+ }
|
|
|
+
|
|
|
+ //任何修改用户角色、角色、权限表都清此缓存
|
|
|
+ @Cacheable(value="setPermissions",key = "#userId")
|
|
|
+ override fun findUserPermissions(userId: Long):HashSet<String> {
|
|
|
+// val user=userService?.selectById(userId)
|
|
|
+ val uroles=userRoleService?.findUserRoles(userId)
|
|
|
+ val perms=LinkedList<SysPermission>()
|
|
|
+ val permissions=HashSet<String>()
|
|
|
+ for(ro in uroles!!)
|
|
|
+ for(per in findRolePermissions(ro.roleId)!!)
|
|
|
+ perms.add(selectById(per.permissionId))
|
|
|
+ for (per in perms)
|
|
|
+ permissions.add(per.name!!)
|
|
|
+ return permissions
|
|
|
+ }
|
|
|
+
|
|
|
}
|