管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-09-30 ef1f37541b768829ba9b7c8fe771f0633f8a488c
src/main/java/com/lf/server/controller/sys/SignController.java
@@ -5,10 +5,8 @@
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.entity.sys.LoginInfo;
import com.lf.server.entity.sys.Result;
import com.lf.server.entity.sys.User;
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;
@@ -42,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;
@@ -68,7 +66,7 @@
    /**
     * 登录认证
     *
     * @return String
     * @return ResponseMsg<TokenEntity>
     */
    @PostMapping(value = "/login", produces = "application/json; charset=UTF-8")
    public ResponseMsg<TokenEntity> login(@RequestBody UsersEntity user, HttpServletRequest req, HttpServletResponse res) {
@@ -88,7 +86,7 @@
                return fail("用户名不存在!", null);
            }
            LoginEntity le = loginService.getNewLogin(user.getId(), req);
            LoginEntity le = loginService.getNewLogin(ue.getId(), req);
            if (!user.getPwd().equals(ue.getPwd())) {
                le.setStatus(0);
                le.setDescr("密码错误");
@@ -96,10 +94,19 @@
                return fail("密码不正确!", null);
            }
            le.setStatus(1);
            loginService.insertLogin(le);
            Integer rows = loginService.insertLogin(le);
            if (rows == 0) {
                return fail("创建登录日志失败!", null);
            }
            TokenEntity te = tokenService.getNewToken(ue.getId(), req);
            tokenService.insertToken(te);
            rows = tokenService.insertToken(te);
            if (rows == 0) {
                return fail("创建令牌信息失败!", null);
            }
            tokenService.saveToken(ue, te, req, res);
            return success(te);
        } catch (Exception ex) {
@@ -108,15 +115,66 @@
    }
    /**
     * 注销
     * 登出
     *
     * @return String
     * @param req
     * @param res
     * @return
     */
    @GetMapping("/logout")
    public ModelAndView logout() {
        ModelAndView mv = new ModelAndView();
        mv.setViewName("login");
    @GetMapping(value = "/logout")
    public ResponseMsg<Object> logout(HttpServletRequest req, HttpServletResponse res) {
        try {
            String token = WebHelper.getToken(req);
            if (StringHelper.isEmpty(token)) {
                return fail("没有检测到令牌", null);
            }
        return mv;
            //...
            Boolean flag = tokenService.isLogin(req, res);
            return success(flag ? "用户已登录" : "用户未登录", flag);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
    /**
     * 检查令牌
     *
     * @param req
     * @param res
     * @return
     */
    @GetMapping(value = "/check")
    public ResponseMsg<Object> check(HttpServletRequest req, HttpServletResponse res) {
        try {
            String token = WebHelper.getToken(req);
            if (StringHelper.isEmpty(token)) {
                return fail("没有检测到令牌", null);
            }
            //...
            Boolean flag = tokenService.isLogin(req, res);
            return success(flag ? "用户已登录" : "用户未登录", flag);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
    }
    /**
     * 是否登录
     *
     * @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);
        }
    }
}