From 98e10ed86f4335e8175321f907ed7c0043abb509 Mon Sep 17 00:00:00 2001 From: USER Date: Fri, 13 Dec 2024 15:26:02 +0900 Subject: [PATCH 1/7] =?UTF-8?q?=EB=A9=94=EC=9D=B8=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20->=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=EC=82=AC?= =?UTF-8?q?=EC=9A=A9=EB=B2=95,=20=ED=9A=8C=EC=82=AC=EC=86=8C=EA=B0=9C,=20?= =?UTF-8?q?=EC=83=81=EB=8B=B4=ED=95=98=EA=B8=B0=20=EC=97=B0=EA=B2=B0=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20.jsp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 유저컨트롤 과 나머지 DAO수정완료 -> 작업중 --- .../stockm8/controller/UserController.java | 744 ++++++++++-------- .../java/com/stockm8/persistence/UserDAO.java | 65 +- .../com/stockm8/persistence/UserDAOImpl.java | 137 ++-- .../java/com/stockm8/service/UserService.java | 64 +- .../com/stockm8/service/UserServiceImpl.java | 124 +-- .../src/main/resources/mappers/userMapper.xml | 44 +- .../main/webapp/WEB-INF/views/dashboard.jsp | 15 +- .../webapp/WEB-INF/views/user/Howtouse.jsp | 132 ---- .../WEB-INF/views/user/changepassword1.jsp | 4 +- .../webapp/WEB-INF/views/user/editinfo1.jsp | 4 +- .../webapp/WEB-INF/views/user/editinfo2.jsp | 4 +- .../webapp/WEB-INF/views/user/howtouse.jsp | 149 ++++ .../webapp/WEB-INF/views/user/howtouse2.jsp | 149 ++++ .../main/webapp/WEB-INF/views/user/intro.jsp | 189 ++--- .../main/webapp/WEB-INF/views/user/signin.jsp | 11 +- 15 files changed, 1033 insertions(+), 802 deletions(-) delete mode 100644 stockMate/src/main/webapp/WEB-INF/views/user/Howtouse.jsp create mode 100644 stockMate/src/main/webapp/WEB-INF/views/user/howtouse.jsp create mode 100644 stockMate/src/main/webapp/WEB-INF/views/user/howtouse2.jsp diff --git a/stockMate/src/main/java/com/stockm8/controller/UserController.java b/stockMate/src/main/java/com/stockm8/controller/UserController.java index 3f8956a..6404c96 100644 --- a/stockMate/src/main/java/com/stockm8/controller/UserController.java +++ b/stockMate/src/main/java/com/stockm8/controller/UserController.java @@ -13,6 +13,7 @@ import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.SessionAttribute; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.support.RequestContextUtils; @@ -25,346 +26,417 @@ // *.me 처럼 /user/~ 시작하는 모든주소를 처리하겠다. public class UserController { - private static final Logger logger = LoggerFactory.getLogger(UserController.class); - - // userDAO 객체 root-context.xml주입 - // @Inject - // private userDAO mdao; - - @Autowired - private UserService userService; - - // http://localhost:8088/user/signup (o) - // http://localhost:8088/user/signin (o) - // http://localhost:8088/user/main (o) - // http://localhost:8088/user/info1 (o) - // http://localhost:8088/user/info2 (o) - - // http://localhost:8088/dashboard (o) - // http://localhost:8088/user/info1 (o) - // http://localhost:8088/user/info2 (o) - // http://localhost:8088/user/editinfo1 (o) - // http://localhost:8088/user/editinfo2 (o) - // http://localhost:8088/user/consultation (o) - // http://localhost:8088/user/changepassword1 (o) - - // 회원가입 - 정보입력 / GET 방식 - @RequestMapping(value = "/signup", method = RequestMethod.GET) - public void userSignUpGET() throws Exception { - logger.info(" /user/join -> userJoinGET() 실행"); - logger.info(" 주소에 맞는 view페이지 매핑(보여주기)"); - // return "/user/join"; // /view/user/join.jsp 연결 - - } - - // ./user/join?userid=qqqq&userpw=1111... - // 회원가입 - 정보처리 / POST 방식 - @RequestMapping(value = "/signup", method = RequestMethod.POST) - public String userSignUpPOST(/* @ModelAttribute */ UserVO user) throws Exception { - logger.info("/user/signup -> userSignUpPOST(UserVO uservo)실행 "); - logger.info("Role received: " + user.getRole()); - - // 전달정보 저장 - logger.info("vo :" + user); - - // userDAO객체가 필요 => 주입 - // DB에 정보를 전달 - 회원가입동작 실행 - // mdao.userJoin(vo); // => 잘못됨 - // 서비스 -> DAO 호출 - userService.userJoin(user); - - // 로그인 페이지로 이동 - return "redirect:/user/signin"; - } - - // http://localhost:8088/user/login (GET) - // 로그인 - 정보입력 / GET - @RequestMapping(value = "/signin", method = RequestMethod.GET) - public String userSgininGET(HttpServletRequest request, Model model) { - logger.info("userSgininGET(HttpServletRequest request, Model model) 호출 "); - logger.info("!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - - - // FlashMap에서 에러 메시지 확인 - Map flashMap = RequestContextUtils.getInputFlashMap(request); - if (flashMap != null) { - String errorMessage = (String) flashMap.get("errorMessage"); - if (errorMessage != null) { - model.addAttribute("errorMessage", errorMessage); - } - } - - return "/user/signin"; - } - - // 로그인 - 정보처리 / POST - @RequestMapping(value = "/signin", method = RequestMethod.POST) - public String userLoginPOST(UserVO user, RedirectAttributes rttr, HttpSession session) throws Exception { - logger.info("userLoginPOST() 호출"); - - // 입력받은 로그인 정보 출력 - logger.debug("입력된 로그인 정보: {}", user); - - // 서비스 계층에서 로그인 체크 호출 - UserVO resultVO = userService.userLogin(user); - - // 로그인 성공 처리 - if (resultVO != null) { - logger.info("로그인 성공, 사용자 ID: {}", resultVO.getUserId()); - - // 세션에 사용자 ID 저장 - session.setAttribute("userId", resultVO.getUserId()); - - // 원래 요청 URL로 리다이렉트 - String redirectUrl = (String) session.getAttribute("redirectAfterLogin"); - - if (redirectUrl != null) { - session.removeAttribute("redirectAfterLogin"); // 세션에서 URL 삭제 - return "redirect:" + redirectUrl; - } - return "redirect:/dashboard"; - } - - // 로그인 실패 처리 - logger.warn("로그인 실패, 사용자 정보를 찾을 수 없습니다."); - rttr.addFlashAttribute("errorMessage", "로그인에 실패했습니다. 아이디와 비밀번호를 확인해주세요."); - return "redirect:/user/signin"; // 로그인 페이지 이동 - } - - // 메인페이지 - GET - @RequestMapping(value = "/main", method = RequestMethod.GET) - public void mainGET(HttpServletRequest request, Model model) throws Exception { - logger.info(" mainGET() 호출 "); - - // FlashMap에서 에러 메시지 확인 - Map flashMap = RequestContextUtils.getInputFlashMap(request); - if (flashMap != null) { - String errorMessage = (String) flashMap.get("errorMessage"); - if (errorMessage != null) { - model.addAttribute("errorMessage", errorMessage); - } - } - - logger.info(" /user/main -> /user/main.jsp 연결 "); - } - - // 대시보드 페이지 - GET -// @RequestMapping(value = "/dashboard", method = RequestMethod.GET) -// public void dashGET() { -// logger.info(" dashGET() 호출 "); + private static final Logger logger = LoggerFactory.getLogger(UserController.class); + + // userDAO 객체 root-context.xml주입 + // @Inject + // private userDAO mdao; + + @Autowired + private UserService userService; + + // http://localhost:8088/user/signup (o) + // http://localhost:8088/user/signin (o) + // http://localhost:8088/user/main (o) + // http://localhost:8088/user/info1 (o) + // http://localhost:8088/user/info2 (o) + + // http://localhost:8088/dashboard (o) + // http://localhost:8088/user/info1 (o) + // http://localhost:8088/user/info2 (o) + // http://localhost:8088/user/editinfo1 (o) + // http://localhost:8088/user/editinfo2 (o) + // http://localhost:8088/user/consultation (o) + // http://localhost:8088/user/changepassword1 (o) + + // 회원가입 - 정보입력 / GET 방식 + @RequestMapping(value = "/signup", method = RequestMethod.GET) + public void userSignUpGET() throws Exception { + logger.info(" /user/join -> userJoinGET() 실행"); + logger.info(" 주소에 맞는 view페이지 매핑(보여주기)"); + // return "/user/join"; // /view/user/join.jsp 연결 + + } + + // ./user/join?userid=qqqq&userpw=1111... + // 회원가입 - 정보처리 / POST 방식 + @RequestMapping(value = "/signup", method = RequestMethod.POST) + public String userSignUpPOST(/* @ModelAttribute */ UserVO user) throws Exception { + logger.info("/user/signup -> userSignUpPOST(UserVO uservo)실행 "); + logger.info("Role received: " + user.getRole()); + + // 전달정보 저장 + logger.info("vo :" + user); + + // userDAO객체가 필요 => 주입 + // DB에 정보를 전달 - 회원가입동작 실행 + // mdao.userJoin(vo); // => 잘못됨 + // 서비스 -> DAO 호출 + userService.userJoin(user); + + // 로그인 페이지로 이동 + return "redirect:/user/signin"; + } + + // http://localhost:8088/user/login (GET) + // 로그인 - 정보입력 / GET + @RequestMapping(value = "/signin", method = RequestMethod.GET) + public String userSgininGET(HttpServletRequest request, Model model) { + logger.info("userSgininGET(HttpServletRequest request, Model model) 호출 "); + logger.info("!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + + // FlashMap에서 에러 메시지 확인 + Map flashMap = RequestContextUtils.getInputFlashMap(request); + if (flashMap != null) { + String errorMessage = (String) flashMap.get("errorMessage"); + if (errorMessage != null) { + model.addAttribute("errorMessage", errorMessage); + } + } + + return "/user/signin"; + } + + // 로그인 - 정보처리 / POST + @RequestMapping(value = "/signin", method = RequestMethod.POST) + public String userLoginPOST(UserVO vo, RedirectAttributes rttr, HttpSession session) throws Exception { + logger.info("userLoginPOST() 호출"); + + // 입력받은 로그인 정보 출력 + logger.debug("입력된 로그인 정보: {}", vo); + + // 서비스 계층에서 로그인 체크 호출 + UserVO resultVO = userService.userLogin(vo); + + // 로그인 성공 처리 + if (resultVO != null) { + logger.info("로그인 성공, 사용자 ID: {}", resultVO.getUserId()); + + // 세션에 사용자 ID 저장 + session.setAttribute("userId", resultVO.getUserId()); + session.setAttribute("email", vo.getEmail()); + session.setAttribute("password", vo.getPassword()); + + // 원래 요청 URL로 리다이렉트 + String redirectUrl = (String) session.getAttribute("redirectAfterLogin"); + + if (redirectUrl != null) { + session.removeAttribute("redirectAfterLogin"); // 세션에서 URL 삭제 + return "redirect:" + redirectUrl; + } + return "redirect:/dashboard"; + } + + // 로그인 실패 처리 + logger.warn("로그인 실패, 사용자 정보를 찾을 수 없습니다."); + rttr.addFlashAttribute("errorMessage", "로그인에 실패했습니다. 아이디와 비밀번호를 확인해주세요."); + return "redirect:/user/signin"; // 로그인 페이지 이동 + } + + + + // 메인페이지 - GET + @RequestMapping(value = "/main", method = RequestMethod.GET) + public void mainGET(HttpServletRequest request, Model model) throws Exception { + logger.info(" mainGET() 호출 "); + + // FlashMap에서 에러 메시지 확인s + Map flashMap = RequestContextUtils.getInputFlashMap(request); + if (flashMap != null) { + String errorMessage = (String) flashMap.get("errorMessage"); + if (errorMessage != null) { + model.addAttribute("errorMessage", errorMessage); + } + } + + logger.info(" /user/main -> /user/main.jsp 연결 "); + } + +// // 대시보드 페이지 - GET +// @RequestMapping(value = "/dashboard", method = RequestMethod.GET) +// public void dashGET() { +// logger.info(" dashGET() 호출 "); // -// logger.info(" /user/main -> /user/dash.jsp 연결 "); -// } - - // 로그아웃 - GET - @RequestMapping(value = "/signout", method = RequestMethod.GET) - public String userLogoutGET(HttpSession session) throws Exception { - logger.info(" userLogoutGET() 호출"); - - // 로그아웃 처리(세션정보 초기화) - session.invalidate(); - - // 로그아웃 처리 후 페이지 이동 - - return "redirect:/user/main"; - } - - // 회원정보 조회 - /user/info1 (GET) - @RequestMapping(value = "/info1", method = RequestMethod.GET) - public String userInfo1GET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "user/info1"; - } - // 회원정보 조회 - /user/info1 (GET) - @RequestMapping(value = "/info2", method = RequestMethod.GET) - public String userInfo2GET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "user/info2"; - } - - - -// // 회원정보 조회 - /user/info1 (GET) -// @RequestMapping(value = "/info1", method = RequestMethod.GET) -// public void userInfo1GET( -// Model model -// ,@SessionAttribute(name = "id") String id) { -// logger.info(" userInfo1GET() 호출"); -// -// // 세션에 저장된 아이디 정보를 가져오기 -// logger.info(" id : "+id); -// -// // 서비스 -> DAO 호출(회원정보 조회) -// userVO resultVO = userservice.getuser(id); -// // 결과정보를 저장 view페이지 전달 & 출력 (Model객체) -// model.addAttribute("resultVO", resultVO); -// logger.info(" /user/info => /user/info1.jsp 연결"); -// } -// - - // 회원정보 수정 - /user/info1 (GET) - @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) - public String usereditinfo1GET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "user/editinfo1"; - } - // 회원정보 수정 - /user/info1 (GET) - @RequestMapping(value = "/editinfo2", method = RequestMethod.POST) - public String usereditinfo2GET(Model model, HttpSession session) throws Exception { - - - logger.info("ㅇㄻ니"); - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "/user/editinfo2"; - } - - - - // 비밀번호 찾기 - get - @RequestMapping(value = "/findPassword", method = RequestMethod.GET) - public String findPasswordGet() { - - return "/user/findPassword"; - } - - -// // 회원정보 수정 - GET -// // (기존정보를 가져와서 보여주고, 수정할 정보를 입력) -// @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) -// public void userUpdateGET(@SessionAttribute("userId") Long userId, Model model) throws Exception { -// logger.info(" userUpdateGET() 호출 "); +// logger.info(" /user/main -> /user/dash.jsp 연결 "); +// } + + // 로그아웃 - GET + @RequestMapping(value = "/signout", method = RequestMethod.GET) + public String userLogoutGET(HttpSession session) throws Exception { + logger.info(" userLogoutGET() 호출"); + + // 로그아웃 처리(세션정보 초기화) + session.invalidate(); + + // 로그아웃 처리 후 페이지 이동 + + return "redirect:/user/main"; + } + +// // 회원정보 조회 - /user/info1 (GET) +// @RequestMapping(value = "/info1", method = RequestMethod.GET) +// public String userInfo1GET(Model model, HttpSession session) throws Exception { +// Long userId = (Long) session.getAttribute("id"); +//// if (id == null) { +//// // 세션에 id가 없으면 에러 처리 +//// return "redirect:/user/main"; +//// } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); +// return "user/info1"; +// } +// // 회원정보 조회 - /user/info1 (GET) +// @RequestMapping(value = "/info2", method = RequestMethod.GET) +// public String userInfo2GET(Model model, HttpSession session) throws Exception { +// Long userId = (Long) session.getAttribute("id"); +//// if (id == null) { +//// // 세션에 id가 없으면 에러 처리 +//// return "redirect:/user/main"; +//// } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); +// return "user/info2"; +// } +// +// +// +//// // 회원정보 조회 - /user/info1 (GET) +//// @RequestMapping(value = "/info1", method = RequestMethod.GET) +//// public void userInfo1GET( +//// Model model +//// ,@SessionAttribute(name = "id") String id) { +//// logger.info(" userInfo1GET() 호출"); +//// +//// // 세션에 저장된 아이디 정보를 가져오기 +//// logger.info(" id : "+id); +//// +//// // 서비스 -> DAO 호출(회원정보 조회) +//// userVO resultVO = userservice.getuser(id); +//// // 결과정보를 저장 view페이지 전달 & 출력 (Model객체) +//// model.addAttribute("resultVO", resultVO); +//// logger.info(" /user/info => /user/info1.jsp 연결"); +//// } +// + + // 회원정보 수정 - /user/info1 (GET) + @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) + public String usereditinfo1GET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("userId"); + if (userId == null) { + // 세션에 id가 없으면 에러 처리 + return "redirect:/dashboard"; + } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); + return "/user/editinfo1"; + } + + + // 회원정보 수정 - /user/info1 (GET) + @RequestMapping(value = "/editinfo2", method = RequestMethod.POST) + public String usereditinfo2GET(@RequestParam("password") String password,Model model, HttpSession session) throws Exception { + + + logger.info("수정get"); + String userId = (String) session.getAttribute("userId"); + if (userId == null) { + // 세션에 id가 없으면 에러 처리 + return "redirect:/dashboard"; + } + else { + + UserVO resultVO = userService.getUser(userId, password); + model.addAttribute("resultVO", resultVO); + return "/user/editinfo2"; + } + + + } + + // 상담하기 - /user/consultation (GET) + @RequestMapping(value = "/consultation", method = RequestMethod.GET) + public String consultationGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("id"); + +// if (id == null) { +// // 세션에 id가 없으면 에러 처리 +// return "redirect:/user/main"; +// } +// UserVO resultVO = userService.getUser(userId, password ); +// model.addAttribute("resultVO", resultVO); + return "/user/consultation"; + } + + // 대시보드사용법 - /howtouse (GET) + @RequestMapping(value = "/howtouse", method = RequestMethod.GET) + public String howtouseGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("id"); +// if (id == null) { +// // 세션에 id가 없으면 에러 처리 +// return "redirect:/user/main"; +// } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); + return "/user/howtouse"; + } + + // 대시보드사용법 - /howtouse2 (GET) + @RequestMapping(value = "/howtouse2", method = RequestMethod.GET) + public String howtouseGET2(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("userId"); +// if (id == null) { +// // 세션에 id가 없으면 에러 처리 +// return "redirect:/user/main"; +// } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); + return "/user/howtouse2"; + } + + + // 회사소개 - /intro (GET) + @RequestMapping(value = "/intro", method = RequestMethod.GET) + public String introGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("id"); +// if (id == null) { +// // 세션에 id가 없으면 에러 처리 +// return "redirect:/user/main"; +// } +// UserVO resultVO = userService.getUser(userId); +// model.addAttribute("resultVO", resultVO); + return "/user/intro"; + } + + + // 비밀번호 찾기 - get + @RequestMapping(value = "/findPassword", method = RequestMethod.GET) + public String findPasswordGet() { + + return "/user/findPassword"; + } + + +// // 회원정보 수정 - GET +// // (기존정보를 가져와서 보여주고, 수정할 정보를 입력) +// @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) +// public void userUpdateGET(@SessionAttribute("userId") Long userId, Model model) throws Exception { +// logger.info(" userUpdateGET() 호출 "); // -// // 사용자의 ID정보를 가져오기(세션) -// logger.info("userId : " + userId); +// // 사용자의 ID정보를 가져오기(세션) +// logger.info("userId : " + userId); // -// // 서비스 -> DAO 회원정보 가져오는 동작 호출 -// UserVO resultVO = userService.getUser(userId); +// // 서비스 -> DAO 회원정보 가져오는 동작 호출 +// UserVO resultVO = userService.getUser(userId); // -// // 연결된 뷰페이지에 출력 -// // => model 객체에 정보 저장 -// model.addAttribute("resultVO", resultVO); -// // /user/update.jsp 뷰페이지 연결 -// } +// // 연결된 뷰페이지에 출력 +// // => model 객체에 정보 저장 +// model.addAttribute("resultVO", resultVO); +// // /user/update.jsp 뷰페이지 연결 +// } // -// // 회원정보 수정 - POST -// // (수정된 정보를 전달받아서 정보 수정) -// @RequestMapping(value = "/editinfo2", method = RequestMethod.POST) -// public String userUpdatePOST(UserVO user) throws Exception { -// logger.info(" userUpdatePOST() "); -// -// // 전달정보(수정정보) 저장 -// logger.info("vo : " + user); -// -// // 서비스 -> DAO 호출 (회원정보 수정) -// userService.updateUser(user); -// -// // 수정완료시 메인페이지로 이동 -// return "redirect:/dashboard"; -// } - - // 대시보드 사용법 - /user/consultation (GET) - @RequestMapping(value = "/consultation", method = RequestMethod.GET) - public String consultationGET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "user/consultation"; - } - - // 비밀번호 변경 - /user/changepassword1 (GET) - @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) - public String changepassword1GET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); -// if (id == null) { -// // 세션에 id가 없으면 에러 처리 -// return "redirect:/user/main"; -// } - UserVO resultVO = userService.getUser(userId); - model.addAttribute("resultVO", resultVO); - return "user/changepassword1"; - } - - - - - - - // 회원정보 삭제 - 비밀번호 입력 (GET) - @RequestMapping(value = "/delete", method = RequestMethod.GET) - public String userDeleteGET() throws Exception { - logger.info("userDeleteGET() 실행 "); - logger.info(" /user/delete.jsp 페이지 연결"); - - return "/user/delete"; - } - - // 회원정보 삭제 - 아이디/비밀번호 확인후 정보 삭제 (POST) - @RequestMapping(value = "/delete", method = RequestMethod.POST) - public String userDeletePOST(UserVO user, HttpSession session) throws Exception { - logger.info(" userDeletePOST() 실행 "); - - // 전달된 파라메터(id,pw)를 저장 - logger.info(" vo : " + user); - - // 서비스 -> DAO 호출 (정보 삭제) - int result = userService.deleteUser(user); - - if (result == 0) { - // 삭제 실패 - logger.info(" 정보 삭제 실패!! "); - return "redirect:/user/delete"; - } - - // 삭제 성공 - logger.info(" 정보 삭제 성공! "); - // 삭제 후 정보초기화 - session.invalidate(); - - return "redirect:/user/main"; - } - - // 회원목록 조회 - 회원정보를 리스트 형태로 가져오기 (GET) - @RequestMapping(value = "/list", method = RequestMethod.GET) - public String userListGET(Model model) throws Exception { - logger.info(" userListGET() 호출 "); - - // 서비스 -> DAO (회원 리스트 가져오기 동작) - List userList = userService.userList(); - logger.info(" 회원수 : " + userList.size()); - - // 뷰페이지에 정보를 전달(model객체) - model.addAttribute("userList", userList); - - // /user/list.jsp 페이지 - return "/user/list"; - } + // 회원정보 수정 - POST + // (수정된 정보를 전달받아서 정보 수정) + @RequestMapping(value = "/updateInfo", method = RequestMethod.POST) + public String userUpdatePOST(UserVO user) throws Exception { + logger.info(" userUpdatePOST() "); + + // 전달정보(수정정보) 저장 + logger.info("vo : " + user); + + // 서비스 -> DAO 호출 (회원정보 수정) + userService.updateUser(user); + + // 수정완료시 메인페이지로 이동 + return "redirect:/dashboard"; + } + + + + + +// // 비밀번호 변경 - /user/changepassword1 (GET) +// @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) +// public String changepassword1GET(Model model, HttpSession session,@RequestParam("password") String password) throws Exception { +// Long userId = (Long) session.getAttribute("userId"); +//// if (id == null) { +//// // 세션에 id가 없으면 에러 처리 +//// return "redirect:/user/main"; +//// } +// UserVO resultVO = userService.getUser(userId,password); +// model.addAttribute("resultVO", resultVO); +// return "/user/changepassword1"; +// } + @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) + public String changepassword1GET(Model model, HttpSession session) throws Exception { + String email = (String) session.getAttribute("email"); + String password = (String) session.getAttribute("password"); + logger.info("" + email +"" +password); + + if (email == null || password == null) { + return "redirect:/user/main"; + } + + UserVO resultVO = userService.getUser("email", "password"); + + + model.addAttribute("resultVO", resultVO); + logger.info(""+resultVO); + return "/user/changepassword1"; + } + + + + + + // 회원정보 삭제 - 비밀번호 입력 (GET) + @RequestMapping(value = "/delete", method = RequestMethod.GET) + public String userDeleteGET() throws Exception { + logger.info("userDeleteGET() 실행 "); + logger.info(" /user/delete.jsp 페이지 연결"); + + return "/user/delete"; + } + + // 회원정보 삭제 - 아이디/비밀번호 확인후 정보 삭제 (POST) + @RequestMapping(value = "/delete", method = RequestMethod.POST) + public String userDeletePOST(UserVO user, HttpSession session, @RequestParam("password") String password) throws Exception { + logger.info(" userDeletePOST() 실행 "); + + // 전달된 파라메터(id,pw)를 저장 + logger.info(" vo : " + user); + + // 서비스 -> DAO 호출 (정보 삭제) + int result = userService.deleteUser(user); + + if (result == 0) { + // 삭제 실패 + logger.info(" 정보 삭제 실패!! "); + return "redirect:/user/delete"; + } + + // 삭제 성공 + logger.info(" 정보 삭제 성공! "); + // 삭제 후 정보초기화 + session.invalidate(); + + return "redirect:/user/main"; + } + + // 회원목록 조회 - 회원정보를 리스트 형태로 가져오기 (GET) + @RequestMapping(value = "/list", method = RequestMethod.GET) + public String userListGET(Model model) throws Exception { + logger.info(" userListGET() 호출 "); + + // 서비스 -> DAO (회원 리스트 가져오기 동작) + List userList = userService.userList(); + logger.info(" 회원수 : " + userList.size()); + + // 뷰페이지에 정보를 전달(model객체) + model.addAttribute("userList", userList); + + // /user/list.jsp 페이지 + return "/user/list"; + } }// Controller \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java b/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java index bffd333..e15abba 100644 --- a/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java +++ b/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java @@ -8,43 +8,36 @@ import com.stockm8.domain.vo.UserVO; + public interface UserDAO { - - // 회원가입 동작 - public void userJoin(UserVO user); - - // 로그인 체크 동작 - public UserVO userLogin(UserVO user); - - // 회원정보 조회동작 - public UserVO getUser(Long userId); - - // 회원정보 수정동작 - public void updateUser (UserVO user); - + + // 회원가입 동작 + public void userJoin(UserVO user); + + // 로그인 체크 동작 + public UserVO userLogin(UserVO user); + + // 회원정보 조회동작 + public UserVO getUser(String email , String password); // + + // 회원정보 수정동작 + public void updateUser (UserVO user); + // 사용자의 businessId 수정 - int updateUserBusinessId(@Param("userId") Long userId, @Param("businessId") int businessId); - - // 회원정보 삭제동작 - public int deleteUser (UserVO user); - - // 회원정보 목록(list) - public List getUserList(); - - /** - * 유저 정보를 user_id로 조회합니다. - * @param userId 유저 ID - * @return UserVO 유저 정보 - * @throws Exception 데이터베이스 작업 중 예외 - */ - @Select("SELECT * FROM users WHERE user_id = #{userId}") + int updateUserBusinessId(@Param("userId") Long userId, @Param("businessId") int businessId); + + // 회원정보 삭제동작 + public int deleteUser (UserVO user); + + // 회원정보 목록(list) + public List getUserList(); + + + + @Select("SELECT * FROM users WHERE user_id = #{userId}") UserVO getUserById(@Param("userId")Long userId) throws Exception; - - /** - * 유저의 삭제 여부를 가져옵니다. - * @param userId 유저 ID - * @return 삭제 여부 (1: 삭제됨, 0: 삭제되지 않음) - */ - int getIsDeleted(Long userId) throws Exception; -} + + + int getIsDeleted(Long userId) throws Exception; +} \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java b/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java index c220870..acafde2 100644 --- a/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java +++ b/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java @@ -16,74 +16,79 @@ @Repository public class UserDAOImpl implements UserDAO { - private static final Logger logger = LoggerFactory.getLogger(UserDAOImpl.class); - - @Inject - private SqlSession sqlSession; - - private static final String NAMESPACE = "com.stockm8.mapper.UserMapper."; - - @Override - public void userJoin(UserVO user) { - logger.info("userJoin 실행: " + user); - sqlSession.insert(NAMESPACE + "insertUser", user); - logger.info("회원가입 성공!"); - } - - @Override - public UserVO userLogin(UserVO user) { - logger.info("UserLogin 실행: " + user); - UserVO resultVO = sqlSession.selectOne(NAMESPACE + "loginCheck", user); - logger.info("로그인 결과: " + resultVO); - return resultVO; - } - - @Override - public UserVO getUser(Long userId) { - logger.info("getUser 실행: user_id = " + userId); - return sqlSession.selectOne(NAMESPACE + "getUser", userId); - } - - @Override - public void updateUser(UserVO user) { - logger.info("updateUser 실행: " + user); - sqlSession.update(NAMESPACE + "updateUser", user); - logger.info("회원정보 수정 완료!"); - } - - @Override - public int updateUserBusinessId(Long userId, int businessId) { - Map params = new HashMap<>(); - params.put("userId", userId); - params.put("businessId", businessId); - - // 반환 값으로 영향을 받은 행(row) 수를 반환합니다. - return sqlSession.update(NAMESPACE + "updateUserBusinessId", params); - } - - @Override - public int deleteUser(UserVO user) { - logger.info("deleteUser 실행: " + user); - return sqlSession.delete(NAMESPACE + "deleteUser", user); - } - - @Override - public List getUserList() { - logger.info("getMemberList 실행"); - return sqlSession.selectList(NAMESPACE + "userList"); - } - - @Override - public int getIsDeleted(Long userId) throws Exception{ - - logger.info("getIsDeleted(Long userId) 실행"); - - return sqlSession.selectOne(NAMESPACE + "getIsDeleted", userId); - } - + private static final Logger logger = LoggerFactory.getLogger(UserDAOImpl.class); + + @Inject + private SqlSession sqlSession; + + private static final String NAMESPACE = "com.stockm8.mapper.UserMapper."; + + @Override + public void userJoin(UserVO user) { + logger.info("userJoin 실행: " + user); + sqlSession.insert(NAMESPACE + "insertUser", user); + logger.info("회원가입 성공!"); + } + + @Override + public UserVO userLogin(UserVO user) { + logger.info("UserLogin 실행: " + user); + UserVO resultVO = sqlSession.selectOne(NAMESPACE + "loginCheck", user); + logger.info("로그인 결과: " + resultVO); + return resultVO; + } + + @Override + public UserVO getUser(String email, String password) { + logger.info("getUser 실행: user_id = " + email); + + Map params = new HashMap<>(); + params.put("email", email); + params.put("password", password); + + return sqlSession.selectOne(NAMESPACE + "getUser", params); + } + + @Override + public void updateUser(UserVO user) { + logger.info("updateUser 실행: " + user); + sqlSession.update(NAMESPACE + "updateUser", user); + logger.info("회원정보 수정 완료!"); + } + + @Override + public int updateUserBusinessId(Long userId, int businessId) { + Map params = new HashMap<>(); + params.put("userId", userId); + params.put("businessId", businessId); + + // 반환 값으로 영향을 받은 행(row) 수를 반환합니다. + return sqlSession.update(NAMESPACE + "updateUserBusinessId", params); + } + + @Override + public int deleteUser(UserVO user) { + logger.info("deleteUser 실행: " + user); + return sqlSession.delete(NAMESPACE + "deleteUser", user); + } + + @Override + public List getUserList() { + logger.info("getMemberList 실행"); + return sqlSession.selectList(NAMESPACE + "userList"); + } + + @Override + public int getIsDeleted(Long userId) throws Exception{ + + logger.info("getIsDeleted(Long userId) 실행"); + + return sqlSession.selectOne(NAMESPACE + "getIsDeleted", userId); + } + @Override public UserVO getUserById(Long userId) throws Exception { return sqlSession.selectOne(NAMESPACE + "getUserById", userId); } -} +} \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/service/UserService.java b/stockMate/src/main/java/com/stockm8/service/UserService.java index c4f556f..6b7b391 100644 --- a/stockMate/src/main/java/com/stockm8/service/UserService.java +++ b/stockMate/src/main/java/com/stockm8/service/UserService.java @@ -7,42 +7,42 @@ public interface UserService { - //실행하려는 동작 추상메서드로 구현 - - // 회원가입 - public void userJoin(UserVO user) throws Exception; - - // 로그인 체크 - public UserVO userLogin(UserVO user) throws Exception; - - // 회원정보 조회 - public UserVO getUser(Long userId) throws Exception; - - // 회원정보 수정 - public void updateUser(UserVO user) throws Exception; - - // 회원정보에서 BusinessId 수정 - public void updateUserBusinessId(Long userId, int businessId) throws Exception; - - // 회원정보 삭제 - public int deleteUser(UserVO user) throws Exception; - - // 회원정보 목록조회 - public List userList() throws Exception; - - /** - * 유저 정보를 user_id로 조회합니다. - * @param userId 유저 ID - * @return UserVO 유저 정보 - * @throws Exception 서비스 작업 중 예외 - */ - UserVO getUserById(Long userId) throws Exception; - + //실행하려는 동작 추상메서드로 구현 + + // 회원가입 + public void userJoin(UserVO user) throws Exception; + + // 로그인 체크 + public UserVO userLogin(UserVO user) throws Exception; + + // 회원정보 조회 + public UserVO getUser(String userId,String password) throws Exception; + + // 회원정보 수정 + public void updateUser(UserVO user) throws Exception; + + // 회원정보에서 BusinessId 수정 + public void updateUserBusinessId(Long userId, int businessId) throws Exception; + + // 회원정보 삭제 + public int deleteUser(UserVO user) throws Exception; + + // 회원정보 목록조회 + public List userList() throws Exception; + + /** + * 유저 정보를 user_id로 조회합니다. + * @param userId 유저 ID + * @return UserVO 유저 정보 + * @throws Exception 서비스 작업 중 예외 + */ + UserVO getUserById(Long userId) throws Exception; + /** * 유저의 삭제 여부를 가져옵니다. * @param userId 유저 ID * @return 삭제 여부 (1: 삭제됨, 0: 삭제되지 않음) */ - int getIsDeleted(Long userId) throws Exception; + int getIsDeleted(Long userId) throws Exception; } \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java b/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java index 49f7529..c397d5f 100644 --- a/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java +++ b/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java @@ -16,78 +16,78 @@ @Service public class UserServiceImpl implements UserService { - private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class); + private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class); - @Autowired - private UserDAO userDAO; - + @Autowired + private UserDAO userDAO; + @Autowired private BusinessDAO businessDAO; - @Override - public void userJoin(UserVO user) throws Exception { - userDAO.userJoin(user); - // userDAO.userJoinOracle(userVO); // 각각의 비지니스 로직을 처리 - // userDAO.userJoinMysql(userVO); - } - - @Override - public UserVO userLogin(UserVO user) throws Exception { - logger.info(" userLogin(UserVO vo) 호출 "); - - // DAO 로그인체크 동작 실행 - UserVO resultVO = userDAO.userLogin(user); - return resultVO; - } - - @Override - public UserVO getUser(Long userId) throws Exception { - logger.info(" getuser(String user_id)호출 "); - - return userDAO.getUser(userId); - } - - // 회원 정보 수정 - @Override - public void updateUser(UserVO user) throws Exception { - logger.info("updateuser(UserVO userVO) 실행"); - - // DAO 회원정보 수정메서드 호출 - userDAO.updateUser(user); - } - - @Override - public void updateUserBusinessId(Long userId, int businessId) throws Exception { - logger.info("updateUserBusinessId() 실행"); - - // DAO 회원 businessId정보 수정메서드 호출 - userDAO.updateUserBusinessId(userId, businessId); - } - - @Override - public int deleteUser(UserVO user) throws Exception { - logger.info(" deleteuser(UserVO dvo) 실행 "); - - return userDAO.deleteUser(user); - } - - @Override - public List userList() throws Exception { - logger.info("userList() 호출"); - - return userDAO.getUserList(); - } - + @Override + public void userJoin(UserVO user) throws Exception { + userDAO.userJoin(user); + // userDAO.userJoinOracle(userVO); // 각각의 비지니스 로직을 처리 + // userDAO.userJoinMysql(userVO); + } + + @Override + public UserVO userLogin(UserVO user) throws Exception { + logger.info(" userLogin(UserVO vo) 호출 "); + + // DAO 로그인체크 동작 실행 + UserVO resultVO = userDAO.userLogin(user); + return resultVO; + } + + @Override + public UserVO getUser(String userId,String password) throws Exception { + logger.info(" getuser(String user_id)호출 "); + + return userDAO.getUser(userId, password); + } + + // 회원 정보 수정 + @Override + public void updateUser(UserVO user) throws Exception { + logger.info("updateuser(UserVO userVO) 실행"); + + // DAO 회원정보 수정메서드 호출 + userDAO.updateUser(user); + } + + @Override + public void updateUserBusinessId(Long userId, int businessId) throws Exception { + logger.info("updateUserBusinessId() 실행"); + + // DAO 회원 businessId정보 수정메서드 호출 + userDAO.updateUserBusinessId(userId, businessId); + } + + @Override + public int deleteUser(UserVO user) throws Exception { + logger.info(" deleteuser(UserVO dvo) 실행 "); + + return userDAO.deleteUser(user); + } + + @Override + public List userList() throws Exception { + logger.info("userList() 호출"); + + return userDAO.getUserList(); + } + @Override public UserVO getUserById(Long userId) throws Exception { - logger.info("getUserById(Long userId) 호출"); - // 사용자 유효성 확인 + logger.info("getUserById(Long userId) 호출"); + // 사용자 유효성 확인 return userDAO.getUserById(userId); } - + @Override public int getIsDeleted(Long userId) throws Exception { - logger.info("getIsDeleted(Long userId) 호출 "); + logger.info("getIsDeleted(Long userId) 호출 "); return userDAO.getIsDeleted(userId); } diff --git a/stockMate/src/main/resources/mappers/userMapper.xml b/stockMate/src/main/resources/mappers/userMapper.xml index 45b4e02..54830df 100644 --- a/stockMate/src/main/resources/mappers/userMapper.xml +++ b/stockMate/src/main/resources/mappers/userMapper.xml @@ -61,9 +61,9 @@ - SELECT * FROM test_users - WHERE user_id = #{userId} + WHERE email = #{email} and password = #{password} @@ -77,10 +77,10 @@ - UPDATE test_users - SET business_id = #{businessId} - WHERE user_id = #{userId} AND business_id IS NULL - + UPDATE test_users + SET business_id = #{businessId} + WHERE user_id = #{userId} AND business_id IS NULL + @@ -95,22 +95,22 @@ + SELECT + user_id, + email, + password, + name, + role, + business_id, + tel_number, + created_at, + updated_at, + created_by, + status, + is_deleted + FROM test_users + WHERE user_id = #{userId} + - - - -
- - -
- -
- 개인정보 수집에 동의함 (필수) -
- - - - - - - - diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/changepassword1.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword1.jsp index 7096947..239bb29 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/changepassword1.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword1.jsp @@ -77,14 +77,14 @@

