調整各層資料轉換

This commit is contained in:
2026-08-04 21:24:24 +08:00
parent 8c99ba1147
commit 77a1690e08
6 changed files with 51 additions and 15 deletions
@@ -2,6 +2,7 @@ package club.sakunadaisuki.pcrediveclanrecordbackend.mapper
import club.sakunadaisuki.pcrediveclanrecordbackend.database.dto.MemberDto import club.sakunadaisuki.pcrediveclanrecordbackend.database.dto.MemberDto
import club.sakunadaisuki.pcrediveclanrecordbackend.model.Member import club.sakunadaisuki.pcrediveclanrecordbackend.model.Member
import club.sakunadaisuki.pcrediveclanrecordbackend.model.MemberRequest
fun Member.toDto(): MemberDto { fun Member.toDto(): MemberDto {
return MemberDto( return MemberDto(
@@ -13,4 +14,14 @@ fun Member.toDto(): MemberDto {
createAt = createAt, createAt = createAt,
updatedAt = updatedAt, updatedAt = updatedAt,
) )
}
fun MemberRequest.toDto(): MemberDto {
return MemberDto(
uid = uid,
playerName = playerName,
discordName = discordName,
discordID = discordID,
leave = leave,
)
} }
@@ -1,21 +1,23 @@
package club.sakunadaisuki.pcrediveclanrecordbackend.model package club.sakunadaisuki.pcrediveclanrecordbackend.model
import club.sakunadaisuki.pcrediveclanrecordbackend.database.dto.AttackDetailDto
import kotlinx.serialization.SerialName
import java.time.Instant import java.time.Instant
data class BattleRecord( data class BattleRecord(
val date: String, // yyyy-MM-dd val date: String, // yyyy-MM-dd
var uid: String, var uid: String,
val playerName: String, @SerialName("player_name") val playerName: String,
val discordName: String, @SerialName("discord_name") val discordName: String,
val discordID: String, @SerialName("discord_id") val discordID: String,
val attackDetailList: List<AttackDetail> @SerialName("attack_detail_list") val attackDetailList: List<AttackDetail>
) )
data class AttackDetail( data class AttackDetail(
val bossRound: Int, // 周目 @SerialName("boss_round") val bossRound: Int, // 周目
val bossIndex: Int, // 1~5 號王 @SerialName("boss_index") val bossIndex: Int, // 1~5 號王
val damage: Long, // 傷害 val damage: Long, // 傷害
val isCompensation: Boolean = false, // true: 補償刀, false: 正刀 @SerialName("is_compensation") val isCompensation: Boolean = false, // true: 補償刀, false: 正刀
val createdAt: Long = Instant.now().toEpochMilli(), @SerialName("created_at") val createdAt: Long = Instant.now().toEpochMilli(),
val updatedAt: Long = Instant.now().toEpochMilli() @SerialName("updated_at") val updatedAt: Long = Instant.now().toEpochMilli()
) )
@@ -1,11 +1,15 @@
package club.sakunadaisuki.pcrediveclanrecordbackend.model package club.sakunadaisuki.pcrediveclanrecordbackend.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Member( data class Member(
var uid: String, var uid: String,
val playerName: String, @SerialName("player_name") val playerName: String,
val discordName: String, @SerialName("discord_name") val discordName: String,
val discordID: String, @SerialName("discord_id") val discordID: String,
var leave: Boolean = false, var leave: Boolean = false,
var createAt: Long? = null, @SerialName("created_at") var createAt: Long? = null,
var updatedAt: Long? = null @SerialName("updated_at") var updatedAt: Long? = null
) )
@@ -0,0 +1,13 @@
package club.sakunadaisuki.pcrediveclanrecordbackend.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class MemberRequest(
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,
)
@@ -7,6 +7,7 @@ import club.sakunadaisuki.pcrediveclanrecordbackend.database.service.MemberServi
import club.sakunadaisuki.pcrediveclanrecordbackend.mapper.toDto import club.sakunadaisuki.pcrediveclanrecordbackend.mapper.toDto
import club.sakunadaisuki.pcrediveclanrecordbackend.model.AttackDetail import club.sakunadaisuki.pcrediveclanrecordbackend.model.AttackDetail
import club.sakunadaisuki.pcrediveclanrecordbackend.model.BattleRecordRequest import club.sakunadaisuki.pcrediveclanrecordbackend.model.BattleRecordRequest
import club.sakunadaisuki.pcrediveclanrecordbackend.model.MemberRequest
import com.mongodb.client.* import com.mongodb.client.*
import io.ktor.http.* import io.ktor.http.*
import io.ktor.server.application.* import io.ktor.server.application.*
@@ -42,7 +43,7 @@ fun Application.configureMongo() {
} }
// Create member // Create member
post("/member") { post("/member") {
val member = call.receive<Member>() val member = call.receive<MemberRequest>()
val id = memberService.create(member.toDto()) val id = memberService.create(member.toDto())
call.respond(HttpStatusCode.Created, id) call.respond(HttpStatusCode.Created, id)
} }
+5
View File
@@ -7,3 +7,8 @@ ktor:
- club.sakunadaisuki.pcrediveclanrecordbackend.plugins.SerializationKt.configureSerialization - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.SerializationKt.configureSerialization
- club.sakunadaisuki.pcrediveclanrecordbackend.plugins.MongoKt.configureMongo - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.MongoKt.configureMongo
- club.sakunadaisuki.pcrediveclanrecordbackend.plugins.RoutingKt.configureRouting - club.sakunadaisuki.pcrediveclanrecordbackend.plugins.RoutingKt.configureRouting
db:
mongo:
user: ray650128
password: Zx0987062271!
host: 192.168.50.128