From 3b80b8d7f1bada35ed3d925b4ae3bc3b0030d318 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Thu, 8 Aug 2024 00:31:18 -0400 Subject: [PATCH] [F] Fix wrong implementation in GetUserMapAreaApi Thanks rinsama for the patch --- .../GetGameMapAreaConditionHandler.java | 36 ------------ .../handler/GetGameMapAreaConditionHandler.kt | 56 +++++++++++++++++++ .../chusan/handler/GetUserMapAreaHandler.java | 51 ----------------- .../chusan/handler/GetUserMapAreaHandler.kt | 38 +++++++++++++ .../samnyan/aqua/sega/chusan/model/Repos.kt | 3 + 5 files changed, 97 insertions(+), 87 deletions(-) delete mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.java create mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.kt delete mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java create mode 100644 src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.kt diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.java deleted file mode 100644 index e31755af..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.java +++ /dev/null @@ -1,36 +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.util.jackson.StringMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.Map; - -@Component("ChusanGetGameMapAreaConditionHandler") -public class GetGameMapAreaConditionHandler implements BaseHandler { - private static final Logger logger = LoggerFactory.getLogger(GetGameMapAreaConditionHandler.class); - - private final StringMapper mapper; - - @Autowired - public GetGameMapAreaConditionHandler(StringMapper mapper) { - this.mapper = mapper; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - logger.info("MapAreaCondition Dummy Handler"); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("mapAreaConditionList", new LinkedHashMap<>()); - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.kt new file mode 100644 index 00000000..e2d4ea6c --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetGameMapAreaConditionHandler.kt @@ -0,0 +1,56 @@ +package icu.samnyan.aqua.sega.chusan.handler + +import ext.logger +import icu.samnyan.aqua.sega.general.BaseHandler +import icu.samnyan.aqua.sega.util.jackson.StringMapper +import org.springframework.stereotype.Component + +@Component("ChusanGetGameMapAreaConditionHandler") +class GetGameMapAreaConditionHandler(val mapper: StringMapper) : BaseHandler { + override fun handle(request: Map): String { + val cond = listOf( + mapOf("mapAreaId" to 2206201, "mapAreaConditionList" to listOf( + mapOf("type" to 3, "conditionId" to 6832, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 2206203, "mapAreaConditionList" to listOf( + mapOf("type" to 3, "conditionId" to 6833, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 2206204, "mapAreaConditionList" to listOf( + mapOf("type" to 3, "conditionId" to 6834, "logicalOpe" to 1), + mapOf("type" to 3, "conditionId" to 6835, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 2206205, "mapAreaConditionList" to listOf( + mapOf("type" to 3, "conditionId" to 6837, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 2206206, "mapAreaConditionList" to listOf( + mapOf("type" to 3, "conditionId" to 6838, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 2206207, "mapAreaConditionList" to listOf( + mapOf("type" to 2, "conditionId" to 2206201, "logicalOpe" to 1), + mapOf("type" to 2, "conditionId" to 2206202, "logicalOpe" to 1), + mapOf("type" to 2, "conditionId" to 2206203, "logicalOpe" to 1), + mapOf("type" to 2, "conditionId" to 2206204, "logicalOpe" to 1), + mapOf("type" to 2, "conditionId" to 2206205, "logicalOpe" to 1), + mapOf("type" to 2, "conditionId" to 2206206, "logicalOpe" to 1) + )), + mapOf("mapAreaId" to 3229301, "mapAreaConditionList" to listOf( + mapOf("type" to 1, "conditionId" to 3020701, "logicalOpe" to 2) + )), + mapOf("mapAreaId" to 3229302, "mapAreaConditionList" to listOf( + mapOf("type" to 1, "conditionId" to 3020701, "logicalOpe" to 1) + )) + ) + + val resultMap: MutableMap = linkedMapOf( + "gameMapAreaConditionList" to cond + ) + + val json = mapper.write(resultMap) + logger.info("Response: $json") + return json + } + + companion object { + private val logger = logger() + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java deleted file mode 100644 index 6e31c087..00000000 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.java +++ /dev/null @@ -1,51 +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.UserMap; -import icu.samnyan.aqua.sega.chusan.service.UserMapAreaService; -import icu.samnyan.aqua.sega.util.jackson.StringMapper; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; - -/** - * Handle GetUserMap request - * @author samnyan (privateamusement@protonmail.com) - */ -@Component("ChusanGetUserMapAreaHandler") -public class GetUserMapAreaHandler implements BaseHandler { - - private static final Logger logger = LoggerFactory.getLogger(GetUserMapAreaHandler.class); - - private final StringMapper mapper; - - private final UserMapAreaService userMapAreaService; - - @Autowired - public GetUserMapAreaHandler(StringMapper mapper, UserMapAreaService userMapService) { - this.mapper = mapper; - this.userMapAreaService = userMapService; - } - - @Override - public String handle(Map request) throws JsonProcessingException { - String userId = (String) request.get("userId"); - - List userMapAreaList = userMapAreaService.getByUserId(userId); - - Map resultMap = new LinkedHashMap<>(); - resultMap.put("userId", userId); - resultMap.put("length", userMapAreaList.size()); - resultMap.put("userMapAreaList", userMapAreaList); - - String json = mapper.write(resultMap); - logger.info("Response: " + json); - return json; - } -} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.kt new file mode 100644 index 00000000..4ffae24e --- /dev/null +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/handler/GetUserMapAreaHandler.kt @@ -0,0 +1,38 @@ +package icu.samnyan.aqua.sega.chusan.handler + +import ext.logger +import icu.samnyan.aqua.sega.chusan.model.Chu3UserMapRepo +import icu.samnyan.aqua.sega.general.BaseHandler +import icu.samnyan.aqua.sega.util.jackson.StringMapper +import org.springframework.stereotype.Component + +/** + * Handle GetUserMap request + * @author samnyan (privateamusement@protonmail.com) + */ +@Component("ChusanGetUserMapAreaHandler") +class GetUserMapAreaHandler( + private val mapper: StringMapper, + private val userMapRepo: Chu3UserMapRepo +) : BaseHandler { + + @Suppress("UNCHECKED_CAST") + override fun handle(request: Map): String { + val userId = request["userId"] as String? + val maps = (request["mapAreaIdList"] as List>) + .mapNotNull { it["mapAreaId"]?.toIntOrNull() } + + val resultMap = mapOf( + "userId" to userId, + "userMapAreaList" to userMapRepo.findAllUserMaps(userId?.toLong() ?: return "{}", maps) + ) + + val json = mapper.write(resultMap) + logger.info("Response: $json") + return json + } + + companion object { + private val logger = logger() + } +} diff --git a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt index c1bfc1cf..e51f90f6 100644 --- a/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt +++ b/src/main/java/icu/samnyan/aqua/sega/chusan/model/Repos.kt @@ -92,6 +92,9 @@ interface Chu3UserItemRepo : Chu3UserLinked { interface Chu3UserMapRepo : Chu3UserLinked { fun findTopByUserAndMapAreaIdOrderByIdDesc(user: Chu3UserData, mapAreaId: Int): Optional + + @Query("SELECT uma FROM ChusanUserMapArea uma WHERE uma.user.card.extId = :extId AND uma.mapAreaId IN :mapAreaIds") + fun findAllUserMaps(extId: Long, mapAreaIds: List): List } interface Chu3UserMusicDetailRepo : Chu3UserLinked {