비밀번호 변경

diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp index ab3fd0e..d5c9001 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp @@ -79,10 +79,10 @@

비밀번호를 입력하세요

- + diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo2.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo2.jsp index 2cc1055..27cf7ed 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo2.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo2.jsp @@ -83,7 +83,7 @@

홍길동님의 회원정보

@@ -93,7 +93,7 @@ - +
diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/howtouse.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/howtouse.jsp new file mode 100644 index 0000000..08fe0b8 --- /dev/null +++ b/stockMate/src/main/webapp/WEB-INF/views/user/howtouse.jsp @@ -0,0 +1,149 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + + 대시보드 사용법 + + + + +
+
+

대시보드 사용법

+
+ + +
+ + \ No newline at end of file diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/howtouse2.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/howtouse2.jsp new file mode 100644 index 0000000..ab712eb --- /dev/null +++ b/stockMate/src/main/webapp/WEB-INF/views/user/howtouse2.jsp @@ -0,0 +1,149 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + + 대시보드 사용법2 + + + + +
+
+

대시보드 사용법

+
+ + +
+ + \ No newline at end of file diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/intro.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/intro.jsp index c4aea3b..90bc418 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/intro.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/intro.jsp @@ -1,131 +1,116 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - + - 상담문의 + + 회사 소개 +
-
-

