44dbbf37da
V28 chargeback_grade와 ga-core 동기화. 차등 환수 비즈니스 로직은 P1-3-c.
신규 패키지: com.ga.core.vo.chargeback, com.ga.core.mapper.chargeback
VO 세트:
- ChargebackGradeVO (BaseVO 상속, monthsFrom/monthsTo NULL=무한대)
- ChargebackGradeResp (productCategoryName + monthsRange 표시 문자열)
- ChargebackGradeSaveReq (@Valid: @Min(0) monthsFrom/percent)
- ChargebackGradeSearchParam (productCategory/monthsElapsed/effectiveDate)
ChargebackGradeMapper:
- 표준 CRUD
- selectByMonths(productCategory, monthsElapsed, baseDate)
→ 해당 경과월에 적용되는 환수 비율 1건 (months_from <= monthsElapsed
AND (months_to IS NULL OR months_to >= monthsElapsed)) + 유효기간
+ product_category NULL 안전 비교 + LIMIT 1 최신 우선
- selectAll(baseDate) — months_from ASC + product_category NULLS FIRST
- selectByCategory(productCategory, baseDate)
XML 공통 activeCondition SQL fragment로 중복 제거.