GA Pro
ff6d399dd3
feat: 수수료 공식 갭 보완 + 8종 신규모듈 풀스택 (V116~V123)
...
수수료 공식 갭분석(5 병렬감사) 후 확정 버그 3건 수정 + 개념적으로 빠진 모듈 8종 풀스택 구현.
[확정 버그 3건]
- 1200% 누적한도(checkContractTotal)를 배치 CalcRecruitStep에 연결(기존 1차년 한도만 적용
→ 두 한도 중 더 제한적인 값으로 clip+이연). +CalcRecruitStepTest
- BatchInstallmentPlanGenerator planMonth 반영(하드코딩 1 제거, API판과 동일). +단위테스트
- PersistencyBonus 임계유지율 게이트 + FIXED 정액 룰 도출. +PersistencyBonusServiceTest
[신규 모듈 8종]
- MOD-1 도입수수료(recruiter/development) / MOD-2 선지급·차익정산 / MOD-3 환수 분할상환
- MOD-4 익월부활 재지급 / MOD-5 정산대사 입수 / MOD-6 환수 시효 / MOD-7 환수 감면
- MOD-8 채널별 수수료차등(sales_channel)
각 DB(테이블+메뉴+권한+공통코드)→VO/Mapper/Enum→Service/Controller→화면 풀스택.
배치 정산연계: AggregateStep에 도입/익월부활 가산(11종), 선지급 FIFO 상계(멱등 reverse),
MOD-8 채널 우선 요율조회(NULL 폴백 하위호환).
[검증]
- 전체 ./gradlew build(전 모듈+전 테스트) GREEN
- Flyway V116~V123 운영DB 적용(schema v115→v123)
- 라이브 스모크 8 GET=200, MOD-1 RATE공식 50000 실측, 액션 POST 5xx 0건
- 적대적 코드리뷰 APPROVED(MOD-8 계산기 미연결 버그 발견·수정)
스펙: docs/DOMAIN_GAP_MOD1-8.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 17:33:13 +09:00
GA Pro
4a7a4eeb7a
chore: 검증용 토큰/임시 파일 제거 + .gitignore 보강
...
이전 커밋(5ee8321 )에 검증 중 만든 login.json/token.txt 가 실수로 포함되어
JWT 토큰이 히스토리에 노출됨. 토큰은 이미 expired 되었지만(7200s) 즉시 제거.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-24 22:58:05 +09:00
GA Pro
418ff7c13e
chore(claude): Agent Teams 설정 및 7명 에이전트 정의 커밋
...
- .claude/settings.json: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, teammateMode=auto
- .claude/agents/*.md: ga-pro-team 7명(common/core/api/batch/frontend/dba/infra) 정의
- .gitignore: .claude/ 전부 제외 → settings.json + agents/만 공유, settings.local.json은 계속 제외
2026-05-12 22:41:44 +09:00
GA Pro
24fc187e2e
feat(frontend): 09_UI_DESIGN 디자인 시스템 전체 적용
...
테마 / 폰트 / 아이콘:
- ConfigProvider theme 토큰 30+ 추가 (브랜드 컬러, 폰트, 라운딩, 메뉴/테이블/버튼)
- Pretendard 폰트 link + index.css fontFamily 적용
- @tabler/icons-react 추가, MainLayout 에 적용
레이아웃:
- styles/variables.css 신규 (--ga-* 변수 30+)
- MainLayout: Header 48px 흰색 + bottom border, Sider 220px + 토글,
Content 1400px 중앙 정렬, 정산월 MonthPicker, 햄버거 토글
공통 컴포넌트:
- CodeBadge: 4단계 색상 매핑 (success/info/warning/danger), 누락 코드 보강
- MoneyText: 양수 #0F6E56, 음수 #E24B4A, 0 #888 (CSS 변수 사용)
- SearchForm: 배경 #fafafa, borderRadius 8, padding 12px 16px
- DataGrid: rowHeight 36, headerHeight 38, AG_GRID_LOCALE_KO,
합계행 getRowStyle 회색 배경 + 굵게
페이지 페이지네이션 통일:
- utils/tablePagination.ts 신규 (showTotal '총 N건', pageSizeOptions [20/50/100])
- 7개 페이지 (Agent/Contract/Recruit/Exception/Settle/Payment/User) 적용
검증: tsc -b 통과 / vite build 성공 (10s) / 백엔드 단위테스트 76건 영향 없음
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-10 21:34:17 +09:00
GA Pro
e0eaf5a24b
fix: 컴파일/빌드 검증 통과 + Gradle wrapper 추가
...
검증 결과:
- 정적 검증: Mapper-XML 매칭 OK (24개 메뉴코드 ↔ DB 매칭)
- TypeScript: 0 errors (vite-env.d.ts 추가)
- vite build: 성공 (dist/ 생성, 1.3MB → gzip 411KB)
- gradle :ga-api:bootJar: 성공 (74MB)
- gradle :ga-batch:bootJar: 성공 (76MB)
수정 사항:
- ga-common/core/admin: bootJar.enabled=false 제거 (spring-boot 플러그인 미적용 모듈에서 task 참조 에러)
- ga-frontend/vite.config.ts: '@/*' alias 추가 (Rollup이 path resolution 못함)
- ga-frontend/src/vite-env.d.ts: import.meta.env 타입 정의
- ga-frontend/components/ExcelExportButton: params 타입 완화 (Record<string,unknown> | object)
- gradle wrapper 8.6 추가 (./gradlew 사용 가능)
- .gitignore: .claude/ 추가 (Agent Teams 개인 설정)
2026-05-09 23:24:19 +09:00
GA Pro
cef4e48e27
feat: project skeleton + DB migrations V1-V12 + ga-common framework
...
- Gradle multi-module: ga-common, ga-core, ga-api, ga-batch, ga-admin
- Flyway V1-V12: org/product/rule/receive/ledger/settle/batch/code/menu/system + seed
- ga-common (complete):
- model: ApiResponse, PageResponse, SearchParam, TreeNode
- exception: ErrorCode, BizException, GlobalExceptionHandler
- annotation + aop: @RequirePermission, @DataChangeLog, ApiLog
- auth + security: JWT, SecurityConfig
- mybatis: BaseMapper, EncryptTypeHandler, JsonTypeHandler, AuditInterceptor
- code (Redis cached) / menu (RBAC tree) / file / system / notification
- excel: SXSSF+Cursor export, SAX+batch import (1M/700K rows)
- util: Date/Money/Mask/Encrypt/Security
2026-05-09 21:29:18 +09:00