상담을 통해 궁금한 점을 즉시 해결하세요.

- -

궁금한 점을 빠르게 확인할 수 있습니다.

-

- • 연락처를 남겨주시면 영업 시간 기준 1일~2일 이내에 연락 드립니다.
- • 전문가와의 상담을 통해 문의사항을 빠르고 정확하게 해결하세요. -

- -

효과적인 시스템을 느껴보세요

-

- • 우리 회사의 업무에 어떻게 적용할 수 있을지 확인할 수 있습니다.
- • 프로그램 도입 여부를 빠르게 판단할 수 있습니다. -

+
+

회사 소개

+
+
+

회사 정보

+

회사명: ㈜stockmate

+

대표이사: 黃仁成

+

설립일: 1999년 8월

+

주사업: 웹 기반 ERP, 그룹웨어, 웹메일 개발 및 서비스

+

사업장: 부산 부산진구 동천로 109 삼한골든게이트 ㈜stockmate

+
+
+

고객 지원팀

+

고객님과의 최접점 고객지원팀이 있습니다.

+

고객지원팀은 고객사와의 상담업무를 주된 업무로 하며 다양한 문의를 처리합니다.

+

전화 상담 요청 및 지정된 전문 상담사를 통해 고객님의 궁금증을 해결합니다.

