main.go 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package main
  2. import (
  3. "fmt"
  4. // "shudao-chat-go/controllers"
  5. _ "shudao-chat-go/routers"
  6. // "shudao-chat-go/tests"
  7. "shudao-chat-go/models"
  8. "shudao-chat-go/utils"
  9. beego "github.com/beego/beego/v2/server/web"
  10. "github.com/beego/beego/v2/server/web/filter/cors"
  11. )
  12. func main() {
  13. // 启用JSON body解析 - Beego v2的配置方式
  14. beego.BConfig.CopyRequestBody = true
  15. // // 转换template_1.json为PPTX
  16. // if err := tests.ConvertTemplate1ToPPTX(); err != nil {
  17. // fmt.Printf("PPT转换失败: %v\n", err)
  18. // }
  19. // // 智能转换:根据大纲内容匹配模板并填充
  20. // fmt.Println("\n=== 开始智能转换 ===")
  21. // if err := tests.ConvertToSmartPresentation(); err != nil {
  22. // fmt.Printf("智能转换失败: %v\n", err)
  23. // }
  24. // ============ 重要:先注册认证中间件,再注册CORS ============
  25. fmt.Println("🔧 正在注册Token认证中间件...")
  26. beego.InsertFilter("*", beego.BeforeRouter, utils.AuthMiddleware)
  27. fmt.Println("✅ Token认证中间件注册完成 (BeforeRouter)")
  28. beego.InsertFilter("*", beego.BeforeExec, utils.AuthMiddleware)
  29. fmt.Println("✅ Token认证中间件注册完成 (BeforeExec)")
  30. //解决跨域问题
  31. beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
  32. AllowOrigins: []string{"*"},
  33. AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
  34. AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type", "token"},
  35. ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
  36. AllowCredentials: true,
  37. }))
  38. fmt.Println("✅ CORS中间件注册完成")
  39. //迁移total中所有表
  40. // models.DB.AutoMigrate(&models.RecognitionRecord{})
  41. // 设置静态文件路径
  42. beego.SetStaticPath("/assets", "assets")
  43. beego.SetStaticPath("/static", "static")
  44. beego.SetStaticPath("/src", "assets") // 将/src路径映射到assets目录
  45. // 启动心跳任务
  46. models.StartHeartbeatTask()
  47. // 批量匹配图片(取消注释下面的行来运行)
  48. // fmt.Println("开始批量匹配图片...")
  49. // controllers.BatchMatchImages()
  50. // 批量上传图片(取消注释下面的行来运行)
  51. // fmt.Println("开始批量上传图片...")
  52. // controllers.BatchUploadImages()
  53. // 批量上传文件(取消注释下面的行来运行)
  54. // fmt.Println("开始批量上传文件...")
  55. // controllers.BatchUploadFilesToOSS()
  56. // 启动服务器
  57. beego.Run()
  58. }