fix: 유저 행동 데이터에 따른 포인트 지급

- 유저가 지급 받을 포인트가 0 이상인 경우에만 포인트 지급 로그를 남기고 푸시 발송
This commit is contained in:
Klaus 2025-05-19 16:27:58 +09:00
parent b102241efd
commit 36b8e8169e
1 changed files with 28 additions and 32 deletions

View File

@ -102,14 +102,17 @@ class UserActionService(
)
if (grantedCount >= policy.availableCount) return@execute
grantLogRepository.save(
PointGrantLog(
memberId = memberId,
point = if (actionType == ActionType.ORDER_CONTENT_COMMENT && order != null) {
val point = if (actionType == ActionType.ORDER_CONTENT_COMMENT && order != null) {
order.can
} else {
policy.pointAmount
},
}
if (point > 0) {
grantLogRepository.save(
PointGrantLog(
memberId = memberId,
point = point,
actionType = actionType,
policyId = policy.id!!,
orderId = order?.id
@ -119,11 +122,7 @@ class UserActionService(
memberPointRepository.save(
MemberPoint(
memberId = memberId,
point = if (actionType == ActionType.ORDER_CONTENT_COMMENT && order != null) {
order.can
} else {
policy.pointAmount
},
point = point,
actionType = actionType,
expiresAt = now.plusDays(3)
)
@ -132,15 +131,12 @@ class UserActionService(
if (pushTokenList.isNotEmpty()) {
fcmService.sendPointGranted(
pushTokenList,
if (actionType == ActionType.ORDER_CONTENT_COMMENT && order != null) {
order.can
} else {
policy.pointAmount
}
point
)
}
}
}
}
} catch (e: Exception) {
logger.warn("포인트 지급 또는 알림 실패: ${e.message}")
}