Browse Source

修改项目结构,移动umps模块至api中(解除相互依赖问题)

NorthLan 7 years ago
parent
commit
aedb5aad73
26 changed files with 85 additions and 171 deletions
  1. 0 1
      settings.gradle
  2. 0 5
      zen-api/build.gradle
  3. 8 3
      zen-api/src/main/kotlin/com/gxzc/zen/api/sys/service/impl/SysDicServiceImpl.kt
  4. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/common/Permission.kt
  5. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/CORSFilter.kt
  6. 1 4
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoAuthorization.kt
  7. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoConfig.kt
  8. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoHandlerInterceptor.kt
  9. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoPermissionInterceptor.kt
  10. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoWebAppConfigurer.kt
  11. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/util/MD5Salt.kt
  12. 0 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/util/PermissionUtil.kt
  13. 27 0
      zen-api/src/main/kotlin/com/gxzc/zen/umps/util/SSOUtil.kt
  14. 0 5
      zen-core/build.gradle
  15. 0 11
      zen-core/src/main/kotlin/com/gxzc/zen/common/base/BaseController.kt
  16. 0 76
      zen-core/src/main/kotlin/com/gxzc/zen/common/config/json/ZenJsonResultHandler.kt
  17. 0 4
      zen-job/build.gradle
  18. 0 4
      zen-mq/build.gradle
  19. 0 4
      zen-orm/build.gradle
  20. 0 23
      zen-umps/build.gradle
  21. 0 17
      zen-umps/src/main/kotlin/com/gxzc/zen/umps/contants/PERM.kt
  22. 0 5
      zen-web/build.gradle
  23. 3 4
      zen-web/src/main/kotlin/com/gxzc/zen/orm/CustomMetaObjectHandler.kt
  24. 39 0
      zen-web/src/main/kotlin/com/gxzc/zen/web/sys/controller/TestController.kt
  25. 6 4
      zen-web/src/main/kotlin/com/gxzc/zen/web/sys/controller/UserController.kt
  26. 1 1
      zen-web/src/main/resources/application.yml

+ 0 - 1
settings.gradle

@@ -1,6 +1,5 @@
 rootProject.name = 'zen'
 include 'zen-core'
-include 'zen-umps'
 include 'zen-orm'
 include 'zen-api'
 include 'zen-web'

+ 0 - 5
zen-api/build.gradle

