Explorar el Código

添加终端用户绑定,终端用户查询,终端管理

liyan hace 4 años
padre
commit
26a74ceffc

+ 1 - 0
xms-core/apps/xms-all-in-one/build.gradle.kts

@@ -62,6 +62,7 @@ dependencies {
     implementation(project(path = ":services:service-util", configuration = "lib"))
     implementation(project(path = ":services:service-file", configuration = "lib"))
     implementation(project(path = ":services:service-user-rule", configuration = "lib"))
+    implementation(project(path = ":services:service-terminal", configuration = "lib"))
     implementation(project(path = ":shared"))
     runtimeOnly("mysql:mysql-connector-java")
     runtimeOnly(fileTree("$rootDir/libs") { include("*.jar") })

+ 1 - 0
xms-core/services/build.gradle.kts

@@ -144,6 +144,7 @@ project("service-bff") {
         implementation(project(path = ":services:service-app-policy", configuration = "lib"))
         implementation(project(path = ":services:service-device", configuration = "lib"))
         implementation(project(path = ":services:service-user-rule", configuration = "lib"))
+        implementation(project(path = ":services:service-terminal", configuration = "lib"))
     }
 }
 

+ 41 - 22
xms-core/services/service-bff/src/main/kotlin/jit/xms/core/services/bff/BffServiceController.kt

@@ -10,6 +10,7 @@ import jit.xms.core.services.app.roles.entity.XmsAppRole
 import jit.xms.core.services.bff.domain.BffGroupUserResult
 import jit.xms.core.services.bff.domain.BffOrgUserResult
 import jit.xms.core.services.bff.domain.BffRoleRoleRequest
+import jit.xms.core.services.bff.domain.BffTerminalUserResult
 import jit.xms.core.services.bff.entity.*
 import jit.xms.core.services.bff.service.*
 import jit.xms.core.services.user.infos.entity.XmsUserInfo
@@ -27,25 +28,28 @@ import org.springframework.web.bind.annotation.*
  * @version 1.0 2020/2/4
  */
 @RestController
