This commit is contained in:
vipg
2025-11-17 15:17:36 +08:00
parent a67e76bcb8
commit 300d4d257d
84 changed files with 21 additions and 4331 deletions

79
backend/src/main.go Normal file
View File

@@ -0,0 +1,79 @@
package main
import (
"asset_assistant/db" // 数据库相关操作包
"asset_assistant/logger" // 日志工具包
"asset_assistant/logic" // 业务逻辑处理包
"time"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin" // Gin框架用于构建HTTP服务
_ "github.com/lib/pq" // PostgreSQL数据库驱动下划线表示仅初始化不直接使用
"go.uber.org/zap" // Zap日志库用于结构化日志输出
)
// main函数是程序的入口点
func main() {
// 初始化日志配置
logger.Init()
// 记录服务初始化日志
zap.L().Info("🚀 用户服务初始化")
// 记录数据库初始化开始日志
zap.L().Info("⌛️ 数据库初始化开始")
// 初始化数据库连接
db.Init()
// 程序退出时关闭数据库连接defer确保在函数退出前执行
defer db.DB.Close()
// 记录数据库初始化成功日志
zap.L().Info("✅ 数据库初始化成功")
// 设置Gin框架为发布模式关闭调试信息
gin.SetMode(gin.ReleaseMode)
// 创建Gin默认路由器
r := gin.Default()
// 配置跨域中间件
r.Use(cors.New(cors.Config{
// 允许所有来源(生产环境建议指定具体域名)
AllowOrigins: []string{"*"},
// 允许的请求方法
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"},
// 允许的请求头
AllowHeaders: []string{"Origin", "Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token", "Authorization", "X-LoginRequest-ID"},
// 允许前端读取的响应头
ExposeHeaders: []string{"Content-Length"},
// 是否允许携带cookie
AllowCredentials: true,
// 预检请求的缓存时间
MaxAge: 12 * time.Hour,
}))
zap.L().Info("✅ 配置跨域中间件完成")
// 注册品种接口
variety := r.Group("/user")
{
variety.POST("/create", logic4variety.CreateVarietyHandler)
}
zap.L().Info("✅ 用户接口注册完成")
// // 注册创建国家的接口POST请求由logic.CreateHandler处理
// r.POST("/asset_assistant/create", logic.CreateHandler)
// zap.L().Info("✅ 创建接口注册完成: POST /asset_assistant/create")
// // 注册读取国家的接口POST请求由logic.ReadHandler
// r.POST("/asset_assistant/read", logic.ReadHandler)
// zap.L().Info("✅ 读取接口注册完成: POST /asset_assistant/read")
// // 注册更新国家的接口POST请求由logic.UpdateHandler
// r.POST("/asset_assistant/update", logic.UpdateHandler)
// zap.L().Info("✅ 更新接口注册完成: POST /asset_assistant/update")
// // 注册删除国家的接口POST请求由logic.DeleteHandler处理
// r.POST("/asset_assistant/delete", logic.DeleteHandler)
// zap.L().Info("✅ 删除接口注册完成: POST /asset_assistant/delete")
// 记录服务启动日志监听80端口
zap.L().Info("✅ 服务启动在80端口")
r.Run(":80")
}