+

고객의 "고맙습니다"라는 말이 가장 큰 보람입니다.

+
+
+

DB팀

+

DB팀은 프로그램의 기본 뼈대를 튼튼히 잡아주는 중요한 팀입니다.

+

데이터를 설계하고 보안을 유지하며 고객사 자료를 안전하게 관리합니다.

+

DA(Data Architect)와 DBA(DataBase Admin)로 나누어져 있으며, 새로운 기능 기획안을 기반으로 DB 설계와 도면을 작성합니다.

+
+
+

개발팀

+

개발팀은 이카운트 ERP의 모든 기능을 구현합니다.

+

고객사 제안과 전략적 개발 기능을 기반으로 개발 스케줄을 잡고 기능을 개발합니다.

+

완성된 기능이 무사히 업그레이드되었을 때의 뿌듯함을 느끼며, 고객 만족도를 위해 지속적으로 노력하고 있습니다.

- -
-

상담문의

-
- - - - -
- - -
- -
- 개인정보 수집에 동의함 (필수) -
- -
- - +
diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/signin.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/signin.jsp index 8954d40..abf1c50 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/signin.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/signin.jsp @@ -88,7 +88,12 @@ text-decoration: underline; } - +
@@ -98,7 +103,7 @@
- + \ No newline at end of file From da5fc7808d47113a506f239314756dcc341bb6ec Mon Sep 17 00:00:00 2001 From: USER Date: Mon, 16 Dec 2024 16:16:46 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- stockMate/pom.xml | 2 +- .../stockm8/controller/UserController.java | 824 ++++++++++-------- .../java/com/stockm8/domain/vo/UserVO.java | 3 + .../java/com/stockm8/persistence/UserDAO.java | 11 +- .../com/stockm8/persistence/UserDAOImpl.java | 167 ++-- .../java/com/stockm8/service/UserService.java | 9 +- .../com/stockm8/service/UserServiceImpl.java | 137 +-- .../src/main/resources/mappers/userMapper.xml | 84 +- .../WEB-INF/views/user/changepassword1.jsp | 42 +- .../user/{info2.jsp => changepassword2.jsp} | 76 +- .../webapp/WEB-INF/views/user/editinfo1.jsp | 32 +- .../webapp/WEB-INF/views/user/editinfo2.jsp | 121 +-- .../main/webapp/WEB-INF/views/user/info1.jsp | 96 -- 13 files changed, 838 insertions(+), 766 deletions(-) rename stockMate/src/main/webapp/WEB-INF/views/user/{info2.jsp => changepassword2.jsp} (59%) delete mode 100644 stockMate/src/main/webapp/WEB-INF/views/user/info1.jsp diff --git a/stockMate/pom.xml b/stockMate/pom.xml index 139afe2..68e4a87 100644 --- a/stockMate/pom.xml +++ b/stockMate/pom.xml @@ -293,4 +293,4 @@ - + \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/controller/UserController.java b/stockMate/src/main/java/com/stockm8/controller/UserController.java index 6404c96..d33ddd0 100644 --- a/stockMate/src/main/java/com/stockm8/controller/UserController.java +++ b/stockMate/src/main/java/com/stockm8/controller/UserController.java @@ -1,9 +1,11 @@ package com.stockm8.controller; +import java.io.PrintWriter; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.slf4j.Logger; @@ -11,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; @@ -26,417 +29,464 @@ // *.me 처럼 /user/~ 시작하는 모든주소를 처리하겠다. public class UserController { - private static final Logger logger = LoggerFactory.getLogger(UserController.class); - - // userDAO 객체 root-context.xml주입 - // @Inject - // private userDAO mdao; - - @Autowired - private UserService userService; - - // http://localhost:8088/user/signup (o) - // http://localhost:8088/user/signin (o) - // http://localhost:8088/user/main (o) - // http://localhost:8088/user/info1 (o) - // http://localhost:8088/user/info2 (o) - - // http://localhost:8088/dashboard (o) - // http://localhost:8088/user/info1 (o) - // http://localhost:8088/user/info2 (o) - // http://localhost:8088/user/editinfo1 (o) - // http://localhost:8088/user/editinfo2 (o) - // http://localhost:8088/user/consultation (o) - // http://localhost:8088/user/changepassword1 (o) - - // 회원가입 - 정보입력 / GET 방식 - @RequestMapping(value = "/signup", method = RequestMethod.GET) - public void userSignUpGET() throws Exception { - logger.info(" /user/join -> userJoinGET() 실행"); - logger.info(" 주소에 맞는 view페이지 매핑(보여주기)"); - // return "/user/join"; // /view/user/join.jsp 연결 - - } - - // ./user/join?userid=qqqq&userpw=1111... - // 회원가입 - 정보처리 / POST 방식 - @RequestMapping(value = "/signup", method = RequestMethod.POST) - public String userSignUpPOST(/* @ModelAttribute */ UserVO user) throws Exception { - logger.info("/user/signup -> userSignUpPOST(UserVO uservo)실행 "); - logger.info("Role received: " + user.getRole()); - - // 전달정보 저장 - logger.info("vo :" + user); - - // userDAO객체가 필요 => 주입 - // DB에 정보를 전달 - 회원가입동작 실행 - // mdao.userJoin(vo); // => 잘못됨 - // 서비스 -> DAO 호출 - userService.userJoin(user); - - // 로그인 페이지로 이동 - return "redirect:/user/signin"; - } - - // http://localhost:8088/user/login (GET) - // 로그인 - 정보입력 / GET - @RequestMapping(value = "/signin", method = RequestMethod.GET) - public String userSgininGET(HttpServletRequest request, Model model) { - logger.info("userSgininGET(HttpServletRequest request, Model model) 호출 "); - logger.info("!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); - - - // FlashMap에서 에러 메시지 확인 - Map flashMap = RequestContextUtils.getInputFlashMap(request); - if (flashMap != null) { - String errorMessage = (String) flashMap.get("errorMessage"); - if (errorMessage != null) { - model.addAttribute("errorMessage", errorMessage); - } - } - - return "/user/signin"; - } - - // 로그인 - 정보처리 / POST - @RequestMapping(value = "/signin", method = RequestMethod.POST) - public String userLoginPOST(UserVO vo, RedirectAttributes rttr, HttpSession session) throws Exception { - logger.info("userLoginPOST() 호출"); - - // 입력받은 로그인 정보 출력 - logger.debug("입력된 로그인 정보: {}", vo); - - // 서비스 계층에서 로그인 체크 호출 - UserVO resultVO = userService.userLogin(vo); - - // 로그인 성공 처리 - if (resultVO != null) { - logger.info("로그인 성공, 사용자 ID: {}", resultVO.getUserId()); - - // 세션에 사용자 ID 저장 - session.setAttribute("userId", resultVO.getUserId()); - session.setAttribute("email", vo.getEmail()); - session.setAttribute("password", vo.getPassword()); - - // 원래 요청 URL로 리다이렉트 - String redirectUrl = (String) session.getAttribute("redirectAfterLogin"); - - if (redirectUrl != null) { - session.removeAttribute("redirectAfterLogin"); // 세션에서 URL 삭제 - return "redirect:" + redirectUrl; - } - return "redirect:/dashboard"; - } - - // 로그인 실패 처리 - logger.warn("로그인 실패, 사용자 정보를 찾을 수 없습니다."); - rttr.addFlashAttribute("errorMessage", "로그인에 실패했습니다. 아이디와 비밀번호를 확인해주세요."); - return "redirect:/user/signin"; // 로그인 페이지 이동 - } - - - - // 메인페이지 - GET - @RequestMapping(value = "/main", method = RequestMethod.GET) - public void mainGET(HttpServletRequest request, Model model) throws Exception { - logger.info(" mainGET() 호출 "); - - // FlashMap에서 에러 메시지 확인s - Map flashMap = RequestContextUtils.getInputFlashMap(request); - if (flashMap != null) { - String errorMessage = (String) flashMap.get("errorMessage"); - if (errorMessage != null) { - model.addAttribute("errorMessage", errorMessage); - } - } - - logger.info(" /user/main -> /user/main.jsp 연결 "); - } - -// // 대시보드 페이지 - GET -// @RequestMapping(value = "/dashboard", method = RequestMethod.GET) -// public void dashGET() { -// logger.info(" dashGET() 호출 "); + private static final Logger logger = LoggerFactory.getLogger(UserController.class); + + // userDAO 객체 root-context.xml주입 + // @Inject + // private userDAO mdao; + + @Autowired + private UserService userService; + + // http://localhost:8088/user/signup (o) + // http://localhost:8088/user/signin (o) + // http://localhost:8088/user/main (o) + // http://localhost:8088/user/info1 (o) + // http://localhost:8088/user/info2 (o) + + // http://localhost:8088/dashboard (o) + // http://localhost:8088/user/info1 (o) + // http://localhost:8088/user/info2 (o) + // http://localhost:8088/user/editinfo1 (o) + // http://localhost:8088/user/editinfo2 (o) + // http://localhost:8088/user/consultation (o) + // http://localhost:8088/user/changepassword1 (o) + + // 회원가입 - 정보입력 / GET 방식 + @RequestMapping(value = "/signup", method = RequestMethod.GET) + public void userSignUpGET() throws Exception { + logger.info(" /user/join -> userJoinGET() 실행"); + logger.info(" 주소에 맞는 view페이지 매핑(보여주기)"); + // return "/user/join"; // /view/user/join.jsp 연결 + + } + + // ./user/join?userid=qqqq&userpw=1111... + // 회원가입 - 정보처리 / POST 방식 + @RequestMapping(value = "/signup", method = RequestMethod.POST) + public String userSignUpPOST(/* @ModelAttribute */ UserVO user) throws Exception { + logger.info("/user/signup -> userSignUpPOST(UserVO uservo)실행 "); + logger.info("Role received: " + user.getRole()); + + // 전달정보 저장 + logger.info("vo :" + user); + + // userDAO객체가 필요 => 주입 + // DB에 정보를 전달 - 회원가입동작 실행 + // mdao.userJoin(vo); // => 잘못됨 + // 서비스 -> DAO 호출 + userService.userJoin(user); + + // 로그인 페이지로 이동 + return "redirect:/user/signin"; + } + + // http://localhost:8088/user/login (GET) + // 로그인 - 정보입력 / GET + @RequestMapping(value = "/signin", method = RequestMethod.GET) + public String userSgininGET(HttpServletRequest request, Model model) { + logger.info("userSgininGET(HttpServletRequest request, Model model) 호출 "); + logger.info("!@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); + + // FlashMap에서 에러 메시지 확인 + Map flashMap = RequestContextUtils.getInputFlashMap(request); + if (flashMap != null) { + String errorMessage = (String) flashMap.get("errorMessage"); + if (errorMessage != null) { + model.addAttribute("errorMessage", errorMessage); + } + } + + return "/user/signin"; + } + + // 로그인 - 정보처리 / POST + @RequestMapping(value = "/signin", method = RequestMethod.POST) + public String userLoginPOST(UserVO user, RedirectAttributes rttr, HttpSession session) throws Exception { + logger.info("userLoginPOST() 호출"); + + // 입력받은 로그인 정보 출력 + logger.debug("입력된 로그인 정보: {}", user); + + // 서비스 계층에서 로그인 체크 호출 + UserVO resultVO = userService.userLogin(user); + + // 로그인 성공 처리 + if (resultVO != null) { + logger.info("로그인 성공, 사용자 ID: {}", resultVO.getUserId()); + + // 세션에 사용자 ID 저장 + session.setAttribute("userId", resultVO.getUserId()); + + // 원래 요청 URL로 리다이렉트 +// String redirectUrl = (String) session.getAttribute("redirectAfterLogin"); +// +// if (redirectUrl != null) { +// session.removeAttribute("redirectAfterLogin"); // 세션에서 URL 삭제 +// return "redirect:" + redirectUrl; +// } + return "redirect:/dashboard"; + } + + // 로그인 실패 처리 + logger.warn("로그인 실패, 사용자 정보를 찾을 수 없습니다."); + rttr.addFlashAttribute("errorMessage", "로그인에 실패했습니다. 아이디와 비밀번호를 확인해주세요."); + return "redirect:/user/signin"; // 로그인 페이지 이동 + } + + // 메인페이지 - GET + @RequestMapping(value = "/main", method = RequestMethod.GET) + public void mainGET(HttpServletRequest request, Model model) throws Exception { + logger.info(" mainGET() 호출 "); + + // FlashMap에서 에러 메시지 확인 + Map flashMap = RequestContextUtils.getInputFlashMap(request); + if (flashMap != null) { + String errorMessage = (String) flashMap.get("errorMessage"); + if (errorMessage != null) { + model.addAttribute("errorMessage", errorMessage); + } + } + + logger.info(" /user/main -> /user/main.jsp 연결 "); + } + + // 대시보드 페이지 - GET + @RequestMapping(value = "/dashboard", method = RequestMethod.GET) + public void dashGET() { + + logger.info(" dashGET() 호출 "); + + logger.info(" /user/main -> /user/dash.jsp 연결 "); + } + + // 로그아웃 - GET + @RequestMapping(value = "/signout", method = RequestMethod.GET) + public String userLogoutGET(HttpSession session) throws Exception { + logger.info(" userLogoutGET() 호출"); + + // 로그아웃 처리(세션정보 초기화) + session.invalidate(); + + // 로그아웃 처리 후 페이지 이동 + + return "redirect:/user/main"; + } + + + // 회원정보 수정 + @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) + public String userEditInfo1GET(HttpSession session, Model model) { + Long userId = (Long) session.getAttribute("userId"); + if (userId == null) { + // 세션에 사용자 ID가 없으면 대시보드로 리다이렉트 + return "redirect:/dashboard"; + + + + } + return "/user/editinfo1"; // 비밀번호 입력 페이지로 이동 + } + + + + @RequestMapping(value = "/editinfo1", method = RequestMethod.POST) + public String userEditInfo2POST(@RequestParam("password") String password, HttpSession session, RedirectAttributes rttr) { + Long userId = (Long) session.getAttribute("userId"); + + if (userId == null) { + return "redirect:/dashboard"; + } + + try { + UserVO userVO = userService.getUser(userId, password); + + if (userVO == null) { + rttr.addFlashAttribute("errorMessage", "비밀번호가 일치하지 않습니다."); + return "redirect:/user/editinfo1"; + } + + // RedirectAttributes에 사용자 정보 추가 + rttr.addFlashAttribute("userVO", userVO); + return "redirect:/user/editinfo2"; + + } catch (Exception e) { + rttr.addFlashAttribute("errorMessage", "시스템 오류가 발생했습니다."); + return "redirect:/user/editinfo1"; + } + } + + + + @RequestMapping(value = "/editinfo2", method = RequestMethod.GET) + public String userEditInfo2GET(HttpSession session, Model model) { + if (!model.containsAttribute("userVO")) { + return "redirect:/dashboard"; // 데이터가 없으면 대시보드로 리다이렉트 + } + + return "/user/editinfo2"; + } + + + @RequestMapping(value = "/updateInfo2", method = RequestMethod.POST) + public void userUpdatePOST(@ModelAttribute UserVO user, HttpSession session, HttpServletResponse response) throws Exception { + logger.info("userUpdatePOST() 실행"); + + Long userId = (Long) session.getAttribute("userId"); + if (userId == null) { + response.sendRedirect("/dashboard"); + return; + } + + user.setUserId(userId); // userId 설정 + + try { + userService.updateUser(user); // 정보 업데이트 + logger.info("회원정보 수정 성공"); + + // JavaScript로 알림창 띄우고 대시보드로 이동 + response.setContentType("text/html; charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.flush(); + } catch (Exception e) { + logger.error("회원정보 수정 실패", e); + + // 오류 발생 시 오류 메시지와 함께 돌아가기 + response.setContentType("text/html; charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.flush(); + } + } + + + // 비밀번호 찾기 - get + @RequestMapping(value = "/findPassword", method = RequestMethod.GET) + public String findPasswordGet() { + + return "/user/findPassword"; + } + +// // 회원정보 수정 - GET +// // (기존정보를 가져와서 보여주고, 수정할 정보를 입력) +// @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) +// public void userUpdateGET(@SessionAttribute("userId") Long userId, Model model) throws Exception { +// logger.info(" userUpdateGET() 호출 "); // -// logger.info(" /user/main -> /user/dash.jsp 연결 "); -// } - - // 로그아웃 - GET - @RequestMapping(value = "/signout", method = RequestMethod.GET) - public String userLogoutGET(HttpSession session) throws Exception { - logger.info(" userLogoutGET() 호출"); - - // 로그아웃 처리(세션정보 초기화) - session.invalidate(); - - // 로그아웃 처리 후 페이지 이동 - - return "redirect:/user/main"; - } - -// // 회원정보 조회 - /user/info1 (GET) -// @RequestMapping(value = "/info1", method = RequestMethod.GET) -// public String userInfo1GET(Model model, HttpSession session) throws Exception { -// Long userId = (Long) session.getAttribute("id"); -//// if (id == null) { -//// // 세션에 id가 없으면 에러 처리 -//// return "redirect:/user/main"; -//// } -// UserVO resultVO = userService.getUser(userId); -// model.addAttribute("resultVO", resultVO); -// return "user/info1"; -// } -// // 회원정보 조회 - /user/info1 (GET) -// @RequestMapping(value = "/info2", method = RequestMethod.GET) -// public String userInfo2GET(Model model, HttpSession session) throws Exception { -// Long userId = (Long) session.getAttribute("id"); -//// if (id == null) { -//// // 세션에 id가 없으면 에러 처리 -//// return "redirect:/user/main"; -//// } -// UserVO resultVO = userService.getUser(userId); -// model.addAttribute("resultVO", resultVO); -// return "user/info2"; -// } -// -// -// -//// // 회원정보 조회 - /user/info1 (GET) -//// @RequestMapping(value = "/info1", method = RequestMethod.GET) -//// public void userInfo1GET( -//// Model model -//// ,@SessionAttribute(name = "id") String id) { -//// logger.info(" userInfo1GET() 호출"); -//// -//// // 세션에 저장된 아이디 정보를 가져오기 -//// logger.info(" id : "+id); -//// -//// // 서비스 -> DAO 호출(회원정보 조회) -//// userVO resultVO = userservice.getuser(id); -//// // 결과정보를 저장 view페이지 전달 & 출력 (Model객체) -//// model.addAttribute("resultVO", resultVO); -//// logger.info(" /user/info => /user/info1.jsp 연결"); -//// } -// - - // 회원정보 수정 - /user/info1 (GET) - @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) - public String usereditinfo1GET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("userId"); - if (userId == null) { - // 세션에 id가 없으면 에러 처리 - return "redirect:/dashboard"; - } -// UserVO resultVO = userService.getUser(userId); -// model.addAttribute("resultVO", resultVO); - return "/user/editinfo1"; - } - - - // 회원정보 수정 - /user/info1 (GET) - @RequestMapping(value = "/editinfo2", method = RequestMethod.POST) - public String usereditinfo2GET(@RequestParam("password") String password,Model model, HttpSession session) throws Exception { - - - logger.info("수정get"); - String userId = (String) session.getAttribute("userId"); - if (userId == null) { - // 세션에 id가 없으면 에러 처리 - return "redirect:/dashboard"; - } - else { - - UserVO resultVO = userService.getUser(userId, password); - model.addAttribute("resultVO", resultVO); - return "/user/editinfo2"; - } - - - } - - // 상담하기 - /user/consultation (GET) - @RequestMapping(value = "/consultation", method = RequestMethod.GET) - public String consultationGET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); - +// // 사용자의 ID정보를 가져오기(세션) +// logger.info("userId : " + userId); +// +// // 서비스 -> DAO 회원정보 가져오는 동작 호출 +// UserVO resultVO = userService.getUser(userId); +// +// // 연결된 뷰페이지에 출력 +// // => model 객체에 정보 저장 +// model.addAttribute("resultVO", resultVO); +// // /user/update.jsp 뷰페이지 연결 +// } +// + + // 회원정보 수정 + @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) + public String changepassword1GET(HttpSession session) { + Long userId = (Long) session.getAttribute("userId"); + if (userId == null) { + // 세션에 사용자 ID가 없으면 대시보드로 리다이렉트 + return "redirect:/dashboard"; + } + return "/user/changepassword1"; // 비밀번호 입력 페이지로 이동 + } + + + @RequestMapping(value = "/changepassword1", method = RequestMethod.POST) + public String changepassword2POST(@RequestParam("password") String password, RedirectAttributes rttr, HttpSession session) { + Long userId = (Long) session.getAttribute("userId"); + + if (userId == null) { + return "redirect:/dashboard"; // 세션이 없는 경우 대시보드로 이동 + } + + try { + // 사용자 정보 조회 및 비밀번호 확인 + UserVO userVO = userService.getUser(userId, password); + + if (userVO == null) { + rttr.addFlashAttribute("errorMessage", "비밀번호가 일치하지 않습니다."); + return "redirect:/user/changepassword1"; // 비밀번호 불일치 시 다시 이동 + } + + // 비밀번호를 모델에 추가 (FlashAttributes 사용) + rttr.addFlashAttribute("userVO", userVO); + rttr.addFlashAttribute("currentPassword", password); // 현재 비밀번호 추가 + return "redirect:/user/changepassword2"; + + } catch (Exception e) { + logger.error("비밀번호 확인 중 오류 발생: ", e); + rttr.addFlashAttribute("errorMessage", "시스템 오류가 발생했습니다."); + return "redirect:/user/changepassword1"; + } + } + + + @RequestMapping(value = "/changepassword2", method = RequestMethod.GET) + public String changepassword2GET(@ModelAttribute("currentPassword") String currentPassword, Model model) { + if (currentPassword == null || currentPassword.isEmpty()) { + return "redirect:/user/changepassword1"; // 비밀번호가 없는 경우 다시 이동 + } + + model.addAttribute("currentPassword", currentPassword); + return "/user/changepassword2"; // JSP 페이지 반환 + } + + @RequestMapping(value = "/changepassword2", method = RequestMethod.POST) + public void changePasswordPOST( + @RequestParam("newPassword") String newPassword, + @RequestParam("confirmPassword") String confirmPassword, + HttpSession session, + HttpServletResponse response) throws Exception { + + Long userId = (Long) session.getAttribute("userId"); + + if (userId == null) { + response.sendRedirect("/dashboard"); // 세션 없으면 대시보드로 이동 + return; + } + + // 비밀번호 일치 여부 확인 + if (!newPassword.equals(confirmPassword)) { + // 비밀번호 불일치 시 오류 메시지와 함께 머무르기 + response.setContentType("text/html; charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.flush(); + return; + } + + // 비밀번호 업데이트 + try { + userService.updatePassword(userId, newPassword); // 비밀번호 변경 + logger.info("비밀번호 변경 성공: userId = " + userId); + + // 성공 메시지와 함께 대시보드로 이동 + response.setContentType("text/html; charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.flush(); + } catch (Exception e) { + logger.error("비밀번호 변경 실패: ", e); + + // 오류 발생 시 메시지와 함께 이전 페이지로 이동 + response.setContentType("text/html; charset=UTF-8"); + PrintWriter out = response.getWriter(); + out.println(""); + out.flush(); + } + } + + + // 상담하기 - /user/consultation (GET) + @RequestMapping(value = "/consultation", method = RequestMethod.GET) + public String consultationGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("id"); + // if (id == null) { // // 세션에 id가 없으면 에러 처리 // return "redirect:/user/main"; // } // UserVO resultVO = userService.getUser(userId, password ); // model.addAttribute("resultVO", resultVO); - return "/user/consultation"; - } - - // 대시보드사용법 - /howtouse (GET) - @RequestMapping(value = "/howtouse", method = RequestMethod.GET) - public String howtouseGET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); + return "/user/consultation"; + } + + // 대시보드사용법 - /howtouse (GET) + @RequestMapping(value = "/howtouse", method = RequestMethod.GET) + public String howtouseGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("userId"); // if (id == null) { // // 세션에 id가 없으면 에러 처리 // return "redirect:/user/main"; // } // UserVO resultVO = userService.getUser(userId); // model.addAttribute("resultVO", resultVO); - return "/user/howtouse"; - } - - // 대시보드사용법 - /howtouse2 (GET) - @RequestMapping(value = "/howtouse2", method = RequestMethod.GET) - public String howtouseGET2(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("userId"); + return "/user/howtouse"; + } + + // 대시보드사용법 - /howtouse2 (GET) + @RequestMapping(value = "/howtouse2", method = RequestMethod.GET) + public String howtouseGET2(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("userId"); // if (id == null) { // // 세션에 id가 없으면 에러 처리 // return "redirect:/user/main"; // } // UserVO resultVO = userService.getUser(userId); // model.addAttribute("resultVO", resultVO); - return "/user/howtouse2"; - } - - - // 회사소개 - /intro (GET) - @RequestMapping(value = "/intro", method = RequestMethod.GET) - public String introGET(Model model, HttpSession session) throws Exception { - Long userId = (Long) session.getAttribute("id"); + return "/user/howtouse2"; + } + + // 회사소개 - /intro (GET) + @RequestMapping(value = "/intro", method = RequestMethod.GET) + public String introGET(Model model, HttpSession session) throws Exception { + Long userId = (Long) session.getAttribute("userId"); // if (id == null) { // // 세션에 id가 없으면 에러 처리 // return "redirect:/user/main"; // } // UserVO resultVO = userService.getUser(userId); // model.addAttribute("resultVO", resultVO); - return "/user/intro"; - } - - - // 비밀번호 찾기 - get - @RequestMapping(value = "/findPassword", method = RequestMethod.GET) - public String findPasswordGet() { - - return "/user/findPassword"; - } - - -// // 회원정보 수정 - GET -// // (기존정보를 가져와서 보여주고, 수정할 정보를 입력) -// @RequestMapping(value = "/editinfo1", method = RequestMethod.GET) -// public void userUpdateGET(@SessionAttribute("userId") Long userId, Model model) throws Exception { -// logger.info(" userUpdateGET() 호출 "); -// -// // 사용자의 ID정보를 가져오기(세션) -// logger.info("userId : " + userId); -// -// // 서비스 -> DAO 회원정보 가져오는 동작 호출 -// UserVO resultVO = userService.getUser(userId); -// -// // 연결된 뷰페이지에 출력 -// // => model 객체에 정보 저장 -// model.addAttribute("resultVO", resultVO); -// // /user/update.jsp 뷰페이지 연결 -// } -// - // 회원정보 수정 - POST - // (수정된 정보를 전달받아서 정보 수정) - @RequestMapping(value = "/updateInfo", method = RequestMethod.POST) - public String userUpdatePOST(UserVO user) throws Exception { - logger.info(" userUpdatePOST() "); - - // 전달정보(수정정보) 저장 - logger.info("vo : " + user); - - // 서비스 -> DAO 호출 (회원정보 수정) - userService.updateUser(user); - - // 수정완료시 메인페이지로 이동 - return "redirect:/dashboard"; - } - - - - - -// // 비밀번호 변경 - /user/changepassword1 (GET) -// @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) -// public String changepassword1GET(Model model, HttpSession session,@RequestParam("password") String password) throws Exception { -// Long userId = (Long) session.getAttribute("userId"); -//// if (id == null) { -//// // 세션에 id가 없으면 에러 처리 -//// return "redirect:/user/main"; -//// } -// UserVO resultVO = userService.getUser(userId,password); -// model.addAttribute("resultVO", resultVO); -// return "/user/changepassword1"; -// } - @RequestMapping(value = "/changepassword1", method = RequestMethod.GET) - public String changepassword1GET(Model model, HttpSession session) throws Exception { - String email = (String) session.getAttribute("email"); - String password = (String) session.getAttribute("password"); - logger.info("" + email +"" +password); - - if (email == null || password == null) { - return "redirect:/user/main"; - } - - UserVO resultVO = userService.getUser("email", "password"); - - - model.addAttribute("resultVO", resultVO); - logger.info(""+resultVO); - return "/user/changepassword1"; - } - - - - - - // 회원정보 삭제 - 비밀번호 입력 (GET) - @RequestMapping(value = "/delete", method = RequestMethod.GET) - public String userDeleteGET() throws Exception { - logger.info("userDeleteGET() 실행 "); - logger.info(" /user/delete.jsp 페이지 연결"); - - return "/user/delete"; - } - - // 회원정보 삭제 - 아이디/비밀번호 확인후 정보 삭제 (POST) - @RequestMapping(value = "/delete", method = RequestMethod.POST) - public String userDeletePOST(UserVO user, HttpSession session, @RequestParam("password") String password) throws Exception { - logger.info(" userDeletePOST() 실행 "); - - // 전달된 파라메터(id,pw)를 저장 - logger.info(" vo : " + user); - - // 서비스 -> DAO 호출 (정보 삭제) - int result = userService.deleteUser(user); - - if (result == 0) { - // 삭제 실패 - logger.info(" 정보 삭제 실패!! "); - return "redirect:/user/delete"; - } - - // 삭제 성공 - logger.info(" 정보 삭제 성공! "); - // 삭제 후 정보초기화 - session.invalidate(); - - return "redirect:/user/main"; - } - - // 회원목록 조회 - 회원정보를 리스트 형태로 가져오기 (GET) - @RequestMapping(value = "/list", method = RequestMethod.GET) - public String userListGET(Model model) throws Exception { - logger.info(" userListGET() 호출 "); - - // 서비스 -> DAO (회원 리스트 가져오기 동작) - List userList = userService.userList(); - logger.info(" 회원수 : " + userList.size()); - - // 뷰페이지에 정보를 전달(model객체) - model.addAttribute("userList", userList); - - // /user/list.jsp 페이지 - return "/user/list"; - } + return "/user/intro"; + } + + // 회원정보 삭제 - 비밀번호 입력 (GET) + @RequestMapping(value = "/delete", method = RequestMethod.GET) + public String userDeleteGET() throws Exception { + logger.info("userDeleteGET() 실행 "); + logger.info(" /user/delete.jsp 페이지 연결"); + + return "/user/delete"; + } + + // 회원정보 삭제 - 아이디/비밀번호 확인후 정보 삭제 (POST) + @RequestMapping(value = "/delete", method = RequestMethod.POST) + public String userDeletePOST(UserVO user, HttpSession session, @RequestParam("password") String password) + throws Exception { + logger.info(" userDeletePOST() 실행 "); + + // 전달된 파라메터(id,pw)를 저장 + logger.info(" vo : " + user); + + // 서비스 -> DAO 호출 (정보 삭제) + int result = userService.deleteUser(user); + + if (result == 0) { + // 삭제 실패 + logger.info(" 정보 삭제 실패!! "); + return "redirect:/user/delete"; + } + + // 삭제 성공 + logger.info(" 정보 삭제 성공! "); + // 삭제 후 정보초기화 + session.invalidate(); + + return "redirect:/user/main"; + } + + // 회원목록 조회 - 회원정보를 리스트 형태로 가져오기 (GET) + @RequestMapping(value = "/list", method = RequestMethod.GET) + public String userListGET(Model model) throws Exception { + logger.info(" userListGET() 호출 "); + + // 서비스 -> DAO (회원 리스트 가져오기 동작) + List userList = userService.userList(); + logger.info(" 회원수 : " + userList.size()); + + // 뷰페이지에 정보를 전달(model객체) + model.addAttribute("userList", userList); + + // /user/list.jsp 페이지 + return "/user/list"; + } }// Controller \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/domain/vo/UserVO.java b/stockMate/src/main/java/com/stockm8/domain/vo/UserVO.java index 7089b3b..d697aef 100644 --- a/stockMate/src/main/java/com/stockm8/domain/vo/UserVO.java +++ b/stockMate/src/main/java/com/stockm8/domain/vo/UserVO.java @@ -27,3 +27,6 @@ public class UserVO { } + + + diff --git a/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java b/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java index e15abba..469609d 100644 --- a/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java +++ b/stockMate/src/main/java/com/stockm8/persistence/UserDAO.java @@ -18,26 +18,29 @@ public interface UserDAO { public UserVO userLogin(UserVO user); // 회원정보 조회동작 - public UserVO getUser(String email , String password); // + public UserVO getUser(Long userId , String password); // // 회원정보 수정동작 public void updateUser (UserVO user); + + public UserVO getUserInfoById(Long userId) throws Exception; + + void updatePassword(@Param("userId") Long userId, @Param("newPassword") String newPassword); // 사용자의 businessId 수정 int updateUserBusinessId(@Param("userId") Long userId, @Param("businessId") int businessId); + // 회원정보 삭제동작 public int deleteUser (UserVO user); // 회원정보 목록(list) public List getUserList(); - - @Select("SELECT * FROM users WHERE user_id = #{userId}") UserVO getUserById(@Param("userId")Long userId) throws Exception; - int getIsDeleted(Long userId) throws Exception; + } \ No newline at end of file diff --git a/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java b/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java index acafde2..8017d22 100644 --- a/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java +++ b/stockMate/src/main/java/com/stockm8/persistence/UserDAOImpl.java @@ -16,76 +16,103 @@ @Repository public class UserDAOImpl implements UserDAO { - private static final Logger logger = LoggerFactory.getLogger(UserDAOImpl.class); - - @Inject - private SqlSession sqlSession; - - private static final String NAMESPACE = "com.stockm8.mapper.UserMapper."; - - @Override - public void userJoin(UserVO user) { - logger.info("userJoin 실행: " + user); - sqlSession.insert(NAMESPACE + "insertUser", user); - logger.info("회원가입 성공!"); - } - - @Override - public UserVO userLogin(UserVO user) { - logger.info("UserLogin 실행: " + user); - UserVO resultVO = sqlSession.selectOne(NAMESPACE + "loginCheck", user); - logger.info("로그인 결과: " + resultVO); - return resultVO; - } - - @Override - public UserVO getUser(String email, String password) { - logger.info("getUser 실행: user_id = " + email); - - Map params = new HashMap<>(); - params.put("email", email); - params.put("password", password); - - return sqlSession.selectOne(NAMESPACE + "getUser", params); - } - - @Override - public void updateUser(UserVO user) { - logger.info("updateUser 실행: " + user); - sqlSession.update(NAMESPACE + "updateUser", user); - logger.info("회원정보 수정 완료!"); - } - - @Override - public int updateUserBusinessId(Long userId, int businessId) { - Map params = new HashMap<>(); - params.put("userId", userId); - params.put("businessId", businessId); - - // 반환 값으로 영향을 받은 행(row) 수를 반환합니다. - return sqlSession.update(NAMESPACE + "updateUserBusinessId", params); - } - - @Override - public int deleteUser(UserVO user) { - logger.info("deleteUser 실행: " + user); - return sqlSession.delete(NAMESPACE + "deleteUser", user); - } - - @Override - public List getUserList() { - logger.info("getMemberList 실행"); - return sqlSession.selectList(NAMESPACE + "userList"); - } - - @Override - public int getIsDeleted(Long userId) throws Exception{ - - logger.info("getIsDeleted(Long userId) 실행"); - - return sqlSession.selectOne(NAMESPACE + "getIsDeleted", userId); - } - + private static final Logger logger = LoggerFactory.getLogger(UserDAOImpl.class); + + @Inject + private SqlSession sqlSession; + + private static final String NAMESPACE = "com.stockm8.mapper.UserMapper."; + + @Override + public void userJoin(UserVO user) { + logger.info("userJoin 실행: " + user); + sqlSession.insert(NAMESPACE + "insertUser", user); + logger.info("회원가입 성공!"); + } + + @Override + public UserVO userLogin(UserVO user) { + logger.info("UserLogin 실행: " + user); + UserVO resultVO = sqlSession.selectOne(NAMESPACE + "loginCheck", user); + logger.info("로그인 결과: " + resultVO); + return resultVO; + } + + @Override + public UserVO getUser(Long userId, String password) { + logger.info("getUser 실행: user_id = " + userId); + + // 비밀번호가 일치하는 사용자 정보 조회 + Map params = new HashMap<>(); + params.put("userId", userId); + params.put("password", password); + + // 비밀번호와 사용자 ID를 사용하여 조회 + return sqlSession.selectOne(NAMESPACE + "getUser", params); + } + + @Override + public void updateUser(UserVO user) { + logger.info("updateUser 실행: " + user); // 전달되는 userVO 객체 확인 + sqlSession.update(NAMESPACE + "updateUser", user); + + logger.info("회원정보 수정 완료!"); + + + } + + @Override + public UserVO getUserInfoById(Long userId) throws Exception { + return sqlSession.selectOne("UserMapper.getUserInfoById", userId); + } + + @Override + public void updatePassword(Long userId, String newPassword) { + logger.info("updatePassword 실행: userId = " + userId); + + Map params = new HashMap<>(); + params.put("userId", userId); + params.put("newPassword", newPassword); + + sqlSession.update(NAMESPACE + "updatePassword", params); + logger.info("비밀번호 변경 완료"); + } + + + @Override + public int updateUserBusinessId(Long userId, int businessId) { + Map params = new HashMap<>(); + params.put("userId", userId); + params.put("businessId", businessId); + + // 반환 값으로 영향을 받은 행(row) 수를 반환합니다. + return sqlSession.update(NAMESPACE + "updateUserBusinessId", params); + } + + + + + + @Override + public int deleteUser(UserVO user) { + logger.info("deleteUser 실행: " + user); + return sqlSession.delete(NAMESPACE + "deleteUser", user); + } + + @Override + public List getUserList() { + logger.info("getMemberList 실행"); + return sqlSession.selectList(NAMESPACE + "userList"); + } + + @Override + public int getIsDeleted(Long userId) throws Exception{ + + logger.info("getIsDeleted(Long userId) 실행"); + + return sqlSession.selectOne(NAMESPACE + "getIsDeleted", userId); + } + @Override public UserVO getUserById(Long userId) throws Exception { return sqlSession.selectOne(NAMESPACE + "getUserById", userId); diff --git a/stockMate/src/main/java/com/stockm8/service/UserService.java b/stockMate/src/main/java/com/stockm8/service/UserService.java index 6b7b391..1ecc36f 100644 --- a/stockMate/src/main/java/com/stockm8/service/UserService.java +++ b/stockMate/src/main/java/com/stockm8/service/UserService.java @@ -16,12 +16,17 @@ public interface UserService { public UserVO userLogin(UserVO user) throws Exception; // 회원정보 조회 - public UserVO getUser(String userId,String password) throws Exception; + public UserVO getUser(Long userId,String password) throws Exception; // 회원정보 수정 public void updateUser(UserVO user) throws Exception; - // 회원정보에서 BusinessId 수정 + public UserVO getUserInfoById(Long userId) throws Exception; + + void updatePassword(Long userId, String newPassword) throws Exception; + + + // 회원정보에서 비밀번호 수정 public void updateUserBusinessId(Long userId, int businessId) throws Exception; // 회원정보 삭제 diff --git a/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java b/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java index c397d5f..321c80b 100644 --- a/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java +++ b/stockMate/src/main/java/com/stockm8/service/UserServiceImpl.java @@ -16,81 +16,92 @@ @Service public class UserServiceImpl implements UserService { - private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class); + private static final Logger logger = LoggerFactory.getLogger(UserServiceImpl.class); - @Autowired - private UserDAO userDAO; - + @Autowired + private UserDAO userDAO; + @Autowired private BusinessDAO businessDAO; - @Override - public void userJoin(UserVO user) throws Exception { - userDAO.userJoin(user); - // userDAO.userJoinOracle(userVO); // 각각의 비지니스 로직을 처리 - // userDAO.userJoinMysql(userVO); - } - - @Override - public UserVO userLogin(UserVO user) throws Exception { - logger.info(" userLogin(UserVO vo) 호출 "); - - // DAO 로그인체크 동작 실행 - UserVO resultVO = userDAO.userLogin(user); - return resultVO; - } - - @Override - public UserVO getUser(String userId,String password) throws Exception { - logger.info(" getuser(String user_id)호출 "); - - return userDAO.getUser(userId, password); - } - - // 회원 정보 수정 - @Override - public void updateUser(UserVO user) throws Exception { - logger.info("updateuser(UserVO userVO) 실행"); - - // DAO 회원정보 수정메서드 호출 - userDAO.updateUser(user); - } - - @Override - public void updateUserBusinessId(Long userId, int businessId) throws Exception { - logger.info("updateUserBusinessId() 실행"); - - // DAO 회원 businessId정보 수정메서드 호출 - userDAO.updateUserBusinessId(userId, businessId); - } - - @Override - public int deleteUser(UserVO user) throws Exception { - logger.info(" deleteuser(UserVO dvo) 실행 "); - - return userDAO.deleteUser(user); - } - - @Override - public List userList() throws Exception { - logger.info("userList() 호출"); - - return userDAO.getUserList(); - } - + @Override + public void userJoin(UserVO user) throws Exception { + userDAO.userJoin(user); + // userDAO.userJoinOracle(userVO); // 각각의 비지니스 로직을 처리 + // userDAO.userJoinMysql(userVO); + } + + @Override + public UserVO userLogin(UserVO user) throws Exception { + logger.info(" userLogin(UserVO vo) 호출 "); + + // DAO 로그인체크 동작 실행 + UserVO resultVO = userDAO.userLogin(user); + return resultVO; + } + + @Override + public UserVO getUser(Long userId, String password) throws Exception { + logger.info(" getuser(String user_id)호출 "); + + return userDAO.getUser(userId, password); + } + + // 회원 정보 수정 + @Override + public void updateUser(UserVO user) throws Exception { + logger.info("updateuser(UserVO userVO) 실행"); + + // DAO 회원정보 수정메서드 호출 + userDAO.updateUser(user); + } + + @Override + public UserVO getUserInfoById(Long userId) throws Exception { + return userDAO.getUserInfoById(userId); + } + + @Override + public void updatePassword(Long userId, String newPassword) throws Exception { + userDAO.updatePassword(userId, newPassword); + } + + + @Override + public void updateUserBusinessId(Long userId, int businessId) throws Exception { + logger.info("updateUserBusinessId() 실행"); + + // DAO 회원 businessId정보 수정메서드 호출 + userDAO.updateUserBusinessId(userId, businessId); + } + + @Override + public int deleteUser(UserVO user) throws Exception { + logger.info(" deleteuser(UserVO dvo) 실행 "); + + return userDAO.deleteUser(user); + } + + @Override + public List userList() throws Exception { + logger.info("userList() 호출"); + + return userDAO.getUserList(); + } + @Override public UserVO getUserById(Long userId) throws Exception { - logger.info("getUserById(Long userId) 호출"); - // 사용자 유효성 확인 + logger.info("getUserById(Long userId) 호출"); + // 사용자 유효성 확인 return userDAO.getUserById(userId); } - + @Override public int getIsDeleted(Long userId) throws Exception { - logger.info("getIsDeleted(Long userId) 호출 "); + logger.info("getIsDeleted(Long userId) 호출 "); return userDAO.getIsDeleted(userId); } -} +} \ No newline at end of file diff --git a/stockMate/src/main/resources/mappers/userMapper.xml b/stockMate/src/main/resources/mappers/userMapper.xml index 54830df..c42827f 100644 --- a/stockMate/src/main/resources/mappers/userMapper.xml +++ b/stockMate/src/main/resources/mappers/userMapper.xml @@ -60,27 +60,41 @@ WHERE email = #{email} AND password = #{password} - - + + + + + + UPDATE test_users + SET + email = #{email}, + name = #{name}, + tel_number = #{telNumber} + WHERE user_id = #{userId} + + + + + + UPDATE test_users + SET password = #{newPassword} + WHERE user_id = #{userId} + + - - - UPDATE test_users - SET name = #{name}, - tel_number = #{telNumber}, - updated_at = NOW() - WHERE user_id = #{userId} AND password = #{password} - - - UPDATE test_users - SET business_id = #{businessId} - WHERE user_id = #{userId} AND business_id IS NULL - + UPDATE test_users + SET business_id = #{businessId} + WHERE user_id = #{userId} AND business_id IS NULL + @@ -95,22 +109,24 @@ + SELECT + user_id, + email, + password, + name, + role, + business_id, + tel_number, + created_at, + updated_at, + created_by, + status, + is_deleted + FROM test_users + WHERE user_id = #{userId} + + + - - - +

