From 346f1c991a77804e6a0421314a67f9e82f5fef2d Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 26 Dec 2024 18:51:07 -0500 Subject: [PATCH] [O] Rewrite upsert chargelog --- .../sega/chusan/ChusanServletController.kt | 10 +++- .../handler/UpsertUserChargelogHandler.java | 57 ------------------- .../aqua/sega/chusan/model/Chu3Repos.kt | 1 + 3 files changed, 8 insertions(+), 60 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserChargelogHandler.java diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt index c1a97a5c..cecbfdb0 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt @@ -258,9 +258,13 @@ fun ChusanServletController.init() { ) } - "GetUserCardPrintError" { - - + // Upserts + "UpsertUserChargelog" { + val charge = parsing { mapper.convert(data["userCharge"] as JDict) } + charge.user = db.userData.findByCard_ExtId(uid)() ?: (400 - "User not found") + charge.id = db.userCharge.findByUser_Card_ExtIdAndChargeId(uid, charge.chargeId)?.id ?: 0 + db.userCharge.save(charge) + """{"returnCode":"1"}""" } // Static diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserChargelogHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserChargelogHandler.java deleted file mode 100644 index e23d8d2c..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/UpsertUserChargelogHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -package icu.samnyan.aqua.sega.chusan.handler; - -import com.fasterxml.jackson.core.JsonProcessingException; -import icu.samnyan.aqua.sega.general.BaseHandler; -import icu.samnyan.aqua.sega.chusan.model.userdata.UserCharge; -import icu.samnyan.aqua.sega.chusan.model.userdata.Chu3UserData; -import icu.samnyan.aqua.sega.chusan.service.UserChargeService; -import icu.samnyan.aqua.sega.chusan.service.UserDataService; -import icu.samnyan.aqua.sega.util.jackson.StringMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import java.util.Map; - -/** - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("ChusanUpsertUserChargelogHandler") -public class UpsertUserChargelogHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(UpsertUserChargelogHandler.class); - - private final StringMapper mapper; - - private final UserDataService userDataService; - private final UserChargeService userChargeService; - - public UpsertUserChargelogHandler(StringMapper mapper, UserDataService userDataService, UserChargeService userChargeService) { - this.mapper = mapper; - this.userDataService = userDataService; - this.userChargeService = userChargeService; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - String userId = (String) request.get("userId"); - Chu3UserData user = userDataService.getUserByExtId(userId).orElseThrow(); - - Map userChargeMap = (Map) request.get("userCharge"); - String chargeId = (String) userChargeMap.get("chargeId"); - UserCharge charge = mapper.convert(userChargeMap, UserCharge.class); - - UserCharge userCharge = userChargeService.getByUserAndChargeId(user, Integer.parseInt(chargeId)).orElseGet(() -> new UserCharge(user)); - userCharge.setChargeId(charge.getChargeId()); - userCharge.setStock(charge.getStock()); - userCharge.setPurchaseDate(charge.getPurchaseDate()); - userCharge.setValidDate(charge.getValidDate()); - userCharge.setParam1(charge.getParam1()); - userCharge.setParam2(charge.getParam2()); - userCharge.setParamDate(charge.getParamDate()); - - userChargeService.save(userCharge); - - return "{\"returnCode\":\"1\"}"; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt index bb5fbd3e..f11368b9 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Chu3Repos.kt @@ -60,6 +60,7 @@ interface Chu3UserCharacterRepo : Chu3UserLinked { interface Chu3UserChargeRepo : Chu3UserLinked { fun findByUserAndChargeId(extId: Chu3UserData, chargeId: Int): Optional + fun findByUser_Card_ExtIdAndChargeId(ext: Long, chargeId: Int): UserCharge? } interface Chu3UserCourseRepo : Chu3UserLinked {