🔧 完成前后端配置优化和部署修复
✅ 后端配置优化: - 优化application.yml配置文件结构 - 统一Coze API配置到所有环境 - 删除重复的SimpleAuthController和SimpleHealthController - 创建独立的HealthController - 修复SASS变量未定义问题 - 优化数据库连接池配置 ✅ 前端配置修复: - 修复Vite配置中SASS变量全局导入 - 更新API代理配置指向正确端口(8080) - 解决Dashboard组件SASS变量未定义错误 ✅ 部署配置完善: - 创建详细的部署状态报告 - 优化生产环境和本地环境配置 - 修复Nginx反向代理配置 - 完善防火墙和MySQL远程连接配置 🚀 功能状态: - 前端: Vue3 + Vite开发服务器正常启动 - 后端: Spring Boot服务正常运行(8080端口) - 数据库: MySQL连接配置完善 - API: 健康检查和基础接口就绪 📊 技术改进: - 配置文件结构优化 - 开发环境和生产环境配置分离 - 前后端联调环境就绪 - 部署文档完善
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package com.emotion.controller;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 健康检查控制器
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-23
|
||||
*/
|
||||
@RestController
|
||||
public class HealthController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(HealthController.class);
|
||||
|
||||
/**
|
||||
* 健康检查
|
||||
*/
|
||||
@GetMapping("/health")
|
||||
public Map<String, Object> health() {
|
||||
log.info("健康检查请求");
|
||||
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("service", "emotion-single");
|
||||
response.put("message", "情感博物馆单体服务运行正常");
|
||||
response.put("version", "1.0.0");
|
||||
response.put("status", "UP");
|
||||
response.put("timestamp", LocalDateTime.now());
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 服务信息
|
||||
*/
|
||||
@GetMapping("/health/info")
|
||||
public Map<String, Object> info() {
|
||||
log.info("服务信息请求");
|
||||
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("service", "emotion-single");
|
||||
response.put("description", "情感博物馆单体服务");
|
||||
response.put("version", "1.0.0");
|
||||
response.put("author", "emotion-museum");
|
||||
response.put("buildTime", "2025-07-23");
|
||||
response.put("javaVersion", System.getProperty("java.version"));
|
||||
response.put("timestamp", LocalDateTime.now());
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
@@ -1,126 +0,0 @@
|
||||
package com.emotion.controller;
|
||||
|
||||
import com.emotion.common.Result;
|
||||
import com.emotion.entity.SimpleUser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 简化认证控制器
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/auth")
|
||||
public class SimpleAuthController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(SimpleAuthController.class);
|
||||
|
||||
/**
|
||||
* 用户登录(模拟)
|
||||
*/
|
||||
@PostMapping("/login")
|
||||
public Result<Map<String, Object>> login(@RequestBody Map<String, String> request) {
|
||||
log.info("用户登录请求: {}", request.get("account"));
|
||||
|
||||
try {
|
||||
String account = request.get("account");
|
||||
String password = request.get("password");
|
||||
|
||||
if (account == null || password == null) {
|
||||
return Result.error("账号和密码不能为空");
|
||||
}
|
||||
|
||||
// 模拟用户验证
|
||||
if ("admin".equals(account) && "123456".equals(password)) {
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("accessToken", "mock-token-" + System.currentTimeMillis());
|
||||
response.put("expiresIn", 86400L);
|
||||
|
||||
Map<String, Object> userInfo = new HashMap<>();
|
||||
userInfo.put("id", "1");
|
||||
userInfo.put("username", "admin");
|
||||
userInfo.put("account", "admin");
|
||||
userInfo.put("nickname", "管理员");
|
||||
userInfo.put("status", 1);
|
||||
|
||||
response.put("userInfo", userInfo);
|
||||
response.put("loginTime", LocalDateTime.now());
|
||||
|
||||
return Result.success("登录成功", response);
|
||||
} else {
|
||||
return Result.error("账号或密码错误");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("用户登录失败: {}", e.getMessage());
|
||||
return Result.error("登录失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户注册(模拟)
|
||||
*/
|
||||
@PostMapping("/register")
|
||||
public Result<Map<String, Object>> register(@RequestBody Map<String, String> request) {
|
||||
log.info("用户注册请求: {}", request.get("account"));
|
||||
|
||||
try {
|
||||
String account = request.get("account");
|
||||
String password = request.get("password");
|
||||
String username = request.get("username");
|
||||
|
||||
if (account == null || password == null) {
|
||||
return Result.error("账号和密码不能为空");
|
||||
}
|
||||
|
||||
// 模拟用户创建
|
||||
Map<String, Object> userInfo = new HashMap<>();
|
||||
userInfo.put("id", "user-" + System.currentTimeMillis());
|
||||
userInfo.put("username", username != null ? username : account);
|
||||
userInfo.put("account", account);
|
||||
userInfo.put("status", 1);
|
||||
userInfo.put("createTime", LocalDateTime.now());
|
||||
|
||||
return Result.success("注册成功", userInfo);
|
||||
} catch (Exception e) {
|
||||
log.error("用户注册失败: {}", e.getMessage());
|
||||
return Result.error("注册失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取验证码(模拟)
|
||||
*/
|
||||
@GetMapping("/captcha")
|
||||
public Result<Map<String, Object>> getCaptcha() {
|
||||
log.info("获取验证码请求");
|
||||
|
||||
try {
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
response.put("captchaId", "captcha-" + System.currentTimeMillis());
|
||||
response.put("captchaImage", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==");
|
||||
response.put("type", "spec");
|
||||
response.put("expireTime", 300);
|
||||
|
||||
return Result.success("获取验证码成功", response);
|
||||
} catch (Exception e) {
|
||||
log.error("获取验证码失败: {}", e.getMessage());
|
||||
return Result.error("获取验证码失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户登出
|
||||
*/
|
||||
@PostMapping("/logout")
|
||||
public Result<String> logout(@RequestBody Map<String, String> request) {
|
||||
log.info("用户登出请求: {}", request.get("userId"));
|
||||
return Result.success("登出成功");
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
package com.emotion.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 简化健康检查控制器
|
||||
*
|
||||
* @author emotion-museum
|
||||
* @date 2025-07-21
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/health")
|
||||
public class SimpleHealthController {
|
||||
|
||||
@GetMapping
|
||||
public Map<String, Object> health() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("status", "UP");
|
||||
result.put("service", "emotion-single");
|
||||
result.put("version", "1.0.0");
|
||||
result.put("timestamp", LocalDateTime.now().toString());
|
||||
result.put("message", "情感博物馆单体服务运行正常");
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@GetMapping("/info")
|
||||
public Map<String, Object> info() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("name", "emotion-single");
|
||||
result.put("description", "情感博物馆单体服务");
|
||||
result.put("version", "1.0.0");
|
||||
result.put("author", "emotion-museum");
|
||||
result.put("build-time", LocalDateTime.now().toString());
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user