wuweihao il y a 4 ans
Parent
commit
cb6eed0952

+ 3 - 0
laser/src/main/java/com/fdkankan/indoor/IndoorApplication.java

@@ -11,6 +11,9 @@ import org.springframework.scheduling.annotation.EnableScheduling;
  * @author Admin
  *
  * http://test.4dkankan.com:9294/doc.html
+ * http://test.4dkankan.com:9294/doc.html#/home
+ *
+ * 前端展示页:https://testlaser.4dkankan.com/maxkk/test3/
  *
  */
 @SpringBootApplication

+ 4 - 6
laser/src/main/java/com/fdkankan/indoor/core/controller/LoginController.java

@@ -1,15 +1,13 @@
 package com.fdkankan.indoor.core.controller;
 
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.dto.LoginDto;
 import com.fdkankan.indoor.core.service.LoginService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * Created by owen on 2021/7/19 0019 11:30
@@ -24,8 +22,8 @@ public class LoginController {
 
     @ApiOperation(value = "登录", notes = "目前部分数据是写死的")
     @PostMapping("indoor/{sceneCode}/api/auth/token")
-    public Object login(@PathVariable String sceneCode, String username, String password){
-        Result result = loginService.login(username, password);
+    public Object login(@RequestBody LoginDto param){
+        Result result = loginService.login(param);
         return result.getData();
     }
 

+ 13 - 0
laser/src/main/java/com/fdkankan/indoor/core/dto/LoginDto.java

@@ -0,0 +1,13 @@
+package com.fdkankan.indoor.core.dto;
+
+import lombok.Data;
+
+/**
+ * Created by owen on 2021/7/21 0021 16:31
+ */
+@Data
+public class LoginDto {
+
+    private String username;
+    private String password;
+}

+ 2 - 1
laser/src/main/java/com/fdkankan/indoor/core/service/LoginService.java

@@ -1,12 +1,13 @@
 package com.fdkankan.indoor.core.service;
 
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.dto.LoginDto;
 
 /**
  * Created by owen on 2021/7/19 0019 11:53
  */
 public interface LoginService {
-    Result login(String username, String password);
+    Result login(LoginDto param);
 
     Result groups(String sceneCode);
 

+ 70 - 4
laser/src/main/java/com/fdkankan/indoor/core/service/impl/LoginServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.indoor.core.service.impl;
 
 import com.fdkankan.indoor.base.util.JwtUtil;
 import com.fdkankan.indoor.base.util.Result;
+import com.fdkankan.indoor.core.dto.LoginDto;
 import com.fdkankan.indoor.core.entity.SysUserEntity;
 import com.fdkankan.indoor.core.entity.poi.PoiEntity;
 import com.fdkankan.indoor.core.service.LoginService;
@@ -9,12 +10,16 @@ import com.fdkankan.indoor.core.service.SysUserService;
 import com.fdkankan.indoor.core.vo.BaseVo;
 import com.fdkankan.indoor.core.vo.UserVo;
 import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
+import javax.servlet.http.HttpServletRequest;
+import java.beans.Transient;
 import java.util.HashMap;
 
 /**
@@ -30,11 +35,17 @@ public class LoginServiceImpl implements LoginService {
     @Autowired
     MongoTemplate mongoTemplate;
 
+
+    @Autowired
+    HttpServletRequest request;
+
     // 目前是24h
     private static Integer TOKEN_EXPIRE = 1000 * 60 * 60 * 24;
 
     @Override
-    public Result login(String username, String password) {
+    public Result login(LoginDto param) {
+        String password = param.getPassword();
+        String username = param.getUsername();
 
         SysUserEntity dbUser = sysUserService.findByUserName(username);
         if (dbUser == null) {
@@ -68,7 +79,7 @@ public class LoginServiceImpl implements LoginService {
     @Override
     public Result groups(String sceneCode) {
         Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+        query.addCriteria(Criteria.where("sceneCode").is(getIsLogin()));
         BaseVo vo = mongoTemplate.findOne(query, BaseVo.class, "t_group");
         return Result.success(vo.getData());
     }
@@ -76,7 +87,7 @@ public class LoginServiceImpl implements LoginService {
     @Override
     public Result license(String sceneCode) {
         Query query = new Query();
-        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+        query.addCriteria(Criteria.where("sceneCode").is(getIsLogin()));
         BaseVo vo = mongoTemplate.findOne(query, BaseVo.class, "t_license");
         return Result.success(vo.getData());
     }
@@ -100,8 +111,11 @@ public class LoginServiceImpl implements LoginService {
     @Override
     public Result user(String sceneCode) {
         Query query = new Query();
-//        query.addCriteria(Criteria.where("sceneCode").is(sceneCode));
+        query.addCriteria(Criteria.where("sceneCode").is(getIsLogin()));
         BaseVo vo = mongoTemplate.findOne(query, BaseVo.class, "t_user");
+
+
+
         return Result.success(vo.getData());
     }
 
@@ -128,4 +142,56 @@ public class LoginServiceImpl implements LoginService {
         BaseVo vo = mongoTemplate.findOne(query, BaseVo.class, "t_poi_types");
         return Result.success(vo.getData());
     }
+
+
+    /**
+     * 检查登录
+     * @return
+     */
+    private Boolean checkToken(){
+        String token = request.getHeader("X-Authorization");
+//        String token = request.getHeader("token");
+        log.info("token: {}", token);
+        if (token == null) {
+            // 未登录
+            return false;
+        }
+
+        token = token.replaceAll("Bearer\r", "");
+        log.info("处理后的token1: {}", token);
+        token = token.replaceAll(" Bearer ", "");
+        log.info("处理后的token2: {}", token);
+
+        // 有token就先让他过, 不做处理
+        // 验证token
+//        String username = JwtUtil.getUsername(token);
+//        if (! JwtUtil.isVerify(token, username)) {
+//            log.error("token invalid");
+//            return false;
+//        }
+
+        // 已登录
+        return true;
+    }
+
+    /**
+     * 获取登陆值
+     * @return
+     */
+    private String getIsLogin(){
+        String isLogin = "login";
+        if (!checkToken()) {
+            isLogin = "unLogin";
+        }
+        log.info("isLogin:{}", isLogin);
+        return isLogin;
+    }
+
+
+    @Test
+    public void test(){
+        String token = "Bearer eyJhbGciOiJIUzI1NiJ9.e";
+        token = token.replaceAll("Bearer\r", "");
+        System.out.println(token);
+    }
 }