@@ -1,8 +1,4 @@
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }
@@ -15,7 +11,6 @@ buildscript {
 
 
 dependencies {
-//    compile project(":zen-umps")
     compile project(":zen-orm")
     compile project(":zen-core")
 }

+ 8 - 3
zen-api/src/main/kotlin/com/gxzc/zen/api/sys/service/impl/SysDicServiceImpl.kt

@@ -33,13 +33,18 @@ class SysDicServiceImpl : ServiceImpl<SysDicMapper, SysDic>(), ISysDicService {
     }
 
     //    @CacheEvict(CACHEKEYS.SYS_DIC, key = "'key_' + #sysDic.key")
+    @Suppress("UNCHECKED_CAST")
     override fun modifySysDic(sysDic: SysDic): SysDic {
         baseMapper.updateById(sysDic)
         // 更新缓存
         val cache = cacheManager.getCache(CACHEKEYS.SYS_DIC)
-        cache.evict("key_${sysDic.id}")
-        getListByKey(sysDic.key!!) // 直接调用Cacheable的方法注入缓存
-        //
+        val cachedList: MutableList<SysDic>? = cache["key_${sysDic.key}"].get() as MutableList<SysDic>
+        cachedList?.let {
+            it.removeIf { it.id == sysDic.id }
+            it.add(sysDic)
+            cache.put("key_${sysDic.key}", cachedList)
+        }
+
         return sysDic
     }
 

+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/common/Permission.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/common/Permission.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/CORSFilter.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/CORSFilter.kt


+ 1 - 4
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/KissoAuthorization.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoAuthorization.kt

@@ -1,15 +1,12 @@
 package com.gxzc.zen.umps.config
 
 import com.baomidou.kisso.SSOAuthorization
-import com.baomidou.kisso.SSOHelper
-import com.baomidou.kisso.SSOToken
 import com.baomidou.kisso.Token
 import com.gxzc.zen.api.sys.service.ISysPermissionService
 import com.gxzc.zen.common.util.PlatformUtil
 import com.gxzc.zen.common.util.SpringContextHolder
 import com.gxzc.zen.umps.util.PermissionUtil
 import org.apache.commons.lang3.StringUtils
-import org.springframework.cache.CacheManager
 
 /**
  * Kisso权限验证
@@ -29,6 +26,6 @@ class KissoAuthorization : SSOAuthorization {
         return PermissionUtil.isPermitted(realPerm, permissionService.getPermissionSetByUserId(token.id as Long))
     }
 
-    private val cacheManager = SpringContextHolder.getBean(CacheManager::class.java)
+    //    private val cacheManager = SpringContextHolder.getBean(CacheManager::class.java)
     private val permissionService = SpringContextHolder.getBean(ISysPermissionService::class.java)
 }

+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/KissoConfig.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoConfig.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/KissoHandlerInterceptor.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoHandlerInterceptor.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/KissoPermissionInterceptor.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoPermissionInterceptor.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/config/KissoWebAppConfigurer.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/config/KissoWebAppConfigurer.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/util/MD5Salt.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/util/MD5Salt.kt


+ 0 - 0
zen-umps/src/main/kotlin/com/gxzc/zen/umps/util/PermissionUtil.kt → zen-api/src/main/kotlin/com/gxzc/zen/umps/util/PermissionUtil.kt


+ 27 - 0
zen-api/src/main/kotlin/com/gxzc/zen/umps/util/SSOUtil.kt

@@ -0,0 +1,27 @@
+package com.gxzc.zen.umps.util
+
+import com.baomidou.kisso.SSOHelper
+import com.baomidou.kisso.SSOToken
+import com.gxzc.zen.api.sys.model.SysUser
+import com.gxzc.zen.api.sys.service.ISysUserService
+import com.gxzc.zen.common.util.HttpUtil
+import com.gxzc.zen.common.util.SpringContextHolder
+
+/**
+ * SSO 工具类
+ * @author NorthLan
+ * @date 2018/3/15
+ * @url https://noahlan.com
+ */
+object SSOUtil {
+    private val sysUserService: ISysUserService = SpringContextHolder.getBean(ISysUserService::class.java)
+
+    fun getCurUserId(): Long? {
+        return SSOHelper.attrToken<SSOToken>(HttpUtil.getRequest())?.uid?.toLong()
+    }
+
+    fun getCurUser(): SysUser? {
+        val curUid = getCurUserId() ?: return null
+        return sysUserService.getUserByIdCacheable(curUid)
+    }
+}

+ 0 - 5
zen-core/build.gradle

@@ -1,8 +1,4 @@
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }
@@ -14,7 +10,6 @@ buildscript {
 }
 
 dependencies {
-
 }
 
 bootRepackage {

+ 0 - 11
zen-core/src/main/kotlin/com/gxzc/zen/common/base/BaseController.kt

@@ -1,7 +1,5 @@
 package com.gxzc.zen.common.base
 
-import com.baomidou.kisso.SSOHelper
-import com.baomidou.kisso.SSOToken
 import com.gxzc.zen.common.util.HttpUtil
 import javax.servlet.http.HttpServletRequest
 import javax.servlet.http.HttpServletResponse
@@ -20,13 +18,4 @@ open class BaseController {
     fun getResponse(): HttpServletResponse {
         return HttpUtil.getResponse()
     }
-
-    protected fun getCurUserId(): Long {
-        return getSSOToken().uid.toLong()
-    }
-
-    fun getSSOToken(): SSOToken {
-        return SSOHelper.attrToken(getRequest())
-                ?: throw RuntimeException("The user does not exist, please re-login.")
-    }
 }

+ 0 - 76
zen-core/src/main/kotlin/com/gxzc/zen/common/config/json/ZenJsonResultHandler.kt

@@ -1,76 +0,0 @@
-//package com.gxzc.zen.common.config.json
-//
-//import com.gxzc.zen.common.config.json.annotation.ZenFilter
-//import org.springframework.beans.factory.config.BeanPostProcessor
-//import org.springframework.core.MethodParameter
-//import org.springframework.http.MediaType
-//import org.springframework.http.server.ServletServerHttpRequest
-//import org.springframework.http.server.ServletServerHttpResponse
-//import org.springframework.stereotype.Component
-//import org.springframework.web.context.request.NativeWebRequest
-//import org.springframework.web.method.support.HandlerMethodReturnValueHandler
-//import org.springframework.web.method.support.ModelAndViewContainer
-//import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter
-//import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
-//import javax.servlet.http.HttpServletRequest
-//import javax.servlet.http.HttpServletResponse
-//
-//
-///**
-// * 自定义Json返回值序列化
-// * @author NorthLan
-// * @date 2018/3/12
-// * @url https://noahlan.com
-// */
-//@Component
-//class ZenJsonResultHandler : HandlerMethodReturnValueHandler, BeanPostProcessor {
-//    var advices = mutableListOf<ResponseBodyAdvice<Any>>()
-//
-//    override fun supportsReturnType(returnType: MethodParameter): Boolean {
-//        return returnType.getMethodAnnotation(ZenFilter::class.java) != null
-//    }
-//
-//    override fun handleReturnValue(returnValue: Any, returnType: MethodParameter, mavContainer: ModelAndViewContainer, webRequest: NativeWebRequest) {
-//        mavContainer.isRequestHandled = true
-//
-//        var newReturnValue: Any = returnValue
-//        advices.forEach {
-//            if (it.supports(returnType, null)) {
-//                newReturnValue = it.beforeBodyWrite(returnValue, returnType, MediaType.APPLICATION_JSON_UTF8, null,
-//                        ServletServerHttpRequest(webRequest.getNativeRequest(HttpServletRequest::class.java)),
-//                        ServletServerHttpResponse(webRequest.getNativeResponse(HttpServletResponse::class.java)))
-//            }
-//        }
-//        val response = webRequest.getNativeResponse(HttpServletResponse::class.java)
-//        val annotations = returnType.methodAnnotations
-//        val jsonSerializer = ZenJsonSerializer()
-//        annotations.forEach {
-//            if (it is ZenFilter) {
-//                jsonSerializer.filter(it)
-//            }
-//        }
-//
-//        response.contentType = MediaType.APPLICATION_JSON_UTF8_VALUE
-//        response.writer.write(jsonSerializer.toJson(newReturnValue))
-//    }
-//
-//    override fun postProcessBeforeInitialization(bean: Any, beanName: String): Any {
-//        return bean
-//    }
-//
-//    @Suppress("UNCHECKED_CAST")
-//    override fun postProcessAfterInitialization(bean: Any, beanName: String): Any {
-//        if (bean is ResponseBodyAdvice<*>) {
-//            advices.add(bean as ResponseBodyAdvice<Any>)
-//        } else if (bean is RequestMappingHandlerAdapter) {
-//            val handlers = ArrayList(bean.returnValueHandlers)
-//            val handler = handlers.firstOrNull { it is ZenJsonResultHandler }?.let { it as ZenJsonResultHandler }
-//            handler?.let {
-//                handlers.remove(it)
-//                handlers.add(0, it)
-//                bean.returnValueHandlers = handlers // 修改排序到第一位
-//            }
-//        }
-//        return bean
-//    }
-//}

+ 0 - 4
zen-job/build.gradle

@@ -1,8 +1,4 @@
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }

