package svc import ( "applet/app/db" "applet/app/e" "applet/app/md" "applet/app/utils" "code.fnuoos.com/EggPlanet/egg_models.git/src/implement" "code.fnuoos.com/EggPlanet/egg_models.git/src/model" "code.fnuoos.com/EggPlanet/egg_system_rules.git/enum" md2 "code.fnuoos.com/EggPlanet/egg_system_rules.git/rule/egg_energy/md" "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" "github.com/gin-gonic/gin" "github.com/tidwall/gjson" "time" ) func VideoBase(c *gin.Context) { videoBase := GetSysCfgStr("video_base") var res = md.VideoBaseData{ Reward: gjson.Get(videoBase, "reward").String(), Total: gjson.Get(videoBase, "total").String(), Timer: gjson.Get(videoBase, "timer").String(), Leave: gjson.Get(videoBase, "total").String(), Sum: "0.00", CoinName: "活跃值", Interval: gjson.Get(videoBase, "interval").String(), } user := GetUser(c) //剩余次数 NewVideoTotalDb := implement.NewVideoTotalDb(db.Db) total, _ := NewVideoTotalDb.GetVideoTotal(utils.Int64ToStr(user.Id), time.Now().Format("20060102")) if total != nil { res.Leave = utils.IntToStr(utils.StrToInt(res.Total) - total.Total) if utils.StrToInt(res.Leave) < 0 { res.Leave = "0" } } NewEggEnergyBasicSettingDb := implement.NewEggEnergyBasicSettingDb(db.Db) eggData, _ := NewEggEnergyBasicSettingDb.EggEnergyBasicSettingGetOne() NewUserVirtualAmountDb := implement.NewUserVirtualAmountDb(db.Db) coin, _ := NewUserVirtualAmountDb.GetUserVirtualWalletBySession(user.Id, eggData.PersonEggPointsCoinId) if coin != nil { res.Sum = coin.Amount } e.OutSuc(c, res, nil) return } func VideoReward(c *gin.Context) { var args md.VideoRewardRequest if err := c.ShouldBindJSON(&args); err != nil { e.OutErr(c, e.ERR_INVALID_ARGS, err) return } eg := db.Db videoBase := GetSysCfgStr("video_base") sess := eg.NewSession() defer sess.Close() sess.Begin() user := GetUser(c) NewVideoTotalDb := implement.NewVideoTotalDb(db.Db) total, _ := NewVideoTotalDb.GetVideoTotalSess(sess, utils.Int64ToStr(user.Id), time.Now().Format("20060102")) if total == nil { total = &model.VideoTotal{ Uid: int(user.Id), Date: utils.StrToInt(time.Now().Format("20060102")), Time: time.Now(), } insert, err := sess.Insert(total) if insert == 0 || err != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "获取奖励失败")) return } } Leave := utils.StrToInt(gjson.Get(videoBase, "total").String()) - total.Total if Leave-1 < 0 { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "今天已领取完")) return } total.Total++ update, err2 := sess.Where("id=?", total.Id).Cols("total").Update(total) if update == 0 || err2 != nil { sess.Rollback() e.OutErr(c, 400, e.NewErr(400, "获取奖励失败")) return } sess.Commit() ch, err := rabbit.Cfg.Pool.GetChannel() if err == nil { defer ch.Release() NewEggEnergyBasicSettingDb := implement.NewEggEnergyBasicSettingDb(db.Db) eggData, _ := NewEggEnergyBasicSettingDb.EggEnergyBasicSettingGetOne() err = ch.PublishV2(md2.EggEnergyExchange, md2.EggEnergyStructForDealUserVirtualCoinData{ Kind: "add", Title: enum.EggEnergyWatchAdRewardPersonalActiveCoin.String(), TransferType: int(enum.EggEnergyWatchAdRewardPersonalActiveCoin), CoinId: eggData.PersonEggPointsCoinId, Uid: user.Id, Amount: utils.StrToFloat64(gjson.Get(videoBase, "reward").String()), }, md2.EggEnergyRoutKeyForDealUserVirtualCoinData) if err != nil { ch.PublishV2(md2.EggEnergyExchange, md2.EggEnergyStructForDealUserVirtualCoinData{ Kind: "add", Title: enum.EggEnergyWatchAdRewardPersonalActiveCoin.String(), TransferType: int(enum.EggEnergyWatchAdRewardPersonalActiveCoin), CoinId: eggData.PersonEggPointsCoinId, Uid: user.Id, Amount: utils.StrToFloat64(gjson.Get(videoBase, "reward").String()), }, md2.EggEnergyRoutKeyForDealUserVirtualCoinData) } } e.OutSuc(c, "success", nil) return }