|
@@ -2,6 +2,7 @@ package inn.ocsf.bee.freigeld.core.service
|
|
|
|
|
|
import inn.ocsf.bee.freigeld.core.model.Ticket
|
|
|
import inn.ocsf.bee.freigeld.core.model.TicketStatus
|
|
|
+import inn.ocsf.bee.freigeld.core.model.data.QTicketData.ticketData
|
|
|
import inn.ocsf.bee.freigeld.core.model.data.TicketData
|
|
|
import inn.ocsf.bee.freigeld.core.repo.TicketRepository
|
|
|
import kotlinx.coroutines.GlobalScope
|
|
@@ -50,6 +51,10 @@ class TicketService {
|
|
|
if (ok == true) remove(t)
|
|
|
}
|
|
|
}
|
|
|
+ ticketRepo.findAll(ticketData.peek.gt(255).and(ticketData.status.eq(TicketStatus.created))).forEach {
|
|
|
+ it.status = TicketStatus.failed
|
|
|
+ ticketRepo.save(it)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@PostConstruct
|
|
@@ -90,13 +95,12 @@ class TicketService {
|
|
|
fun peekFirst(topic: String, modifyFn: ((Ticket) -> Ticket)? = null): Ticket? {
|
|
|
val dt = Date()
|
|
|
return findAll(topic, setOf(TicketStatus.created)).filter { it.hold == null || it.hold.before(dt) || it.hold.equals(dt) }.limit(1).findFirst().orElse(null)?.let {
|
|
|
+ it.peek = (it.peek ?: 0L) + 1L
|
|
|
if (modifyFn != null) {
|
|
|
it.ticket = modifyFn(it.ticket)
|
|
|
- ticketRepo.save(it)
|
|
|
- it.ticket
|
|
|
- } else {
|
|
|
- it.ticket
|
|
|
}
|
|
|
+ ticketRepo.save(it)
|
|
|
+ it.ticket
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -104,4 +108,4 @@ class TicketService {
|
|
|
listenerMap.computeIfAbsent(topic) { CopyOnWriteArrayList() }
|
|
|
listenerMap.get(topic)?.add(fn)
|
|
|
}
|
|
|
-}
|
|
|
+}
|