feat():learning后台管理项目初始化

This commit is contained in:
yuj
2025-12-04 16:23:46 +08:00
parent 39886d50d2
commit 88e048f4d1
154 changed files with 28966 additions and 6 deletions

BIN
test/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

52
test/preview_email.go Normal file
View File

@@ -0,0 +1,52 @@
package main
import (
"fmt"
"os"
"time"
"goalfymax-admin/internal/config"
"goalfymax-admin/internal/services"
)
func main() {
fmt.Println("==========================================================")
fmt.Println("邮件模板预览")
fmt.Println("==========================================================")
// 加载配置
config.LoadConfig("./etc/config.yaml")
// 创建邮件服务
emailService := services.NewEmailService()
inviteCode := "GFY-SAMPLE01-ABCD"
expiresAt := time.Now().Add(72 * time.Hour)
// 生成中文邮件 HTML
fmt.Println("\n=== 生成中文邮件预览 ===")
htmlZh := emailService.GenerateApprovalEmailZH(inviteCode, &expiresAt)
fileZh := "./docs/email_preview_zh.html"
if err := os.WriteFile(fileZh, []byte(htmlZh), 0644); err != nil {
fmt.Printf("✗ 保存失败: %v\n", err)
} else {
fmt.Printf("✓ 已保存到: %s\n", fileZh)
}
// 生成英文邮件 HTML
fmt.Println("\n=== 生成英文邮件预览 ===")
htmlEn := emailService.GenerateApprovalEmailEN(inviteCode, &expiresAt)
fileEn := "./docs/email_preview_en.html"
if err := os.WriteFile(fileEn, []byte(htmlEn), 0644); err != nil {
fmt.Printf("✗ 保存失败: %v\n", err)
} else {
fmt.Printf("✓ 已保存到: %s\n", fileEn)
}
fmt.Println("\n==========================================================")
fmt.Println("预览文件已生成!")
fmt.Println("==========================================================")
fmt.Println("\n打开以下文件查看邮件效果")
fmt.Printf(" 中文版: open %s\n", fileZh)
fmt.Printf(" 英文版: open %s\n", fileEn)
}

42
test/send_test_email.go Normal file
View File

@@ -0,0 +1,42 @@
package main
import (
"fmt"
"time"
"goalfymax-admin/internal/config"
"goalfymax-admin/internal/services"
)
func main() {
fmt.Println("==========================================================")
fmt.Println("发送测试邮件")
fmt.Println("==========================================================")
// 加载配置
config.LoadConfig("./etc/config.yaml")
// 创建邮件服务
emailService := services.NewEmailService()
// 测试邮箱
testEmail := "wangkang@goalfyai.com"
inviteCode := "GFY-TEST1104-ABCD"
expiresAt := time.Now().Add(72 * time.Hour)
// 发送英文邮件
fmt.Printf("\n发送邮件到: %s\n", testEmail)
fmt.Printf("邀请码: %s\n", inviteCode)
fmt.Printf("语言: English\n")
fmt.Printf("有效期: %s\n", expiresAt.Format("2006-01-02 15:04:05"))
err := emailService.SendInviteCodeApprovalEmail(testEmail, inviteCode, "en", &expiresAt)
if err != nil {
fmt.Printf("\n✗ 发送失败: %v\n", err)
} else {
fmt.Printf("\n✓ 邮件发送成功!\n")
fmt.Printf("\n请检查邮箱: %s\n", testEmail)
}
fmt.Println("\n==========================================================")
}

68
test/test_email.go Normal file
View File

@@ -0,0 +1,68 @@
package main
import (
"fmt"
"time"
"goalfymax-admin/internal/config"
"goalfymax-admin/internal/services"
)
func main() {
fmt.Println("==========================================================")
fmt.Println("邮件发送功能测试")
fmt.Println("==========================================================")
// 加载配置
config.LoadConfig("../etc/config.yaml")
// 创建邮件服务
emailService := services.NewEmailService()
// 测试中文邮件
fmt.Println("\n=== 测试 1: 发送中文邮件 ===")
testZhEmail := "test_zh@example.com"
inviteCodeZh := "GFY-TEST0001-ZH01"
expiresAt := time.Now().Add(72 * time.Hour)
fmt.Printf("收件人: %s\n", testZhEmail)
fmt.Printf("邀请码: %s\n", inviteCodeZh)
fmt.Printf("语言: zh (中文)\n")
fmt.Printf("有效期: %s\n", expiresAt.Format("2006-01-02 15:04:05"))
err := emailService.SendInviteCodeApprovalEmail(testZhEmail, inviteCodeZh, "zh", &expiresAt)
if err != nil {
fmt.Printf("✗ 发送失败: %v\n", err)
} else {
fmt.Printf("✓ 发送成功\n")
}
// 等待一下
time.Sleep(2 * time.Second)
// 测试英文邮件
fmt.Println("\n=== 测试 2: 发送英文邮件 ===")
testEnEmail := "test_en@example.com"
inviteCodeEn := "GFY-TEST0001-EN01"
fmt.Printf("收件人: %s\n", testEnEmail)
fmt.Printf("邀请码: %s\n", inviteCodeEn)
fmt.Printf("语言: en (English)\n")
fmt.Printf("有效期: %s\n", expiresAt.Format("2006-01-02 15:04:05"))
err = emailService.SendInviteCodeApprovalEmail(testEnEmail, inviteCodeEn, "en", &expiresAt)
if err != nil {
fmt.Printf("✗ 发送失败: %v\n", err)
} else {
fmt.Printf("✓ 发送成功\n")
}
fmt.Println("\n==========================================================")
fmt.Println("测试完成!")
fmt.Println("==========================================================")
fmt.Println("\n请检查以下邮箱")
fmt.Printf(" - %s (应该收到中文邮件)\n", testZhEmail)
fmt.Printf(" - %s (应该收到英文邮件)\n", testEnEmail)
fmt.Println("\n注意这些是测试邮箱实际不会收到邮件。")
fmt.Println("如果要测试真实邮件,请修改上面的邮箱地址为真实邮箱。")
}