|
@@ -26,11 +26,18 @@
|
|
|
|
|
|
package com.persagy.server.messagecenter.controllers
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil
|
|
|
+import com.fasterxml.jackson.databind.node.JsonNodeFactory
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode
|
|
|
import com.persagy.base.extensions.toJson
|
|
|
+import com.persagy.dmp.basic.model.QueryCriteria
|
|
|
+import com.persagy.dmp.basic.utils.JsonNodeUtils
|
|
|
+import com.persagy.dmp.digital.client.DigitalObjectFacade
|
|
|
import com.persagy.server.messagecenter.models.entities.Message
|
|
|
+import com.persagy.server.messagecenter.models.entities.Project
|
|
|
import com.persagy.server.messagecenter.models.request.MessageRequest
|
|
|
import com.persagy.server.messagecenter.services.MessageService
|
|
|
-import com.persagy.server.messagecenter.services.activemq.JMSProducer
|
|
|
+import com.persagy.service.SPageContext
|
|
|
import com.persagy.service.models.requests.SCountRequest
|
|
|
import com.persagy.service.models.requests.SQueryRequest
|
|
|
import com.persagy.service.models.requests.SUpdateRequest
|
|
@@ -40,9 +47,7 @@ import com.persagy.service.models.responses.SCreateResponse
|
|
|
import com.persagy.service.models.responses.SQueryResponse
|
|
|
import io.swagger.v3.oas.annotations.Operation
|
|
|
import io.swagger.v3.oas.annotations.tags.Tag
|
|
|
-import org.apache.activemq.command.ActiveMQTopic
|
|
|
import org.slf4j.LoggerFactory
|
|
|
-import org.springframework.beans.factory.annotation.Autowired
|
|
|
import org.springframework.web.bind.annotation.PostMapping
|
|
|
import org.springframework.web.bind.annotation.RequestBody
|
|
|
import org.springframework.web.bind.annotation.RequestMapping
|
|
@@ -75,15 +80,46 @@ open class MessageController {
|
|
|
@PostMapping(value = ["/page-query"])
|
|
|
fun pageQuery(@RequestBody request: SQueryRequest): SQueryResponse<Message> {
|
|
|
logger.debug("MessageQuery =${request.toJson()}")
|
|
|
-// val projectId = SPageContext.getHeader("projectId");
|
|
|
-//
|
|
|
-// if(projectId != null){
|
|
|
-// val withFilterList = ArrayList<SFilter>()
|
|
|
-// withFilterList.add(SFilter.eq("projectId",projectId ))
|
|
|
-//
|
|
|
-// return MessageService.pageQuery(request,withFilterList)
|
|
|
-// }
|
|
|
- return MessageService.pageQuery(request)
|
|
|
+ val response = MessageService.pageQuery(request)
|
|
|
+ if(response == null || response!!.content.isNullOrEmpty()) {
|
|
|
+ return response
|
|
|
+ }
|
|
|
+ val content = response.content
|
|
|
+ val ids = content!!.mapNotNull { it.projectId }
|
|
|
+// val ids = CollUtil.getFieldValues(response.content, "projectId", String.Companion.javaClass)
|
|
|
+ if(ids == null || ids!!.isNullOrEmpty()) {
|
|
|
+ return response
|
|
|
+ }
|
|
|
+ val idSet = HashSet<String>()
|
|
|
+ idSet.addAll(ids)
|
|
|
+ val cond = QueryCriteria();
|
|
|
+ cond.criteria = JsonNodeFactory.instance.objectNode()
|
|
|
+ val arrayNode = cond.criteria.putArray("id")
|
|
|
+ for(id in idSet) {
|
|
|
+ arrayNode.add(id)
|
|
|
+ }
|
|
|
+ cond.criteria.put("classCode", "project")
|
|
|
+ val projects = DigitalObjectFacade.query(SPageContext.getHeader("groupCode"), null,
|
|
|
+ SPageContext.getHeader("appId"), SPageContext.getHeader("userId"), cond)
|
|
|
+ if(projects == null || projects!!.isNullOrEmpty()) {
|
|
|
+ return response
|
|
|
+ }
|
|
|
+ val projectMap = HashMap<String, ObjectNode>()
|
|
|
+ for(project in projects) {
|
|
|
+ projectMap[project.get("id").textValue()] = project
|
|
|
+ }
|
|
|
+ for(message in content!!) {
|
|
|
+ val project = projectMap[message.projectId]
|
|
|
+ if(project == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ val pro = Project();
|
|
|
+ pro.id = project.get("id")!!.textValue()
|
|
|
+ pro.groupCode = project.get("groupCode")!!.textValue();
|
|
|
+ pro.name = project.get("name")!!.textValue();
|
|
|
+ message.project = arrayListOf(pro)
|
|
|
+ }
|
|
|
+ return response
|
|
|
|
|
|
}
|
|
|
|