From 7c390aebdf21407df3bf3ed188c6098df3cc3680 Mon Sep 17 00:00:00 2001 From: Raymond Yang Date: Sun, 9 Aug 2026 02:57:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=88=90=E5=93=A1=E6=AC=84?= =?UTF-8?q?=E4=BD=8D=E5=B1=AC=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../database/dto/MemberDto.kt | 4 ++-- .../database/service/MemberService.kt | 10 +++++++++- .../pcrediveclanrecordbackend/model/Member.kt | 4 ++-- .../model/UpdateMemberRequest.kt | 2 +- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/dto/MemberDto.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/dto/MemberDto.kt index 212db94..4370598 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/dto/MemberDto.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/dto/MemberDto.kt @@ -8,11 +8,11 @@ import java.time.Instant @Serializable data class MemberDto( - var uid: String, + @SerialName("uid") var uid: String, @SerialName("player_name") val playerName: String, @SerialName("discord_name") val discordName: String, @SerialName("discord_id") val discordID: String, - var leave: Boolean = false, + @SerialName("leave") var leave: Boolean, @SerialName("created_at") var createAt: Long? = null, @SerialName("updated_at") var updatedAt: Long? = null ) { diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/service/MemberService.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/service/MemberService.kt index 1beae6a..8131bef 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/service/MemberService.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/database/service/MemberService.kt @@ -38,7 +38,15 @@ class MemberService(private val database: MongoDatabase) { // Update a member suspend fun update(uid: String, data: MemberDto): MemberDto? = withContext(Dispatchers.IO) { - collection.findOneAndReplace(Filters.eq("uid", uid), data.toDocument()) + collection.find(Filters.eq("uid", uid)).first()?.let(MemberDto::fromDocument)?.copy( + playerName = data.playerName, + discordName = data.discordName, + discordID = data.discordID, + leave = data.leave, + updatedAt = System.currentTimeMillis(), + )?.let { + collection.findOneAndReplace(Filters.eq("uid", uid), it.toDocument()) + } collection.find(Filters.eq("uid", uid)).first()?.let(MemberDto::fromDocument) } diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt index abf8159..f6af23e 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/Member.kt @@ -5,11 +5,11 @@ import kotlinx.serialization.Serializable @Serializable data class Member( - var uid: String, + @SerialName("uid") var uid: String, @SerialName("player_name") val playerName: String, @SerialName("discord_name") val discordName: String, @SerialName("discord_id") val discordID: String, - var leave: Boolean = false, + @SerialName("leave") var leave: Boolean, @SerialName("created_at") var createAt: Long? = null, @SerialName("updated_at") var updatedAt: Long? = null ) \ No newline at end of file diff --git a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/UpdateMemberRequest.kt b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/UpdateMemberRequest.kt index 143c262..193a268 100644 --- a/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/UpdateMemberRequest.kt +++ b/src/main/kotlin/club/sakunadaisuki/pcrediveclanrecordbackend/model/UpdateMemberRequest.kt @@ -8,5 +8,5 @@ data class UpdateMemberRequest( @SerialName("player_name") val playerName: String, @SerialName("discord_name") val discordName: String, @SerialName("discord_id") val discordID: String, - var leave: Boolean = false, + @SerialName("leave") var leave: Boolean, ) \ No newline at end of file