Browse Source

添加终端信息管理服务

liyan 4 năm trước cách đây
mục cha
commit
d93c8cdfaa

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

@@ -1,12 +1,66 @@
 package jit.xms.core.services.terminal.infos
 
+import gaf3.core.data.ErrorResult
+import gaf3.core.data.PageParam
+import gaf3.core.data.PagedData
+import jit.xms.core.services.terminal.infos.domain.TerminalInfoForm
+import jit.xms.core.services.terminal.infos.entity.XmsTerminalInfo
 import jit.xms.core.services.terminal.infos.service.XmsTerminalService
 import org.springframework.beans.factory.annotation.Autowired
-import org.springframework.web.bind.annotation.RestController
+import org.springframework.web.bind.annotation.*
+import javax.validation.Valid
 
 @RestController
+@RequestMapping(path=["/xms/terminal"])
 class XmsTerminalController {
 
     @Autowired
     lateinit var xmsTerminalService: XmsTerminalService
+
+    /**
+     * 按条件查询列表(分页)
+     * @param filter 条件(对象里面的属性)
+     * @param paging 查询分页参数:
+     *          - skip 从多少开始
+     *          - limit 分页多少条
+     *          - exact 是否为精确查询,默认为True
+     *          - sort.direction 排序方向:asc、desc
+     *          - sort.property 排序字段(允许多个)
+     * @return 成功返回通过条件筛选用户列表
+     */
+    @GetMapping(path = ["/infos"])
+    fun find(filter: XmsTerminalInfo, paging: PageParam): PagedData<XmsTerminalInfo> {
+        return xmsTerminalService.find(filter, paging)
+    }
+    /**
+     * 新增终端数据
+     * @param form 表单提交参数
+     * @return 成功返回用户信息
+     */
+    @PostMapping(path = ["/infos"])
+    fun create(@Valid @RequestBody form: TerminalInfoForm): XmsTerminalInfo {
+        return xmsTerminalService.create(form)
+    }
+
+    /**
+     * 修改终端数据
+     * @param id id
+     * @param form 表单提交参数
+     * @return 成功返回用户信息
+     */
+    @PostMapping(path = ["/infos/{id}"])
+    fun update(@PathVariable id: String, @RequestBody form: TerminalInfoForm): XmsTerminalInfo {
+        return xmsTerminalService.update(id, form)
+    }
+
+    /**
+     * 删除终端数据
+     * @param id id 根据id删除条目
+     * @return 成功返回 0
+     */
+    @DeleteMapping(path = ["/infos/{id}"])
+    fun delete(@PathVariable id: String): ErrorResult {
+        xmsTerminalService.delete(id)
+        return ErrorResult(0, "deleted")
+    }
 }

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

@@ -6,4 +6,8 @@ import org.springframework.data.jpa.repository.JpaRepository
 interface XmsTerminalDao : JpaRepository<XmsTerminalInfo, String> {
 
     fun findByCode(code: String): List<XmsTerminalInfo>
+
+    fun existsByCode(code: String): Boolean
+
+    fun existsByCodeAndTerminalIdNotIn(code: String, terminalId: List<String>): Boolean
 }

+ 7 - 0
xms-core/services/service-terminal/src/main/kotlin/jit/xms/core/services/terminal/infos/domain/TerminalInfoForm.kt

@@ -0,0 +1,7 @@
+package jit.xms.core.services.terminal.infos.domain
+
+class TerminalInfoForm {
+    var name: String? = null
+
+    var code: String? = null
+}

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

@@ -1,9 +1,19 @@
 package jit.xms.core.services.terminal.infos.service
 
+import gaf3.core.data.PageParam
+import gaf3.core.data.PagedData
+import gaf3.core.jpa.extension.findAll
+import gaf3.core.util.DataBeanHelper
 import jit.xms.core.services.terminal.infos.dao.XmsTerminalDao
+import jit.xms.core.services.terminal.infos.domain.TerminalInfoForm
 import jit.xms.core.services.terminal.infos.entity.XmsTerminalInfo
+import jit.xms.core.util.XmsError
 import org.springframework.beans.factory.annotation.Autowired
+import org.springframework.data.domain.Sort
 import org.springframework.stereotype.Service
+import org.springframework.util.Assert
+import java.util.*
+import javax.transaction.Transactional
 
 @Service
 class XmsTerminalService {
@@ -17,4 +27,73 @@ class XmsTerminalService {
     fun findTerminalByCode(code: String): XmsTerminalInfo? {
         return xmsTerminalDao.findByCode(code).firstOrNull()
     }
+
+    /**
+     * 按条件查询列表(分页)
+     * @param filter 条件(对象里面的属性)
+     * @param paging 查询分页参数:
+     *          - skip 从多少开始
+     *          - limit 分页多少条
+     *          - exact 是否为精确查询,默认为True
+     *          - sort.direction 排序方向:asc、desc
+     *          - sort.property 排序字段(允许多个)
+     * @return 成功返回通过条件筛选用户列表
+     */
+    fun find(filter: XmsTerminalInfo, paging: PageParam): PagedData<XmsTerminalInfo> {
+        val paging1 = paging.sortBy(Sort.Direction.ASC, "createdAt", "terminalId")
+        val paged = xmsTerminalDao.findAll(filter, paging1)
+        val rs = paged.content
+        return PagedData(rs, paged.totalElements.toInt())
+    }
+
+    /**
+     * 新增终端数据
+     * @param form 表单提交参数
+     * @return 成功返回用户信息
+     */
+    @Transactional
+    fun create(form: TerminalInfoForm): XmsTerminalInfo {
+        Assert.hasText(form.name, "终端名称不能为空")
+        Assert.hasText(form.code, "终端编码不能为空")
+        if (xmsTerminalDao.existsByCode(form.code!!))
+            throw XmsError(XmsError.USER_INFO_EXISTED, "终端编码已存在")
+        // 保存终端信息
+        var entity = XmsTerminalInfo()
+        DataBeanHelper.Bean2Obj(form, entity)
+        entity.terminalId = UUID.randomUUID().toString()
+        entity = xmsTerminalDao.save(entity)
+        return entity
+    }
+
+    /**
+     * 修改终端数据
+     * @param id id
+     * @param form 表单提交参数
+     * @return 成功返回用户信息
+     */
+    @Transactional
+    fun update(id: String, form: TerminalInfoForm): XmsTerminalInfo {
+        Assert.hasText(form.name, "终端名称不能为空")
+        Assert.hasText(form.code, "终端编码不能为空")
+        if (xmsTerminalDao.existsByCodeAndTerminalIdNotIn(form.code!!, listOf(id)))
+            throw XmsError(XmsError.USER_INFO_EXISTED, "终端编码已存在")
+        // 保存终端信息
+        var entity = XmsTerminalInfo()
+        DataBeanHelper.Bean2Obj(form, entity)
+        entity.terminalId = id
+        entity = xmsTerminalDao.save(entity)
+        return entity
+    }
+
+    /**
+     * 删除终端数据
+     * @param id id 根据id删除条目
+     * @return 成功返回 0
+     */
+    @Transactional
+    fun delete(id: String) {
+        if (!xmsTerminalDao.existsById(id))
+            throw XmsError(XmsError.USER_INFO_NOT_EXISTED, "终端不存在")
+        xmsTerminalDao.deleteById(id)
+    }
 }