RelationService.kt 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package com.persagy.labsl.services
  2. import com.persagy.database.SFilter
  3. import com.persagy.labsl.models.entities.tpt.Relation
  4. import com.persagy.mybatis.SMybatisDao
  5. import com.persagy.service.SObjectService
  6. import com.persagy.service.models.enums.SResponseType
  7. import com.persagy.service.models.requests.SCreateRequest
  8. import com.persagy.service.models.responses.SBaseResponse
  9. import com.persagy.service.models.responses.SCreateResponse
  10. import org.springframework.web.bind.annotation.RequestBody
  11. import java.util.*
  12. /**
  13. * 管线对象
  14. *
  15. * @author wx <zhangweixin@sagacloud.com>
  16. */
  17. object RelationService : SObjectService<Relation>(SMybatisDao(
  18. Relation::class.java)){
  19. /**
  20. * 创建之前的操作
  21. *
  22. * @param entity 管线对象
  23. * @return 是否处理
  24. */
  25. override fun onCreateBefore(entity: Relation): Boolean {
  26. /** id 赋值 */
  27. entity.id = UUID.randomUUID().toString().replace("-", "")
  28. return super.onCreateBefore(entity)
  29. } //
  30. /**
  31. * 创建管线对象
  32. *
  33. * @param request 创建管线对象列表
  34. * @return 返回结果
  35. */
  36. fun creates(request: SCreateRequest<Relation>): SCreateResponse<Relation> {
  37. /** 返回结果对象 */
  38. val sCreateResponse = SCreateResponse<Relation>()
  39. /** 返回结果中的状态 */
  40. sCreateResponse.result = SResponseType.failure
  41. return try {
  42. /** 列表不可以为空 */
  43. if (!request.content.isNullOrEmpty()) {
  44. /** 遍历管线列表 */
  45. for (relation in request.content) {
  46. /** 判断必传字段不可以为空 */
  47. if (relation.id.isNullOrEmpty() || relation.graphId.isNullOrEmpty() || relation.name.isNullOrEmpty()) {
  48. sCreateResponse.message = "注意必填字段不可以为空如 id、graphId、name"
  49. return sCreateResponse
  50. }
  51. /** 查询 id 和 graphId 是否存在,是否可以定位一个系统图 */
  52. val graphList =
  53. GraphService.select(SFilter.eq("id", relation.id!!), SFilter.eq("graphId", relation.graphId!!))
  54. .exec()
  55. /** 图 id 和 graphId 不存在*/
  56. if (graphList.size == 0) {
  57. sCreateResponse.message = "请检查 id 和 graphId 是否为已有系统图中的 id"
  58. return sCreateResponse
  59. }
  60. }
  61. /** 遍历管线列表 */
  62. for (relation in request.content) {
  63. /** 判断标记id是否没有,为空赋值 */
  64. if (relation.relationId.isNullOrEmpty()) {
  65. relation.relationId = UUID.randomUUID().toString().replace("-", "")
  66. }
  67. /** 插入数据 */
  68. insert(relation)
  69. }
  70. /** 对象列表 */
  71. sCreateResponse.entityList = request.content
  72. /** 状态 */
  73. sCreateResponse.result = SResponseType.success
  74. /** 对象 */
  75. sCreateResponse
  76. } else {
  77. /** 描述 */
  78. sCreateResponse.message = "不可以传空列表"
  79. /** 对象 */
  80. return sCreateResponse
  81. }
  82. } catch (e: Exception) {
  83. e.printStackTrace()
  84. sCreateResponse.message = e.message!!
  85. sCreateResponse
  86. }
  87. }
  88. /**
  89. * 批量删除管线信息
  90. *
  91. * @param idList 管线对象列表
  92. * @return 返回结果
  93. */
  94. fun deletes(@RequestBody idList: ArrayList<Relation>): SBaseResponse {
  95. /** 返回结果对象 */
  96. val sBaseResponse = SBaseResponse()
  97. /** 返回结果状态 */
  98. sBaseResponse.result = SResponseType.failure
  99. return try {
  100. /** 列表不可以为空 */
  101. if (!idList.isNullOrEmpty()) {
  102. /** 遍历管线信息列表 */
  103. for (relation in idList) {
  104. /** 校验必填信息点 */
  105. if (relation.id.isNullOrEmpty() || relation.relationId.isNullOrEmpty()) {
  106. sBaseResponse.message = "注意接口说明必填字段"
  107. return sBaseResponse
  108. }
  109. }
  110. /** 遍历管线信息列表 */
  111. for (relation in idList) {
  112. /** 删除对象 */
  113. delete(SFilter.eq("id", relation.id!!), SFilter.eq("relationId", relation.relationId!!))
  114. }
  115. /** 返回结果状态 */
  116. sBaseResponse.result = SResponseType.success
  117. }
  118. /** 返回结果对象 */
  119. sBaseResponse
  120. } catch (e: Exception) {
  121. e.printStackTrace()
  122. /** 返回结果,状态、以及报错信息 */
  123. SBaseResponse(SResponseType.failure,e.message!!)
  124. }
  125. }
  126. }