From 74c698fb0f094d7d322cfe6a218cf7c86e82a43f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期五, 30 九月 2022 11:26:18 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/controller/sys/SignController.java | 179 +++++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 118 insertions(+), 61 deletions(-) diff --git a/src/main/java/com/lf/server/controller/sys/SignController.java b/src/main/java/com/lf/server/controller/sys/SignController.java index 9f9fc9f..30b462b 100644 --- a/src/main/java/com/lf/server/controller/sys/SignController.java +++ b/src/main/java/com/lf/server/controller/sys/SignController.java @@ -1,12 +1,21 @@ package com.lf.server.controller.sys; -import com.lf.server.entity.sys.LoginInfo; -import com.lf.server.entity.sys.Result; -import com.lf.server.entity.sys.User; -import com.lf.server.service.sys.UserService; +import com.lf.server.controller.BaseController; +import com.lf.server.entity.all.ResponseMsg; +import com.lf.server.entity.data.LoginEntity; +import com.lf.server.entity.data.TokenEntity; +import com.lf.server.entity.data.UsersEntity; +import com.lf.server.helper.StringHelper; +import com.lf.server.helper.WebHelper; +import com.lf.server.service.data.LoginService; +import com.lf.server.service.data.TokenService; +import com.lf.server.service.data.UsersService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; /** * 绛惧悕鎺у埗鍣� @@ -15,14 +24,15 @@ */ @RestController @RequestMapping("/sign") -public class SignController { +public class SignController extends BaseController { @Autowired - UserService userService; + UsersService userService; - @GetMapping("/getName") - public User getName(String loginName) { - return userService.queryUserByName(loginName); - } + @Autowired + LoginService loginService; + + @Autowired + TokenService tokenService; /** * 璺冲埌棣栭〉 @@ -30,12 +40,12 @@ * @return String */ @GetMapping({"/", "/toIndex"}) - public ModelAndView toIndex(ModelAndView mv) { + public ModelAndView toIndex(ModelAndView mv, HttpServletRequest req) { mv.setViewName("index"); - User user = null; - if (user != null) { - mv.addObject("msg", "Hello " + user.getLoginName() + " !"); + UsersEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + mv.addObject("msg", "Hello " + ue.getUname() + " !"); } return mv; @@ -54,67 +64,114 @@ } /** - * 璺冲埌鏈巿鏉冮〉闈� - * return "redirect:/toLogin" - * - * @return String - */ - @GetMapping("/noauth") - public ModelAndView toNoAuth(ModelAndView mv) { - mv.setViewName("noauth"); - - return mv; - } - - /** * 鐧诲綍璁よ瘉 * - * @return String + * @return ResponseMsg<TokenEntity> */ - @GetMapping("/login") - public ModelAndView login(String username, String password, String service, Integer rememberMe) { - ModelAndView mv = new ModelAndView(); + @PostMapping(value = "/login", produces = "application/json; charset=UTF-8") + public ResponseMsg<TokenEntity> login(@RequestBody UsersEntity user, HttpServletRequest req, HttpServletResponse res) { try { - mv.setViewName("index"); - if (service != null && service.length() > 0) { - mv.addObject("url", service); - } else { - mv.addObject("msg", username); + if (user == null) { + return fail("璇疯緭鍏ョ敤鎴峰悕鍜屽瘑鐮侊紒", null); } - } catch (Exception e) { + if (StringHelper.isEmpty(user.getUid())) { + return fail("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒", null); + } + if (StringHelper.isEmpty(user.getPwd())) { + return fail("瀵嗙爜涓嶈兘涓虹┖锛�", null); + } + + UsersEntity ue = userService.selectByUid(user.getUid()); + if (ue == null) { + return fail("鐢ㄦ埛鍚嶄笉瀛樺湪锛�", null); + } + + LoginEntity le = loginService.getNewLogin(ue.getId(), req); + if (!user.getPwd().equals(ue.getPwd())) { + le.setStatus(0); + le.setDescr("瀵嗙爜閿欒"); + loginService.insertLogin(le); + return fail("瀵嗙爜涓嶆纭紒", null); + } + le.setStatus(1); + + Integer rows = loginService.insertLogin(le); + if (rows == 0) { + return fail("鍒涘缓鐧诲綍鏃ュ織澶辫触锛�", null); + } + + TokenEntity te = tokenService.getNewToken(ue.getId(), req); + rows = tokenService.insertToken(te); + if (rows == 0) { + return fail("鍒涘缓浠ょ墝淇℃伅澶辫触锛�", null); + } + + tokenService.saveToken(ue, te, req, res); + + return success(te); + } catch (Exception ex) { + return fail(ex.getMessage(), null); } - - return mv; } /** - * 娉ㄩ攢 + * 鐧诲嚭 * - * @return String - */ - @GetMapping("/logout") - public ModelAndView logout() { - ModelAndView mv = new ModelAndView(); - mv.setViewName("login"); - - return mv; - } - - /** - * Ajax鐧诲綍 - * - * @param userInfo + * @param req + * @param res * @return */ - @PostMapping(value = "/ajaxLogin", produces = "application/json; charset=UTF-8") - public Result ajaxLogin(@RequestBody User userInfo) { + @GetMapping(value = "/logout") + public ResponseMsg<Boolean> logout(HttpServletRequest req, HttpServletResponse res) { try { - LoginInfo loginInfo = userService.getLoginInfo(userInfo.getLoginName()); + String token = WebHelper.getToken(req); + if (StringHelper.isEmpty(token)) { + return fail("娌℃湁妫�娴嬪埌浠ょ墝", false); + } - return new Result(200, loginInfo != null ? "鐧诲綍鎴愬姛" : "鐧诲綍澶辫触", loginInfo); - } catch (Exception e) { - e.printStackTrace(); - return new Result(500, e.getMessage()); + //... + Boolean flag = tokenService.isLogin(req, res); + + return success(flag ? "鐢ㄦ埛宸茬櫥褰�" : "鐢ㄦ埛鏈櫥褰�", flag); + } catch (Exception ex) { + return fail(ex.getMessage(), false); + } + } + + /** + * 鏄�/鍚︾櫥褰� + * + * @return ResponseMsg<String> + */ + @GetMapping("/isLogin") + public ResponseMsg<Boolean> isLogin(HttpServletRequest req, HttpServletResponse res) { + try { + Boolean flag = tokenService.isLogin(req, res); + + return success(flag ? "鐢ㄦ埛宸茬櫥褰�" : "鐢ㄦ埛鏈櫥褰�", flag); + } catch (Exception ex) { + return fail(ex.getMessage(), false); + } + } + + /** + * 鑾峰彇褰撳墠鐢ㄦ埛 + * + * @param req + * @param res + * @return + */ + @GetMapping("/getCurrentUser") + public ResponseMsg<UsersEntity> getCurrentUser(HttpServletRequest req, HttpServletResponse res) { + try { + UsersEntity ue = tokenService.getCurrentUser(req); + if (ue == null) { + return fail("娌℃湁鎵惧埌", null); + } + + return success(ue); + } catch (Exception ex) { + return fail(ex.getMessage(), null); } } } -- Gitblit v1.9.3