init
This commit is contained in:
@@ -2,7 +2,8 @@ package com.ski.lichuan.admin.controller.auth;
|
||||
|
||||
import com.ski.lichuan.admin.controller.auth.dto.LoginRequest;
|
||||
import com.ski.lichuan.common.utils.JwtUtils;
|
||||
import com.ski.lichuan.model.SysUser;
|
||||
import com.ski.lichuan.model.auth.SysUser;
|
||||
import com.ski.lichuan.model.common.HttpResponseData;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -39,30 +40,35 @@ public class AuthController {
|
||||
* @return 登录结果
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
@Operation(summary = "用户登录", description = "根据用户名和密码登录,返回JWT Token")
|
||||
public ResponseEntity<Map<String, Object>> login(@RequestBody LoginRequest loginRequest) {
|
||||
@Operation(summary = "用户登录", description = "根据用户名和密码登录,返回JWT Token", requestBody = @io.swagger.v3.oas.annotations.parameters.RequestBody(description = "登录请求参数", required = true, content = @io.swagger.v3.oas.annotations.media.Content(mediaType = "application/json", schema = @io.swagger.v3.oas.annotations.media.Schema(implementation = LoginRequest.class))))
|
||||
public HttpResponseData<LoginVo> login(@RequestBody LoginRequest loginRequest) {
|
||||
// 1. 构造认证请求(用户名+密码)
|
||||
UsernamePasswordAuthenticationToken authToken =
|
||||
new UsernamePasswordAuthenticationToken(loginRequest.getUsername(), loginRequest.getPassword());
|
||||
|
||||
// 2. 触发认证(会调用 UserDetailsService.loadUserByUsername 验证用户)
|
||||
// 2. 触发认证
|
||||
try {
|
||||
Authentication authentication = authenticationManager.authenticate(authToken);
|
||||
|
||||
// 3. 认证成功,生成 Token
|
||||
SysUser user = (SysUser) authentication.getPrincipal();
|
||||
String token = jwtUtils.generateToken(user.getUsername());
|
||||
|
||||
// 4. 构建响应体
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("success", true);
|
||||
response.put("message", "登录成功");
|
||||
HttpResponseData<LoginVo> response = new HttpResponseData<>();
|
||||
LoginVo loginVo = new LoginVo(token, user.getNickname());
|
||||
response.setSuccess(true);
|
||||
response.setCode(200);
|
||||
response.setMessage("登录成功");
|
||||
response.setData(loginVo);
|
||||
|
||||
Map<String, Object> data = new HashMap<>();
|
||||
data.put("token", token);
|
||||
data.put("nickname", user.getNickname());
|
||||
response.put("data", data);
|
||||
|
||||
return ResponseEntity.ok(response);
|
||||
return response;
|
||||
} catch (Exception e) {
|
||||
HttpResponseData<LoginVo> response = new HttpResponseData<>();
|
||||
response.setSuccess(false);
|
||||
response.setCode(401);
|
||||
response.setMessage("用户名或密码错误");
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -71,7 +77,7 @@ public class AuthController {
|
||||
* @return 用户信息
|
||||
*/
|
||||
@GetMapping("/userinfo")
|
||||
@Operation(summary = "获取当前用户信息", description = "根据JWT Token获取当前登录用户的基本信息")
|
||||
@Operation(summary = "获取当前用户信息", description = "根据JWT Token获取当前登录用户的基本信息",)
|
||||
public ResponseEntity<Map<String, Object>> getUserInfo() {
|
||||
log.info("获取用户信息请求");
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ski.lichuan.admin.controller.device;
|
||||
|
||||
public class SnowMachineController {
|
||||
/**
|
||||
* 1.造雪机设备的基本信息管理,增删查改
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ski.lichuan.admin.controller.device;
|
||||
|
||||
public class WaterPumpController {
|
||||
/**
|
||||
* 1.水泵设备的基本信息管理,增删查改
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ski.lichuan.admin.controller.device.command;
|
||||
|
||||
public class SnowMachineCommandController {
|
||||
/**
|
||||
* 1.造雪机设备的指令管理,包括配置、启动、停止等操作
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.ski.lichuan.admin.controller.monitor;
|
||||
|
||||
public class SkiResortController {
|
||||
/**
|
||||
* 1.获取滑雪场雪道和造雪机关联信息
|
||||
* 2.提供滑雪场雪道和造雪机的关联移除(上下机)接口
|
||||
* 3.提供滑雪场造雪机的群控功能(只对滑雪场内的造雪机生效)
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.ski.lichuan.mapper;
|
||||
|
||||
import com.ski.lichuan.model.SysUser;
|
||||
import com.ski.lichuan.model.auth.SysUser;
|
||||
import org.apache.ibatis.annotations.*;
|
||||
|
||||
@Mapper
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.ski.lichuan.model;
|
||||
package com.ski.lichuan.model.auth;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.ski.lichuan.model.common;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
|
||||
@Data
|
||||
public class HttpResponseData<T> {
|
||||
private T data;
|
||||
private String message;
|
||||
private Integer code;
|
||||
private Boolean success;
|
||||
|
||||
public HttpResponseData() {
|
||||
this.code = 200;
|
||||
this.success = true;
|
||||
}
|
||||
|
||||
public HttpResponseData(T data) {
|
||||
this.code = 200;
|
||||
this.success = true;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public HttpResponseData<T> success(T data) {
|
||||
HttpResponseData<T> response = new HttpResponseData<>();
|
||||
response.setCode(200);
|
||||
response.setSuccess(true);
|
||||
response.setData(data);
|
||||
return response;
|
||||
}
|
||||
|
||||
public HttpResponseData<T> error(String message) {
|
||||
HttpResponseData<T> response = new HttpResponseData<>();
|
||||
response.setCode(500);
|
||||
response.setSuccess(false);
|
||||
response.setMessage(message);
|
||||
return response;
|
||||
}
|
||||
|
||||
public HttpResponseData<T> error(Integer code, String message) {
|
||||
HttpResponseData<T> response = new HttpResponseData<>();
|
||||
response.setCode(code);
|
||||
response.setSuccess(false);
|
||||
response.setMessage(message);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.ski.lichuan.initializer;
|
||||
|
||||
import com.ski.lichuan.mapper.UserMapper;
|
||||
import com.ski.lichuan.model.SysUser;
|
||||
import com.ski.lichuan.model.auth.SysUser;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.ski.lichuan.model.SysUser;
|
||||
import com.ski.lichuan.model.auth.SysUser;
|
||||
|
||||
@Service
|
||||
public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
|
||||
Reference in New Issue
Block a user