From d51edfc9a2ebb14779985d419a03fa146dc8ef06 Mon Sep 17 00:00:00 2001 From: Klaus Date: Thu, 5 Mar 2026 13:47:24 +0900 Subject: [PATCH] =?UTF-8?q?fix(calculate):=20=ED=81=AC=EB=A6=AC=EC=97=90?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=EB=B3=84=20=EC=A0=95=EC=82=B0=20=EC=A1=B0?= =?UTF-8?q?=ED=9A=8C=20GROUP=20BY=20=EC=98=A4=EB=A5=98=EB=A5=BC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ฆฌ์ž์ •์‚ฐ์ฝ˜ํ…์ธ ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„์กฐํšŒSQL์˜ค๋ฅ˜์ˆ˜์ •.md | 20 +++++++++++++++++++ .../AdminCalculateQueryRepository.kt | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 docs/20260305_๊ด€๋ฆฌ์ž์ •์‚ฐ์ฝ˜ํ…์ธ ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„์กฐํšŒSQL์˜ค๋ฅ˜์ˆ˜์ •.md diff --git a/docs/20260305_๊ด€๋ฆฌ์ž์ •์‚ฐ์ฝ˜ํ…์ธ ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„์กฐํšŒSQL์˜ค๋ฅ˜์ˆ˜์ •.md b/docs/20260305_๊ด€๋ฆฌ์ž์ •์‚ฐ์ฝ˜ํ…์ธ ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„์กฐํšŒSQL์˜ค๋ฅ˜์ˆ˜์ •.md new file mode 100644 index 00000000..5be047cf --- /dev/null +++ b/docs/20260305_๊ด€๋ฆฌ์ž์ •์‚ฐ์ฝ˜ํ…์ธ ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„์กฐํšŒSQL์˜ค๋ฅ˜์ˆ˜์ •.md @@ -0,0 +1,20 @@ +# ๊ด€๋ฆฌ์ž ์ •์‚ฐ ์ฝ˜ํ…์ธ  ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„ ์กฐํšŒ SQL ์˜ค๋ฅ˜ ์ˆ˜์ • ์ž‘์—… ๊ณ„ํš + +- [x] `/admin/calculate/content-by-creator` ํ˜ธ์ถœ ๊ฒฝ๋กœ(Controller/Service/Repository)์™€ SQL ์ƒ์„ฑ ์ง€์ ์„ ํ™•์ธํ•œ๋‹ค. +- [x] `ONLY_FULL_GROUP_BY` ์œ„๋ฐ˜ ์›์ธ(`content_settlement_ratio` ๋น„์ง‘๊ณ„ ์ปฌ๋Ÿผ)์„ ์ œ๊ฑฐํ•˜๋Š” ์ตœ์†Œ ์ˆ˜์ •์•ˆ์„ ์ ์šฉํ•œ๋‹ค. +- [x] ์ˆ˜์ •๋œ ์ฟผ๋ฆฌ๊ฐ€ ๊ธฐ์กด ์‘๋‹ต ์Šคํ‚ค๋งˆ/์ •์‚ฐ ๊ณ„์‚ฐ ๋กœ์ง๊ณผ ํ˜ธํ™˜๋˜๋Š”์ง€ ์ฝ”๋“œ ๋ ˆ๋ฒจ๋กœ ๊ฒ€์ฆํ•œ๋‹ค. +- [x] `lsp_diagnostics`, ๊ด€๋ จ ํ…Œ์ŠคํŠธ, ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•ด ์ •์ƒ ๋™์ž‘์„ ๊ฒ€์ฆํ•œ๋‹ค. + +## ๊ฒ€์ฆ ๊ธฐ๋ก + +### 1์ฐจ ์ˆ˜์ • +- ๋ฌด์—‡์„: `AdminCalculateQueryRepository#getCalculateContentByCreator`์˜ `groupBy`๋ฅผ `member.id`์—์„œ `member.id, creatorSettlementRatio.contentSettlementRatio`๋กœ ์ˆ˜์ •ํ•ด SELECT์˜ ๋น„์ง‘๊ณ„ ์ปฌ๋Ÿผ(`contentSettlementRatio`)์ด GROUP BY์— ํฌํ•จ๋˜๋„๋ก ๋ณ€๊ฒฝํ–ˆ๋‹ค. +- ์™œ: `/admin/calculate/content-by-creator` ์กฐํšŒ ์‹œ `creator_settlement_ratio.content_settlement_ratio`๊ฐ€ SELECT ์ ˆ์— ์กด์žฌํ•˜์ง€๋งŒ GROUP BY์— ์—†์–ด MySQL `ONLY_FULL_GROUP_BY` ๋ชจ๋“œ์—์„œ SQLSyntaxErrorException์ด ๋ฐœ์ƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. +- ์–ด๋–ป๊ฒŒ: + - ๊ฒฝ๋กœ/์›์ธ ํ™•์ธ: `AdminCalculateController#getCalculateContentByCreator` -> `AdminCalculateService#getCalculateContentByCreator` -> `AdminCalculateQueryRepository#getCalculateContentByCreator` ํ˜ธ์ถœ ์ฒด์ธ์„ ํ™•์ธํ–ˆ๋‹ค. + - ์ฝ”๋“œ ์ˆ˜์ •: `src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt`์˜ ์ฝ˜ํ…์ธ  ํฌ๋ฆฌ์—์ดํ„ฐ๋ณ„ ์กฐํšŒ ์ฟผ๋ฆฌ `groupBy`๋ฅผ ๋ณด์™„ํ–ˆ๋‹ค. + - ๊ฒ€์ฆ ์‹คํ–‰ ๊ฒฐ๊ณผ: + - `lsp_diagnostics` (`AdminCalculateQueryRepository.kt`) -> Kotlin LSP ๋ฏธ์„ค์ •์œผ๋กœ ์ง„๋‹จ ๋ถˆ๊ฐ€ + - `./gradlew test` -> ์„ฑ๊ณต + - `./gradlew build -x test` -> ์„ฑ๊ณต + - `./gradlew tasks --all` -> ์„ฑ๊ณต diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt index 390d75a6..0549a4a7 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/admin/calculate/AdminCalculateQueryRepository.kt @@ -361,7 +361,7 @@ class AdminCalculateQueryRepository(private val queryFactory: JPAQueryFactory) { .and(order.createdAt.loe(endDate)) .and(order.isActive.isTrue) ) - .groupBy(member.id) + .groupBy(member.id, creatorSettlementRatio.contentSettlementRatio) .orderBy(member.id.desc()) .offset(offset) .limit(limit)