diff --git a/src/server/GoUtil/feishu.go b/src/server/GoUtil/feishu.go index e6f65480..32aecfe2 100644 --- a/src/server/GoUtil/feishu.go +++ b/src/server/GoUtil/feishu.go @@ -12,6 +12,7 @@ import ( const ( FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/feishu/notify" + FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order" ) // AAqFpbuPhFSEx @@ -55,6 +56,46 @@ func SendFeishuFatal(PlayerId int, FuncName string, msg string) error { return nil } +func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName string, PayTime, VerityTime int64) error { + // 创建请求体 + + payload := map[string]interface{}{ + "UID": PlayerId, + "OrderId": OrderId, + "Product": String(Price), + "ProductName": ProductName, + "EventRecovery": time.Unix(PayTime, 0).Format("2006-01-02 15:04:05"), + "EventAge": time.Unix(VerityTime, 0).Format("2006-01-02 15:04:05"), + } + + payloadBytes, err := json.Marshal(payload) + if err != nil { + return err + } + + // 创建HTTP请求 + req, err := http.NewRequest("POST", FEISHU_ORDER, bytes.NewBuffer(payloadBytes)) + if err != nil { + return err + } + req.Header.Set("Content-Type", "application/json") + + // 发送请求 + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + + // 检查响应状态码 + if resp.StatusCode != http.StatusOK { + return fmt.Errorf("failed to send message, status code: %d", resp.StatusCode) + } + + return nil +} + func SendFeishuMsg2(msg string) error { // 创建请求体 payload := map[string]interface{}{ diff --git a/src/server/game/Trigger.go b/src/server/game/Trigger.go index 75902e48..e77a7b33 100644 --- a/src/server/game/Trigger.go +++ b/src/server/game/Trigger.go @@ -114,6 +114,8 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) { GoUtil.SendFeishuFatal(int(player.M_DwUin), "GoogleVerify支付校验异常", fmt.Sprintf("GoogleVerify parmas OrderSn:%s; ProduceId:%s; Token:%s", OrderSn, req.ProduceId, req.Token)) log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderSn, req.ProduceId) return + }else{ + GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.OrderId, OrderData.Price, OrderData.ProductName, OrderData.PayTime, GoUtil.Now()) } log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;Token:%s", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId, req.Token) player.lock.Lock() diff --git a/src/server/game/UnitTest.go b/src/server/game/UnitTest.go index 72c035b8..6f46332e 100644 --- a/src/server/game/UnitTest.go +++ b/src/server/game/UnitTest.go @@ -341,7 +341,7 @@ func UnitOrderTrigger(p *Player) error { Emit := ChessMod.GetEmitList() EnergyMul := BaseMod.GetEnergyMul() OrderMod.TriggerOrder(Lv, order.TRIGGER_TYPE_ORDER, Emit, EnergyMul) - + order.GetOrderStar([]int{1146}, ChessMod.GetOrderEmit()) return nil }