비밀번호를 입력하세요

+ + +
+ diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/info2.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp similarity index 59% rename from stockMate/src/main/webapp/WEB-INF/views/user/info2.jsp rename to stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp index 9d9ba0f..affd730 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/info2.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp @@ -4,7 +4,7 @@ - 내 정보 조회 + 비밀번호 변경 + -
-

홍길동님의 회원정보

-
- - - -
-
- - + + + + + + 뒤로 가기 +
+

비밀번호 변경

+
+
+ + +
+
+ + +
+ +
+
- diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp index d5c9001..ab19add 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/editinfo1.jsp @@ -4,7 +4,7 @@ - 내 정보 수정 + 비밀번호 확인 - - - -
- -

비밀번호를 입력하세요

-
- - -
-
- - - - - From 470c6352908e8b8970112a518e8dbf643085e432 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=97=88=EB=AF=BC?= Date: Mon, 16 Dec 2024 17:16:15 +0900 Subject: [PATCH 3/7] d --- .../src/main/java/com/stockm8/persistence/StockDAOImpl.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/stockMate/src/main/java/com/stockm8/persistence/StockDAOImpl.java b/stockMate/src/main/java/com/stockm8/persistence/StockDAOImpl.java index 4b28ac0..de53a50 100644 --- a/stockMate/src/main/java/com/stockm8/persistence/StockDAOImpl.java +++ b/stockMate/src/main/java/com/stockm8/persistence/StockDAOImpl.java @@ -56,10 +56,5 @@ public List selectOnlyStockByBusinessId(int businessId) throws Exceptio public List selectAllCategories() throws Exception { return sqlSession.selectList(NAMESPACE + "selectAllCategories"); } - - @Override - public List selectAllCategories() throws Exception { - return sqlSession.selectList(NAMESPACE + "selectAllCategories"); - } } From b7076fbca432a45308184852c83f4c4d5e48cf36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=97=88=EB=AF=BC?= Date: Mon, 16 Dec 2024 17:35:11 +0900 Subject: [PATCH 4/7] Category list/regist --- .../webapp/WEB-INF/views/category/list.jsp | 71 ++++++++++- .../WEB-INF/views/category/register.jsp | 4 +- .../resources/css/CategoryregistStyle.css | 117 ++++++++++++++++++ 3 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 stockMate/src/main/webapp/resources/css/CategoryregistStyle.css diff --git a/stockMate/src/main/webapp/WEB-INF/views/category/list.jsp b/stockMate/src/main/webapp/WEB-INF/views/category/list.jsp index a43b58e..9e9db19 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/category/list.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/category/list.jsp @@ -1,13 +1,74 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> - -카테고리 목록 - + + 카테고리 목록 + +

