LoginService.java
package com.newbit.user.service;
import com.newbit.purchase.command.application.service.PointTransactionCommandService;
import com.newbit.user.entity.LoginHistory;
import com.newbit.user.repository.LoginHistoryRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@RequiredArgsConstructor
public class LoginService {
private final LoginHistoryRepository loginHistoryRepository;
private final PointTransactionCommandService pointTransactionCommandService;
@Transactional
public void handleLoginSuccess(Long userId) {
boolean isFirstLoginToday = loginHistoryRepository.countByUserIdAndToday(userId) == 0;
if (isFirstLoginToday) {
pointTransactionCommandService.givePointByType(userId, "첫 로그인 적립", null); // 로그인 포인트 지급
}
loginHistoryRepository.save(LoginHistory.of(userId)); // 로그인 이력 저장
}
}