@@ -0,0 +1,51 @@
|
||||
package currencyser
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
|
||||
"91porn-server/common/db"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/models/v/currencymod"
|
||||
"91porn-server/models/v/rchgordmod"
|
||||
"91porn-server/models/v/txnmod"
|
||||
"91porn-server/models/v/walletmod"
|
||||
)
|
||||
|
||||
func BuyGold(r rchgordmod.RechargeOrder, payMoney int64) (func(*db.MongoTool) error, error) {
|
||||
var gold = payMoney / 10
|
||||
// 查询金币配置
|
||||
currency, err := currencymod.Get(r.ProductID)
|
||||
if err != nil {
|
||||
log.Error(fmt.Sprintf("充值金币-产品ID[%v]查询异常[%v]", r.ProductID, err))
|
||||
return nil, err
|
||||
}
|
||||
if currency.ID.IsZero() {
|
||||
log.Error(fmt.Sprintf("充值金币-产品ID[%v]不存在", r.ProductID))
|
||||
return nil, fmt.Errorf("充值金币-产品ID[%v]不存在", r.ProductID)
|
||||
}
|
||||
if currency.GiveGold > 0 {
|
||||
gold += currency.GiveGold
|
||||
}
|
||||
return func(t *db.MongoTool) error {
|
||||
w, err := walletmod.Credit(t, walletmod.CreditPlan{
|
||||
Amount: &gold,
|
||||
Consumption: &payMoney,
|
||||
}, r.UID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return txnmod.InsertTransactionLog(t, &txnmod.TransactionLog{
|
||||
TransNo: r.ID,
|
||||
UID: r.UID,
|
||||
FruitCoin: gold,
|
||||
TranType: txnmod.FruitCoinRecharge.Key(),
|
||||
TranTypeInt: int64(txnmod.FruitCoinRecharge),
|
||||
ChannelType: r.RechargeType,
|
||||
Desc: "官方充值-到账" + strconv.FormatInt(gold, 10) + "金币",
|
||||
DiscDoc: r.DiscDoc,
|
||||
SysType: r.DevType,
|
||||
RealAmount: w.RealAmount(),
|
||||
})
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user