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