내역 저장 시 현재 월 모든 날에 기록이 있으면 월 1회 랜덤 1~100P 지급. 전월 소급 입력 파밍 방지(현재 월만 인정), 화면 안내 없음(포인트 내역에만). - AccountEntryMapper.countDistinctEntryDays, PointMapper.countByReason - PointService.awardMonthComplete(reason=MONTH_COMPLETE_yyyyMM 로 월 1회) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -246,4 +246,13 @@
|
||||
ORDER BY aet.entry_id, t.name
|
||||
</select>
|
||||
|
||||
<!-- 특정 연·월에 기록이 있는 서로 다른 날짜 수(한 달 개근 판정) -->
|
||||
<select id="countDistinctEntryDays" resultType="int">
|
||||
SELECT COUNT(DISTINCT DAY(entry_date))
|
||||
FROM account_entry
|
||||
WHERE member_id = #{memberId}
|
||||
AND YEAR(entry_date) = #{year}
|
||||
AND MONTH(entry_date) = #{month}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -8,6 +8,11 @@
|
||||
WHERE member_id = #{memberId} AND reason = #{reason} AND created_at >= CURDATE()
|
||||
</select>
|
||||
|
||||
<select id="countByReason" resultType="int">
|
||||
SELECT COUNT(*) FROM point_history
|
||||
WHERE member_id = #{memberId} AND reason = #{reason}
|
||||
</select>
|
||||
|
||||
<insert id="insertHistory">
|
||||
INSERT INTO point_history (member_id, amount, reason, created_at)
|
||||
VALUES (#{memberId}, #{amount}, #{reason}, NOW())
|
||||
|
||||
Reference in New Issue
Block a user