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 efd9c80c..e27628bc 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/ChusanServletController.kt @@ -16,6 +16,7 @@ import icu.samnyan.aqua.sega.general.RequestContext import icu.samnyan.aqua.sega.general.SpecialHandler import icu.samnyan.aqua.sega.general.model.response.UserRecentRating import icu.samnyan.aqua.sega.general.toSpecial +import icu.samnyan.aqua.sega.util.jackson.BasicMapper import icu.samnyan.aqua.sega.util.jackson.StringMapper import icu.samnyan.aqua.spring.Metrics import jakarta.servlet.http.HttpServletRequest @@ -35,12 +36,12 @@ import kotlin.reflect.full.declaredMemberProperties class ChusanServletController( val gameLogin: GameLoginHandler, val upsertUserAll: UpsertUserAllHandler, - val cmGetUserCharacter: CMGetUserCharacterHandler, val cmUpsertUserGacha: CMUpsertUserGachaHandler, val cmUpsertUserPrintSubtract: CMUpsertUserPrintSubtractHandler, val cmUpsertUserPrintCancel: CMUpsertUserPrintCancelHandler, val mapper: StringMapper, + val cmMapper: BasicMapper, val db: Chu3Repos, val us: AquaUserServices, val versionHelper: ChusanVersionHelper, @@ -49,7 +50,7 @@ class ChusanServletController( val log = LoggerFactory.getLogger(ChusanServletController::class.java) // Below are code related to handling the handlers - val externalHandlers = mutableListOf("GameLoginApi", "UpsertUserAllApi", "CMGetUserCharacterApi", + val externalHandlers = mutableListOf("GameLoginApi", "UpsertUserAllApi", "CMUpsertUserGachaApi", "CMUpsertUserPrintCancelApi", "CMUpsertUserPrintSubtractApi") val noopEndpoint = setOf("UpsertClientBookkeepingApi", "UpsertClientDevelopApi", "UpsertClientErrorApi", @@ -95,10 +96,11 @@ class ChusanServletController( return """{"returnCode":"1"}""" } log.info("Chu3 < $api : ${data.toJson()}") + val map = if ("CM" in api) cmMapper else mapper return try { Metrics.timer("aquadx_chusan_api_latency", "api" to api).recordCallable { - handlers[api]!!(ctx).let { if (it is String) it else mapper.write(it) }.also { + handlers[api]!!(ctx).let { if (it is String) it else map.write(it) }.also { if (api !in setOf("GetUserItemApi", "GetGameEventApi")) log.info("Chu3 > $api : $it") } @@ -201,7 +203,7 @@ fun ChusanServletController.init() { mapOf("userId" to uid, "length" to lst.size, "userCardPrintStateList" to lst) } - "GetUserCharacter" { + ls("GetUserCharacter", "CMGetUserCharacter") all { // Let's try not paging at all val lst = db.userCharacter.findByUser_Card_ExtId(uid) mapOf("userId" to uid, "length" to lst.size, "nextIndex" to -1, "userCharacterList" to lst) diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMGetUserCharacterHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMGetUserCharacterHandler.java deleted file mode 100644 index 9dfaeda0..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMGetUserCharacterHandler.java +++ /dev/null @@ -1,68 +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.UserCharacter; -import icu.samnyan.aqua.sega.chusan.service.UserCharacterService; -import icu.samnyan.aqua.sega.util.jackson.BasicMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * Handle getUserCharacter request - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("ChusanCMGetUserCharacterHandler") -public class CMGetUserCharacterHandler implements BaseHandler { - - - private static final Logger logger = LoggerFactory.getLogger(CMGetUserCharacterHandler.class); - - private final BasicMapper mapper; - - private final UserCharacterService userCharacterService; - - - @Autowired - public CMGetUserCharacterHandler(BasicMapper mapper, UserCharacterService userCharacterService) { - this.mapper = mapper; - this.userCharacterService = userCharacterService; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - String userId = String.valueOf(request.get("userId")); - int nextIndex = ((Number) request.get("nextIndex")).intValue(); - int maxCount = ((Number) request.get("maxCount")).intValue(); - - int pageNum = nextIndex / maxCount; - - Page dbPage = userCharacterService.getByUserId(userId, pageNum, maxCount); - - long currentIndex = maxCount * pageNum + dbPage.getNumberOfElements(); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", dbPage.getNumberOfElements()); - resultMap.put("nextIndex", dbPage.getNumberOfElements() < maxCount ? -1 : currentIndex); - List userCharacterIdList = new ArrayList<>(); - - dbPage.getContent().forEach(userCharacter -> { - userCharacterIdList.add(userCharacter.getCharacterId()); - }); - - resultMap.put("userCharacterList", userCharacterIdList); - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserGachaHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserGachaHandler.java index 20d92416..2f052a07 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserGachaHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserGachaHandler.java @@ -13,6 +13,7 @@ import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem; import icu.samnyan.aqua.sega.chusan.service.UserDataService; import icu.samnyan.aqua.sega.chusan.service.UserItemService; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; +import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -24,6 +25,7 @@ import java.util.*; /** * @author samnyan (privateamusement@protonmail.com) */ +@AllArgsConstructor @Component("ChusanCMUpsertUserGachaHandler") public class CMUpsertUserGachaHandler implements BaseHandler { @@ -34,19 +36,8 @@ public class CMUpsertUserGachaHandler implements BaseHandler { private final UserItemService userItemService; private final BasicMapper mapper; - @Autowired - public CMUpsertUserGachaHandler(UserItemService userItemService, UserDataService userDataService, - Chu3UserCardPrintStateRepo userCardPrintStateRepository, BasicMapper mapper, - Chu3UserGachaRepo userGachaRepository) { - this.userCardPrintStateRepository = userCardPrintStateRepository; - this.userGachaRepository = userGachaRepository; - this.userDataService = userDataService; - this.userItemService = userItemService; - this.mapper = mapper; - } - @Override - public String handle(Map request) throws JsonProcessingException { + public Object handle(Map request) throws JsonProcessingException { String userId = String.valueOf(request.get("userId")); int gachaId = ((Number) request.get("gachaId")).intValue(); int placeId = ((Number) request.get("placeId")).intValue(); @@ -105,8 +96,6 @@ public class CMUpsertUserGachaHandler implements BaseHandler { resultMap.put("apiName", "CMUpsertUserGachaApi"); resultMap.put("userCardPrintStateList", userCardPrintStateList); - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; + return resultMap; } } diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserPrintSubtractHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserPrintSubtractHandler.java index d5c0fa64..b46bba73 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserPrintSubtractHandler.java +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/CMUpsertUserPrintSubtractHandler.java @@ -10,6 +10,7 @@ import icu.samnyan.aqua.sega.chusan.model.userdata.UserItem; import icu.samnyan.aqua.sega.chusan.service.UserDataService; import icu.samnyan.aqua.sega.chusan.service.UserItemService; import icu.samnyan.aqua.sega.util.jackson.BasicMapper; +import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,6 +21,7 @@ import java.util.*; /** * @author samnyan (privateamusement@protonmail.com) */ +@AllArgsConstructor @Component("ChusanCMUpsertUserPrintSubtractHandler") public class CMUpsertUserPrintSubtractHandler implements BaseHandler { @@ -29,14 +31,6 @@ public class CMUpsertUserPrintSubtractHandler implements BaseHandler { private final UserDataService userDataService; private final BasicMapper mapper; - @Autowired - public CMUpsertUserPrintSubtractHandler(UserItemService userItemService, UserDataService userDataService, Chu3UserCardPrintStateRepo userCardPrintStateRepository, BasicMapper mapper) { - this.userCardPrintStateRepository = userCardPrintStateRepository; - this.userItemService = userItemService; - this.userDataService = userDataService; - this.mapper = mapper; - } - @Override public String handle(Map request) throws JsonProcessingException { String userId = String.valueOf(request.get("userId"));