-class BffServiceController(val orgUser: BffOrgUserService,
-                           val groupUser: BffGroupUserService,
-                           val acctRole: BffAcctRoleService,
-                           val appAcct: BffAppAcctService,
-                           val roleRes: BffRoleResService,
-                           val roleRole: BffRoleRoleService,
-                           val orgCert: BffOrgCertService,
-                           val userApp: BffUserAppService,
-                           val userRole: BffUserRoleService,
-                           val groupApp: BffGroupAppService,
-                           val groupRole: BffGroupRoleService,
-                           val orgApp: BffOrgAppService,
-                           val orgRole: BffOrgRoleService,
-                           val appUser: BffAppUserService,
-                           val appService: AppInfoService,
-                           val userCred: BffUserCredService,
-                           val bffUser: BffUserService,
-                           val bffService: BffService,
-                           val orgAcctService: BffOrgAcctService) {
+class BffServiceController(
+    val orgUser: BffOrgUserService,
+    val groupUser: BffGroupUserService,
+    val acctRole: BffAcctRoleService,
+    val appAcct: BffAppAcctService,
+    val roleRes: BffRoleResService,
+    val roleRole: BffRoleRoleService,
+    val orgCert: BffOrgCertService,
+    val userApp: BffUserAppService,
+    val userRole: BffUserRoleService,
+    val groupApp: BffGroupAppService,
+    val groupRole: BffGroupRoleService,
+    val orgApp: BffOrgAppService,
+    val orgRole: BffOrgRoleService,
+    val appUser: BffAppUserService,
+    val appService: AppInfoService,
+    val userCred: BffUserCredService,
+    val bffUser: BffUserService,
+    val bffService: BffService,
+    val orgAcctService: BffOrgAcctService,
+    val bffTerminalUserService: BffTerminalUserService
+) {
 
 //    companion object {
 //        val log: Logger = LoggerFactory.getLogger(BffDeptUserService::class.java)
@@ -67,7 +71,12 @@ class BffServiceController(val orgUser: BffOrgUserService,
      * @return 成功返回应用列表
      */
     @GetMapping(path = ["/xms/bff/org/users"])
-    fun findOrgUsers(orgId: String?, filter: XmsUserInfo, paging: PageParam, @RequestParam extra: Map<String, String>): PagedData<BffOrgUserResult> {
+    fun findOrgUsers(
+        orgId: String?,
+        filter: XmsUserInfo,
+        paging: PageParam,
+        @RequestParam extra: Map<String, String>
+    ): PagedData<BffOrgUserResult> {
         return orgUser.findUserInfo(filter, orgId, paging, extra)
     }
 
@@ -482,10 +491,20 @@ class BffServiceController(val orgUser: BffOrgUserService,
     @GetMapping(path = ["/xms/bff/rule/users"])
     fun findRuleUsers(query: String?, filter: XmsUserInfo, paging: PageParam): PagedData<XmsUserInfo> {
         hasText(query, "query不能为空")
-        return if(ruleConfig.enabled)
+        return if (ruleConfig.enabled)
             bffUser.findByRule(filter, query!!, paging)
         else
             throw XmsError(XmsError.XMS_NOT_ENABLED, "用户规则服务未启用")
     }
 
-}
+    @GetMapping(path = ["/xms/bff/terminal/users"])
+    fun findTerminalUsers(
+        terminalId: String?,
+        filter: XmsUserInfo,
+        paging: PageParam,
+        @RequestParam extra: Map<String, String>
+    ): PagedData<BffTerminalUserResult> {
+        return bffTerminalUserService.findUserInfo(filter, terminalId, paging, extra)
+    }
+
+}

+ 8 - 0
xms-core/services/service-bff/src/main/kotlin/jit/xms/core/services/bff/dao/BffTerminalUserDao.kt

@@ -0,0 +1,8 @@
+package jit.xms.core.services.bff.dao
+
+import jit.xms.core.services.bff.entity.BffTerminalUser
+import org.springframework.data.jpa.repository.JpaRepository
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor
+
+interface BffTerminalUserDao : JpaRepository<BffTerminalUser, String>, JpaSpecificationExecutor<BffTerminalUser> {
+}

+ 26 - 0
xms-core/services/service-bff/src/main/kotlin/jit/xms/core/services/bff/domain/BffTerminalUserResult.kt

@@ -0,0 +1,26 @@
+package jit.xms.core.services.bff.domain
+
+import gaf3.core.util.DataBeanHelper
+import jit.xms.core.services.user.infos.entity.XmsUserBase
+import jit.xms.core.services.user.infos.entity.XmsUserInfo
+
+class BffTerminalUserResult(user: XmsUserInfo) : XmsUserBase {
+    override var addr: String? = null
+    override var avatar: String? = null
+    override var code: String? = null
+    override var email: String? = null
+    override var name: String? = null
+    override var phone: String? = null
+    override var remark: String? = null
+    override var sex: String? = null
+    override var status: String? = null
+    override var title: String? = null
+    override var userId: String? = null
+    override var bzkh: String? = null
+    override var jrzjh: String? = null
+    override var sfzh: String? = null
+
+    init {
+        DataBeanHelper.Bean2Obj(user, this)
+    }
+}

+ 28 - 0
xms-core/services/service-bff/src/main/kotlin/jit/xms/core/services/bff/entity/BffTerminalUser.kt

@@ -0,0 +1,28 @@
+package jit.xms.core.services.bff.entity
+
+import jit.xms.core.services.terminal.infos.entity.XmsTerminalInfo
+import jit.xms.core.services.user.infos.entity.XmsUserInfo
+import javax.persistence.*
+
+@Entity
+@DiscriminatorValue("terminal-user")
+class BffTerminalUser : BffBindItem() {
+
+    @OneToOne(fetch = FetchType.LAZY)
+    @JoinColumn(
+        name = "source",
+        insertable = false,
+        updatable = false,
+        foreignKey = ForeignKey(value = ConstraintMode.NO_CONSTRAINT, name = "none")
+    )
+    var terminal: XmsTerminalInfo? = null
+
+    @OneToOne(fetch = FetchType.LAZY)
+    @JoinColumn(
+        name = "target",
+        insertable = false,
+        updatable = false,
+        foreignKey = ForeignKey(value = ConstraintMode.NO_CONSTRAINT, name = "none")
+    )
+    var user: XmsUserInfo? = null
+}

+ 43 - 0
xms-core/services/service-bff/src/main/kotlin/jit/xms/core/services/bff/service/BffTerminalUserService.kt

@@ -0,0 +1,43 @@
+package jit.xms.core.services.bff.service
+
+import gaf3.core.data.PageParam
+import gaf3.core.data.PagedData
+import gaf3.core.jpa.extension.findAll
+import jit.xms.core.services.bff.dao.BffTerminalUserDao
+import jit.xms.core.services.bff.domain.BffTerminalUserResult
+import jit.xms.core.services.bff.entity.BffTerminalUser
+import jit.xms.core.services.user.infos.entity.XmsUserInfo
+import jit.xms.core.services.user.infos.service.UserInfoService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.data.domain.Sort
+import org.springframework.stereotype.Service
+
+@Service
+class BffTerminalUserService(val bffTerminalUserDao: BffTerminalUserDao) {
+
+    @Autowired
+    lateinit var userInfoService: UserInfoService
+
+    /**
+     * 查询终端绑定用户信息
+     */
+    fun findUserInfo(
+        filter: XmsUserInfo,
+        terminalId: String?,
+        paging: PageParam,
+        extra: Map<String, String>? = null
+    ): PagedData<BffTerminalUserResult> {
+        if (terminalId.isNullOrBlank()) return userInfoService.find(filter, paging, extra).let { p ->
+            val rs = p.data?.map { u -> BffTerminalUserResult(u) }
+            PagedData(rs, total = p.total)
+        }
+        val temp = BffTerminalUser()
+        temp.user = filter
+        temp.source = terminalId
+        val paging1 = paging.sortBy(Sort.Direction.ASC, "createdAt", "id")
+        val paged = bffTerminalUserDao.findAll(temp, paging1)
+        val rs = paged.content.map { p -> BffTerminalUserResult(p.user ?: XmsUserInfo(p.target)) }
+
+        return PagedData(rs, paged.totalElements.toInt())
+    }
+}

+ 6 - 3
xms-core/services/service-bind/src/main/kotlin/jit/xms/core/services/bind/BindType.kt

@@ -31,8 +31,11 @@ enum class BindType(val type: String) {
     // 部门-角色,多对多关系
     ORG_ROLE("org-role"),
 
-    //域-应用,多对多关系
-    DOMAIN_APP("domain-app");
+    // 域-应用,多对多关系
+    DOMAIN_APP("domain-app"),
+
+    // 终端-人员,一对多关系
+    TERMINAL_USER("terminal-user");
 
     // 应用-帐号,多对多关系。已废弃!!!
     // APP_ACCT("app-acct"),
@@ -51,4 +54,4 @@ enum class BindType(val type: String) {
             return valueOf(type.toUpperCase().replace("-", "_"))
         }
     }
-}
+}

+ 11 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/XmsTerminalApplication.kt

@@ -0,0 +1,11 @@
+package jit.xms.core.services.terminal.infos
+
+import org.springframework.boot.autoconfigure.SpringBootApplication
+import org.springframework.boot.runApplication
+
+@SpringBootApplication
+class XmsTerminalApplication
+
+fun main(args: Array<String>) {
+    runApplication<XmsTerminalApplication>(*args)
+}

+ 12 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/XmsTerminalController.kt

@@ -0,0 +1,12 @@
+package jit.xms.core.services.terminal.infos
+
+import jit.xms.core.services.terminal.infos.service.XmsTerminalService
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.web.bind.annotation.RestController
+
+@RestController
+class XmsTerminalController {
+
+    @Autowired
+    lateinit var xmsTerminalService: XmsTerminalService
+}

+ 9 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/dao/XmsTerminalDao.kt

@@ -0,0 +1,9 @@
+package jit.xms.core.services.terminal.infos.dao
+
+import jit.xms.core.services.terminal.infos.entity.XmsTerminalInfo
+import org.springframework.data.jpa.repository.JpaRepository
+
+interface XmsTerminalDao : JpaRepository<XmsTerminalInfo, String> {
+
+    fun findByCode(code: String): List<XmsTerminalInfo>
+}

+ 23 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/entity/XmsTerminalInfo.kt

@@ -0,0 +1,23 @@
+package jit.xms.core.services.terminal.infos.entity
+
+import gaf3.core.jpa.GafTimestamp
+import javax.persistence.Column
+import javax.persistence.Entity
+import javax.persistence.Id
+import javax.persistence.Table
+
+@Entity
+@Table(name = "XMS_TERMINAL_INFO")
+class XmsTerminalInfo : GafTimestamp() {
+
+    @Id
+    @Column(name = "TERMINAL_ID")
+    var terminalId: String? = null
+
+    @Column(name = "NAME")
+    var name: String? = null
+
+    @Column(name = "CODE")
+    var code: String? = null
+
+}

+ 20 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/service/XmsTerminalService.kt

@@ -0,0 +1,20 @@
+package jit.xms.core.services.terminal.infos.service
+
+import jit.xms.core.services.terminal.infos.dao.XmsTerminalDao
+import jit.xms.core.services.terminal.infos.entity.XmsTerminalInfo
+import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.stereotype.Service
+
+@Service
+class XmsTerminalService {
+
+    @Autowired
+    lateinit var xmsTerminalDao: XmsTerminalDao
+
+    /**
+     * 根据终端ID查询终端信息
+     */
+    fun findTerminalByCode(code: String): XmsTerminalInfo? {
+        return xmsTerminalDao.findByCode(code).firstOrNull()
+    }
+}

+ 2 - 1
xms-core/settings.gradle.kts

@@ -22,4 +22,5 @@ include("services:service-device")
 include("services:service-task")
 include("services:service-agent")
 include("services:service-util")
-include("services:service-file")
+include("services:service-file")
+include("services:service-terminal")