diff --git a/README.md b/README.md new file mode 100644 index 0000000..05cf810 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +# 项目架构 \ No newline at end of file diff --git a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/auth/AuthController.java b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/auth/AuthController.java index e0b2a56..b88218a 100644 --- a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/auth/AuthController.java +++ b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/auth/AuthController.java @@ -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> 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 login(@RequestBody LoginRequest loginRequest) { // 1. 构造认证请求(用户名+密码) UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(loginRequest.getUsername(), loginRequest.getPassword()); - // 2. 触发认证(会调用 UserDetailsService.loadUserByUsername 验证用户) - Authentication authentication = authenticationManager.authenticate(authToken); + // 2. 触发认证 + try { + Authentication authentication = authenticationManager.authenticate(authToken); + // 3. 认证成功,生成 Token + SysUser user = (SysUser) authentication.getPrincipal(); + String token = jwtUtils.generateToken(user.getUsername()); - // 3. 认证成功,生成 Token - SysUser user = (SysUser) authentication.getPrincipal(); - String token = jwtUtils.generateToken(user.getUsername()); + // 4. 构建响应体 + HttpResponseData response = new HttpResponseData<>(); + LoginVo loginVo = new LoginVo(token, user.getNickname()); + response.setSuccess(true); + response.setCode(200); + response.setMessage("登录成功"); + response.setData(loginVo); - // 4. 构建响应体 - Map response = new HashMap<>(); - response.put("success", true); - response.put("message", "登录成功"); - - Map 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 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> getUserInfo() { log.info("获取用户信息请求"); diff --git a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/SnowMachineController.java b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/SnowMachineController.java new file mode 100644 index 0000000..12defe3 --- /dev/null +++ b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/SnowMachineController.java @@ -0,0 +1,7 @@ +package com.ski.lichuan.admin.controller.device; + +public class SnowMachineController { + /** + * 1.造雪机设备的基本信息管理,增删查改 + */ +} diff --git a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/WaterPumpController.java b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/WaterPumpController.java new file mode 100644 index 0000000..7f79c2e --- /dev/null +++ b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/WaterPumpController.java @@ -0,0 +1,7 @@ +package com.ski.lichuan.admin.controller.device; + +public class WaterPumpController { + /** + * 1.水泵设备的基本信息管理,增删查改 + */ +} diff --git a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/command/SnowMachineCommandController.java b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/command/SnowMachineCommandController.java new file mode 100644 index 0000000..9fec1bf --- /dev/null +++ b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/device/command/SnowMachineCommandController.java @@ -0,0 +1,7 @@ +package com.ski.lichuan.admin.controller.device.command; + +public class SnowMachineCommandController { + /** + * 1.造雪机设备的指令管理,包括配置、启动、停止等操作 + */ +} diff --git a/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/monitor/SkiResortController.java b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/monitor/SkiResortController.java new file mode 100644 index 0000000..c3cb9f1 --- /dev/null +++ b/ski-dashboard-admin/src/main/java/com/ski/lichuan/admin/controller/monitor/SkiResortController.java @@ -0,0 +1,10 @@ +package com.ski.lichuan.admin.controller.monitor; + +public class SkiResortController { + /** + * 1.获取滑雪场雪道和造雪机关联信息 + * 2.提供滑雪场雪道和造雪机的关联移除(上下机)接口 + * 3.提供滑雪场造雪机的群控功能(只对滑雪场内的造雪机生效) + */ + +} diff --git a/ski-dashboard-common/src/main/java/com/ski/lichuan/mapper/UserMapper.java b/ski-dashboard-common/src/main/java/com/ski/lichuan/mapper/UserMapper.java index 17274e2..6f73597 100644 --- a/ski-dashboard-common/src/main/java/com/ski/lichuan/mapper/UserMapper.java +++ b/ski-dashboard-common/src/main/java/com/ski/lichuan/mapper/UserMapper.java @@ -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 diff --git a/ski-dashboard-model/src/main/java/com/ski/lichuan/model/SysUser.java b/ski-dashboard-model/src/main/java/com/ski/lichuan/model/auth/SysUser.java similarity index 96% rename from ski-dashboard-model/src/main/java/com/ski/lichuan/model/SysUser.java rename to ski-dashboard-model/src/main/java/com/ski/lichuan/model/auth/SysUser.java index cb0052a..b2263fb 100644 --- a/ski-dashboard-model/src/main/java/com/ski/lichuan/model/SysUser.java +++ b/ski-dashboard-model/src/main/java/com/ski/lichuan/model/auth/SysUser.java @@ -1,4 +1,4 @@ -package com.ski.lichuan.model; +package com.ski.lichuan.model.auth; import lombok.Data; import org.springframework.security.core.GrantedAuthority; diff --git a/ski-dashboard-model/src/main/java/com/ski/lichuan/model/common/HttpResponseData.java b/ski-dashboard-model/src/main/java/com/ski/lichuan/model/common/HttpResponseData.java new file mode 100644 index 0000000..b93e151 --- /dev/null +++ b/ski-dashboard-model/src/main/java/com/ski/lichuan/model/common/HttpResponseData.java @@ -0,0 +1,48 @@ +package com.ski.lichuan.model.common; + + +import lombok.Data; +import org.springframework.http.ResponseEntity; + +@Data +public class HttpResponseData { + 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 success(T data) { + HttpResponseData response = new HttpResponseData<>(); + response.setCode(200); + response.setSuccess(true); + response.setData(data); + return response; + } + + public HttpResponseData error(String message) { + HttpResponseData response = new HttpResponseData<>(); + response.setCode(500); + response.setSuccess(false); + response.setMessage(message); + return response; + } + + public HttpResponseData error(Integer code, String message) { + HttpResponseData response = new HttpResponseData<>(); + response.setCode(code); + response.setSuccess(false); + response.setMessage(message); + return response; + } +} diff --git a/ski-dashboard-service/src/main/java/com/ski/lichuan/initializer/AdminUserInitializer.java b/ski-dashboard-service/src/main/java/com/ski/lichuan/initializer/AdminUserInitializer.java index fa2986b..ce02fe3 100644 --- a/ski-dashboard-service/src/main/java/com/ski/lichuan/initializer/AdminUserInitializer.java +++ b/ski-dashboard-service/src/main/java/com/ski/lichuan/initializer/AdminUserInitializer.java @@ -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; diff --git a/ski-dashboard-service/src/main/java/com/ski/lichuan/services/UserDetailsServiceImpl.java b/ski-dashboard-service/src/main/java/com/ski/lichuan/services/UserDetailsServiceImpl.java index 3249cad..9b762fa 100644 --- a/ski-dashboard-service/src/main/java/com/ski/lichuan/services/UserDetailsServiceImpl.java +++ b/ski-dashboard-service/src/main/java/com/ski/lichuan/services/UserDetailsServiceImpl.java @@ -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 {