xy 1 day ago
parent
commit
28c8d993d6
2 changed files with 39 additions and 22 deletions
  1. 34 22
      src/server/datacenter/bag_db/bag.go
  2. 5 0
      src/server/datacenter/usercenterd.go

+ 34 - 22
src/server/datacenter/bag_db/bag.go

@@ -6,8 +6,9 @@ import (
 	"errors"
 	"fmt"
 	"log"
+	usercenter "server/datacenter"
+	maildb "server/datacenter/mail_db"
 	mysqlmgr "server/db/mysql"
-	"time"
 
 	_ "github.com/go-sql-driver/mysql"
 )
@@ -100,28 +101,39 @@ func AddItemsToMail(userID string, items []ItemRequest) error {
 	defer tx.Rollback()
 
 	// 为每组道具创建一封邮件
-	for _, itemReq := range items {
-		itemInfo, err := GetItemInfo(itemReq.ItemID)
-		if err != nil {
-			return err
-		}
-
-		_, err = tx.Exec(`
-			INSERT INTO user_mail 
-			(user_id, item_id, quantity, title, content, expire_time, status) 
-			VALUES (?, ?, ?, ?, ?, ?, 0)`,
-			userID,
-			itemReq.ItemID,
-			itemReq.Quantity,
-			fmt.Sprintf("获得%d个%s", itemReq.Quantity, itemInfo.Name),
-			fmt.Sprintf("由于背包空间不足,系统将%d个%s发送到您的邮箱", itemReq.Quantity, itemInfo.Name),
-			time.Now().Add(30*24*time.Hour),
-		)
-		if err != nil {
-			return fmt.Errorf("添加到邮箱失败: %v", err)
-		}
+	// for _, itemReq := range items {
+	// 	itemInfo, err := GetItemInfo(itemReq.ItemID)
+	// 	if err != nil {
+	// 		return err
+	// 	}
+
+	// 	_, err = tx.Exec(`
+	// 		INSERT INTO user_mail
+	// 		(user_id, item_id, quantity, title, content, expire_time, status)
+	// 		VALUES (?, ?, ?, ?, ?, ?, 0)`,
+	// 		userID,
+	// 		itemReq.ItemID,
+	// 		itemReq.Quantity,
+	// 		fmt.Sprintf("获得%d个%s", itemReq.Quantity, itemInfo.Name),
+	// 		fmt.Sprintf("由于背包空间不足,系统将%d个%s发送到您的邮箱", itemReq.Quantity, itemInfo.Name),
+	// 		time.Now().Add(30*24*time.Hour),
+	// 	)
+	// 	if err != nil {
+	// 		return fmt.Errorf("添加到邮箱失败: %v", err)
+	// 	}
+	// }
+	info := &usercenter.MailJsonInfo{
+		Title:    "由于背包空间不足,系统将道具发送到您的邮箱",
+		ItemList: items,
+	}
+	jsonData, err := json.Marshal(info)
+	if err != nil {
+		return fmt.Errorf("序列化背包数据失败: %v", err)
+	}
+	_, err = maildb.CreateMail(2, userID, jsonData)
+	if err != nil {
+		return fmt.Errorf("道具发送到邮箱失败: %v", err)
 	}
-
 	return tx.Commit()
 }
 

+ 5 - 0
src/server/datacenter/usercenterd.go

@@ -7,6 +7,11 @@ import (
 	"time"
 )
 
+type MailJsonInfo struct {
+	Title    string
+	ItemList any
+}
+
 type UserCenter struct {
 	activeCache sync.Map // 当前正在使用的主缓存
 	backupCache sync.Map // 刷新期间使用的备用缓存