/views/category/list.jsp

diff --git a/stockMate/src/main/webapp/WEB-INF/views/category/register.jsp b/stockMate/src/main/webapp/WEB-INF/views/category/register.jsp index ff92db8..dc12105 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/category/register.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/category/register.jsp @@ -6,11 +6,13 @@ 카테고리 등록 + + -

/views/category/register.jsp

+

카테고리 등록 페이지

- SELECT s.product_id, p.product_name, s.total_quantity, s.warehouse_id - FROM stocks s - JOIN products p ON p.product_id = s.product_id - WHERE p.product_barcode = #{barcode} AND s.business_id = #{businessId} + SELECT s.product_id, p.product_name, s.total_quantity, s.warehouse_id + FROM stocks s + JOIN products p ON p.product_id = s.product_id + WHERE p.product_barcode = #{barcode} AND s.business_id = #{businessId} UPDATE stocks s JOIN products p on p.product_id = s.product_id - SET s.total_quantity = s.total_quantity + 1 + SET s.total_quantity = s.total_quantity + 1, + s.reserved_quantity = s.reserved_quantity -1 WHERE p.product_barcode = #{barcode} AND s.business_id = #{businessId} - AND s.total_quantity > 0 + AND s.reserved_quantity > 0 @@ -236,6 +237,33 @@ JOIN products p on p.product_id = s.product_id WHERE p.product_barcode = #{barcode} AND s.business_id = #{businessId} + + + + + + + + + UPDATE receiving_shipment r + JOIN products p ON r.product_id = p.product_id + JOIN stocks s ON s.product_id = p.product_id + SET r.status = 'COMPLETED' + WHERE p.product_barcode = #{barcode} + AND s.reserved_quantity = 1 + AND r.status = 'PENDING' + AND s.business_id = #{businessId}; + diff --git a/stockMate/src/main/webapp/WEB-INF/views/qrScanner.jsp b/stockMate/src/main/webapp/WEB-INF/views/qrScanner.jsp index 4db7cf6..023b0b6 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/qrScanner.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/qrScanner.jsp @@ -1,83 +1,243 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> + pageEncoding="UTF-8"%> QR 코드 스캔 및 상품 정보 - + + + -

