diff --git a/pom.xml b/pom.xml index 3cd9ac2..6b81233 100644 --- a/pom.xml +++ b/pom.xml @@ -83,6 +83,11 @@ spring-boot-starter-webmvc-test test + + org.mindrot + jbcrypt + 0.4 + diff --git a/src/main/java/com/example/demo/app/domain/service/UserService.java b/src/main/java/com/example/demo/app/domain/service/UserService.java index fa63458..345625e 100644 --- a/src/main/java/com/example/demo/app/domain/service/UserService.java +++ b/src/main/java/com/example/demo/app/domain/service/UserService.java @@ -5,7 +5,7 @@ import com.example.demo.app.presentation.form.UserForm; public interface UserService { - public void register(UserForm userForm, Long courseId, Long userId); + public void register(UserForm userForm, Long courseId); public void updateCourse(Long userId, Long courseId); diff --git a/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java index 9e1563a..26ef947 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/LoginServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.app.domain.service.impl; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; import com.example.demo.app.domain.model.LoginModel; @@ -13,19 +14,41 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class LoginServiceImpl implements LoginService { - private final UserRepository userRepository; + private final UserRepository userRepository; - @Override - public LoginModel login(String mailAddress, String password) { + @Override + public LoginModel login(String mailAddress, String password) { - UserEntity userEntity = userRepository.findByMailAddressAndPassword( - mailAddress, - password).orElse(null); + UserEntity userEntity = userRepository + .findByMailAddress(mailAddress) + .orElse(null); - if (userEntity == null) { - return null; - } + if (userEntity == null) { + return null; + } + + boolean isValidPassword = false; + if (userEntity.getPassword().length() <= 24) { + if (userEntity.getPassword().equals(password)) { + + userEntity.setPassword(BCrypt.hashpw(password, BCrypt.gensalt())); + userRepository.save(userEntity); + isValidPassword = true; + + } else { + return null; + } + + } else { + + isValidPassword = BCrypt.checkpw(password, userEntity.getPassword()); + } + + if (!isValidPassword) { + return null; + } + + return new LoginModel(userEntity.getUserId()); + } - return new LoginModel(userEntity.getUserId()); - } } diff --git a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java index 11c7069..55cfa26 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/PasswordResetServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.app.domain.service.impl; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; import com.example.demo.app.domain.service.PasswordResetService; @@ -13,30 +14,31 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class PasswordResetServiceImpl implements PasswordResetService { - private final UserRepository userRepository; + private final UserRepository userRepository; - @Override - public boolean resetPassword( - Long userId, - PasswordResetForm passwordResetForm) { + @Override + public boolean resetPassword( + Long userId, + PasswordResetForm passwordResetForm) { - if (!passwordResetForm.getPassword() - .equals(passwordResetForm.getPasswordConfirm())) { - return false; - } + if (!passwordResetForm.getPassword() + .equals(passwordResetForm.getPasswordConfirm())) { + return false; + } - UserEntity userEntity = - userRepository.findById(userId).orElse(null); + UserEntity userEntity = userRepository.findById(userId).orElse(null); - if (userEntity == null) { - return false; - } + if (userEntity == null) { + return false; + } - userEntity.setPassword( - passwordResetForm.getPassword()); + String passwordHashed = BCrypt.hashpw(passwordResetForm.getPassword(), BCrypt.gensalt()); - userRepository.save(userEntity); + userEntity.setPassword( + passwordHashed); - return true; - } + userRepository.save(userEntity); + + return true; + } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java index 9cc6639..ed6c47f 100644 --- a/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java +++ b/src/main/java/com/example/demo/app/domain/service/impl/UserServiceImpl.java @@ -1,5 +1,6 @@ package com.example.demo.app.domain.service.impl; +import org.mindrot.jbcrypt.BCrypt; import org.springframework.stereotype.Service; import com.example.demo.app.domain.model.UserModel; @@ -24,14 +25,17 @@ public class UserServiceImpl implements UserService { private final GoalRepository goalRepository; private final CourseRepository courseRepository; - @Override - public void register(UserForm userForm, Long courseId, Long userId) { + @Override + public void register(UserForm userForm, Long courseId) { UserEntity userEntity = new UserEntity(); userEntity.setUserName(userForm.getUserName()); userEntity.setMailAddress(userForm.getMailAddress()); - userEntity.setPassword(userForm.getPassword()); + + String passwordHashed = BCrypt.hashpw(userForm.getPassword(), BCrypt.gensalt()); + + userEntity.setPassword(passwordHashed); userEntity.setSecretQuestionAnswer(userForm.getSecretAnswer()); userEntity.setBirthDate(userForm.getBirthDate()); userEntity.setSaving(userForm.getSaving()); @@ -44,7 +48,6 @@ public class UserServiceImpl implements UserService { GoalEntity goalEntity = new GoalEntity(); goalEntity.setTargetAmount(Integer.parseInt(String.valueOf(userForm.getGoalId()))); - goalEntity.setUserEntity(userRepository.findById(userId).get()); CourseEntity courseEntity = courseRepository.findById(courseId).orElse(null); diff --git a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java index b64f7ae..ffa5d88 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AnalysisController.java @@ -13,6 +13,9 @@ import com.example.demo.aop.aspect.SessionCheck; import com.example.demo.app.domain.model.AnalysisModel; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.AnalysisService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.AnalysisForm; import lombok.RequiredArgsConstructor; @@ -25,7 +28,7 @@ public class AnalysisController { private final AnalysisService analysisService; @SessionCheck - @GetMapping("/analysis") + @GetMapping(TransitionTargetPageNameKeyword.ANALYSIS) public String showAnalysis( @RequestParam(required = false) Integer year, @RequestParam(required = false) Integer month, @@ -33,7 +36,7 @@ public class AnalysisController { HttpSession session) { //ログインユーザーの取得(セッション) - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); //初期年月表示 LocalDate nowDate = LocalDate.now(); @@ -58,15 +61,15 @@ public class AnalysisController { AnalysisForm analysisForm = AnalysisForm.convertFrom(analysisModel); //model格納 - model.addAttribute("analysisForm", analysisForm); - model.addAttribute("year", year); - model.addAttribute("month", month); - model.addAttribute("previousYear", previousDate.getYear()); - model.addAttribute("previousMonth", previousDate.getMonthValue()); - model.addAttribute("nextYear", nextDate.getYear()); - model.addAttribute("nextMonth", nextDate.getMonthValue()); + model.addAttribute(PageReturnAttributeKeyword.ANALYSIS_FORM, analysisForm); + model.addAttribute(PageReturnAttributeKeyword.YEAR, year); + model.addAttribute(PageReturnAttributeKeyword.MONTH, month); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_YEAR, previousDate.getYear()); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_MONTH, previousDate.getMonthValue()); + model.addAttribute(PageReturnAttributeKeyword.NEXT_YEAR, nextDate.getYear()); + model.addAttribute(PageReturnAttributeKeyword.NEXT_MONTH, nextDate.getMonthValue()); - return "analysis"; + return TransitionTargetPageNameKeyword.ANALYSIS_HTML; } } diff --git a/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java b/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java index 504e991..71187ca 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/AuthenticationController.java @@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.app.domain.model.AuthenticationModel; import com.example.demo.app.domain.service.AuthenticationService; import com.example.demo.app.infra.repository.QuestionRepository; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.AuthenticationForm; import com.example.demo.app.presentation.form.PasswordResetForm; @@ -22,16 +24,16 @@ public class AuthenticationController { private final AuthenticationService authenticationService; private final QuestionRepository questionRepository; - @GetMapping("/authentication") + @GetMapping(TransitionTargetPageNameKeyword.AUTHENTICATION) public String showAuthentication(Model model) { - model.addAttribute("authenticationForm", new AuthenticationForm()); - model.addAttribute("questionList", questionRepository.findAll()); + model.addAttribute(PageReturnAttributeKeyword.AUTHENTICATION_FORM, new AuthenticationForm()); + model.addAttribute(PageReturnAttributeKeyword.QUESTION_LIST, questionRepository.findAll()); - return "authentication"; + return TransitionTargetPageNameKeyword.AUTHENTICATION_HTML; } - @PostMapping("/authentication") + @PostMapping(TransitionTargetPageNameKeyword.AUTHENTICATION) public String authenticate( AuthenticationForm authenticationForm, Model model, @@ -41,21 +43,21 @@ public class AuthenticationController { authenticationService.authenticate(authenticationForm); if (authenticationModel == null) { - model.addAttribute("errorMessage", "認証情報が正しくありません。"); - model.addAttribute("questionList", questionRepository.findAll()); + model.addAttribute(PageReturnAttributeKeyword.ERROR_MESSAGE, "認証情報が正しくありません。"); + model.addAttribute(PageReturnAttributeKeyword.QUESTION_LIST, questionRepository.findAll()); - return "authentication"; + return TransitionTargetPageNameKeyword.AUTHENTICATION_HTML; } session.setAttribute( - "passwordResetUserId", + PageReturnAttributeKeyword.PASSWOR_RESET_USER_ID, authenticationModel.getUserId()); model.addAttribute( - "passwordResetForm", + PageReturnAttributeKeyword.PASSWOR_RESET_FORM, new PasswordResetForm()); - return "password_reset"; + return TransitionTargetPageNameKeyword.PASSWORD_RESET_HTML; } } diff --git a/src/main/java/com/example/demo/app/presentation/controller/CourseController.java b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java index bb13534..8d98405 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/CourseController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/CourseController.java @@ -19,6 +19,9 @@ import com.example.demo.app.domain.service.AllocationService; import com.example.demo.app.domain.service.CourseInfoService; import com.example.demo.app.domain.service.CourseService; import com.example.demo.app.domain.service.UserService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.AllocationFormList; import com.example.demo.app.presentation.form.CourseForm; import com.example.demo.app.presentation.form.CourseInfoForm; @@ -34,47 +37,54 @@ public class CourseController { private final CourseInfoService courseInfoService; private final UserService userService; private final AllocationService allocationService; - - @PostMapping("/user/register/course") + @PostMapping(TransitionTargetPageNameKeyword.SHOW_SELECT_COURSE) public String showSelectCourse(@ModelAttribute UserForm userForm, Model model, HttpSession session) { - session.setAttribute("userForm", userForm); - model.addAttribute("mode", "regist"); - model.addAttribute("currentCourseId", courseService.findByName("バランスコース")); - model.addAttribute("courseList", CourseForm.convertFrom(courseService.findAll())); - model.addAttribute("courseInfoList", CourseInfoForm.convertFrom(courseInfoService.findAll())); + final String MODE = "regist"; + final String DEFAULT = "バランスコース"; - return "select_course"; + session.setAttribute(PageReturnAttributeKeyword.USER_FORM, userForm); + model.addAttribute(PageReturnAttributeKeyword.MODE, MODE); + model.addAttribute(PageReturnAttributeKeyword.CURRENT_COURSE_ID, courseService.findByName(DEFAULT)); + model.addAttribute(PageReturnAttributeKeyword.COURSE_LIST, CourseForm.convertFrom(courseService.findAll())); + model.addAttribute(PageReturnAttributeKeyword.COURSE_INFO_LIST, + CourseInfoForm.convertFrom(courseInfoService.findAll())); + + return TransitionTargetPageNameKeyword.SELECT_COURSE_HTML; } @SessionCheck - @GetMapping("/course") + @GetMapping(TransitionTargetPageNameKeyword.COURSE) public String showChangeCourse(Model model, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + final String MODE = "change"; + + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); Long userId = loginUser.getUserId(); Long currentCourseId = userService.findByUserId(userId).getCourseId(); - model.addAttribute("mode", "change"); - model.addAttribute("currentCourseId", currentCourseId); - model.addAttribute("courseList", CourseForm.convertFrom(courseService.findAll())); - model.addAttribute("courseInfoList", CourseInfoForm.convertFrom(courseInfoService.findAll())); - return "select_course"; + model.addAttribute(PageReturnAttributeKeyword.MODE, MODE); + model.addAttribute(PageReturnAttributeKeyword.CURRENT_COURSE_ID, currentCourseId); + model.addAttribute(PageReturnAttributeKeyword.COURSE_LIST, CourseForm.convertFrom(courseService.findAll())); + model.addAttribute(PageReturnAttributeKeyword.COURSE_INFO_LIST, + CourseInfoForm.convertFrom(courseInfoService.findAll())); + + return TransitionTargetPageNameKeyword.SELECT_COURSE_HTML; } @SessionCheck - @PostMapping("/change") + @PostMapping(TransitionTargetPageNameKeyword.CHANGE) public String changeCourse(@RequestParam Long courseId, HttpSession httpSession) { - LoginModel loginUser = (LoginModel) httpSession.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) httpSession.getAttribute(SessionKeyword.LOGIN_USER); userService.updateCourse(loginUser.getUserId(), courseId); - return "redirect:/menu"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.MENU; } @SessionCheck @@ -86,15 +96,17 @@ public class CourseController { @SessionCheck @PostMapping("/course/create/ratio") - public String createCourse(@ModelAttribute CourseForm courseForm, @ModelAttribute AllocationFormList allocationFormList, + public String createCourse(@ModelAttribute CourseForm courseForm, + @ModelAttribute AllocationFormList allocationFormList, HttpSession session, Model model) { LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); - CourseForm form = CourseForm.convertFrom(courseService.save(CourseForm.convertTo(courseForm), loginUser.getUserId())); + CourseForm form = CourseForm + .convertFrom(courseService.save(CourseForm.convertTo(courseForm), loginUser.getUserId())); session.setAttribute("courseId", form.getCourseId()); - + return "course_create_ratio"; } @@ -102,24 +114,34 @@ public class CourseController { @PostMapping("/course/create") public String createCoursePost(@ModelAttribute AllocationFormList allocationFormList, HttpSession session) { - List allocationModelList = new ArrayList<>(); - - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId1(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio1())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId2(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio2())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId3(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio3())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId4(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio4())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId5(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio5())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId6(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio6())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId7(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio7())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId8(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio8())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId9(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio9())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId10(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio10())); - allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId11(), (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio11())); - + + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId1(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio1())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId2(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio2())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId3(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio3())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId4(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio4())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId5(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio5())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId6(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio6())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId7(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio7())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId8(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio8())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId9(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio9())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId10(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio10())); + allocationModelList.add(new AllocationModel(allocationFormList.getCategoryId11(), + (Long) session.getAttribute("courseId"), allocationFormList.getAllocationRatio11())); + allocationService.save(allocationModelList); - + return "redirect:/course"; } -} +} \ No newline at end of file diff --git a/src/main/java/com/example/demo/app/presentation/controller/ErrorController.java b/src/main/java/com/example/demo/app/presentation/controller/ErrorController.java index 973d396..89bf805 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/ErrorController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/ErrorController.java @@ -3,10 +3,12 @@ package com.example.demo.app.presentation.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; + @Controller public class ErrorController { - @GetMapping("/error") + @GetMapping(TransitionTargetPageNameKeyword.ERROR) public String showError() { - return "error"; + return TransitionTargetPageNameKeyword.ERROR_HTML; } } diff --git a/src/main/java/com/example/demo/app/presentation/controller/GoalController.java b/src/main/java/com/example/demo/app/presentation/controller/GoalController.java index a29e1a1..4985491 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/GoalController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/GoalController.java @@ -25,6 +25,9 @@ import com.example.demo.app.domain.service.CategoryService; import com.example.demo.app.domain.service.GoalService; import com.example.demo.app.domain.service.TransactionService; import com.example.demo.app.domain.service.UserService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.CategoryForm; import com.example.demo.app.presentation.form.GoalForm; import com.example.demo.app.presentation.form.MonthlyAchievementForm; @@ -35,7 +38,7 @@ import lombok.RequiredArgsConstructor; @Controller @RequiredArgsConstructor -@RequestMapping("/goal") +@RequestMapping(TransitionTargetPageNameKeyword.GOAL) public class GoalController { private final GoalService goalService; @@ -49,11 +52,13 @@ public class GoalController { Model model, HttpSession session, Long goalId) { - + LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); Long userId = loginUser.getUserId(); + goalService.updateGoalComplete(userId); + List goalModelList = goalService.getGoalByUserId(userId); List goalFormList1 = GoalForm.convertFrom(goalModelList); @@ -66,6 +71,10 @@ public class GoalController { "goalFormList", goalFormList); + model.addAttribute( + "achievementList", + new ArrayList()); + if (goalFormList.isEmpty()) { return "goal_view"; } @@ -188,7 +197,8 @@ public class GoalController { month = month.minusMonths(1); } - Collections.reverse(monthlySavingList); + Collections.reverse( + monthlySavingList); List achievementList = new ArrayList<>(); @@ -216,27 +226,29 @@ public class GoalController { "achievementList", achievementList); - return "goal_view"; + return TransitionTargetPageNameKeyword.GOAL_VIEW_HTML; } @SessionCheck - @GetMapping("/edit") + @GetMapping(TransitionTargetPageNameKeyword.EDIT) public String editGoal(Model model, HttpSession session, Long goalId) { - - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); + Long userId = loginUser.getUserId(); - + GoalForm goalForm = GoalForm.convertFrom(goalService.getGoalById(goalId)); + - model.addAttribute("goalForm", goalForm); - return "goal_edit"; + model.addAttribute(PageReturnAttributeKeyword.GOAL_FORM, goalForm); + return TransitionTargetPageNameKeyword.GOAL_EDIT_HTML; + } @SessionCheck - @PostMapping("/update") + @PostMapping(TransitionTargetPageNameKeyword.UPDATE) public String updateGoal(@ModelAttribute GoalForm goalForm, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); Long userId = loginUser.getUserId(); @@ -250,7 +262,7 @@ public class GoalController { GoalModel goalModel = GoalModel.convertFrom(goalForm); goalService.updateGoal(goalModel, userId); - return "redirect:/goal"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.GOAL; } @SessionCheck @@ -280,11 +292,11 @@ public class GoalController { goalService.delete(goalId); if (record == null) { - return "redirect:/goal"; + return "redirect:/goal"; } else { return "redirect:/goal/record"; } - + } @SessionCheck diff --git a/src/main/java/com/example/demo/app/presentation/controller/LoginController.java b/src/main/java/com/example/demo/app/presentation/controller/LoginController.java index 53cf92f..099f47d 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/LoginController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/LoginController.java @@ -10,6 +10,9 @@ 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.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.LoginForm; import lombok.RequiredArgsConstructor; @@ -18,35 +21,40 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class LoginController { - private final LoginService loginService; + private final LoginService loginService; - @GetMapping("/login") - public String showLogin(@ModelAttribute LoginForm loginForm) { + @GetMapping(TransitionTargetPageNameKeyword.LOGIN) + public String showLogin(@ModelAttribute LoginForm loginForm, HttpSession session) { - return "login"; - } + if (session.getAttribute("loginUser") != null) { + return "redirect:/menu"; + } - @PostMapping("/login") - public String login( - @ModelAttribute LoginForm loginForm, - Model model, - HttpSession session) { + return TransitionTargetPageNameKeyword.LOGIN_HTML; - LoginModel loginModel = loginService.login( - loginForm.getMailAddress(), - loginForm.getPassword()); + } - if (loginModel == null) { - model.addAttribute( - "errorMessage", - "Email address or password is incorrect."); + @PostMapping(TransitionTargetPageNameKeyword.LOGIN) + public String login( + @ModelAttribute LoginForm loginForm, + Model model, + HttpSession session) { - return "login"; - } + LoginModel loginModel = loginService.login( + loginForm.getMailAddress(), + loginForm.getPassword()); - session.setAttribute("loginUser", loginModel); + if (loginModel == null) { + model.addAttribute( + PageReturnAttributeKeyword.ERROR_MESSAGE, + "IDまたはパスワードが間違っています."); + + return TransitionTargetPageNameKeyword.LOGIN_HTML; + } + + session.setAttribute(SessionKeyword.LOGIN_USER, loginModel); + + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.MENU; + } - return "redirect:/menu"; - } - } diff --git a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java b/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java index 46d8b08..d7e9887 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/PasswordResetController.java @@ -9,6 +9,9 @@ import org.springframework.web.bind.annotation.PostMapping; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.PasswordResetService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.PasswordResetForm; import lombok.RequiredArgsConstructor; @@ -17,54 +20,51 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class PasswordResetController { private final PasswordResetService passwordResetService; - - @GetMapping("/password/reset") + + @GetMapping(TransitionTargetPageNameKeyword.PASSWORD_RESET) public String showPasswordReset(Model model) { - model.addAttribute("passwordResetForm", new PasswordResetForm()); - return "password_reset"; + model.addAttribute(PageReturnAttributeKeyword.PASSWOR_RESET_FORM, new PasswordResetForm()); + return TransitionTargetPageNameKeyword.PASSWORD_RESET_HTML; } - @PostMapping("/password/reset") + @PostMapping(TransitionTargetPageNameKeyword.PASSWORD_RESET) public String resetPassword( - PasswordResetForm passwordResetForm, - Model model, - HttpSession session){ + PasswordResetForm passwordResetForm, + Model model, + HttpSession session) { - Long userId = - (Long) session.getAttribute("passwordResetUserId"); + Long userId = (Long) session.getAttribute(PageReturnAttributeKeyword.PASSWOR_RESET_USER_ID); - if (userId == null) { - LoginModel loginUser = - (LoginModel) session.getAttribute("loginUser"); + if (userId == null) { + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); - if (loginUser != null) { - userId = loginUser.getUserId(); - } - } - - if (userId == null) { - return "redirect:/login"; - } - - boolean isReset = - passwordResetService.resetPassword(userId, passwordResetForm); + if (loginUser != null) { + userId = loginUser.getUserId(); + } + } - System.out.println("isReset=" + isReset); + if (userId == null) { + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.LOGIN; + } - if(!isReset) { - model.addAttribute("message", "パスワードが一致しません。"); - return "password_reset"; - } + boolean isReset = passwordResetService.resetPassword(userId, passwordResetForm); - session.removeAttribute("passwordResetUserId"); + if (!isReset) { + model.addAttribute(PageReturnAttributeKeyword.MESSAGE, "パスワードが一致しません。"); + return TransitionTargetPageNameKeyword.PASSWORD_RESET_HTML; + } - LoginModel loginUser = - (LoginModel) session.getAttribute("loginUser"); + session.removeAttribute(PageReturnAttributeKeyword.PASSWOR_RESET_USER_ID); - if (loginUser != null) { - return "redirect:/menu"; - } + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); - return "redirect:/login"; + if (loginUser != null) { + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.PROFILE; + } + + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.LOGIN; } } \ No newline at end of file diff --git a/src/main/java/com/example/demo/app/presentation/controller/ProfileController.java b/src/main/java/com/example/demo/app/presentation/controller/ProfileController.java index ef10a10..a78c133 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/ProfileController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/ProfileController.java @@ -12,6 +12,9 @@ import com.example.demo.aop.aspect.SessionCheck; import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.model.ProfileModel; import com.example.demo.app.domain.service.ProfileService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.ProfileEditForm; import com.example.demo.app.presentation.form.ProfileForm; @@ -23,26 +26,26 @@ public class ProfileController { private final ProfileService profileService; @SessionCheck - @GetMapping("/profile") + @GetMapping(TransitionTargetPageNameKeyword.PROFILE) public String profile(Model model, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); ProfileModel profileModel = profileService.findOne(loginUser.getUserId()); ProfileForm profileForm = ProfileForm.convertForm(profileModel); - model.addAttribute("profileForm", profileForm); - return "profile"; + model.addAttribute(PageReturnAttributeKeyword.PROFILE_FORM, profileForm); + return TransitionTargetPageNameKeyword.PROFILE_HTML; } @SessionCheck - @GetMapping("/profile/edit") + @GetMapping(TransitionTargetPageNameKeyword.PROFILE_EDIT) public String showEditProfile( Model model, HttpSession session) { LoginModel loginUser = - (LoginModel) session.getAttribute("loginUser"); + (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); ProfileModel profileModel = profileService.findOne(loginUser.getUserId()); @@ -55,42 +58,42 @@ public class ProfileController { profileModel.getAnnualIncome(), profileModel.getMonthlyBudget()); - model.addAttribute("profileEditForm", profileEditForm); - return "profile_edit"; + model.addAttribute(PageReturnAttributeKeyword.PROFILE_EDIT_FORM, profileEditForm); + return TransitionTargetPageNameKeyword.PROFILE_EDIT_HTML; } - @PostMapping("/profile/edit") + @PostMapping(TransitionTargetPageNameKeyword.PROFILE_EDIT) public String updateProfile( @ModelAttribute ProfileEditForm profileEditForm, HttpSession session) { LoginModel loginUser = - (LoginModel) session.getAttribute("loginUser"); + (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); profileService.update( loginUser.getUserId(), profileEditForm); - return "redirect:/profile"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.PROFILE; } - @PostMapping("/withdraw") + @PostMapping(TransitionTargetPageNameKeyword.WITHDRAW) public String withdraw(HttpSession session) { LoginModel loginUser = - (LoginModel) session.getAttribute("loginUser"); + (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); profileService.withdraw(loginUser.getUserId()); session.invalidate(); - return "redirect:/login"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.LOGIN; } - @PostMapping("/logout") + @PostMapping(TransitionTargetPageNameKeyword.LOGOUT) public String logout(HttpSession session) { session.invalidate(); - return "redirect:/login"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.LOGIN; } } diff --git a/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java b/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java index 0b0984b..eb2cc95 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/TransactionController.java @@ -25,6 +25,9 @@ import com.example.demo.app.domain.service.FixedCostService; import com.example.demo.app.domain.service.GoalService; import com.example.demo.app.domain.service.TransactionService; import com.example.demo.app.domain.service.UserService; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.SessionKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.CategoryForm; import com.example.demo.app.presentation.form.Expense; import com.example.demo.app.presentation.form.FixedCostForm; @@ -47,14 +50,14 @@ public class TransactionController { // 一覧画面 @SessionCheck - @GetMapping("/transaction/list") + @GetMapping(TransitionTargetPageNameKeyword.TRANSACTION_LIST) public String transactionList( @RequestParam(required = false, defaultValue = "0") String years, @RequestParam(required = false, defaultValue = "0") String months, Model model, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); LocalDate today = LocalDate.now(); @@ -115,28 +118,28 @@ public class TransactionController { transactionFormMap.put(date, transactionFormList); }); - model.addAttribute("year", year); - model.addAttribute("month", month); + model.addAttribute(PageReturnAttributeKeyword.YEAR, year); + model.addAttribute(PageReturnAttributeKeyword.MONTH, month); - model.addAttribute("previousYear", previousYear); - model.addAttribute("previousMonth", previousMonth); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_YEAR, previousYear); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_MONTH, previousMonth); - model.addAttribute("nextYear", nextYear); - model.addAttribute("nextMonth", nextMonth); + model.addAttribute(PageReturnAttributeKeyword.NEXT_YEAR, nextYear); + model.addAttribute(PageReturnAttributeKeyword.NEXT_MONTH, nextMonth); - model.addAttribute("transactionFormMap", transactionFormMap); + model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM_MAP, transactionFormMap); - return "transaction_list"; + return TransitionTargetPageNameKeyword.TRANSACTION_LIST_HTML; } // 詳細画面 @SessionCheck - @GetMapping("/transaction/detail") + @GetMapping(TransitionTargetPageNameKeyword.TRANSACTION_DETAIL) public String findOne(@RequestParam(required = false) LocalDate todayDates, Model model, HttpSession session) { LocalDate todayDate = (todayDates == null) ? LocalDate.now() : todayDates; - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); List transactionFormList = transactionService .findByUserIdAndDate(todayDate, loginUser.getUserId()).stream() @@ -177,14 +180,14 @@ public class TransactionController { return transactionForm; }).collect(Collectors.toList()); - model.addAttribute("today", todayDate); - model.addAttribute("transactionFormList", transactionFormList); + model.addAttribute(PageReturnAttributeKeyword.TODAY, todayDate); + model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM_LIST, transactionFormList); - return "transaction_detail"; + return TransitionTargetPageNameKeyword.TRANSACTION_DETAIL_HTML; } @SessionCheck - @GetMapping("/transaction/create") + @GetMapping(TransitionTargetPageNameKeyword.TRANSACTION_CREATE) public String createOneGet(@RequestParam(defaultValue = "") LocalDate today, Long fixedCostId, Model model, HttpSession session) { @@ -215,35 +218,38 @@ public class TransactionController { } } - System.out.println(transactionForm.getCategoryName() + " " + transactionForm.getAmount()); + model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM, transactionForm); - model.addAttribute("transactionForm", transactionForm); + model.addAttribute(PageReturnAttributeKeyword.CATEGORY_FORM_LIST, categoryFormList); - model.addAttribute("categoryFormList", categoryFormList); + model.addAttribute(PageReturnAttributeKeyword.TODAY, today.format(DateTimeFormatter.ISO_LOCAL_DATE)); - model.addAttribute("today", today.format(DateTimeFormatter.ISO_LOCAL_DATE)); - - return "transaction_create"; + return TransitionTargetPageNameKeyword.TRANSACTION_CREATE_HTML; } @SessionCheck - @PostMapping("/transaction/create") + @PostMapping(TransitionTargetPageNameKeyword.TRANSACTION_CREATE) public String createOnePost(@ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); transactionForm.setUserId(loginUser.getUserId()); if (transactionService.createTransaction(TransactionForm.convertTo(transactionForm)) != 0) { - return "error"; + return TransitionTargetPageNameKeyword.ERROR_HTML; } - return "redirect:/transaction/detail?todayDates=" + transactionForm.getTransactionDate(); + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.TRANSACTION_DETAIL + + TransitionTargetPageNameKeyword.INTERROGATION + + TransitionTargetPageNameKeyword.TODAY_DATES + + TransitionTargetPageNameKeyword.EQUAL + + transactionForm.getTransactionDate(); } @SessionCheck - @GetMapping("/transaction/update") + @GetMapping(TransitionTargetPageNameKeyword.TRANSACTION_UPDATE) public String updateOneGet(@RequestParam Long transactionId, @RequestParam(defaultValue = "") LocalDate today, Model model, HttpSession session) { @@ -271,22 +277,20 @@ public class TransactionController { transactionService.findMoneyRecord(transactionId), CategoryForm.convertFrom(categoryService.findByTransactionId(transactionId)).getTransactionType()); - System.out.println("category: " + transactionForm.getCategoryId() + "金額: " + transactionForm.getAmount()); + model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_ID, transactionId); - model.addAttribute("transactionId", transactionId); + model.addAttribute(PageReturnAttributeKeyword.TRANSACTION_FORM, transactionForm); - model.addAttribute("transactionForm", transactionForm); + model.addAttribute(PageReturnAttributeKeyword.CATEGORY_FORM_LIST, categoryFormList); - model.addAttribute("categoryFormList", categoryFormList); + model.addAttribute(PageReturnAttributeKeyword.TODAY, today); - model.addAttribute("today", today); - - return "transaction_update"; + return TransitionTargetPageNameKeyword.TRANSACTION_UPDATE_HTML; } @SessionCheck - @PostMapping("/transaction/update") + @PostMapping(TransitionTargetPageNameKeyword.TRANSACTION_UPDATE) public String updateOnePost(@RequestParam Long transactionId, @ModelAttribute TransactionForm transactionForm, @RequestParam LocalDate today, Model model, HttpSession session) { @@ -297,28 +301,38 @@ public class TransactionController { transactionForm.setTransactionId(transactionId); if (transactionService.updateTransaction(TransactionForm.convertTo(transactionForm)) != 0) { - return "error"; + return TransitionTargetPageNameKeyword.ERROR_HTML; } - return "redirect:/transaction/detail?todayDates=" + transactionForm.getTransactionDate(); + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.TRANSACTION_DETAIL + + TransitionTargetPageNameKeyword.INTERROGATION + + TransitionTargetPageNameKeyword.TODAY_DATES + + TransitionTargetPageNameKeyword.EQUAL + + transactionForm.getTransactionDate(); } @SessionCheck - @PostMapping("/transaction/delete") + @PostMapping(TransitionTargetPageNameKeyword.TRANSACTION_DELETE) public String deleteOne(@RequestParam Long transactionId, @RequestParam LocalDate today) { transactionService.deleteTransaction(transactionId); - return "redirect:/transaction/detail?todayDates=" + today; + return TransitionTargetPageNameKeyword.REDIRECT + + TransitionTargetPageNameKeyword.TRANSACTION_DETAIL + + TransitionTargetPageNameKeyword.INTERROGATION + + TransitionTargetPageNameKeyword.TODAY_DATES + + TransitionTargetPageNameKeyword.EQUAL + + today; } @SessionCheck - @GetMapping("/menu") + @GetMapping(TransitionTargetPageNameKeyword.MENU) public String menu(HttpSession session, Model model, @RequestParam(required = false, defaultValue = "0") String years, @RequestParam(required = false, defaultValue = "0") String months) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + LoginModel loginUser = (LoginModel) session.getAttribute(SessionKeyword.LOGIN_USER); LocalDate today = LocalDate.now(); @@ -342,18 +356,18 @@ public class TransactionController { int nextYear = nextYearMonth.getYear(); int nextMonth = nextYearMonth.getMonthValue(); - model.addAttribute("year", year); - model.addAttribute("month", month); - model.addAttribute("day", today.getDayOfMonth()); + model.addAttribute(PageReturnAttributeKeyword.YEAR, year); + model.addAttribute(PageReturnAttributeKeyword.MONTH, month); + model.addAttribute(PageReturnAttributeKeyword.DAY, today.getDayOfMonth()); - model.addAttribute("lastDay", lastDay); - model.addAttribute("firstDayOfWeek", firstDayOfWeek); + model.addAttribute(PageReturnAttributeKeyword.LAST_DAY, lastDay); + model.addAttribute(PageReturnAttributeKeyword.FIRST_DAY_OF_WEEK, firstDayOfWeek); - model.addAttribute("previousYear", previousYear); - model.addAttribute("previousMonth", previousMonth); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_YEAR, previousYear); + model.addAttribute(PageReturnAttributeKeyword.PREVIOUS_MONTH, previousMonth); - model.addAttribute("nextYear", nextYear); - model.addAttribute("nextMonth", nextMonth); + model.addAttribute(PageReturnAttributeKeyword.NEXT_YEAR, nextYear); + model.addAttribute(PageReturnAttributeKeyword.NEXT_MONTH, nextMonth); LocalDate startDate = yearMonth.atDay(1); LocalDate endDate = yearMonth.atEndOfMonth(); @@ -362,15 +376,15 @@ public class TransactionController { List expenseList = transactionService.findTotalExpenseList(startDate, endDate, loginUser.getUserId()); - model.addAttribute("incomeList", incomeList); - model.addAttribute("expenseList", expenseList); + model.addAttribute(PageReturnAttributeKeyword.INCOME_LIST, incomeList); + model.addAttribute(PageReturnAttributeKeyword.EXPENSE_LIST, expenseList); int totalIncome = transactionService.findTotalIncome(startDate, endDate, loginUser.getUserId()); int totalExpense = transactionService.findTotalExpense(startDate, endDate, loginUser.getUserId()); - model.addAttribute("totalIncome", totalIncome); - model.addAttribute("totalExpense", totalExpense); + model.addAttribute(PageReturnAttributeKeyword.TOTAL_INCOME, totalIncome); + model.addAttribute(PageReturnAttributeKeyword.TOTAL_EXPENSE, totalExpense); List goalForm = GoalForm.convertFrom(goalService.getGoalByUserId(loginUser.getUserId())); @@ -379,19 +393,32 @@ public class TransactionController { List resultList = goalForm.stream().filter(goal -> goal.getGoalComplete() == 0) .collect(Collectors.toList()); - GoalForm result = resultList.getFirst(); + if (!resultList.isEmpty()) { + GoalForm result = resultList.getFirst(); - model.addAttribute("achievementRate", result.getAchievementRate()); + model.addAttribute(PageReturnAttributeKeyword.ACHIEVEMENT_RATE, result.getAchievementRate()); - model.addAttribute("currentAmount", result.getCurrentAmount()); + model.addAttribute(PageReturnAttributeKeyword.CURRENT_AMOUNT, result.getCurrentAmount()); - model.addAttribute("targetAmount", result.getTargetAmount()); + model.addAttribute(PageReturnAttributeKeyword.TARGET_AMOUNT, result.getTargetAmount()); - model.addAttribute("saving", userForm.getSaving()); + model.addAttribute(PageReturnAttributeKeyword.SAVING, userForm.getSaving()); - model.addAttribute("deadline", result.getDeadline()); + model.addAttribute(PageReturnAttributeKeyword.DEADLINE, result.getDeadline()); - return "menu"; + } else { + model.addAttribute(PageReturnAttributeKeyword.ACHIEVEMENT_RATE, "目標を設定してください"); + + model.addAttribute(PageReturnAttributeKeyword.CURRENT_AMOUNT, "目標を設定してください"); + + model.addAttribute(PageReturnAttributeKeyword.TARGET_AMOUNT, "目標を設定してください"); + + model.addAttribute(PageReturnAttributeKeyword.SAVING, userForm.getSaving()); + + model.addAttribute(PageReturnAttributeKeyword.DEADLINE, "目標を設定してください"); + } + + return TransitionTargetPageNameKeyword.MENU_HTML; } } diff --git a/src/main/java/com/example/demo/app/presentation/controller/UserController.java b/src/main/java/com/example/demo/app/presentation/controller/UserController.java index a4ac2cb..ebfc930 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/UserController.java +++ b/src/main/java/com/example/demo/app/presentation/controller/UserController.java @@ -11,11 +11,12 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; -import com.example.demo.app.domain.model.LoginModel; import com.example.demo.app.domain.service.CourseService; import com.example.demo.app.domain.service.QuestionService; import com.example.demo.app.domain.service.UserService; import com.example.demo.app.infra.entity.QuestionEntity; +import com.example.demo.app.presentation.controller.pageproperty.PageReturnAttributeKeyword; +import com.example.demo.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; import com.example.demo.app.presentation.form.UserForm; import lombok.RequiredArgsConstructor; @@ -31,66 +32,60 @@ public class UserController { private final QuestionService questionService; - @GetMapping("/user/register") + @GetMapping(TransitionTargetPageNameKeyword.USER_RESISTER) public String showRegister(Model model, HttpSession session) { UserForm userForm = new UserForm(); List questionList = questionService.findAll(); - session.setAttribute("questionList", questionList); + session.setAttribute(PageReturnAttributeKeyword.QUESTION_LIST, questionList); - model.addAttribute("userForm", userForm); - return "user_register"; + model.addAttribute(PageReturnAttributeKeyword.USER_FORM, userForm); + return TransitionTargetPageNameKeyword.USER_RESISTER_HTML; } - @PostMapping("/user/register/return") + @PostMapping(TransitionTargetPageNameKeyword.USER_RESISTER_RETURN) public String showRegisterReturn(@RequestParam(required = false) Long courseId, Model model, HttpSession session) { - UserForm userForm = (UserForm) session.getAttribute("userForm"); - System.out.println( - "######################################################################3" + userForm.getBirthDate()); - + UserForm userForm = (UserForm) session.getAttribute(PageReturnAttributeKeyword.USER_FORM); + if (userForm.getUserName().equals("")) { userForm = new UserForm(); userForm.setCourseId(courseId); } if (courseId != null) { - model.addAttribute("selectedCourseName", courseService.findById(courseId).getCourseName()); + model.addAttribute(PageReturnAttributeKeyword.SELECTED_COURSE_NAME, courseService.findById(courseId).getCourseName()); } - session.setAttribute("selectedCourseName", courseService.findById(courseId).getCourseName()); - model.addAttribute("courseId", courseId); - System.out.println( - "######################################################################3" + userForm.getBirthDate()); - model.addAttribute("userForm", userForm); + session.setAttribute(PageReturnAttributeKeyword.SELECTED_COURSE_NAME, courseService.findById(courseId).getCourseName()); + model.addAttribute(PageReturnAttributeKeyword.COURESE_ID, courseId); + model.addAttribute(PageReturnAttributeKeyword.USER_FORM, userForm); - return "user_register_return"; + return TransitionTargetPageNameKeyword.USER_RESISTER_RETURN_HTML; } - @GetMapping("/user/register/confirm") + @GetMapping(TransitionTargetPageNameKeyword.USER_RESISTER_CONFIRM) public String confirmRegisterGet(@ModelAttribute UserForm userForm, String selectedCourseName, Model model, HttpSession session) { - model.addAttribute("selectedCourseName", (String) session.getAttribute("selectedCourseName")); - return "user_register_confirm"; + model.addAttribute(PageReturnAttributeKeyword.SELECTED_COURSE_NAME, (String) session.getAttribute("selectedCourseName")); + return TransitionTargetPageNameKeyword.USER_RESISTER_CONFIRM_HTML; } - @PostMapping("/user/register/complete") + @PostMapping(TransitionTargetPageNameKeyword.USER_RESISTER_COMPLETE) public String confirmRegister( @ModelAttribute UserForm userForm, Model model, HttpSession session) { - LoginModel loginUser = (LoginModel) session.getAttribute("loginUser"); + Long courseId = courseService.findByName((String) session.getAttribute(PageReturnAttributeKeyword.SELECTED_COURSE_NAME)); - Long courseId = courseService.findByName((String) session.getAttribute("selectedCourseName")); + userService.register(userForm, courseId); - userService.register(userForm, courseId, loginUser.getUserId()); - - return "redirect:/login"; + return TransitionTargetPageNameKeyword.REDIRECT + TransitionTargetPageNameKeyword.LOGIN; } diff --git a/src/main/java/com/example/demo/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java b/src/main/java/com/example/demo/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java index a6934c5..c5b6eea 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java +++ b/src/main/java/com/example/demo/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java @@ -14,7 +14,7 @@ public class PageReturnAttributeKeyword { public static final String PASSWOR_RESET_FORM = "passwordResetForm"; public static final String PASSWOR_RESET_USER_ID = "passwordResetUserId"; - public static final String AUTENTICATION_FORM = "authenticationForm"; + public static final String AUTHENTICATION_FORM = "authenticationForm"; public static final String PROFILE_FORM = "profileForm"; public static final String PROFILE_EDIT_FORM = "profileEditForm"; diff --git a/src/main/java/com/example/demo/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java b/src/main/java/com/example/demo/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java index a7ce259..3249dee 100644 --- a/src/main/java/com/example/demo/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java +++ b/src/main/java/com/example/demo/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java @@ -5,13 +5,13 @@ public class TransitionTargetPageNameKeyword { // HTML public static final String ERROR_HTML = "error"; - public static final String USER_RESISTER_HTML = "user_resiter"; - public static final String USER_RESISTER_RETURN_HTML = "user_resiter_return"; - public static final String USER_RESISTER_CONFIRM_HTML = "user_resiter_confirm"; + public static final String USER_RESISTER_HTML = "user_register"; + public static final String USER_RESISTER_RETURN_HTML = "user_register_return"; + public static final String USER_RESISTER_CONFIRM_HTML = "user_register_confirm"; public static final String LOGIN_HTML = "login"; - public static final String PASSWORD_RESET_HTML = "passsword_reset"; + public static final String PASSWORD_RESET_HTML = "password_reset"; public static final String AUTHENTICATION_HTML = "authentication"; @@ -47,7 +47,7 @@ public class TransitionTargetPageNameKeyword { public static final String AUTHENTICATION = "/authentication"; - public static final String PASSWORD_RESET = "/passsword/reset"; + public static final String PASSWORD_RESET = "/password/reset"; public static final String MENU = "/menu"; @@ -65,12 +65,13 @@ public class TransitionTargetPageNameKeyword { public static final String TRANSACTION_DETAIL = "/transaction/detail"; public static final String TRANSACTION_CREATE = "/transaction/create"; public static final String TRANSACTION_UPDATE = "/transaction/update"; + public static final String TRANSACTION_DELETE = "/transaction/delete"; public static final String TODAY_DATES = "todayDates"; public static final String ANALYSIS = "/analysis"; public static final String GOAL = "/goal"; - public static final String GOAL_EDIT = "/goal/edit"; - public static final String GOAL_UPDATE = "/goal/update"; + public static final String EDIT = "/edit"; + public static final String UPDATE = "/update"; } diff --git a/src/main/resources/templates/goal_create.html b/src/main/resources/templates/goal_create.html index fe201e4..a97384f 100644 --- a/src/main/resources/templates/goal_create.html +++ b/src/main/resources/templates/goal_create.html @@ -1,46 +1,56 @@ - - - 目標作成 - - + + + 目標作成 + + + - - + + + - 目標作成 + - - + 目標作成 - - 目標名 - - + - - 目標説明 - - + - - 目標金額 - - + + - - 目標達成期限 - - - 更新する + + 目標名 + + - + + 目標説明 + + + + + 目標金額 + + + + + 目標達成期限 + + + 更新する + + + + - - + \ No newline at end of file diff --git a/src/main/resources/templates/goal_edit.html b/src/main/resources/templates/goal_edit.html index 4915c33..73729cc 100644 --- a/src/main/resources/templates/goal_edit.html +++ b/src/main/resources/templates/goal_edit.html @@ -24,30 +24,35 @@ 目標名 - + 目標説明 - + 目標金額 - + 目標達成期限 - + + + + + + 更新する + - 更新する diff --git a/src/main/resources/templates/goal_view.html b/src/main/resources/templates/goal_view.html index 719d946..26ecdd4 100644 --- a/src/main/resources/templates/goal_view.html +++ b/src/main/resources/templates/goal_view.html @@ -3,6 +3,7 @@ + 目標詳細 @@ -11,14 +12,13 @@ - + 目標詳細 - @@ -30,28 +30,28 @@ + + + + + - - - - - + - + - + - + + - - + + 目標名 @@ -125,10 +135,12 @@ 目標説明 + 目標金額 + 目標達成期限 @@ -138,61 +150,62 @@ 達成率 + - - + + - + - + - + - - 編集 - + - + + 編集 + + - + - + - - 削除 - + + 削除 + - + - + - + - + - + + - + + 新規登録 + - - 新規登録 - + - - + - - 履歴 - + + 履歴 + - + - - + diff --git a/src/main/resources/templates/header.html b/src/main/resources/templates/header.html index 867f4a3..0c1ccef 100644 --- a/src/main/resources/templates/header.html +++ b/src/main/resources/templates/header.html @@ -1,30 +1,34 @@ + - -ヘッダー - - + + ヘッダー + + + - + - - Monegement - - - コース - - - プロフィール - + + Monegement + + + コース + + + プロフィール + + + - + \ No newline at end of file diff --git a/src/main/resources/templates/password_reset.html b/src/main/resources/templates/password_reset.html index 6d350be..453a9db 100644 --- a/src/main/resources/templates/password_reset.html +++ b/src/main/resources/templates/password_reset.html @@ -38,7 +38,7 @@ class="form-control" th:field="*{password}" minlength="8" - maxlength="255" + maxlength="24" required> @@ -55,7 +55,7 @@ class="form-control" th:field="*{passwordConfirm}" minlength="8" - maxlength="255" + maxlength="24" required> diff --git a/src/main/resources/templates/select_course.html b/src/main/resources/templates/select_course.html index 5dd02c9..5a0d226 100644 --- a/src/main/resources/templates/select_course.html +++ b/src/main/resources/templates/select_course.html @@ -10,36 +10,48 @@ - + コース選択 - - - + + + + 新規登録 + + + + + 確定 - - - - - - - - - - - - - カテゴリ名配分(%) - - - - - - - - - + + + + + + + + + + + + + カテゴリ名 + 配分(%) + + + + + + + + + diff --git a/src/main/resources/templates/transaction_detail.html b/src/main/resources/templates/transaction_detail.html index 73e5767..0202b86 100644 --- a/src/main/resources/templates/transaction_detail.html +++ b/src/main/resources/templates/transaction_detail.html @@ -10,7 +10,7 @@ - + diff --git a/src/main/resources/templates/user_register.html b/src/main/resources/templates/user_register.html index b8e3c0a..b8067b4 100644 --- a/src/main/resources/templates/user_register.html +++ b/src/main/resources/templates/user_register.html @@ -86,7 +86,7 @@ class="form-control" th:field="*{password}" minlength="8" - maxlength="255" + maxlength="24" required> diff --git a/src/main/resources/templates/user_register_confirm.html b/src/main/resources/templates/user_register_confirm.html index 80a4348..6d39145 100644 --- a/src/main/resources/templates/user_register_confirm.html +++ b/src/main/resources/templates/user_register_confirm.html @@ -39,7 +39,7 @@ パスワード + maxlength="24" required readonly> diff --git a/src/main/resources/templates/user_register_return.html b/src/main/resources/templates/user_register_return.html index 3863a24..272432d 100644 --- a/src/main/resources/templates/user_register_return.html +++ b/src/main/resources/templates/user_register_return.html @@ -54,7 +54,7 @@ class="form-control" th:value="*{password}" minlength="8" - maxlength="255" + maxlength="24" required>