From 56f400a4ef6d1b80beb58c9e52aeac4fbe97127a Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Tue, 27 Jan 2026 15:25:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=91=E8=B4=A7=E9=80=9A?= =?UTF-8?q?=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/game/trigger_func.go | 100 ++------------------------------ src/server/game_util/feishu.go | 5 +- src/server/test/order_test.go | 2 +- 3 files changed, 10 insertions(+), 97 deletions(-) diff --git a/src/server/game/trigger_func.go b/src/server/game/trigger_func.go index c8ddee8a..0d2a536e 100644 --- a/src/server/game/trigger_func.go +++ b/src/server/game/trigger_func.go @@ -2,7 +2,6 @@ package game import ( "encoding/json" - "fmt" "math" "server/MergeConst" "server/conf" @@ -21,7 +20,6 @@ import ( "server/msg" "server/pkg/github.com/name5566/leaf/log" "sort" - "time" ) const ( @@ -114,11 +112,6 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) { log.Debug("charge shipping order already shipped OrderSn:%s", OrderSn) return } - - if conf.Server.GameName == "Merge_Pet_online" { - ProduceName := chargeCfg.GetProduceName(OrderData.ProductId) - GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, ProduceName, 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() defer player.lock.Unlock() @@ -140,6 +133,11 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) { OrderData.ProductName = req.ProduceId db.UpdatePlayerChargeData(OrderData) player.PlayMod.save() + if conf.Server.GameName == "Merge_Pet_online" { + ChargeMod := player.PlayMod.getChargeMod() + ProduceName := chargeCfg.GetProduceName(OrderData.ProductId) + GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, ProduceName, OrderData.PayTime, GoUtil.Now(), ChargeMod.Charge) + } orderDataMap := map[string]interface{}{ "AppId": conf.Server.AppID, "ServerId": conf.Server.ServerID, @@ -160,93 +158,7 @@ func (player *Player) TriggerShippingOrderOrigin(req *msg.ReqShippingOrder) { } func (player *Player) TriggerShippingOrder(req *msg.ReqShippingOrder) { - OrderSn := req.OrderSn - Status := int(req.Status) - if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付 - player.CancelOrder(OrderSn) - player.PushClientRes(&msg.ResShippingOrder{ - Code: msg.RES_CODE_SUCCESS, - Msg: "cancel success", - }) - return - } - OrderData := &db.SqlChargeOrderStruct{} - var err error - n := 0 - for { - n++ - if n > 14 { - break - } - OrderData, err = player.GoogleVerify(OrderSn, req.ProduceId, req.Token) - if err != nil { - log.Debug("GoogleVerify parmas OrderSn:%s; ProduceId:%s; Token:%s", OrderSn, req.ProduceId, req.Token) - log.Debug("GoogleVerify err:%v", err) - if n < 5 { - time.Sleep(1 * time.Second) - continue - } - if n >= 5 && n < 10 { - time.Sleep(10 * time.Second) - continue - } - if n >= 10 { - time.Sleep(30 * time.Second) - continue - } - } - if OrderData.PayStatus != MergeConst.ORDER_STATUS_PAY { - time.Sleep(1 * time.Second) - continue - } - if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY { - break - } - } - if OrderData == nil { - GoUtil.SendFeishuFatal(int(player.M_DwUin), "GoogleVerify支付校验异常", fmt.Sprintf("GoogleVerify parmas OrderSn:%s; ProduceId:%s; Token:%s; err: %v", OrderSn, req.ProduceId, req.Token, err)) - log.Debug("[order data nil] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderSn, req.ProduceId) - return - } else { - if conf.Server.GameName == "Merge_Pet_online" { - GoUtil.SendFeishuOrder(int(player.M_DwUin), OrderData.PayChannelOrderId, OrderData.Price, req.ProduceId, 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() - defer player.lock.Unlock() - OrderExtraData := &ChargeExtra{} - if OrderData.PayChannelExtra != "" { - err = json.Unmarshal([]byte(OrderData.PayChannelExtra), OrderExtraData) - if err != nil { - log.Debug("GoogleVerify err:%v", err) - return - } - OrderExtraData.ChargeId = OrderData.ProductId - } - if OrderExtraData.Type == 0 { - player.Charge(int(OrderData.ProductId)) - } else { - player.SendCharge(OrderExtraData) - } - OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP - OrderData.ProductName = req.ProduceId - db.UpdatePlayerChargeData(OrderData) - player.PlayMod.save() - orderDataMap := map[string]interface{}{ - "AppId": conf.Server.AppID, - "ServerId": conf.Server.ServerID, - "OrderId": OrderData.OrderId, - "PayChannelOrderId": OrderData.PayChannelOrderId, - "ProductId": OrderData.ProductId, - "CreateTime": OrderData.CreateTime, - "PayTime": OrderData.PayTime, - "Token": req.Token, - "Price": OrderData.Price, - "PayType": OrderData.PayType, - } - player.Kafka("pay", orderDataMap) - player.SendClientRes() + } func (p *Player) TriggerComfortOrder() { diff --git a/src/server/game_util/feishu.go b/src/server/game_util/feishu.go index 66732081..5c558e54 100644 --- a/src/server/game_util/feishu.go +++ b/src/server/game_util/feishu.go @@ -12,7 +12,7 @@ import ( const ( FEISHU_WEBHOOK = "https://gadmin.bywaystudios.com/api/alibaba/game/notify" - FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/feishu/notify/order" + FEISHU_ORDER = "https://gadmin.bywaystudios.com/api/alibaba/notify/order" ) // AAqFpbuPhFSEx @@ -55,7 +55,7 @@ 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 { +func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName string, PayTime, VerityTime int64, Charge float64) error { // 创建请求体 payload := map[string]interface{}{ @@ -65,6 +65,7 @@ func SendFeishuOrder(PlayerId int, OrderId string, Price float64, ProductName st "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"), + "TotalCharge": String(Charge), } payloadBytes, err := json.Marshal(payload) diff --git a/src/server/test/order_test.go b/src/server/test/order_test.go index a8eb5bc6..8a2b02c2 100644 --- a/src/server/test/order_test.go +++ b/src/server/test/order_test.go @@ -23,7 +23,7 @@ func TestOrderStart(t *testing.T) { func TestOrderFinish(t *testing.T) { p1 := new(game.Player) - p1.InitPlayer("3625212") + p1.InitPlayer("bbb004") game.G_GameLogicPtr.SetPlayer(p1) ChessMod := p1.GetChessMod() err := ChessMod.FinishOrder([]int{1, 2, 3})