+ 0 - 4
zen-mq/build.gradle

@@ -1,8 +1,4 @@
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }

+ 0 - 4
zen-orm/build.gradle

@@ -1,8 +1,4 @@
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }

+ 0 - 23
zen-umps/build.gradle

@@ -1,23 +0,0 @@
-buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
-    repositories {
-        mavenCentral()
-    }
-    dependencies {
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-        classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
-        classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
-    }
-}
-
-dependencies {
-    compile project(":zen-core")
-    compile project(":zen-api")
-}
-
-bootRepackage {
-    enabled = false
-}

+ 0 - 17
zen-umps/src/main/kotlin/com/gxzc/zen/umps/contants/PERM.kt

@@ -1,17 +0,0 @@
-package com.gxzc.zen.umps.contants
-
-/**
- * 权限列表
- * @author NorthLan
- * @date 2018/2/6
- * @url https://noahlan.com
- */
-object PERM {
-    private const val SEPERATOR = ":" // 分隔符
-    private const val SELECT = "select" // 查询
-    private const val CREATE = "create" // 新增
-    private const val DELETE = "delete" // 删除
-    private const val UPDATE = "update" // 修改
-    //////
-
-}

+ 0 - 5
zen-web/build.gradle

@@ -1,10 +1,6 @@
 apply plugin: 'war'
 
 buildscript {
-    ext {
-        kotlin_version = '1.2.21'
-        spring_boot_version = '1.5.10.RELEASE'
-    }
     repositories {
         mavenCentral()
     }
@@ -19,7 +15,6 @@ dependencies {
     compile project(":zen-orm")
     compile project(":zen-core")
     compile project(":zen-api")
-    compile project(":zen-umps")
     compile project(":zen-mq")
     compile project(":zen-job")
 }

+ 3 - 4
zen-orm/src/main/kotlin/com/gxzc/zen/orm/CustomMetaObjectHandler.kt → zen-web/src/main/kotlin/com/gxzc/zen/orm/CustomMetaObjectHandler.kt

@@ -1,6 +1,7 @@
 package com.gxzc.zen.orm
 
 import com.baomidou.mybatisplus.mapper.MetaObjectHandler
+import com.gxzc.zen.umps.util.SSOUtil
 import org.apache.ibatis.reflection.MetaObject
 import org.slf4j.LoggerFactory
 import org.springframework.stereotype.Component
@@ -21,8 +22,7 @@ class CustomMetaObjectHandler : MetaObjectHandler() {
     override fun insertFill(metaObject: MetaObject?) {
         logger.debug("公共字段自动填充: insertFill")
         if (getFieldValByName("createBy", metaObject) == null) {
-            // TODO 公共字段填充 createBy
-            setFieldValByName("createBy", "admin", metaObject)
+            setFieldValByName("createBy", SSOUtil.getCurUser()?.account, metaObject)
         }
         if (getFieldValByName("createTime", metaObject) == null) {
             setFieldValByName("createTime", Date(), metaObject)
@@ -32,8 +32,7 @@ class CustomMetaObjectHandler : MetaObjectHandler() {
     override fun updateFill(metaObject: MetaObject?) {
         logger.debug("公共字段自动填充: updateFill")
         if (getFieldValByName("updateBy", metaObject) == null) {
-            // TODO 公共字段填充 updateBy
-            setFieldValByName("updateBy", "admin", metaObject)
+            setFieldValByName("updateBy", SSOUtil.getCurUser()?.account, metaObject)
         }
         setFieldValByName("updateTime", Date(), metaObject)
     }

+ 39 - 0
zen-web/src/main/kotlin/com/gxzc/zen/web/sys/controller/TestController.kt

@@ -0,0 +1,39 @@
+package com.gxzc.zen.web.sys.controller
+
+import com.baomidou.kisso.annotation.Action
+import com.baomidou.kisso.annotation.Login
+import com.gxzc.zen.api.sys.model.SysDic
+import com.gxzc.zen.api.sys.service.ISysDicService
+import com.gxzc.zen.common.base.BaseController
+import org.springframework.web.bind.annotation.GetMapping
+import org.springframework.web.bind.annotation.PutMapping
+import org.springframework.web.bind.annotation.RequestMapping
+import org.springframework.web.bind.annotation.RestController
+
+/**
+ *
+ * @author NorthLan
+ * @date 2018/3/15
+ * @url https://noahlan.com
+ */
+@RestController
+@RequestMapping("test")
+class TestController : BaseController() {
+
+    private lateinit var sysDicService: ISysDicService
+
+    @GetMapping("logicDel")
+    @Login(action = Action.Skip)
+    fun testLogicDelete() {
+        sysDicService.deleteById(4)
+    }
+
+    @PutMapping
+    @Login(action = Action.Skip)
+    fun testCustomMetaObjectHandler() {
+        sysDicService.updateById(SysDic().apply {
+            id = 4
+            key = "2333"
+        })
+    }
+}

+ 6 - 4
zen-web/src/main/kotlin/com/gxzc/zen/web/sys/controller/UserController.kt

@@ -1,6 +1,5 @@
 package com.gxzc.zen.web.sys.controller
 
-import com.baomidou.kisso.SSOToken
 import com.gxzc.zen.api.sys.model.SysRole
 import com.gxzc.zen.api.sys.model.SysUser
 import com.gxzc.zen.api.sys.service.ISysUserRoleService
@@ -10,6 +9,9 @@ import com.gxzc.zen.common.config.json.annotation.ZenFilter
 import com.gxzc.zen.common.config.json.annotation.ZenFilters
 import com.gxzc.zen.common.dto.RequestDto
 import com.gxzc.zen.common.dto.ResponseDto
+import com.gxzc.zen.common.exception.ZenException
+import com.gxzc.zen.common.exception.ZenExceptionEnum
+import com.gxzc.zen.umps.util.SSOUtil
 import org.slf4j.LoggerFactory
 import org.springframework.beans.factory.annotation.Autowired
 import org.springframework.http.ResponseEntity
@@ -41,11 +43,11 @@ class UserController : BaseController() {
             ZenFilter(type = SysRole::class, include = ["id", "enable", "name", "code", "perms", "remark"])
     )
     fun userInfo(): ResponseEntity<*> {
-        val token: SSOToken = getSSOToken()
+        val uid = SSOUtil.getCurUserId() ?: throw ZenException(ZenExceptionEnum.AUTH_NO_LOGIN)
         return ResponseEntity.ok(ResponseDto().apply {
             data = mutableMapOf(
-                    "info" to userService.getUserByIdCacheable(token.uid.toLong()),
-                    "roles" to userRoleService.getUserRoleListByUserId(token.uid.toLong())
+                    "info" to userService.getUserByIdCacheable(uid),
+                    "roles" to userRoleService.getUserRoleListByUserId(uid)
             )
         })
     }

+ 1 - 1
zen-web/src/main/resources/application.yml

@@ -10,7 +10,7 @@ zen:
 spring:
   profiles:
     active: dev
-    include: orm-local,mq,cache,umps,platform,job
+    include: orm,mq,cache,umps,platform,job
 #  redis:
 #    host: localhost
 #    port: 6379