From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001 From: sws <15810472099@163.com> Date: 星期六, 26 十一月 2022 16:12:02 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/controller/all/SignController.java | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 221 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/lf/server/controller/all/SignController.java b/src/main/java/com/lf/server/controller/all/SignController.java new file mode 100644 index 0000000..e4bf97f --- /dev/null +++ b/src/main/java/com/lf/server/controller/all/SignController.java @@ -0,0 +1,221 @@ +package com.lf.server.controller.all; + +import com.lf.server.annotation.SysLog; +import com.lf.server.config.PropertiesConfig; +import com.lf.server.entity.all.ResponseMsg; +import com.lf.server.entity.all.StaticData; +import com.lf.server.entity.sys.LoginEntity; +import com.lf.server.entity.sys.TokenEntity; +import com.lf.server.entity.sys.UserEntity; +import com.lf.server.helper.*; +import com.lf.server.service.sys.LoginService; +import com.lf.server.service.sys.TokenService; +import com.lf.server.service.sys.UserService; +import com.lf.server.service.all.SignService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +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; + +/** + * 绛惧悕鎺у埗鍣� + * @author WWW + * @date 2022-09-21 + */ +@Api(tags = "杩愮淮绠$悊\\绛惧悕绠$悊") +@RestController +@RequestMapping("/sign") +public class SignController extends BaseController { + @Autowired + UserService userService; + + @Autowired + LoginService loginService; + + @Autowired + TokenService tokenService; + + @Autowired + SignService signService; + + @Autowired + PropertiesConfig propertiesConfig; + + @SysLog() + @ApiOperation(value = "璺宠浆棣栭〉") + @GetMapping({"/", "/toIndex"}) + public ModelAndView toIndex(ModelAndView mv, HttpServletRequest req) { + mv.setViewName("index"); + + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + mv.addObject("msg", "Hello " + ue.getUname() + " !"); + } + + return mv; + } + + @SysLog() + @ApiOperation(value = "璺宠浆鐧诲綍椤�") + @GetMapping("/toLogin") + public ModelAndView toLogin(ModelAndView mv) { + mv.setViewName("login"); + + return mv; + } + + @SysLog() + @ApiOperation(value = "鏁版嵁搴撶洃鎺�") + @GetMapping(value = "/toDruid") + public ModelAndView toDruid(HttpServletRequest req, HttpServletResponse res) { + ModelAndView mv = new ModelAndView(); + mv.setViewName("druid"); + + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + String sessionId = WebHelper.getCookieByKey(StaticData.DRUID_COOKIE_KEY, req); + if (StringHelper.isNull(sessionId)) { + signService.loginDruid(req, res); + } + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + + return mv; + } + + @SysLog() + @ApiOperation(value = "璧勬簮鐩戞帶") + @GetMapping(value = "/toMonitor") + public ModelAndView toMonitor(ModelAndView mv, HttpServletRequest req, HttpServletResponse res) { + try { + mv.setViewName("redirect:/toLogin"); + + UserEntity ue = tokenService.getCurrentUser(req); + if (ue != null) { + mv.setViewName("monitor"); + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + + return mv; + } + + @SysLog() + @ApiOperation(value = "鐧诲綍") + @ApiImplicitParams({ + @ApiImplicitParam(name = "user", value = "鐢ㄦ埗鍚�", dataType = "UsersEntity", paramType = "body", example = "") + }) + @PostMapping(value = "/login", produces = "application/json; charset=UTF-8") + public ResponseMsg<TokenEntity> login(@RequestBody UserEntity user, HttpServletRequest req, HttpServletResponse res) { + try { + String str = userService.validateLoginPwd(user); + if (str != null) { + return fail(str, null); + } + + UserEntity ue = userService.selectByUid(user.getUid()); + if (ue == null) { + return fail("鐢ㄦ埛鍚嶄笉瀛樺湪", null); + } + + if (!Md5Helper.validatePassword(user.getPwd(), ue.getPwd())) { + tokenService.setPwdErrCache(ue); + return fail("瀵嗙爜涓嶆纭�", null); + } + + LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 1, 1, req); + Integer rows = loginService.insertLogin(le); + if (rows == 0) { + return fail("鍒涘缓鐧诲綍鏃ュ織澶辫触", null); + } + + TokenEntity te = tokenService.getNewToken(ue, 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); + } + } + + @SysLog() + @ApiOperation(value = "鐧诲嚭") + @GetMapping(value = "/logout") + public ResponseMsg<Boolean> logout(HttpServletRequest req, HttpServletResponse res) { + try { + String token = WebHelper.getToken(req); + if (StringHelper.isEmpty(token)) { + return fail("娌℃湁妫�娴嬪埌浠ょ墝", false); + } + + Boolean flag = tokenService.logout(token, req, res); + + return success(flag ? "鐧诲嚭鎴愬姛" : "鐧诲嚭澶辫触", flag); + } catch (Exception ex) { + return fail(ex.getMessage(), false); + } + } + + @SysLog() + @ApiOperation(value = "妫�鏌ユ槸/鍚︾櫥褰�") + @GetMapping("/check") + public ResponseMsg<Boolean> check(HttpServletRequest req, HttpServletResponse res) { + try { + Boolean flag = tokenService.isLogin(req, res); + if (flag) { + // 鍐欐棩蹇� + UserEntity ue = tokenService.getCurrentUser(req); + LoginEntity le = loginService.getNewLogin(ue.getId(), 1, 2, 1, req); + Integer rows = loginService.insertLogin(le); + } + + return success(flag ? "鐢ㄦ埛宸茬櫥褰�" : "鐢ㄦ埛鏈櫥褰�", flag); + } catch (Exception ex) { + return fail(ex.getMessage(), false); + } + } + + @SysLog() + @ApiOperation(value = "鑾峰彇褰撳墠鐢ㄦ埛") + @GetMapping("/getCurrentUser") + public ResponseMsg<UserEntity> getCurrentUser(HttpServletRequest req) { + try { + UserEntity ue = tokenService.getCurrentUser(req); + if (ue == null) { + return fail("娌℃湁鎵惧埌", null); + } + + return success(ue); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } + + @SysLog() + @ApiOperation(value = "鑾峰彇RSA鍔犲瘑鍏挜") + @GetMapping("/getPublicKey") + public ResponseMsg<String> getPublicKey() { + try { + String key = RsaHelper.getPublicKey(); + + return success(key); + } catch (Exception ex) { + return fail(ex.getMessage(), null); + } + } +} -- Gitblit v1.9.3