加入換日新增資料

This commit is contained in:
Raymond Yang 2023-06-27 09:50:07 +08:00
parent c6973a3618
commit 493ff96673
3 changed files with 49 additions and 8 deletions

View File

@ -1,10 +1,17 @@
package com.ray650128.pcredive
import com.ray650128.pcredive.database.model.MemberRecord
import com.ray650128.pcredive.database.model.Record
import com.ray650128.pcredive.database.service.MemberRecordService
import com.ray650128.pcredive.database.service.MemberService
import io.ktor.server.application.*
import com.ray650128.pcredive.plugins.*
import java.util.*
fun main(args: Array<String>): Unit =
fun main(args: Array<String>) {
startTimer()
io.ktor.server.netty.EngineMain.main(args)
}
@Suppress("unused") // application.conf references the main function. This annotation prevents the IDE from marking it as unused.
fun Application.module() {
@ -13,3 +20,37 @@ fun Application.module() {
configureMemberRouting()
configureMemberRecordRouting()
}
private fun startTimer() {
val date = Date()
val timer = Timer()
timer.schedule(object : TimerTask() {
override fun run() {
val c = Calendar.getInstance()
val hour = c[Calendar.HOUR_OF_DAY]
val minute = c[Calendar.MINUTE]
val second = c[Calendar.SECOND]
val day = c[Calendar.DAY_OF_MONTH]
val lastDay = c.getActualMaximum(Calendar.DAY_OF_MONTH)
//println("Time: $day, ${String.format("%2d:%2d:%2d", hour, minute, second)}")
if ((day in (lastDay - 5)..lastDay) && (hour == 5 && minute == 0 && second == 0)) {
val members = MemberService.findAll(false)
members.forEach { member ->
MemberRecordService.create(
MemberRecord(
memberId = member._id,
record1 = Record(""),
record1c = Record(""),
record2 = Record(""),
record2c = Record(""),
record3 = Record(""),
record3c = Record(""),
createdAt = System.currentTimeMillis(),
updatedAt = System.currentTimeMillis()
)
)
}
}
}
}, date, 1000L)
}

View File

@ -9,12 +9,12 @@ import org.litote.kmongo.newId
data class MemberRecord(
@Contextual var _id: Id<MemberRecord> = newId(),
@Contextual var memberId: Id<Member>? = null,
var record1: Record = Record("未出"),
var record1c: Record = Record("未出"),
var record2: Record = Record("未出"),
var record2c: Record = Record("未出"),
var record3: Record = Record("未出"),
var record3c: Record = Record("未出"),
var record1: Record = Record(""),
var record1c: Record = Record(""),
var record2: Record = Record(""),
var record2c: Record = Record(""),
var record3: Record = Record(""),
var record3c: Record = Record(""),
var createdAt: Long? = null,
var updatedAt: Long? = null
)

View File

@ -135,7 +135,7 @@ fun getData(year: Int, month: Int, day: Int): List<RecordData> {
val records = ArrayList<RecordData>()
val memberList = MemberService.findAll()
memberList.forEach { member ->
if (member.createAt!! < startTime && !member.leave) {
if ((member.createAt!! < startTime || member.createAt!! > endTime) && !member.leave) {
records.add(
RecordData(member = member, null)
)