|
|
@@ -38,7 +38,10 @@ func DailySettlementBlockStarChain(engine *xorm.Engine, mid string) (err error) |
|
|
|
session.Begin() |
|
|
|
now := time.Now() |
|
|
|
today := now.Format("2006-01-02") |
|
|
|
|
|
|
|
if now.Hour() > 8 || now.Hour() < 1 { |
|
|
|
//TODO::只在凌晨一点 ~ 凌晨 8 点运行 |
|
|
|
return errors.New("非运行时间") |
|
|
|
} |
|
|
|
//1、查找 `block_star_chain` 基础设置 |
|
|
|
blockStarChain, err := db.BlockStarChainGetOneByParams(session, map[string]interface{}{ |
|
|
|
"key": "is_use", |
|
|
@@ -677,3 +680,34 @@ func DealUserCoin(session *xorm.Session, req md.DealUserCoinReq) (err error) { |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
// DealLotteryDraw 处理抽奖 |
|
|
|
func DealLotteryDraw(session *xorm.Session, req md.DealLotteryDrawReq) (err error) { |
|
|
|
defer func() { |
|
|
|
session.Close() |
|
|
|
if err := recover(); err != nil { |
|
|
|
zhios_order_relate_logx.Error(err) |
|
|
|
} |
|
|
|
}() |
|
|
|
session.Begin() |
|
|
|
//1、查找 `block_star_chain` 基础设置 |
|
|
|
blockStarChain, err := db.BlockStarChainGetOneByParams(session, map[string]interface{}{ |
|
|
|
"key": "is_use", |
|
|
|
"value": 1, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
rewardValue, _ := decimal.NewFromString(req.Amount) |
|
|
|
rewardValue = rewardValue.Mul(decimal.NewFromFloat(zhios_order_relate_utils.StrToFloat64(blockStarChain.LotteryDrawDestroyCoinRate) / 100)) |
|
|
|
platformGuidePriceForCoin, _ := decimal.NewFromString(blockStarChain.PlatformGuidePriceForCoin) |
|
|
|
needDestroyCoin := rewardValue.Div(platformGuidePriceForCoin) //须销毁的米豆 |
|
|
|
systemDestroyCoinValue, _ := needDestroyCoin.Float64() //系统销毁 区块币值 |
|
|
|
err = DealDestroyCoin(session, int(enum.GroupLotteryAndDestroy), systemDestroyCoinValue, enum.GroupLotteryAndDestroy.String(), blockStarChain) |
|
|
|
if err != nil { |
|
|
|
_ = session.Rollback() |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |