This commit is contained in:
2026-09-17 13:29:15 +09:00
6 changed files with 32 additions and 13 deletions

View File

@@ -0,0 +1,10 @@
package com.example.demo.app.domain.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public class LoginModel {
private Long userId;
}

View File

@@ -1,9 +1,9 @@
package com.example.demo.app.domain.service;
import com.example.demo.app.infra.entity.UserEntity;
import com.example.demo.app.domain.model.LoginModel;
public interface LoginService {
UserEntity login(String mailAddress, String password);
LoginModel login(String mailAddress, String password);
}

View File

@@ -1,8 +1,9 @@
package com.example.demo.app.domain.service;
package com.example.demo.app.domain.service.impl;
import org.springframework.stereotype.Service;
import com.example.demo.app.domain.model.AnalysisModel;
import com.example.demo.app.domain.service.AnalysisService;
import lombok.RequiredArgsConstructor;

View File

@@ -2,6 +2,7 @@ package com.example.demo.app.domain.service.impl;
import org.springframework.stereotype.Service;
import com.example.demo.app.domain.model.LoginModel;
import com.example.demo.app.domain.service.LoginService;
import com.example.demo.app.infra.entity.UserEntity;
import com.example.demo.app.infra.repository.UserRepository;
@@ -15,11 +16,16 @@ public class LoginServiceImpl implements LoginService {
private final UserRepository userRepository;
@Override
public UserEntity login(String mailAddress, String password) {
public LoginModel login(String mailAddress, String password) {
return userRepository.findByMailAddressAndPassword(
UserEntity userEntity = userRepository.findByMailAddressAndPassword(
mailAddress,
password).orElse(null);
if (userEntity == null) {
return null;
}
return new LoginModel(userEntity.getUserId());
}
}

View File

@@ -21,5 +21,7 @@ public interface TransactionRepository extends JpaRepository<TransactionEntity,
@Query("select sum(t.amount) from TransactionEntity t inner join CategoryEntity c on t.categoryId = c.categoryId where (t.userId = :userId and t.transactionDate between :startDate and :endDate) and c.transactionType = 1")
public Integer findTotalIncome(LocalDate startDate, LocalDate endDate, Long userId);
@Query("select sum(t.amount) from TransactionEntity t where t.userEntity.userId = :userId and t.categoryEntity.categoryId = :categoryId and t.transactionDate between :startDate and :endDate")
public Integer findCategoryExpense(LocalDate startDate, LocalDate endDate, Long userId, Long categoryId);
}

View File

@@ -8,8 +8,8 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import com.example.demo.app.domain.model.LoginModel;
import com.example.demo.app.domain.service.LoginService;
import com.example.demo.app.infra.entity.UserEntity;
import com.example.demo.app.presentation.form.LoginForm;
import lombok.RequiredArgsConstructor;
@@ -33,13 +33,14 @@ public class LoginController {
@PostMapping("/login")
public String login(
@ModelAttribute LoginForm loginForm,
Model model, HttpSession session) {
Model model,
HttpSession session) {
UserEntity loginUser = loginService.login(
LoginModel loginModel = loginService.login(
loginForm.getMailAddress(),
loginForm.getPassword());
if (loginUser == null) {
if (loginModel == null) {
model.addAttribute(
"errorMessage",
"Email address or password is incorrect.");
@@ -47,9 +48,8 @@ public class LoginController {
return "login";
}
session.setAttribute("loginUser", loginUser);
session.setAttribute("loginUser", loginModel);
return "menu";
}
}