Merge branch 'sdk' into online
This commit is contained in:
commit
48f6ab1e1e
@ -98,6 +98,6 @@ const G_Champion_People_Cnt = 50
|
||||
const (
|
||||
ORDER_STATUS_IDLE = 0 // 订单未完成
|
||||
ORDER_STATUS_PAY = 1 // 订单已支付
|
||||
ORDER_STATUS_CANCLE = 2 // 订单取消
|
||||
ORDER_STATUS_CANCEL = 2 // 订单取消
|
||||
ORDER_STATUS_SHIP = 3 // 订单已发货
|
||||
)
|
||||
|
||||
@ -45,6 +45,7 @@ var Server struct {
|
||||
RemoteAddr string
|
||||
GameConfPath string
|
||||
TELOGDIR string
|
||||
GoogleVerify bool
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
@ -125,3 +125,11 @@ func GetDecorateList() []int {
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
func GetBuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_MOOD, Id)
|
||||
if err != nil {
|
||||
return nil, nil
|
||||
}
|
||||
return gamedata.GetItemList(data, "Cost2"), gamedata.GetItemList(data, "Buy")
|
||||
}
|
||||
|
||||
@ -613,7 +613,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqRemoveAd", ReqRemoveAdFunc)
|
||||
RegisterMsgProcessFunc("ReqPlayerBriefProfileData", ReqPlayerBriefProfileDataFunc)
|
||||
RegisterMsgProcessFunc("ReqOfflineReconnect", ReqOfflineReconnectFunc)
|
||||
|
||||
RegisterMsgProcessFunc("ReqPlayerAsset", ReqPlayerAsset)
|
||||
// 玩家
|
||||
RegisterMsgProcessFunc("ReqUserInfo", ReqUserInfo)
|
||||
RegisterMsgProcessFunc("ReqSetName", ReqSetName) // 设置名字
|
||||
@ -778,6 +778,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureStart", ReqFriendTreasureStart) // 开始游戏
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
|
||||
RegisterMsgProcessFunc("ReqPlayroomBuyItem", ReqPlayroomBuyItem) // 购买playroom物品
|
||||
|
||||
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
|
||||
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号
|
||||
@ -816,6 +817,19 @@ func (ad *GameLogic) NotifyAll(m *MsgMod.Msg) {
|
||||
})
|
||||
}
|
||||
|
||||
func (ad *GameLogic) GetPlayerNum() int {
|
||||
length := 0
|
||||
ad.M_Players.Range(func(_, _ interface{}) bool {
|
||||
length++
|
||||
return true
|
||||
})
|
||||
return length
|
||||
}
|
||||
|
||||
func (ad *GameLogic) GetStartTime() int64 {
|
||||
return ad.StartTime
|
||||
}
|
||||
|
||||
func NotifyPlayer(Uid int, m *MsgMod.Msg) {
|
||||
p := G_GameLogicPtr.GetPlayer(int64(Uid))
|
||||
if p == nil || p.stop {
|
||||
|
||||
@ -1,10 +1,14 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
mergeCluster "server/cluster"
|
||||
"server/conf"
|
||||
cardCfg "server/conf/card"
|
||||
chargeCfg "server/conf/charge"
|
||||
mailCfg "server/conf/mail"
|
||||
@ -398,18 +402,46 @@ func CreateOrderSn(p *Player, ChargeId int, Platform, Channel string) (string, e
|
||||
return OrderSn, nil
|
||||
}
|
||||
|
||||
func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlChargeOrderStruct, error) {
|
||||
func GoogleVerify(p *Player, OrderSn, ProduceId, Token string) (*db.SqlChargeOrderStruct, error) {
|
||||
Order, err := db.GetPlayerChargeData(OrderSn)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if !conf.Server.GoogleVerify {
|
||||
Order.PayStatus = MergeConst.ORDER_STATUS_PAY
|
||||
return Order, nil
|
||||
}
|
||||
if Order.PayStatus != MergeConst.ORDER_STATUS_IDLE {
|
||||
return nil, fmt.Errorf("订单已经支付")
|
||||
}
|
||||
// TODO 验证订单
|
||||
PackageName := "com.DefaultCompany.PetHomeMergeStory"
|
||||
accessToken := "ya29.a0ARW5m75hnUnTbdLYAMW_0GTZSC1JY0GkPZ2fVqXGexVnPoDLoTviRTMtGVUmkG18F9tf2mmLeaRh7gPYYRAm145rtifW_J8_WUn0rhdOEpqU23vAsdCo1v2aArMsjw2dPHBf5ZCYBPirW_3ckL3MC1VzI4akvY3gt3EMz7U0aCgYKAR0SARISFQHGX2MipUmvPZgSya_iDJWbczKpnA0175"
|
||||
url := fmt.Sprintf("https://www.googleapis.com/androidpublisher/v3/applications/%s/purchases/products/%s/tokens/%s?access_token=%s",
|
||||
PackageName, ProduceId, Token, accessToken)
|
||||
resp, err := http.Get(url)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return nil, fmt.Errorf("failed to get data: %s", resp.Status)
|
||||
}
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res := make(map[string]interface{})
|
||||
log.Debug(string(body))
|
||||
err = json.Unmarshal(body, &res)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
Order.PayTime = GoUtil.Now()
|
||||
Order.PayChannelOrderId = PayOrderSn
|
||||
Order.PayStatus = Status
|
||||
Order.PayChannelOrderId = res["orderId"].(string)
|
||||
Order.PayStatus = res["consumptionState"].(int)
|
||||
Order.ProductName = ProduceId
|
||||
err = db.UpdatePlayerChargeData(Order)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -417,6 +449,22 @@ func GoogleVerify(p *Player, OrderSn, PayOrderSn string, Status int) (*db.SqlCha
|
||||
return Order, nil
|
||||
}
|
||||
|
||||
func CancelOrder(p *Player, OrderSn string) error {
|
||||
Order, err := db.GetPlayerChargeData(OrderSn)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if Order.PayStatus != MergeConst.ORDER_STATUS_PAY {
|
||||
return fmt.Errorf("订单未支付")
|
||||
}
|
||||
Order.PayStatus = MergeConst.ORDER_STATUS_CANCEL
|
||||
err = db.UpdatePlayerChargeData(Order)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func BackUserInfo(p *Player) {
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
FaceMod := p.PlayMod.getFaceMod()
|
||||
|
||||
@ -31,6 +31,12 @@ import (
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
func ReqPlayerAsset(args []interface{}) error {
|
||||
_, player, _ := ParseArgs(args)
|
||||
player.PushClientRes(player.PlayerBaseMod.BackAsset())
|
||||
return nil
|
||||
}
|
||||
|
||||
// 请求玩家基础信息
|
||||
func ReqPlayerBaseInfofunction(args []interface{}) error {
|
||||
// 消息的发送者
|
||||
@ -2186,9 +2192,15 @@ func ReqShippingOrder(args []interface{}) error {
|
||||
req := &msg.ReqShippingOrder{}
|
||||
proto.Unmarshal(buf, req)
|
||||
OrderSn := req.OrderSn
|
||||
PayOrderSn := req.PayOrderSn
|
||||
Status := int(req.Status)
|
||||
OrderData, err := GoogleVerify(player, OrderSn, PayOrderSn, Status)
|
||||
if Status != MergeConst.ORDER_STATUS_CANCEL { // 取消支付
|
||||
CancelOrder(player, OrderSn)
|
||||
player.PushClientRes(&msg.ResShippingOrder{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
OrderData, err := GoogleVerify(player, OrderSn, req.ProduceId, req.Token)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -3171,6 +3183,44 @@ func ReqPlayroomFlipReward(args []interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqPlayroomBuyItem(args []interface{}) error {
|
||||
_, player, buf := ParseArgs(args)
|
||||
req := &msg.ReqPlayroomBuyItem{}
|
||||
proto.Unmarshal(buf, req)
|
||||
PlayroomMod := player.PlayMod.getPlayroomMod()
|
||||
AddItems, CostItem := PlayroomMod.BuyItem(int(req.Id))
|
||||
if CostItem == nil {
|
||||
err := fmt.Errorf("can not buy item")
|
||||
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
err = player.HandleItem(AddItems, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
player.PlayMod.save()
|
||||
// PlayroomBackData(player)
|
||||
player.PushClientRes(&msg.ResPlayroomBuyItem{
|
||||
Code: msg.RES_CODE_SUCCESS,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
func ReqOfflineReconnectFunc(args []interface{}) error {
|
||||
a := args[0].(gate.Agent)
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ import (
|
||||
|
||||
var AdminFuncMap = map[string]func([]interface{}) error{
|
||||
"ReqAdminInfo": AdminPlayerInfo,
|
||||
"ReqServerInfo": ReqServerInfo,
|
||||
}
|
||||
|
||||
func AdminProcess(Func string, args []interface{}) {
|
||||
@ -78,3 +79,16 @@ func AdminPlayerBack(a gate.Agent, buf []byte) {
|
||||
response.Info = buf
|
||||
a.WriteMsg(response)
|
||||
}
|
||||
|
||||
func ReqServerInfo(args []interface{}) error {
|
||||
a, _ := ParseAdminArgs(args)
|
||||
res := make(map[string]interface{})
|
||||
res["PlayerNum"] = G_GameLogicPtr.GetPlayerNum()
|
||||
res["StartTime"] = G_GameLogicPtr.GetStartTime()
|
||||
JsonBuff, err := json.Marshal(res)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
AdminPlayerBack(a, JsonBuff)
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -424,7 +424,7 @@ func (o *OrderMod) CreateExtraOrder(AddChess, AddNewEmit, ChessList []int, Energ
|
||||
//额外订单补充1;CDEG发射器首次合成时,生成其对应2及棋子订单,完成后生成3及,再完成生成4及的;
|
||||
if b1 {
|
||||
ChessColor := mergeDataCfg.GetEmitProduceChessType(OrderEmit)
|
||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul, ChessColor[0])
|
||||
ChessId := mergeDataCfg.GetChessIdByLvAndColor(EnergyMul+1, ChessColor[0])
|
||||
if ChessId != 0 {
|
||||
o.PreheatStep[ChessColor[0]] = 1
|
||||
o.addOrder([]int{ChessId}, diff_low, Preheat_type)
|
||||
|
||||
@ -455,3 +455,7 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, error) {
|
||||
}
|
||||
return Items, fmt.Errorf("GetFlipReward check is not 3")
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||
return playroomCfg.GetBuyItem(Id)
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user