2026-09-07 15:11:33 +08:00
|
|
|
package com.gzzn.omms.msgexchange.ingress
|
|
|
|
|
|
|
|
|
|
import com.gzzn.omms.msgexchange.infra.persistence.CminmsgInboxRepository
|
|
|
|
|
import jakarta.inject.Singleton
|
|
|
|
|
import java.time.Instant
|
|
|
|
|
|
|
|
|
|
/** ACMA-8 流程 1 · compat 写路径:HTTP 落信 + PG 入队(非生产主拓扑;主路径=InboxPoller JDBC 轮询)。 */
|
|
|
|
|
@Singleton
|
|
|
|
|
class InboxService(
|
|
|
|
|
private val inbox: CminmsgInboxRepository,
|
|
|
|
|
private val enqueue: InboxEnqueue,
|
|
|
|
|
) {
|
|
|
|
|
private val log = org.slf4j.LoggerFactory.getLogger(InboxService::class.java)
|
|
|
|
|
|
2026-09-09 17:53:08 +08:00
|
|
|
data class Receipt(val msgId: Long, val receivedAt: Instant)
|
2026-09-07 15:11:33 +08:00
|
|
|
|
|
|
|
|
fun accept(rawXml: String): Receipt {
|
|
|
|
|
val id = inbox.insertRaw(rawXml)
|
|
|
|
|
enqueue.enqueue(id)
|
2026-09-09 17:53:08 +08:00
|
|
|
log.info("compat-accepted msgId={}", id)
|
2026-09-07 15:11:33 +08:00
|
|
|
return Receipt(id, Instant.now())
|
|
|
|
|
}
|
|
|
|
|
}
|