pet_home_server/src/server/game/Trigger.go
2025-01-21 12:26:24 +08:00

57 lines
1.5 KiB
Go

package game
import (
"server/MergeConst"
"server/conf"
"server/db"
"server/msg"
"time"
)
func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
OrderSn := req.OrderSn
Status := int(req.Status)
if Status == MergeConst.ORDER_STATUS_CANCEL { // 取消支付
CancelOrder(player, OrderSn)
player.PushClientRes(&msg.ResShippingOrder{
Code: msg.RES_CODE_SUCCESS,
Msg: "cancel success",
})
return
}
OrderData := &db.SqlChargeOrderStruct{}
var err error
for {
OrderData, err = GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
if err != nil {
time.Sleep(1 * time.Second)
continue
}
if OrderData.PayStatus != MergeConst.ORDER_STATUS_PAY {
time.Sleep(1 * time.Second)
continue
}
if OrderData.PayStatus == MergeConst.ORDER_STATUS_PAY {
break
}
}
player.lock.Lock()
defer player.lock.Unlock()
Charge(player, int(OrderData.ProductId))
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
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,
"Price": OrderData.Price,
"PayType": OrderData.PayType,
}
player.Kafka("pay", orderDataMap)
}