填表加上自動更新原有資料的功能
This commit is contained in:
parent
85e0c18115
commit
525ae4d2b5
@ -21,6 +21,11 @@ object MemberRecordService {
|
|||||||
return recordCollection.findOne(MemberRecord::_id eq bsonId)
|
return recordCollection.findOne(MemberRecord::_id eq bsonId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun findByMemberIdBetweenDate(id: String, start: Long, end: Long): MemberRecord? {
|
||||||
|
val bsonId: Id<Member> = ObjectId(id).toId()
|
||||||
|
return recordCollection.findOne(MemberRecord::memberId eq bsonId, MemberRecord::createdAt gte start, MemberRecord::createdAt lt end)
|
||||||
|
}
|
||||||
|
|
||||||
fun findByTimeBetween(start: Long, end: Long): List<MemberRecord> {
|
fun findByTimeBetween(start: Long, end: Long): List<MemberRecord> {
|
||||||
return recordCollection.find(MemberRecord::createdAt gte start, MemberRecord::createdAt lt end).toList()
|
return recordCollection.find(MemberRecord::createdAt gte start, MemberRecord::createdAt lt end).toList()
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,20 +32,38 @@ fun Application.configureMemberRecordRouting() {
|
|||||||
}
|
}
|
||||||
post("/{id}") {
|
post("/{id}") {
|
||||||
val id = call.parameters.getOrFail<String>("id")
|
val id = call.parameters.getOrFail<String>("id")
|
||||||
val now = Calendar.getInstance()
|
|
||||||
|
|
||||||
val record = call.receive<MemberRecord>()
|
val record = call.receive<MemberRecord>()
|
||||||
val member = MemberService.findById(id) ?: run {
|
val member = MemberService.findById(id) ?: run {
|
||||||
call.respond(HttpStatusCode.NotFound)
|
call.respond(HttpStatusCode.NotFound)
|
||||||
return@post
|
return@post
|
||||||
}
|
}
|
||||||
record.apply {
|
|
||||||
|
val now = Calendar.getInstance()
|
||||||
|
val startTime = getDayStartLong(now[Calendar.YEAR], now[Calendar.MONTH], now[Calendar.DAY_OF_MONTH])
|
||||||
|
val endTime = getDayEndLong(now[Calendar.YEAR], now[Calendar.MONTH], now[Calendar.DAY_OF_MONTH])
|
||||||
|
val existData = MemberRecordService.findByMemberIdBetweenDate(id, startTime, endTime) ?: run {
|
||||||
|
record.apply {
|
||||||
|
memberId = member._id
|
||||||
|
createdAt = System.currentTimeMillis()
|
||||||
|
updatedAt = System.currentTimeMillis()
|
||||||
|
}
|
||||||
|
MemberRecordService.create(record).let {
|
||||||
|
call.respond(HttpStatusCode.OK, record)
|
||||||
|
}
|
||||||
|
return@post
|
||||||
|
}
|
||||||
|
existData.apply {
|
||||||
memberId = member._id
|
memberId = member._id
|
||||||
createdAt = System.currentTimeMillis()
|
record1 = record.record1
|
||||||
|
record1c = record.record1c
|
||||||
|
record2 = record.record2
|
||||||
|
record2c = record.record2c
|
||||||
|
record3 = record.record3
|
||||||
|
record3c = record.record3c
|
||||||
updatedAt = System.currentTimeMillis()
|
updatedAt = System.currentTimeMillis()
|
||||||
}
|
}
|
||||||
MemberRecordService.create(record).let {
|
MemberRecordService.updateById(existData._id.toString(), existData).let {
|
||||||
call.respond(HttpStatusCode.OK, record)
|
call.respond(HttpStatusCode.OK, existData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
get("/{year}/{month}/{day}") {
|
get("/{year}/{month}/{day}") {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user