refactor(channelserver): migrate remaining character queries to CharacterRepository

Add 18 new typed methods to CharacterRepository (ReadTime, SaveTime,
SaveInt, SaveBool, SaveString, ReadBool, ReadString, LoadColumnWithDefault,
SetDeleted, UpdateDailyCafe, ResetDailyQuests, ReadEtcPoints, ResetCafeTime,
UpdateGuildPostChecked, ReadGuildPostChecked, SaveMercenary, UpdateGCPAndPact,
FindByRastaID) and migrate ~56 inline SQL queries across 13 handler files.

Pure refactor — zero behavior change. Each handler produces identical SQL
with identical parameters. Cross-table JOINs and bulk CharacterSaveData
operations are intentionally left out of scope.
This commit is contained in:
Houmgaor
2026-02-20 21:57:24 +01:00
parent 197e44d04c
commit d642cbef24
16 changed files with 566 additions and 95 deletions

View File

@@ -64,7 +64,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
var data []byte
// Load existing save
err := s.server.db.QueryRow("SELECT platedata FROM characters WHERE id = $1", s.charID).Scan(&data)
data, err := s.server.charRepo.LoadColumn(s.charID, "platedata")
if err != nil {
s.logger.Error("Failed to load platedata",
zap.Error(err),
@@ -104,7 +104,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
}
dataSize = len(saveOutput)
_, err = s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", saveOutput, s.charID)
err = s.server.charRepo.SaveColumn(s.charID, "platedata", saveOutput)
if err != nil {
s.logger.Error("Failed to save platedata",
zap.Error(err),
@@ -118,7 +118,7 @@ func handleMsgMhfSavePlateData(s *Session, p mhfpacket.MHFPacket) {
dataSize = len(pkt.RawDataPayload)
// simply update database, no extra processing
_, err := s.server.db.Exec("UPDATE characters SET platedata=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
err := s.server.charRepo.SaveColumn(s.charID, "platedata", pkt.RawDataPayload)
if err != nil {
s.logger.Error("Failed to save platedata",
zap.Error(err),
@@ -164,7 +164,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
var data []byte
// Load existing save
err := s.server.db.QueryRow("SELECT platebox FROM characters WHERE id = $1", s.charID).Scan(&data)
data, err := s.server.charRepo.LoadColumn(s.charID, "platebox")
if err != nil {
s.logger.Error("Failed to load platebox", zap.Error(err))
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
@@ -195,7 +195,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
return
}
_, err = s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", saveOutput, s.charID)
err = s.server.charRepo.SaveColumn(s.charID, "platebox", saveOutput)
if err != nil {
s.logger.Error("Failed to save platebox", zap.Error(err))
doAckSimpleSucceed(s, pkt.AckHandle, []byte{0x00, 0x00, 0x00, 0x00})
@@ -206,7 +206,7 @@ func handleMsgMhfSavePlateBox(s *Session, p mhfpacket.MHFPacket) {
} else {
dumpSaveData(s, pkt.RawDataPayload, "platebox")
// simply update database, no extra processing
_, err := s.server.db.Exec("UPDATE characters SET platebox=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
err := s.server.charRepo.SaveColumn(s.charID, "platebox", pkt.RawDataPayload)
if err != nil {
s.logger.Error("Failed to save platebox", zap.Error(err))
}
@@ -242,7 +242,7 @@ func handleMsgMhfSavePlateMyset(s *Session, p mhfpacket.MHFPacket) {
// looks to always return the full thing, simply update database, no extra processing
dumpSaveData(s, pkt.RawDataPayload, "platemyset")
_, err := s.server.db.Exec("UPDATE characters SET platemyset=$1 WHERE id=$2", pkt.RawDataPayload, s.charID)
err := s.server.charRepo.SaveColumn(s.charID, "platemyset", pkt.RawDataPayload)
if err != nil {
s.logger.Error("Failed to save platemyset",
zap.Error(err),