fix: 적대적 코드리뷰 후속 — 신규 도메인 5건 버그 수정

서브에이전트 4영역 적대적 리뷰(P7/P8 서비스·매퍼·배치·어댑터)에서 확정된 결함 수정.

- [HIGH] HqSettleItem update 시 status가 NULL로 덮어써짐(SaveReq에 status 없음)
  → status = COALESCE(#{status}, status) 로 수정 불변 보장.
- [MED] 소개·이관수수료 RATE/FIXED 분기를 요청 commissionRate 유무로 판정 → 활성 룰의
  calc_type 을 권위로 사용(FIXED=fixed_amount, RATE=요청rate||룰rate), 룰 없을 때만 요청rate 폴백.
- [MED] 지점장수당 cap 미적용(주석-코드 불일치) → SaveReq.capAmount 추가 + allowance = min(base×rate, cap).
- [MED] PUSH 외부호출 감사로그 요약 누락 → ExternalCallLoggingAspect applyRequest/applyResponse 에
  PushRequest/PushResponse 분기 추가(토큰 마스킹, messageId/sent/resultCode).
- [LOW] 공동계약 update 지분율 검증 키 불일치 → 기존 레코드 contractId 기준으로 검증/갱신(계약 이동 불가).

배치 통합 리뷰 결과 CLEAN(무결성·집계·upsert 정확). 전체 ./gradlew build(test 포함) SUCCESSFUL.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
GA Pro
2026-05-31 21:27:14 +09:00
parent 51f340e36e
commit 5d5c2d53aa
6 changed files with 52 additions and 15 deletions
@@ -36,4 +36,8 @@ public class BranchMgrAllowanceLedgerSaveReq {
@DecimalMin("0")
private BigDecimal clawbackAmount;
/** 수당 상한(룰의 cap_amount). 지정 시 allowance_amount = min(base×rate, cap). NULL이면 상한 없음. */
@DecimalMin("0")
private BigDecimal capAmount;
}
@@ -72,7 +72,7 @@
item_name = #{itemName},
amount = #{amount},
memo = #{memo},
status = #{status},
status = COALESCE(#{status}, status),
updated_at = NOW()
WHERE item_id = #{itemId}
</update>