QR 코드 스캔 및 상품 정보

- - -
- - -
-
- - - - - - - - - - - -
상품명바코드단가수량
- - diff --git a/stockMate/src/main/webapp/WEB-INF/views/receiving/allScan.jsp b/stockMate/src/main/webapp/WEB-INF/views/receiving/allScan.jsp new file mode 100644 index 0000000..023b0b6 --- /dev/null +++ b/stockMate/src/main/webapp/WEB-INF/views/receiving/allScan.jsp @@ -0,0 +1,341 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + + +QR 코드 스캔 및 상품 정보 + + + + + + +
+

실시간 입고 관리 시스템

+ 입고 메인 + 입고 내역 + 대쉬보드 + 다중 스캔 +
+
+
+ + +
+
+

재고 정보가 여기에 표시됩니다.

+
+
+ + +
+ + +
+
+ + + + + + + + + + + +
상품명바코드단가수량
+ + + + diff --git a/stockMate/src/main/webapp/WEB-INF/views/receiving/history.jsp b/stockMate/src/main/webapp/WEB-INF/views/receiving/history.jsp index 505f9a1..31ea01a 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/receiving/history.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/receiving/history.jsp @@ -292,7 +292,19 @@ tr:hover { ${vo.transactionType } - ${vo.status } + + + + 대기중 + + + 완료됨 + + + ${vo.status} + + + ${vo.productId } ${vo.productName } ${vo.productDescription } diff --git a/stockMate/src/main/webapp/WEB-INF/views/receiving/main.jsp b/stockMate/src/main/webapp/WEB-INF/views/receiving/main.jsp index 7d6992b..edf7fc6 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/receiving/main.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/receiving/main.jsp @@ -8,106 +8,129 @@ 입고 메인 - - + } + @@ -117,103 +140,119 @@ 실시간 입고 대쉬보드 - + +

