赠送礼物
This commit is contained in:
parent
df19eaaf9f
commit
29fa052ae9
@ -12,6 +12,9 @@ import (
|
||||
const (
|
||||
CFG_LOGIN_BACK = "LoginBack"
|
||||
CFG_MAIL = "Mail"
|
||||
|
||||
MAIL_RECALL_ID = 12
|
||||
MAIL_CHARGE_SEND_ID = 13
|
||||
)
|
||||
|
||||
type TriggerMail struct {
|
||||
@ -75,3 +78,13 @@ func GetRecallMail(Lang int, Title, ItemName string) (string, string) {
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return fmt.Sprintf(mt, Title), fmt.Sprintf(mc, Title, ItemName)
|
||||
}
|
||||
|
||||
func GetChargeSendMail(Lang int, PlayerName string) (string, string) {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_MAIL, 12)
|
||||
if err != nil {
|
||||
return "", ""
|
||||
}
|
||||
mt := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Title"))
|
||||
mc := languageCfg.GetLanguage(Lang, gamedata.GetStringValue(data, "Content"))
|
||||
return mt, fmt.Sprintf(mc, PlayerName)
|
||||
}
|
||||
|
||||
@ -56,18 +56,17 @@ type Parser struct {
|
||||
//
|
||||
// Examples
|
||||
//
|
||||
// // Standard parser without descriptors
|
||||
// specParser := NewParser(Minute | Hour | Dom | Month | Dow)
|
||||
// sched, err := specParser.Parse("0 0 15 */3 *")
|
||||
// // Standard parser without descriptors
|
||||
// specParser := NewParser(Minute | Hour | Dom | Month | Dow)
|
||||
// sched, err := specParser.Parse("0 0 15 */3 *")
|
||||
//
|
||||
// // Same as above, just excludes time fields
|
||||
// subsParser := NewParser(Dom | Month | Dow)
|
||||
// sched, err := specParser.Parse("15 */3 *")
|
||||
//
|
||||
// // Same as above, just makes Dow optional
|
||||
// subsParser := NewParser(Dom | Month | DowOptional)
|
||||
// sched, err := specParser.Parse("15 */3")
|
||||
// // Same as above, just excludes time fields
|
||||
// subsParser := NewParser(Dom | Month | Dow)
|
||||
// sched, err := specParser.Parse("15 */3 *")
|
||||
//
|
||||
// // Same as above, just makes Dow optional
|
||||
// subsParser := NewParser(Dom | Month | DowOptional)
|
||||
// sched, err := specParser.Parse("15 */3")
|
||||
func NewParser(options ParseOption) Parser {
|
||||
optionals := 0
|
||||
if options&DowOptional > 0 {
|
||||
@ -193,7 +192,7 @@ func normalizeFields(fields []string, options ParseOption) ([]string, error) {
|
||||
if min < max && len(fields) == min {
|
||||
switch {
|
||||
case options&DowOptional > 0:
|
||||
fields = append(fields, defaults[5]) // TODO: improve access to default
|
||||
fields = append(fields, defaults[5])
|
||||
case options&SecondOptional > 0:
|
||||
fields = append([]string{defaults[0]}, fields...)
|
||||
default:
|
||||
@ -247,7 +246,9 @@ func getField(field string, r bounds) (uint64, error) {
|
||||
}
|
||||
|
||||
// getRange returns the bits indicated by the given expression:
|
||||
// number | number "-" number [ "/" number ]
|
||||
//
|
||||
// number | number "-" number [ "/" number ]
|
||||
//
|
||||
// or error parsing range.
|
||||
func getRange(expr string, r bounds) (uint64, error) {
|
||||
var (
|
||||
|
||||
@ -434,10 +434,10 @@ func GetServerMailData(data *[]*SqlServerMailStruct) error {
|
||||
return err
|
||||
}
|
||||
|
||||
func CreateOrderSn(Uid, ChargeId int, OrderSn, Platform, Channel string, Price float64, Currency string) error {
|
||||
sql := "insert into t_player_charge (`Uid`,`OrderId`, `ProductId`, `Price`,`Currency`, `CreateTime`, `PayPlatform`, `PayChannel`) Values (?,?,?,?,?,?,?,?)"
|
||||
func CreateOrderSn(Uid, ChargeId int, OrderSn, Platform, Channel string, Price float64, Currency, Extra string) error {
|
||||
sql := "insert into t_player_charge (`Uid`,`OrderId`, `ProductId`, `Price`,`Currency`, `CreateTime`, `PayPlatform`, `PayChannel`, `PayChannelExtra`) Values (?,?,?,?,?,?,?,?,?)"
|
||||
Now := GoUtil.Now()
|
||||
_, err := SqlDb.Exec(sql, Uid, OrderSn, ChargeId, Price, Currency, Now, Platform, Channel)
|
||||
_, err := SqlDb.Exec(sql, Uid, OrderSn, ChargeId, Price, Currency, Now, Platform, Channel, Extra)
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,10 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"server/GoUtil"
|
||||
activityCfg "server/conf/activity"
|
||||
"server/game/mod/item"
|
||||
MsgMod "server/game/mod/msg"
|
||||
"server/game/mod/piggyBank"
|
||||
"server/msg"
|
||||
"server/pkg/github.com/name5566/leaf/log"
|
||||
@ -15,6 +18,15 @@ func Charge(p *Player, ChargeId int) {
|
||||
ActivityFire(p, ChargeId) // 活动礼包
|
||||
}
|
||||
|
||||
func SendCharge(p *Player, d *ChargeExtra) {
|
||||
G_GameLogicPtr.FriendMgrSend(&MsgMod.Msg{
|
||||
Type: MsgMod.HANDLE_TYPE_SEND_CHARGE,
|
||||
To: int(d.Uid),
|
||||
SendT: GoUtil.Now(),
|
||||
Extra: d,
|
||||
})
|
||||
}
|
||||
|
||||
func ActivityFire(p *Player, ChargeId int) {
|
||||
ActivityMod := p.PlayMod.getActivityMod()
|
||||
ActivityId := activityCfg.GetActivityGiftId(ChargeId)
|
||||
@ -77,6 +89,12 @@ func ChargeFire(p *Player, ChargeId int) {
|
||||
p.PushClientRes(ChargeMod.BackData())
|
||||
}
|
||||
|
||||
func ChargeItem(p *Player, ChargeId int) []*item.Item {
|
||||
ChargeMod := p.PlayMod.getChargeMod()
|
||||
Item := ChargeMod.Fire(ChargeId)
|
||||
return Item
|
||||
}
|
||||
|
||||
// 处理玩家充值
|
||||
func EndlessFire(p *Player, ChargeId int) {
|
||||
EndlessMod := p.PlayMod.getEndlessMod()
|
||||
|
||||
@ -793,6 +793,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() {
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureFilp", ReqFriendTreasureFilp) // 翻牌
|
||||
RegisterMsgProcessFunc("ReqFriendTreasureEnd", ReqFriendTreasureEnd) // 结束游戏
|
||||
|
||||
// #region 充值
|
||||
RegisterMsgProcessFunc("ReqKafkaLog", ReqKafkaLog) // 客户端日志
|
||||
RegisterMsgProcessFunc("ReqCreateOrderSn", ReqCreateOrderSn) // 创建订单号
|
||||
RegisterMsgProcessFunc("ReqShippingOrder", ReqShippingOrder) // 获取订单号
|
||||
|
||||
@ -132,7 +132,6 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
},
|
||||
)
|
||||
p.PushClientRes(CardMod.NotifyTimes())
|
||||
// p.PushClientRes(CardMod.NotifyCard())
|
||||
case msg.HANDLE_TYPE_REG_CARD_REFUSE: // A收到B拒绝索要卡牌
|
||||
CardInfo := m.Extra.(card.CardInfo)
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
@ -229,6 +228,18 @@ func handle(p *Player, m *msg.Msg) error {
|
||||
p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK, data.Type)
|
||||
case msg.HANDLE_TYPE_HANDBOOK_UPVOTE: // 图鉴点赞
|
||||
p.AddLog(m.From, friend.LOG_TYPE_HANDBOOK_UPVOTE, "")
|
||||
case msg.HANDLE_TYPE_SEND_CHARGE:
|
||||
C := &ChargeExtra{}
|
||||
if m.Extra != nil {
|
||||
C = m.Extra.(*ChargeExtra)
|
||||
}
|
||||
PlayerSimpleData := G_GameLogicPtr.GetResSimplePlayerByUid(m.From)
|
||||
p.AddLog(m.From, friend.LOG_TYPE_CHARGE_SEND, "")
|
||||
MailMod := p.PlayMod.getMailMod()
|
||||
BaseMod := p.PlayMod.getBaseMod()
|
||||
mt, mc := mailCfg.GetChargeSendMail(BaseMod.GetLang(), PlayerSimpleData.Name)
|
||||
Items := ChargeItem(p, C.ChargeId)
|
||||
MailMod.Send(mt, mc, Items, mail.MAIL_TYPE_NORMAL)
|
||||
default:
|
||||
log.Debug("uid : %d, handle msg type : %d not exist", p.M_DwUin, m.Type)
|
||||
}
|
||||
@ -412,12 +423,17 @@ func ClusterSendMsg(ServerId int, m *msg.Msg) {
|
||||
}
|
||||
|
||||
// 创建订单
|
||||
func CreateOrderSn(p *Player, ChargeId int, Platform, Channel string) (string, error) {
|
||||
func CreateOrderSn(p *Player, req *proto.ReqCreateOrderSn) (string, error) {
|
||||
Uid := int(p.M_DwUin)
|
||||
OrderSn := GoUtil.CreateOrderSn(Uid)
|
||||
|
||||
Price, Currency := chargeCfg.GetChargeInfo(ChargeId)
|
||||
err := db.CreateOrderSn(Uid, ChargeId, OrderSn, Platform, Channel, Price, Currency)
|
||||
Price, Currency := chargeCfg.GetChargeInfo(int(req.ChargeId))
|
||||
Extra := &ChargeExtra{
|
||||
Type: int(req.Type),
|
||||
Uid: req.Uid,
|
||||
}
|
||||
ExtraData, _ := json.Marshal(Extra)
|
||||
err := db.CreateOrderSn(Uid, int(req.ChargeId), OrderSn, req.PlatForm, req.Channel, Price, Currency, string(ExtraData))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
@ -2376,7 +2376,7 @@ func ReqPiggyBankReward(player *Player, buf []byte) error {
|
||||
func ReqCreateOrderSn(player *Player, buf []byte) error {
|
||||
req := &msg.ReqCreateOrderSn{}
|
||||
proto.Unmarshal(buf, req)
|
||||
OrderSn, err := CreateOrderSn(player, int(req.ChargeId), req.PlatForm, req.Channel)
|
||||
OrderSn, err := CreateOrderSn(player, req)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"math"
|
||||
"server/GoUtil"
|
||||
"server/MergeConst"
|
||||
@ -115,7 +116,20 @@ func TriggerShippingOrder(player *Player, req *msg.ReqShippingOrder) {
|
||||
log.Debug("[order verify success] Uid:%d;OrderSn:%s;PayOrder:%s;", player.M_DwUin, OrderData.OrderId, OrderData.PayChannelOrderId)
|
||||
player.lock.Lock()
|
||||
defer player.lock.Unlock()
|
||||
Charge(player, int(OrderData.ProductId))
|
||||
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 {
|
||||
Charge(player, int(OrderData.ProductId))
|
||||
} else {
|
||||
SendCharge(player, OrderExtraData)
|
||||
}
|
||||
OrderData.PayStatus = MergeConst.ORDER_STATUS_SHIP
|
||||
db.UpdatePlayerChargeData(OrderData)
|
||||
player.PlayMod.save()
|
||||
|
||||
@ -54,6 +54,12 @@ type ActivityInfo struct {
|
||||
Info interface{}
|
||||
}
|
||||
|
||||
type ChargeExtra struct {
|
||||
Type int // 充值类型
|
||||
Uid int64 // 充值用户
|
||||
ChargeId int // 充值id
|
||||
}
|
||||
|
||||
func init() {
|
||||
gob.Register(&limitedTimeEvent.MoneyCat{})
|
||||
gob.Register(&limitedTimeEvent.LuckyCat{})
|
||||
|
||||
@ -40,6 +40,7 @@ const (
|
||||
LOG_TYPE_PLAYROOM_VISIT = 15 // 拜访玩家
|
||||
LOG_TYPE_HANDBOOK = 16 // 图鉴收集
|
||||
LOG_TYPE_HANDBOOK_UPVOTE = 17 // 图鉴点赞
|
||||
LOG_TYPE_CHARGE_SEND = 18 // 赠送充值礼物
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@ -74,6 +74,8 @@ const (
|
||||
|
||||
HANDLE_TYPE_HANDBOOK_COLLECTION //图鉴收集
|
||||
HANDLE_TYPE_HANDBOOK_UPVOTE //图鉴收集时间线点赞
|
||||
|
||||
HANDLE_TYPE_SEND_CHARGE //赠送充值
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user