|
@@ -14,6 +14,7 @@ import (
|
|
|
model "go_server/model/biz_modules/app"
|
|
model "go_server/model/biz_modules/app"
|
|
|
"go_server/model/common/response"
|
|
"go_server/model/common/response"
|
|
|
"go_server/service/base"
|
|
"go_server/service/base"
|
|
|
|
|
+ "go_server/utils"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
type TgRedPacketSendService struct {
|
|
type TgRedPacketSendService struct {
|
|
@@ -64,7 +65,7 @@ func (s *TgRedPacketSendService) SendManual(c *gin.Context) {
|
|
|
func (s *TgRedPacketSendService) SendDirect(c *gin.Context) {
|
|
func (s *TgRedPacketSendService) SendDirect(c *gin.Context) {
|
|
|
s.SetDbAlias("app")
|
|
s.SetDbAlias("app")
|
|
|
type request struct {
|
|
type request struct {
|
|
|
- GroupId string `json:"groupId" binding:"required"`
|
|
|
|
|
|
|
+ GroupId int64 `json:"groupId" binding:"required"`
|
|
|
GroupName string `json:"groupName"`
|
|
GroupName string `json:"groupName"`
|
|
|
PacketType int8 `json:"packetType" binding:"required"`
|
|
PacketType int8 `json:"packetType" binding:"required"`
|
|
|
TotalAmount decimal.Decimal `json:"totalAmount" binding:"required"`
|
|
TotalAmount decimal.Decimal `json:"totalAmount" binding:"required"`
|
|
@@ -106,7 +107,7 @@ func (s *TgRedPacketSendService) SendDirect(c *gin.Context) {
|
|
|
|
|
|
|
|
// 构建临时配置
|
|
// 构建临时配置
|
|
|
config := &model.TgRedPacketConfig{
|
|
config := &model.TgRedPacketConfig{
|
|
|
- GroupId: req.GroupId,
|
|
|
|
|
|
|
+ GroupId: fmt.Sprintf("%d", req.GroupId),
|
|
|
GroupName: req.GroupName,
|
|
GroupName: req.GroupName,
|
|
|
PacketType: req.PacketType,
|
|
PacketType: req.PacketType,
|
|
|
TotalAmount: req.TotalAmount,
|
|
TotalAmount: req.TotalAmount,
|
|
@@ -131,10 +132,10 @@ func (s *TgRedPacketSendService) SendDirect(c *gin.Context) {
|
|
|
|
|
|
|
|
// ExecuteSendRedPacket 执行发送红包的核心逻辑
|
|
// ExecuteSendRedPacket 执行发送红包的核心逻辑
|
|
|
func (s *TgRedPacketSendService) ExecuteSendRedPacket(config *model.TgRedPacketConfig) (string, error) {
|
|
func (s *TgRedPacketSendService) ExecuteSendRedPacket(config *model.TgRedPacketConfig) (string, error) {
|
|
|
- // 调用 magic_server API 发送红包
|
|
|
|
|
|
|
+ // 调用 magic_server API 创建红包并发送到 Telegram
|
|
|
packetNo, err := s.callMagicServerSendRedPacket(config)
|
|
packetNo, err := s.callMagicServerSendRedPacket(config)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
- core.Log.Errorf("调用 magic_server 发送红包失败: %v", err)
|
|
|
|
|
|
|
+ core.Log.Errorf("创建并发送红包失败: %v", err)
|
|
|
return "", err
|
|
return "", err
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -147,7 +148,7 @@ func (s *TgRedPacketSendService) ExecuteSendRedPacket(config *model.TgRedPacketC
|
|
|
// callMagicServerSendRedPacket 调用 magic_server API 发送红包
|
|
// callMagicServerSendRedPacket 调用 magic_server API 发送红包
|
|
|
func (s *TgRedPacketSendService) callMagicServerSendRedPacket(config *model.TgRedPacketConfig) (string, error) {
|
|
func (s *TgRedPacketSendService) callMagicServerSendRedPacket(config *model.TgRedPacketConfig) (string, error) {
|
|
|
// magic_server API 地址
|
|
// magic_server API 地址
|
|
|
- apiURL := "http://localhost:2011/api/v1/redpacket/send"
|
|
|
|
|
|
|
+ apiURL := "http://localhost:2011/api/v1/adi/telegram/redpacket/send"
|
|
|
|
|
|
|
|
// 构造请求参数
|
|
// 构造请求参数
|
|
|
payload := map[string]interface{}{
|
|
payload := map[string]interface{}{
|
|
@@ -170,7 +171,9 @@ func (s *TgRedPacketSendService) callMagicServerSendRedPacket(config *model.TgRe
|
|
|
return "", fmt.Errorf("创建 HTTP 请求失败: %v", err)
|
|
return "", fmt.Errorf("创建 HTTP 请求失败: %v", err)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ signMessage, _ := utils.BuildSignMessage()
|
|
|
req.Header.Set("Content-Type", "application/json")
|
|
req.Header.Set("Content-Type", "application/json")
|
|
|
|
|
+ req.Header.Set("sign", signMessage)
|
|
|
// TODO: 添加认证 Token
|
|
// TODO: 添加认证 Token
|
|
|
// req.Header.Set("Authorization", "Bearer "+token)
|
|
// req.Header.Set("Authorization", "Bearer "+token)
|
|
|
|
|
|
|
@@ -196,8 +199,11 @@ func (s *TgRedPacketSendService) callMagicServerSendRedPacket(config *model.TgRe
|
|
|
return "", fmt.Errorf("读取响应失败: %v", err)
|
|
return "", fmt.Errorf("读取响应失败: %v", err)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ // 记录原始响应,用于调试
|
|
|
|
|
+ core.Log.Infof("magic_server 原始响应: %s", string(body))
|
|
|
|
|
+
|
|
|
if err := json.Unmarshal(body, &result); err != nil {
|
|
if err := json.Unmarshal(body, &result); err != nil {
|
|
|
- return "", fmt.Errorf("解析响应失败: %v", err)
|
|
|
|
|
|
|
+ return "", fmt.Errorf("解析响应失败: %v (响应内容: %s)", err, string(body))
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if result.Code != 0 && result.Code != 200 {
|
|
if result.Code != 0 && result.Code != 200 {
|