오늘 입고 리스트

- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo }${vo.transactionType }${vo.status}${vo.productId }${vo.productName }${vo.productDescription }${vo.changeQuantity }${vo.transactionUnit }${vo.memo }
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo}${vo.transactionType} + + 대기중 + 완료됨 + ${vo.status} + + ${vo.productId}${vo.productName}${vo.productDescription}${vo.changeQuantity}${vo.transactionUnit}${vo.memo}
- +

어제 입고 리스트

- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo }${vo.transactionType }${vo.status }${vo.productId }${vo.productName }${vo.productDescription }${vo.changeQuantity }${vo.transactionUnit }${vo.memo }
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo}${vo.transactionType} + + 대기중 + 완료됨 + ${vo.status} + + ${vo.productId}${vo.productName}${vo.productDescription}${vo.changeQuantity}${vo.transactionUnit}${vo.memo}
- - +

그저께 입고 리스트

- - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + +
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo }${vo.transactionType }${vo.status }${vo.productId }${vo.productName }${vo.productDescription }${vo.changeQuantity }${vo.transactionUnit }${vo.memo }
입고 번호입고 출고입고 일자입고 상태제품 번호제품명옵션명입고 수량수량 단위작업 메모
${vo.receivingShipmentNo}${vo.transactionType} + + 대기중 + 완료됨 + ${vo.status} + + ${vo.productId}${vo.productName}${vo.productDescription}${vo.changeQuantity}${vo.transactionUnit}${vo.memo}
- - - \ No newline at end of file + diff --git a/stockMate/src/main/webapp/WEB-INF/views/receiving/scan.jsp b/stockMate/src/main/webapp/WEB-INF/views/receiving/scan.jsp index 2d567f8..023b0b6 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/receiving/scan.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/receiving/scan.jsp @@ -1,11 +1,12 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - + -실시간 입고 관리 + +QR 코드 스캔 및 상품 정보 + + -
+

실시간 입고 관리 시스템

- 입고 메인 | - 입고 내역 | + 입고 메인 + 입고 내역 대쉬보드 + 다중 스캔
@@ -55,5 +217,125 @@ $(document).ready(function () {

재고 정보가 여기에 표시됩니다.

+ + +
+ + +
+
+ + + + + + + + + + + +
상품명바코드단가수량
+ + - \ No newline at end of file + diff --git a/stockMate/src/main/webapp/WEB-INF/views/receiving/search.jsp b/stockMate/src/main/webapp/WEB-INF/views/receiving/search.jsp index 91c01d7..b283067 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/receiving/search.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/receiving/search.jsp @@ -291,15 +291,26 @@ tr:hover { ${vo.transactionType } - ${vo.status} + + + + 대기중 + + + 완료됨 + + + ${vo.status} + + + ${vo.productId } ${vo.productName } ${vo.productDescription } ${vo.changeQuantity } ${vo.transactionUnit } - ${vo.warehouseId } - ${vo.transactionUnit } ${vo.productPrice } + ${vo.warehouseId } ${vo.memo } From 26854092f95ce04f0b6e393b758bb3a810f90149 Mon Sep 17 00:00:00 2001 From: USER Date: Mon, 16 Dec 2024 17:58:27 +0900 Subject: [PATCH 6/7] update dashboard --- stockMate/pom.xml | 6 ++ .../stockm8/controller/UserController.java | 94 +++++++++++++++++++ .../WEB-INF/views/user/changepassword2.jsp | 7 +- .../WEB-INF/views/user/consultation.jsp | 22 ++++- 4 files changed, 124 insertions(+), 5 deletions(-) diff --git a/stockMate/pom.xml b/stockMate/pom.xml index 68e4a87..d3a704e 100644 --- a/stockMate/pom.xml +++ b/stockMate/pom.xml @@ -142,6 +142,12 @@ mysql-connector-j 8.0.32 + + + com.sun.mail + javax.mail + 1.6.2 + diff --git a/stockMate/src/main/java/com/stockm8/controller/UserController.java b/stockMate/src/main/java/com/stockm8/controller/UserController.java index d33ddd0..5570187 100644 --- a/stockMate/src/main/java/com/stockm8/controller/UserController.java +++ b/stockMate/src/main/java/com/stockm8/controller/UserController.java @@ -23,6 +23,14 @@ import com.stockm8.domain.vo.UserVO; import com.stockm8.service.UserService; +import javax.mail.internet.MimeMessage; +import javax.mail.Message; +import javax.mail.Transport; +import javax.mail.Session; +import java.util.Properties; +import javax.mail.PasswordAuthentication; + + @Controller @RequestMapping(value = "/user/*") @@ -399,6 +407,92 @@ public String consultationGET(Model model, HttpSession session) throws Exception return "/user/consultation"; } + + + + @RequestMapping(value = "/sendConsultation", method = RequestMethod.POST) + public String sendConsultation( + @RequestParam("company") String company, + @RequestParam("name") String name, + @RequestParam("contact") String contact, + @RequestParam("email") String email, + @RequestParam("inquiry") String inquiry, + RedirectAttributes rttr) { + + final String fromEmail = "zzangmait@naver.com"; // 네이버 이메일 계정 + final String password = "571TT3J3UMVY"; // 네이버 이메일 비밀번호 + + String toEmail = "zzangmait@naver.com"; // 수신 이메일 주소 + + // SMTP 설정 + Properties props = new Properties(); + props.put("mail.smtp.host", "smtp.naver.com"); + props.put("mail.smtp.port", "465"); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.ssl.enable", "true"); // SSL 활성화 + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + + Session session = Session.getInstance(props, new javax.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(fromEmail, password); + } + }); + + try { + // 이메일 내용 설정 + MimeMessage message = new MimeMessage(session); + message.setFrom(new javax.mail.internet.InternetAddress(fromEmail)); + message.addRecipient(Message.RecipientType.TO, new javax.mail.internet.InternetAddress(toEmail)); + message.setSubject("상담 신청 정보"); + + // HTML 형식 이메일 본문 + String content = "" + + "" + + "
" + + "

상담 신청 정보

" + + "" + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + " " + + "
회사명" + company + "
이름" + name + "
연락처" + contact + "
이메일" + email + "
문의 내용" + inquiry + "
" + + "

상담 신청해주셔서 감사합니다.

" + + "
" + + ""; + + // 이메일 본문을 HTML로 설정 + message.setContent(content, "text/html; charset=UTF-8"); + + // 메일 전송 + Transport.send(message); + rttr.addFlashAttribute("message", "상담 신청이 성공적으로 전송되었습니다."); + } catch (Exception e) { + e.printStackTrace(); + rttr.addFlashAttribute("error", "이메일 전송에 실패했습니다. 다시 시도해주세요."); + } + + return "redirect:/user/consultation"; + } + + + + // 대시보드사용법 - /howtouse (GET) @RequestMapping(value = "/howtouse", method = RequestMethod.GET) public String howtouseGET(Model model, HttpSession session) throws Exception { diff --git a/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp index affd730..3e2ef7d 100644 --- a/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp +++ b/stockMate/src/main/webapp/WEB-INF/views/user/changepassword2.jsp @@ -103,18 +103,19 @@

비밀번호 변경

-
+
- +
- +
+