From 3ce53f75a588c73d7c860ed0031acc47e1ffae6d Mon Sep 17 00:00:00 2001 From: mofangmin Date: Thu, 11 Jul 2024 09:46:38 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=96=B0=E7=89=88=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/config.go | 9 ++ call/user.go | 11 ++ common/activity.go | 23 +-- common/player.go | 2 + modules/web/handler/activity.go | 177 ++++++++++++++++++++++++ modules/web/middleware/token.go | 1 + modules/web/routers/routers_activity.go | 3 + modules/web/values/activity.go | 12 +- 8 files changed, 226 insertions(+), 12 deletions(-) diff --git a/call/config.go b/call/config.go index 05f68c2..ee9eb56 100644 --- a/call/config.go +++ b/call/config.go @@ -1260,6 +1260,15 @@ func GetConfigActivitySign() []*common.ConfigActivitySign { return configActivitySign } +func GetConfigActivitySignByWheel(wheel int) (ret []*common.ConfigActivitySign) { + for _, conf := range configActivitySign { + if wheel >= conf.WheelStart && wheel <= conf.WheelEnd { + ret = append(ret, conf) + } + } + return +} + func LoadConfigActivityBreakGift() (err error) { list := []*common.ConfigActivityBreakGift{} if _, err = db.Mysql().QueryAll("", "recharge_down", &common.ConfigActivityBreakGift{}, &list); err != nil { diff --git a/call/user.go b/call/user.go index 850ce01..d9a5952 100644 --- a/call/user.go +++ b/call/user.go @@ -586,10 +586,21 @@ func UpdatePlayerProfile(data *common.ESGameData) error { } util.Go(func() { + now := time.Now() // 更新vip UpdateVip(uid, 0, bet, settle) // 检查任务 CheckTask(Task{Uid: uid, Value: bet / 100, Types: []common.TaskType{common.TaskTypePlayGame, common.TaskTypeBet1000, common.TaskTypeBet10000}}) + // 日打码量 + playerData := GetPlayerData(uid) + updates := make(map[string]interface{}) + if util.IsSameDayTimeStamp(now.Unix(), playerData.DayBetTime) { + updates["day_bet_time"] = now.Unix() + updates["day_bet"] = 0 + } else { + updates["day_bet"] = gorm.Expr("bet + ?", bet) + } + db.Mysql().Update(&common.PlayerData{UID: uid}, updates) }) // 写入es diff --git a/common/activity.go b/common/activity.go index 09003f1..c19b8e5 100644 --- a/common/activity.go +++ b/common/activity.go @@ -258,10 +258,13 @@ func (c *ActivityLuckyCode) TableName() string { } type ConfigActivitySign struct { - ID int `gorm:"primarykey"` - Day int `gorm:"column:day;type:int(11);default:1;comment:签到天数" web:"day"` - Reward int64 `gorm:"column:reward;not null;type:bigint(20);comment:奖励" web:"reward"` - Recharge int64 `gorm:"column:recharge;type:bigint(20);default:0;comment:所需充值金额" web:"recharge"` + ID int `gorm:"primarykey"` + Day int `gorm:"column:day;type:int(11);default:1;comment:签到天数" web:"day"` + WheelStart int `gorm:"column:wheel_start;type:int(11);default:1;comment:开始期数" web:"wheel_start"` + WheelEnd int `gorm:"column:wheel_end;type:int(11);default:1;comment:结束期数" web:"wheel_end"` + Reward int64 `gorm:"column:reward;not null;type:bigint(20);comment:奖励" web:"reward"` + Recharge int64 `gorm:"column:recharge;type:bigint(20);default:0;comment:所需充值金额" web:"recharge"` + Bet int64 `gorm:"column:bet;type:bigint(20);default:0;comment:打码量" web:"bet"` } func (c *ConfigActivitySign) TableName() string { @@ -269,10 +272,14 @@ func (c *ConfigActivitySign) TableName() string { } type ActivitySignData struct { - ID int `gorm:"primarykey"` - UID int `gorm:"column:uid;type:int(11);uniqueIndex:uid"` - Sign int `gorm:"column:sign;type:int(11);comment:签到天数,二进制"` - Time int64 `gorm:"column:time;type:bigint(20);comment:首次参与时间"` + ID int `gorm:"primarykey"` + UID int `gorm:"column:uid;type:int(11);uniqueIndex:uid"` + Sign int `gorm:"column:sign;type:int(11);comment:签到天数,二进制"` + Wheel int `gorm:"column:wheel;type:int(11);default:1;comment:第几轮签到"` + Time int64 `gorm:"column:time;type:bigint(20);comment:首次参与时间"` + Finish bool `gorm:"column:finish;type:tinyint;default:0;comment:当前签到状态"` + Reward int64 `gorm:"column:reward;type:bigint(20);default:0;comment:累计领取奖励"` + SignTime int64 `gorm:"column:sign_time;type:bigint(20);comment:签到时间"` } func (c *ActivitySignData) TableName() string { diff --git a/common/player.go b/common/player.go index 0c3ab39..fba1ea9 100644 --- a/common/player.go +++ b/common/player.go @@ -134,6 +134,8 @@ type PlayerData struct { LastSysEmailDraw int64 `gorm:"column:last_sys_email_draw;type:bigint(20);default:0;comment:最近一次接收系统邮件的时间"` LastAppSpinDraw int64 `gorm:"column:last_app_spin_draw;type:bigint(20);default:0;comment:上次领取app下载转盘的时间"` FeedbackTime int64 `gorm:"column:feedback_time;type:bigint(20);default:0;comment:完成问卷调查的时间"` + DayBet int64 `gorm:"column:day_bet;type:bigint(20);default:0;comment:日打码"` + DayBetTime int64 `gorm:"column:day_bet_time;type:bigint(20);default:0;comment:修改时间"` } func (u *PlayerData) TableName() string { diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 02a0319..afdfecd 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -809,6 +809,17 @@ func Sign(day int) int { return ret } +// GetSignDay 获取签到天数 +func GetSignDay(sign int) (day int) { + for i := 0; i < 7; i++ { + if sign&1 == 1 { + day++ + } + sign >>= 1 + } + return +} + // CanSignDays 返回可以签到的天数 func CanSignDays(sign, day int) (ret []int) { for i := 0; i < day; i++ { @@ -975,6 +986,172 @@ func ActivitySignDraw(c *gin.Context) { call.UploadActivityData(a.UID, common.ActivityIDSign, common.ActivityDataJoin, reward) } +func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { + if !call.IsActivityValid(common.ActivityIDSign) { + return + } + data := &common.ActivitySignData{UID: uid} + db.Mysql().Get(data) + if data.ID == 0 { + user, _ := call.GetUserXInfo(uid, "birth") + db.Mysql().Create(&common.ActivitySignData{UID: uid, Time: user.Birth}) + data.Time = user.Birth + } + list := call.GetConfigActivitySignByWheel(data.Wheel) + if len(list) == 0 { + return + } + resp = &values.ActivitySignInfoResp{List: list} + if uid == 0 { + resp.Day = 1 + resp.CanSign = true + return + } + re := call.GetRechargeInfo(uid) + playerData := call.GetPlayerData(uid) + resp.RewardCount = data.Reward + resp.LatestSignTime = data.SignTime + resp.Recharge = re.DayRecharge + resp.Bet = playerData.DayBet + signDay := GetSignDay(data.Sign) + resp.Sign = 7*(data.Wheel-1) + signDay + resp.Day = signDay + 1 + now := time.Now() + if data.Finish || util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { + for _, v := range resp.List { + if v.Day == signDay && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { + resp.Recharge = v.Recharge + resp.Bet = v.Bet + break + } + } + } + if util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { + return + } + resp.CanSign = true + if !data.Finish { + for _, v := range resp.List { + if v.Day == resp.Day && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { + if re.DayRecharge < v.Recharge || playerData.DayBet < v.Bet { + resp.CanSign = false + } + // 更新状态 + if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"finish": true}); err != nil { + log.Error("err:%v", err) + resp.CanSign = false + } + break + } + } + } + + return +} + +func ActivitySignNewInfo(c *gin.Context) { + a := app.NewApp(c) + defer func() { + a.Response() + }() + if !a.CheckActivityExpire(common.ActivityIDSign) { + return + } + a.GetUID() + resp := GetSignNewInfo(a.UID) + if resp == nil { + a.Code = values.CodeRetry + return + } + a.Data = resp +} + +func ActivitySignNewDraw(c *gin.Context) { + a := app.NewApp(c) + defer func() { + a.Response() + }() + if !a.CheckActivityExpire(common.ActivityIDSign) { + return + } + + data := &common.ActivitySignData{UID: a.UID} + db.Mysql().Get(data) + if data.ID == 0 { + user, _ := call.GetUserXInfo(a.UID, "birth") + db.Mysql().Create(&common.ActivitySignData{UID: a.UID, Time: user.Birth}) + data.Time = user.Birth + } + list := call.GetConfigActivitySignByWheel(data.Wheel) + if len(list) == 0 { + a.Code = values.CodeRetry + return + } + now := time.Now() + if util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { + // 已经签到 + a.Code = values.CodeParam + a.Msg = "Check-in repetido." + return + } + + // 获取签到了几天 + day := GetSignDay(data.Sign) + 1 + var reward int64 + for _, v := range list { + if v.Day == day && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { + reward = v.Reward + re := call.GetRechargeInfo(a.UID) + playerData := call.GetPlayerData(a.UID) + if re.DayRecharge < v.Recharge || playerData.DayBet < v.Bet { + a.Code = values.CodeParam + return + } + break + + } + } + if reward == 0 { + a.Code = values.CodeRetry + return + } + + // 如果签到了7天就重置 + if day > 7 { + rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, map[string]interface{}{"sign": 0, "wheel": gorm.Expr("wheel + ?", 1)}) + if rows == 0 || err != nil { + log.Error("err:%v", err) + a.Code = values.CodeRetry + return + } + } + // ok + newSign := Sign(day) + rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, map[string]interface{}{"sign": newSign, "finish": false, "reward": gorm.Expr("reward + ?", reward), "sign_time": now.Unix()}) + if rows == 0 || err != nil { + log.Error("err:%v", err) + a.Code = values.CodeRetry + return + } + _, err = call.UpdateCurrencyPro(&common.UpdateCurrency{ + CurrencyBalance: &common.CurrencyBalance{ + UID: a.UID, + Type: common.CurrencyINR, + ChannelID: a.Channel, + Value: reward, + Event: common.CurrencyEventActivitySign, + NeedBet: call.GetConfigCurrencyResourceNeedBet(common.CurrencyResourceBonus, reward), + }, + }) + if err != nil { + log.Error("err:%v", err) + a.Code = values.CodeRetry + return + } + a.Data = values.ActivitySignDrawResp{Reward: reward, Day: day, Sign: newSign} + call.UploadActivityData(a.UID, common.ActivityIDSign, common.ActivityDataJoin, reward) +} + // 破产礼包活动 func ActivityBreakGiftInfo(c *gin.Context) { a := app.NewApp(c) diff --git a/modules/web/middleware/token.go b/modules/web/middleware/token.go index 241453d..d3dc042 100644 --- a/modules/web/middleware/token.go +++ b/modules/web/middleware/token.go @@ -51,6 +51,7 @@ var ( "/activity/sign/info": {}, "/ad/uploadFB": {}, "/activity/slots/info": {}, + "/activity/sign/new/info": {}, } ) diff --git a/modules/web/routers/routers_activity.go b/modules/web/routers/routers_activity.go index 6109d5a..d4bea0b 100644 --- a/modules/web/routers/routers_activity.go +++ b/modules/web/routers/routers_activity.go @@ -25,6 +25,9 @@ func activity(e *gin.RouterGroup) { e.POST("/activity/luckyCode/draw", handler.ActivityLuckyCodeDraw) e.POST("/activity/sign/info", handler.ActivitySignInfo) e.POST("/activity/sign/draw", handler.ActivitySignDraw) + // 新版签到 + e.POST("/activity/sign/new/info", handler.ActivitySignNewInfo) + e.POST("/activity/sign/new/draw", handler.ActivitySignNewDraw) e.POST("/activity/breakGift/info", handler.ActivityBreakGiftInfo) e.POST("/activity/weekCard/info", handler.ActivityWeekCardInfo) e.POST("/activity/weekCard/draw", handler.ActivityWeekCardDraw) diff --git a/modules/web/values/activity.go b/modules/web/values/activity.go index 99338b0..9721c5f 100644 --- a/modules/web/values/activity.go +++ b/modules/web/values/activity.go @@ -82,10 +82,14 @@ type ActivityLuckyCodeDrawResp struct { // Day 当前天数 // CanSign 能否签到 type ActivitySignInfoResp struct { - List []*common.ConfigActivitySign - Sign int - Day int - CanSign bool + List []*common.ConfigActivitySign + Sign int // 累计天数 + Day int + CanSign bool + Recharge int64 // 充值金额 + Bet int64 // 下注额度 + RewardCount int64 // 累计奖金 + LatestSignTime int64 // 最新签到时间 } type ActivitySignDrawResp struct { -- 2.36.2 From a0743f2480b890264ac33668bb6fee34cd59096e Mon Sep 17 00:00:00 2001 From: mofangmin Date: Thu, 11 Jul 2024 17:20:06 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E8=BD=AC=E7=9B=98=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/config.go | 28 +++++ call/reload.go | 11 ++ call/user.go | 3 + build.sh => cmd/build.sh | 3 +- fieldalignment.sh => cmd/fieldalignment.sh | 0 cmd/gener_code.sh | 48 ++++++++ reboot.sh => cmd/reboot.sh | 0 start.sh => cmd/start.sh | 0 stop.sh => cmd/stop.sh | 0 swagger.sh => cmd/swagger.sh | 0 common/activity.go | 11 ++ common/config.go | 15 +++ common/currency.go | 1 + common/es.go | 8 ++ modules/backend/migrate.go | 2 + modules/backend/values/gm.go | 2 + modules/web/handler/activity.go | 122 ++++++++++++++++++++- modules/web/providers/gs/api.go | 2 + modules/web/routers/routers_activity.go | 4 + modules/web/values/activity.go | 24 ++++ util/time.go | 21 +++- 21 files changed, 298 insertions(+), 7 deletions(-) rename build.sh => cmd/build.sh (57%) rename fieldalignment.sh => cmd/fieldalignment.sh (100%) create mode 100644 cmd/gener_code.sh rename reboot.sh => cmd/reboot.sh (100%) rename start.sh => cmd/start.sh (100%) rename stop.sh => cmd/stop.sh (100%) rename swagger.sh => cmd/swagger.sh (100%) diff --git a/call/config.go b/call/config.go index ee9eb56..ef7a4d5 100644 --- a/call/config.go +++ b/call/config.go @@ -62,6 +62,7 @@ var ( configActivitySevenDayBox []*common.ConfigActivitySevenDayBox configActivitySuper []*common.ConfigActivitySuper configTgRobot []*common.ConfigTgRobot + configBetDraw []*common.ConfigActivityBetDraw ) var ( @@ -1496,3 +1497,30 @@ func LoadConfigTgRobot() (err error) { func GetConfigTgRobot() []*common.ConfigTgRobot { return configTgRobot } + +// LoadBetDraw 加载 BetDraw 的配置 +func LoadBetDraw() (err error) { + var list []*common.ConfigActivityBetDraw + if _, err = db.Mysql().QueryAll("", "", &common.ConfigActivityBetDraw{}, &list); err != nil { + log.Error("err:%v", err) + return err + } + configBetDraw = list + return nil +} + +func GetConfigBetDraw() []*common.ConfigActivityBetDraw { + return configBetDraw +} + +func GetConfigBetDrawByType(t int) ([]*common.ConfigActivityBetDraw, []int64) { + var ret []*common.ConfigActivityBetDraw + var weight []int64 + for _, conf := range configBetDraw { + if conf.Type == t { + weight = append(weight, conf.Weight) + ret = append(ret, conf) + } + } + return ret, weight +} diff --git a/call/reload.go b/call/reload.go index b5a2f9a..87bad48 100644 --- a/call/reload.go +++ b/call/reload.go @@ -448,4 +448,15 @@ func CommonReload(c map[int][]func(*pb.ReloadGameConfig) error) { return nil }} } + // 为 BetDraw 注册重新加载函数 + if _, ok := c[common.ReloadConfigBetDraw]; !ok { + c[common.ReloadConfigBetDraw] = []func(*pb.ReloadGameConfig) error{func(rgc *pb.ReloadGameConfig) error { + if err := LoadBetDraw(); err != nil { + log.Error("error : [%s]", err.Error()) + return err + } + return nil + }} + } + } diff --git a/call/user.go b/call/user.go index 0f57db9..474bb45 100644 --- a/call/user.go +++ b/call/user.go @@ -601,6 +601,9 @@ func UpdatePlayerProfile(data *common.ESGameData) error { updates["day_bet"] = gorm.Expr("bet + ?", bet) } db.Mysql().Update(&common.PlayerData{UID: uid}, updates) + db.Mysql().Update(&common.ActivityBetDrawData{UID: uid}, map[string]interface{}{ + "lucky": gorm.Expr("lucky + ?", bet/100), + }) }) // 写入es diff --git a/build.sh b/cmd/build.sh similarity index 57% rename from build.sh rename to cmd/build.sh index a6aefd2..4b29610 100644 --- a/build.sh +++ b/cmd/build.sh @@ -1,4 +1,5 @@ #!/bin/bash +cd .. set -e cd pb/proto ./gener.sh @@ -7,4 +8,4 @@ cd pb/proto # go generate cd ../.. #go build main.go -CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o gameserver main.go \ No newline at end of file +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o indiaprovider main.go \ No newline at end of file diff --git a/fieldalignment.sh b/cmd/fieldalignment.sh similarity index 100% rename from fieldalignment.sh rename to cmd/fieldalignment.sh diff --git a/cmd/gener_code.sh b/cmd/gener_code.sh new file mode 100644 index 0000000..e20ff91 --- /dev/null +++ b/cmd/gener_code.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# 检查是否提供了参数 +if [ $# -eq 0 ]; then + echo "请输入输入值。" + exit 1 +fi + +# 输入值 +input_value=$1 + +# 生成 Go 代码 +cat <generated_code.go + +var config$input_value []*common.Config$input_value + +// Load$input_value 加载 $input_value 的配置 +func Load$input_value() (err error) { + conf := common.ConfigCommon{ConfigType: common.Config$input_value{}.ConfigName()} + if err = db.Mysql().Get(&conf); err != nil { + log.Error("err:%v", err) + return err + } + if err = json.Unmarshal([]byte(conf.TableContent), &config$input_value); err != nil { + log.Error("err:%v", err) + return err + } + return nil +} +func GetConfig$input_value() []*common.Config$input_value { + return config$input_value +} + +ReloadConfig$input_value + +// 为 $input_value 注册重新加载函数 +if _, ok := c[common.ReloadConfig$input_value]; !ok { + c[common.ReloadConfig$input_value] = []func(*pb.ReloadGameConfig) error{func(rgc *pb.ReloadGameConfig) error { + if err := Load$input_value(); err != nil { + log.Error("error : [%s]", err.Error()) + return err + } + return nil + }} +} +EOF + +echo "Go 代码已成功生成至 generated_code.go 文件。" \ No newline at end of file diff --git a/reboot.sh b/cmd/reboot.sh similarity index 100% rename from reboot.sh rename to cmd/reboot.sh diff --git a/start.sh b/cmd/start.sh similarity index 100% rename from start.sh rename to cmd/start.sh diff --git a/stop.sh b/cmd/stop.sh similarity index 100% rename from stop.sh rename to cmd/stop.sh diff --git a/swagger.sh b/cmd/swagger.sh similarity index 100% rename from swagger.sh rename to cmd/swagger.sh diff --git a/common/activity.go b/common/activity.go index c19b8e5..eef29f7 100644 --- a/common/activity.go +++ b/common/activity.go @@ -19,6 +19,7 @@ const ( ActivityIDLuckyShop // 幸运商店活动 ActivityIDSevenDayBox // 7日签到宝箱 ActivityIDSuper // 超级1+2 + ActivityIDBetDraw // 下注抽奖活动 ) @@ -490,3 +491,13 @@ type ActivitySuperData struct { func (c *ActivitySuperData) TableName() string { return "activity_super_data" } + +type ActivityBetDrawData struct { + ID int `gorm:"primarykey"` + UID int `gorm:"column:uid;not null;type:int(11);uniqueIndex:uid"` + Lucky int64 `gorm:"column:lucky;;not null;type:bigint(20);comment:幸运值" web:"lucky"` +} + +func (c *ActivityBetDrawData) TableName() string { + return "config_betdraw_data" +} diff --git a/common/config.go b/common/config.go index 937fcf7..2cf6e22 100644 --- a/common/config.go +++ b/common/config.go @@ -50,6 +50,7 @@ const ( ReloadConfigActivitySevenDayBox // 7日宝箱活动 ReloadConfigActivitySuper // 超级1+2 ReloadConfigTgRobot // tg机器人配置 + ReloadConfigBetDraw // 下注抽奖 ) // GetConfigStructByType 获取相应配置的结构 @@ -137,6 +138,8 @@ func GetConfigStructByType(t int) (interface{}, interface{}) { return &ConfigActivitySuper{}, &[]ConfigActivitySuper{} case ReloadConfigTgRobot: return &ConfigTgRobot{}, &[]ConfigTgRobot{} + case ReloadConfigBetDraw: + return &ConfigActivityBetDraw{}, &[]ConfigActivityBetDraw{} default: return nil, nil } @@ -567,3 +570,15 @@ type ConfigTgRobot struct { func (c *ConfigTgRobot) TableName() string { return "config_tg_robot" } + +type ConfigActivityBetDraw struct { + ID int `gorm:"primarykey"` + Type int `gorm:"column:type;type:int(11);default:0;comment:转盘类型" web:"type"` + Cost int64 `gorm:"column:cost;type:int(11);default:0;comment:消耗幸运值" web:"cost"` + Reward int64 `gorm:"column:reward;type:bigint(20);comment:奖励" web:"reward"` + Weight int64 `gorm:"column:weight;type:bigint(20);comment:权重" web:"weight"` +} + +func (c *ConfigActivityBetDraw) TableName() string { + return "config_activity_betdraw" +} diff --git a/common/currency.go b/common/currency.go index dce9c92..7a4cc00 100644 --- a/common/currency.go +++ b/common/currency.go @@ -95,6 +95,7 @@ const ( CurrencyEventActivityWeekCard // 周卡 CurrencyEventActivitySlots // slots奖池 CurrencyEventActivitySuper // 超级1+2 + CurrencyEventActivityBetDraw // 下注抽奖 CurrencyEventAll CurrencyEventGM = 1000 // 后台修改货币 diff --git a/common/es.go b/common/es.go index 961407b..2432192 100644 --- a/common/es.go +++ b/common/es.go @@ -32,6 +32,7 @@ const ( ESIndexBackPddRecord = "back_pdd_record" ESIndexBackFeedback = "back_feedback" ESIndexBackActivity = "back_activity" + ESIndexBackBetDraw = "back_betdraw" // 下注抽奖 ) // GroupBuckets group聚合查询对象 @@ -329,3 +330,10 @@ type ESActivity struct { Type int // 1点击 2参与 Amount int64 // 赠送金额 } + +type ESActivityBetDraw struct { + UID int + Time int64 + Reward int64 + Type int // 转盘类型 +} diff --git a/modules/backend/migrate.go b/modules/backend/migrate.go index ee77c5e..0efab16 100644 --- a/modules/backend/migrate.go +++ b/modules/backend/migrate.go @@ -111,6 +111,8 @@ func MigrateDB() { new(common.ActivitySuperData), new(common.ShareActivityCode), new(common.ConfigTgRobot), + new(common.ConfigActivityBetDraw), + new(common.ActivityBetDrawData), ) if err != nil { panic("Migrate db fail") diff --git a/modules/backend/values/gm.go b/modules/backend/values/gm.go index ce7d473..9257f4a 100644 --- a/modules/backend/values/gm.go +++ b/modules/backend/values/gm.go @@ -158,6 +158,8 @@ func GetControlType(path string) int { return common.ReloadConfigActivitySuper case "tgRobot": return common.ReloadConfigTgRobot + case "betDraw": + return common.ReloadConfigBetDraw default: return 0 } diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index afdfecd..180ccb4 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -991,12 +991,17 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { return } data := &common.ActivitySignData{UID: uid} - db.Mysql().Get(data) - if data.ID == 0 { - user, _ := call.GetUserXInfo(uid, "birth") - db.Mysql().Create(&common.ActivitySignData{UID: uid, Time: user.Birth}) - data.Time = user.Birth + if uid > 0 { + db.Mysql().Get(data) + if data.ID == 0 { + user, _ := call.GetUserXInfo(uid, "birth") + db.Mysql().Create(&common.ActivitySignData{UID: uid, Time: user.Birth}) + data.Time = user.Birth + } + } else { + data.Wheel = 1 } + list := call.GetConfigActivitySignByWheel(data.Wheel) if len(list) == 0 { return @@ -1743,3 +1748,110 @@ func ActivitySuperDraw(c *gin.Context) { }, } } + +func ActivityBetDrawInfo(c *gin.Context) { + a := app.NewApp(c) + defer func() { + a.Response() + }() + if !a.CheckActivityExpire(common.ActivityIDBetDraw) { + return + } + a.GetUID() + drawInfo := &common.ActivityBetDrawData{UID: a.UID} + db.Mysql().Get(drawInfo) + if drawInfo.ID == 0 { + db.Mysql().Create(drawInfo) + } + a.Data = &values.ActivityBetDrawInfoResp{ + List: call.GetConfigBetDraw(), + Lucky: drawInfo.Lucky, + } + call.UploadActivityData(a.UID, common.ActivityIDBetDraw, common.ActivityDataClick, 0) +} + +func ActivityBetDrawDraw(c *gin.Context) { + a := app.NewApp(c) + defer func() { + a.Response() + }() + req := values.ActivityBetDrawDrawReq{} + if !a.S(&req) { + return + } + if !a.CheckActivityExpire(common.ActivityIDBetDraw) { + return + } + configList, weightList := call.GetConfigBetDrawByType(req.WheelType) + if len(configList) == 0 { + a.Code = values.CodeRetry + return + } + conf := configList[0] + drawInfo := common.ActivityBetDrawData{UID: a.UID} + db.Mysql().Get(&drawInfo) + if drawInfo.Lucky < conf.Cost { + a.Code = values.CodeRetry + a.Msg = "lucky not enough" + return + } + // 计算权重 + idx := util.RandWeight(weightList) + if idx < 0 { + a.Code = values.CodeRetry + return + } + rewardConf := configList[idx] + reward := rewardConf.Reward + err := db.Mysql().Update(&drawInfo, map[string]interface{}{ + "lucky": gorm.Expr("lucky - ?", conf.Cost), + }) + if err != nil { + a.Code = values.CodeRetry + log.Error("ActivityBetDrawDraw err:%v", err) + return + } + if reward > 0 { + _, _ = call.UpdateCurrencyPro(&common.UpdateCurrency{ + CurrencyBalance: &common.CurrencyBalance{ + UID: a.UID, + Event: common.CurrencyEventActivityAppSpin, + Type: common.CurrencyINR, + Value: reward, + NeedBet: call.GetConfigCurrencyResourceNeedBet(common.CurrencyResourceBonus, reward), + }, + }) + } + + call.UploadActivityData(a.UID, common.ActivityIDBetDraw, common.ActivityDataJoin, reward) + db.ES().InsertToESGO(common.ESIndexBackBetDraw, common.ESActivityBetDraw{ + UID: a.UID, + Time: time.Now().Unix(), + Reward: reward, + Type: req.WheelType, + }) + a.Data = &values.ActivityBetDrawDrawResp{ + Reward: reward, + } +} + +func ActivityBetDrawHistory(c *gin.Context) { + a := app.NewApp(c) + defer func() { + a.Response() + }() + req := values.ActivityBetDrawRecordReq{} + if !a.S(&req) { + return + } + resp := new(values.ActivityBetDrawRecordResp) + if !a.CheckActivityExpire(common.ActivityIDBetDraw) { + return + } + q := elastic.NewBoolQuery() + q.Filter(elastic.NewTermQuery("Type", req.WheelType)) + _, _ = db.ES().QueryList(common.ESIndexBackBetDraw, req.Page-1, req.Num, q, &resp.RecordList, "Time", false) + q.Filter(elastic.NewTermQuery("UID", a.UID)) + _, _ = db.ES().QueryList(common.ESIndexBackBetDraw, 0, 5000, q, &resp.SelfList, "Time", false) + a.Data = resp +} diff --git a/modules/web/providers/gs/api.go b/modules/web/providers/gs/api.go index c26557f..9d58c8d 100644 --- a/modules/web/providers/gs/api.go +++ b/modules/web/providers/gs/api.go @@ -40,6 +40,8 @@ type GameListResp struct { } func GetGameList(provider int) *GameListResp { + API = APIRlease + AgentMap = AgentMapRelease opCode := AgentMap["E467"].OperatorCode sk := AgentMap["E467"].SecretKey req := &GameListReq{ diff --git a/modules/web/routers/routers_activity.go b/modules/web/routers/routers_activity.go index d4bea0b..9ded507 100644 --- a/modules/web/routers/routers_activity.go +++ b/modules/web/routers/routers_activity.go @@ -39,4 +39,8 @@ func activity(e *gin.RouterGroup) { e.POST("/activity/sevenDayBox/draw", handler.ActivitySevenDayBoxDraw) e.POST("/activity/super/info", handler.ActivitySuperInfo) e.POST("/activity/super/draw", handler.ActivitySuperDraw) + // 下注抽奖 + e.POST("/activity/betDraw/info", handler.ActivityBetDrawInfo) + e.POST("/activity/betDraw/draw", handler.ActivityBetDrawDraw) + e.POST("/activity/betDraw/record", handler.ActivityBetDrawHistory) } diff --git a/modules/web/values/activity.go b/modules/web/values/activity.go index 9721c5f..eeb76ec 100644 --- a/modules/web/values/activity.go +++ b/modules/web/values/activity.go @@ -255,3 +255,27 @@ type ActivitySuperDrawReq struct { type ActivitySuperDrawResp struct { Reward ActivitySuperOneReward } + +type ActivityBetDrawInfoResp struct { + List []*common.ConfigActivityBetDraw // 配置 + Lucky int64 // 幸运值 +} + +type ActivityBetDrawDrawReq struct { + WheelType int // 转盘类型 +} + +type ActivityBetDrawDrawResp struct { + Reward int64 // 奖励 +} + +type ActivityBetDrawRecordReq struct { + WheelType int // 转盘类型 + Page int + Num int +} + +type ActivityBetDrawRecordResp struct { + RecordList []*common.ESActivityBetDraw // 历史记录 + SelfList []*common.ESActivityBetDraw // 个人记录 +} diff --git a/util/time.go b/util/time.go index 77ef363..54e8f7f 100644 --- a/util/time.go +++ b/util/time.go @@ -1,6 +1,9 @@ package util -import "time" +import ( + "math/rand" + "time" +) func IsSameDay(t1 time.Time, t2 time.Time) bool { return t1.Year() == t2.Year() && t1.Month() == t2.Month() && t1.Day() == t2.Day() @@ -103,3 +106,19 @@ func IsSingleDay() bool { } return day%2 == 1 } + +func RandWeight(weightList []int64) int { + var weightCount int64 + for _, weight := range weightList { + weightCount += weight + } + sum := int64(0) + randVal := rand.Int63n(weightCount) + for idx, weight := range weightList { + sum += weight + if randVal < sum { + return idx + } + } + return -1 +} -- 2.36.2 From 76294d4762878518196fdb5ca517c5787177f455 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Fri, 12 Jul 2024 16:20:01 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E8=BD=AC=E7=9B=98=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/task.go | 2 +- common/task.go | 1 + modules/backend/handler/common/common.go | 2 +- modules/web/app/account.go | 1 + modules/web/handler/account.go | 6 +++++- modules/web/handler/activity.go | 12 ++++++------ modules/web/handler/firstpage.go | 8 ++++---- modules/web/handler/h5.go | 1 + modules/web/middleware/token.go | 2 ++ modules/web/routers/routers_activity.go | 4 ++-- 10 files changed, 24 insertions(+), 15 deletions(-) diff --git a/call/task.go b/call/task.go index 9c1cb64..652cdd9 100644 --- a/call/task.go +++ b/call/task.go @@ -22,7 +22,7 @@ func CheckTask(task Task) { uid := task.Uid for _, v := range con { for _, t := range task.Types { - if (t == common.TaskTypeOnceRecharge || t == common.TaskTypeInvite) && v.Type == t { // 单次充值任务 || 首次充值任务 || v.Type == common.TaskTypeFirstRecharge) + if (t == common.TaskTypeOnceRecharge || t == common.TaskTypeInvite || t == common.TaskTypeDownload) && v.Type == t { // 单次充值任务 || 首次充值任务 || v.Type == common.TaskTypeFirstRecharge) data := GetUserTaskDataByTaskID(task.Uid, v.TaskID) if data.ID == 0 { db.Mysql().Create(&common.TaskData{UID: uid, TaskID: v.TaskID, Time: now, Progress: v.Target}) diff --git a/common/task.go b/common/task.go index aab37ae..e4d5340 100644 --- a/common/task.go +++ b/common/task.go @@ -9,6 +9,7 @@ const ( TaskTypePlayGame // 参与一次牌局 TaskTypeBet1000 // 累计下注1000 TaskTypeBet10000 // 累计下注10000 + TaskTypeDownload // app下载 TaskTypeAll ) diff --git a/modules/backend/handler/common/common.go b/modules/backend/handler/common/common.go index c68c9f5..0022e6b 100644 --- a/modules/backend/handler/common/common.go +++ b/modules/backend/handler/common/common.go @@ -132,5 +132,5 @@ func UploadOSS(c *gin.Context) { log.Error("UploadOSS PutObject err:%v", err) return } - rsp.Url = fmt.Sprintf("https://%s/%s", ossConf.Domain, ossConf.ObjectName+req.Folder+file.Filename) + rsp.Url = fmt.Sprintf("https://%s/%s/%s%s", ossConf.Domain, ossConf.ObjectName, req.Folder, file.Filename) } diff --git a/modules/web/app/account.go b/modules/web/app/account.go index f84c3a0..cd2c6c7 100644 --- a/modules/web/app/account.go +++ b/modules/web/app/account.go @@ -82,6 +82,7 @@ func (g *Gin) QueryUser(req values.CommonLogin) (user *common.PlayerDBInfo, isNe g.Code = values.CodeRetry if err.Error() == "ip" { g.Code = values.CodeAccountIPLimit + g.Msg = "ip limit" } return } diff --git a/modules/web/handler/account.go b/modules/web/handler/account.go index b7ee29f..d3b7084 100644 --- a/modules/web/handler/account.go +++ b/modules/web/handler/account.go @@ -44,7 +44,11 @@ func onLogin(user *common.PlayerDBInfo, a *app.Gin, isNew bool) { } // log.Debug("scheme:%v", a.Context.GetHeader("X-Forwarded-Proto")) // if a.Context.Request.URL.Scheme == "https" { - gateURL = "wss://" + gateURL + if config.GetBase().Release { + gateURL = "wss://" + gateURL + } else { + gateURL = "wss://" + gateURL + ":26615" + } // } else { // gateURL = "ws://" + gateURL // } diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 180ccb4..46e67d5 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -1096,7 +1096,7 @@ func ActivitySignNewDraw(c *gin.Context) { if util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { // 已经签到 a.Code = values.CodeParam - a.Msg = "Check-in repetido." + a.Msg = "आज में हस्ताक्षर किए" return } @@ -1174,7 +1174,6 @@ func ActivityBreakGiftInfo(c *gin.Context) { if call.GetUserCurrency(a.UID, common.CurrencyINR) > limit { return } - payData := call.GetPlayerPayData(a.UID) re := call.GetRechargeInfo(a.UID) con := call.GetConfigActivityBreakGiftByRecharge(re.TotalRecharge, payData) @@ -1182,7 +1181,6 @@ func ActivityBreakGiftInfo(c *gin.Context) { if con == nil { return } - if util.SliceContain(payData.SubBreakGift, con.Level) { return } @@ -1759,9 +1757,11 @@ func ActivityBetDrawInfo(c *gin.Context) { } a.GetUID() drawInfo := &common.ActivityBetDrawData{UID: a.UID} - db.Mysql().Get(drawInfo) - if drawInfo.ID == 0 { - db.Mysql().Create(drawInfo) + if a.UID > 0 { + db.Mysql().Get(drawInfo) + if drawInfo.ID == 0 { + db.Mysql().Create(drawInfo) + } } a.Data = &values.ActivityBetDrawInfoResp{ List: call.GetConfigBetDraw(), diff --git a/modules/web/handler/firstpage.go b/modules/web/handler/firstpage.go index 5e1c777..fc1485f 100644 --- a/modules/web/handler/firstpage.go +++ b/modules/web/handler/firstpage.go @@ -97,10 +97,10 @@ func FirstPage(c *gin.Context) { if len(list) > 0 { resp.Esport = list[0] } - // task := call.GetConfigTaskByTaskType(common.TaskTypeDownload) - // if len(task) > 0 { - // resp.DownloadAppReward = task[0].Reward - // } + task := call.GetConfigTaskByTaskType(int(common.TaskTypeDownload)) + if len(task) > 0 { + resp.DownloadAppReward = task[0].Reward + } resp.ShowData = GetFirstShowData() } diff --git a/modules/web/handler/h5.go b/modules/web/handler/h5.go index a627288..5fb4909 100644 --- a/modules/web/handler/h5.go +++ b/modules/web/handler/h5.go @@ -97,4 +97,5 @@ func H5DownloadDraw(c *gin.Context) { // Event: common.CurrencyEventH5Download, // }, // }, true, true) + call.CheckTask(call.Task{Uid: a.UID, Value: 0, Types: []common.TaskType{common.TaskTypeDownload}}) } diff --git a/modules/web/middleware/token.go b/modules/web/middleware/token.go index d3dc042..0a8ccbf 100644 --- a/modules/web/middleware/token.go +++ b/modules/web/middleware/token.go @@ -52,6 +52,8 @@ var ( "/ad/uploadFB": {}, "/activity/slots/info": {}, "/activity/sign/new/info": {}, + "/activity/betDraw/info": {}, + "/activity/betDraw/record": {}, } ) diff --git a/modules/web/routers/routers_activity.go b/modules/web/routers/routers_activity.go index 9ded507..9c412cf 100644 --- a/modules/web/routers/routers_activity.go +++ b/modules/web/routers/routers_activity.go @@ -23,8 +23,8 @@ func activity(e *gin.RouterGroup) { e.POST("/activity/firstRechargeBack/draw", handler.ActivityFirstRechargeBackDraw) e.POST("/activity/luckyCode/info", handler.ActivityLuckyCodeInfo) e.POST("/activity/luckyCode/draw", handler.ActivityLuckyCodeDraw) - e.POST("/activity/sign/info", handler.ActivitySignInfo) - e.POST("/activity/sign/draw", handler.ActivitySignDraw) + // e.POST("/activity/sign/info", handler.ActivitySignInfo) + // e.POST("/activity/sign/draw", handler.ActivitySignDraw) // 新版签到 e.POST("/activity/sign/new/info", handler.ActivitySignNewInfo) e.POST("/activity/sign/new/draw", handler.ActivitySignNewDraw) -- 2.36.2 From 25615aae6a4fea317904c62e09d09475b4dda734 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Fri, 12 Jul 2024 17:49:29 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E9=A6=96=E6=AC=A1?= =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/web/handler/activity.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 46e67d5..118a2dd 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -995,6 +995,7 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { db.Mysql().Get(data) if data.ID == 0 { user, _ := call.GetUserXInfo(uid, "birth") + data.Wheel = 1 db.Mysql().Create(&common.ActivitySignData{UID: uid, Time: user.Birth}) data.Time = user.Birth } @@ -1840,6 +1841,7 @@ func ActivityBetDrawHistory(c *gin.Context) { defer func() { a.Response() }() + a.GetUID() req := values.ActivityBetDrawRecordReq{} if !a.S(&req) { return -- 2.36.2 From 644030c250dd97b8dc9f32f39b1994569a9f3ddd Mon Sep 17 00:00:00 2001 From: mofangmin Date: Sat, 13 Jul 2024 12:58:56 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AD=BE=E5=88=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/user.go | 6 ++--- modules/web/handler/activity.go | 43 +++++++++++++-------------------- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/call/user.go b/call/user.go index 474bb45..f75e269 100644 --- a/call/user.go +++ b/call/user.go @@ -594,11 +594,11 @@ func UpdatePlayerProfile(data *common.ESGameData) error { // 日打码量 playerData := GetPlayerData(uid) updates := make(map[string]interface{}) - if util.IsSameDayTimeStamp(now.Unix(), playerData.DayBetTime) { + if !util.IsSameDayTimeStamp(now.Unix(), playerData.DayBetTime) { updates["day_bet_time"] = now.Unix() - updates["day_bet"] = 0 + updates["day_bet"] = bet / 100 } else { - updates["day_bet"] = gorm.Expr("bet + ?", bet) + updates["day_bet"] = gorm.Expr("day_bet + ?", bet/100) } db.Mysql().Update(&common.PlayerData{UID: uid}, updates) db.Mysql().Update(&common.ActivityBetDrawData{UID: uid}, map[string]interface{}{ diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 118a2dd..94d830f 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -1002,7 +1002,6 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { } else { data.Wheel = 1 } - list := call.GetConfigActivitySignByWheel(data.Wheel) if len(list) == 0 { return @@ -1023,29 +1022,30 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { resp.Sign = 7*(data.Wheel-1) + signDay resp.Day = signDay + 1 now := time.Now() - if data.Finish || util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { - for _, v := range resp.List { - if v.Day == signDay && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { - resp.Recharge = v.Recharge - resp.Bet = v.Bet - break - } - } - } if util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { return } + if resp.Day > 7 { + if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"sign": 0, "wheel": gorm.Expr("wheel + ?", 1)}); err != nil { + log.Error("err:%v", err) + resp.CanSign = false + return + } + resp.Sign = 7 * (data.Wheel) + resp.Day = 1 + } resp.CanSign = true if !data.Finish { for _, v := range resp.List { if v.Day == resp.Day && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { if re.DayRecharge < v.Recharge || playerData.DayBet < v.Bet { resp.CanSign = false - } - // 更新状态 - if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"finish": true}); err != nil { - log.Error("err:%v", err) - resp.CanSign = false + } else { + // 更新状态 + if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"finish": true}); err != nil { + log.Error("err:%v", err) + resp.CanSign = false + } } break } @@ -1114,7 +1114,6 @@ func ActivitySignNewDraw(c *gin.Context) { return } break - } } if reward == 0 { @@ -1122,18 +1121,10 @@ func ActivitySignNewDraw(c *gin.Context) { return } - // 如果签到了7天就重置 - if day > 7 { - rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, map[string]interface{}{"sign": 0, "wheel": gorm.Expr("wheel + ?", 1)}) - if rows == 0 || err != nil { - log.Error("err:%v", err) - a.Code = values.CodeRetry - return - } - } // ok newSign := Sign(day) - rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, map[string]interface{}{"sign": newSign, "finish": false, "reward": gorm.Expr("reward + ?", reward), "sign_time": now.Unix()}) + updates := map[string]interface{}{"sign": newSign, "finish": false, "reward": gorm.Expr("reward + ?", reward), "sign_time": now.Unix()} + rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, updates) if rows == 0 || err != nil { log.Error("err:%v", err) a.Code = values.CodeRetry -- 2.36.2 From ff70f832eb65c3bf04e74d7225c86550a0dccd31 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Mon, 15 Jul 2024 10:45:41 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/web/handler/activity.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 94d830f..7b81530 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -1026,13 +1026,15 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { return } if resp.Day > 7 { - if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"sign": 0, "wheel": gorm.Expr("wheel + ?", 1)}); err != nil { - log.Error("err:%v", err) - resp.CanSign = false - return + if len(call.GetConfigActivitySignByWheel(data.Wheel+1)) > 0 { + if err := db.Mysql().Update(&common.ActivitySignData{UID: data.UID}, map[string]interface{}{"sign": 0, "wheel": gorm.Expr("wheel + ?", 1)}); err != nil { + log.Error("err:%v", err) + resp.CanSign = false + return + } + resp.Sign = 7 * (data.Wheel) + resp.Day = 1 } - resp.Sign = 7 * (data.Wheel) - resp.Day = 1 } resp.CanSign = true if !data.Finish { -- 2.36.2 From f06d4b1c28fdde2fbed28e40449a29817aafc3a8 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Mon, 15 Jul 2024 18:54:27 +0800 Subject: [PATCH 7/8] =?UTF-8?q?oss=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- call/user.go | 4 ++++ modules/backend/handler/common/common.go | 3 +-- modules/web/handler/activity.go | 19 ++++++++++++++++--- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/call/user.go b/call/user.go index f75e269..5750011 100644 --- a/call/user.go +++ b/call/user.go @@ -616,6 +616,10 @@ func UpdatePlayerProfile(data *common.ESGameData) error { func GetPlayerData(uid int) *common.PlayerData { data := &common.PlayerData{UID: uid} db.Mysql().Get(data) + now := time.Now() + if !util.IsSameDayTimeStamp(now.Unix(), data.DayBetTime) { + data.DayBetTime = 0 + } return data } diff --git a/modules/backend/handler/common/common.go b/modules/backend/handler/common/common.go index 0022e6b..2ca7fdb 100644 --- a/modules/backend/handler/common/common.go +++ b/modules/backend/handler/common/common.go @@ -92,7 +92,6 @@ func UploadOSS(c *gin.Context) { }() ossConf := config.GetConfig().Backend.Oss req := new(values.UploadOSSReq) - req.ObjectName = c.PostForm("ObjectName") req.Folder = c.PostForm("folder") if req.Folder != "" && !strings.HasSuffix(req.Folder, "/") { req.Folder += "/" @@ -132,5 +131,5 @@ func UploadOSS(c *gin.Context) { log.Error("UploadOSS PutObject err:%v", err) return } - rsp.Url = fmt.Sprintf("https://%s/%s/%s%s", ossConf.Domain, ossConf.ObjectName, req.Folder, file.Filename) + rsp.Url = fmt.Sprintf("https://%s/%s%s%s", ossConf.Domain, ossConf.ObjectName, req.Folder, file.Filename) } diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 7b81530..1725a75 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -704,7 +704,6 @@ func ActivityLuckyCodeDraw(c *gin.Context) { if !a.CheckActivityExpire(common.ActivityIDLuckyCode) { return } - req := new(values.ActivityLuckyCodeDrawReq) if !a.S(req) { return @@ -733,7 +732,8 @@ func ActivityLuckyCodeDraw(c *gin.Context) { total := call.GetConfigAcitivityLuckyCodeTotalWeight(codeType) if total == 0 { log.Error("con:%+v invalid,uid:%d", con, a.UID) - a.Code = values.CodeRetry + a.Code = values.CodeParam + a.Msg = "रूपांतरण कोड त्रुटि" return } if data.ID == 0 { @@ -788,6 +788,7 @@ func ActivityLuckyCodeDraw(c *gin.Context) { if err != nil { log.Error("err:%v", err) a.Code = values.CodeRetry + a.Msg = "रूपांतरण कोड त्रुटि" return } call.UploadActivityData(a.UID, common.ActivityIDLuckyCode, common.ActivityDataJoin, reward) @@ -1022,6 +1023,15 @@ func GetSignNewInfo(uid int) (resp *values.ActivitySignInfoResp) { resp.Sign = 7*(data.Wheel-1) + signDay resp.Day = signDay + 1 now := time.Now() + if data.Finish || util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { + for _, v := range resp.List { + if v.Day == signDay && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { + resp.Recharge = v.Recharge + resp.Bet = v.Bet + break + } + } + } if util.IsSameDayTimeStamp(now.Unix(), data.SignTime) { return } @@ -1125,7 +1135,10 @@ func ActivitySignNewDraw(c *gin.Context) { // ok newSign := Sign(day) - updates := map[string]interface{}{"sign": newSign, "finish": false, "reward": gorm.Expr("reward + ?", reward), "sign_time": now.Unix()} + updates := map[string]interface{}{"sign": newSign, "finish": false, "reward": gorm.Expr("reward + ?", reward)} + if config.GetBase().Release { + updates["sign_time"] = now.Unix() + } rows, err := db.Mysql().UpdateRes(&common.ActivitySignData{UID: a.UID, Sign: data.Sign}, updates) if rows == 0 || err != nil { log.Error("err:%v", err) -- 2.36.2 From af95f2665acf0e42f146ba73090b9eda63d5f670 Mon Sep 17 00:00:00 2001 From: mofangmin Date: Tue, 16 Jul 2024 11:13:10 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E7=AD=BE=E5=88=B0=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/web/handler/activity.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/web/handler/activity.go b/modules/web/handler/activity.go index 1725a75..8cd089d 100644 --- a/modules/web/handler/activity.go +++ b/modules/web/handler/activity.go @@ -1079,6 +1079,7 @@ func ActivitySignNewInfo(c *gin.Context) { resp := GetSignNewInfo(a.UID) if resp == nil { a.Code = values.CodeRetry + a.Msg = "पात्रता को पूरा न करें" return } a.Data = resp @@ -1092,7 +1093,6 @@ func ActivitySignNewDraw(c *gin.Context) { if !a.CheckActivityExpire(common.ActivityIDSign) { return } - data := &common.ActivitySignData{UID: a.UID} db.Mysql().Get(data) if data.ID == 0 { @@ -1103,6 +1103,7 @@ func ActivitySignNewDraw(c *gin.Context) { list := call.GetConfigActivitySignByWheel(data.Wheel) if len(list) == 0 { a.Code = values.CodeRetry + a.Msg = "शर्तों को पूरा नहीं किया जाता है" return } now := time.Now() @@ -1117,12 +1118,14 @@ func ActivitySignNewDraw(c *gin.Context) { day := GetSignDay(data.Sign) + 1 var reward int64 for _, v := range list { - if v.Day == day && data.Wheel >= v.WheelStart && data.Wheel <= v.WheelEnd { + if v.Day == day { reward = v.Reward re := call.GetRechargeInfo(a.UID) playerData := call.GetPlayerData(a.UID) if re.DayRecharge < v.Recharge || playerData.DayBet < v.Bet { a.Code = values.CodeParam + a.Msg = "शर्तों को पूरा नहीं किया जाता है" + log.Error("uid:%v,conf:%v", a.UID, v) return } break @@ -1130,6 +1133,7 @@ func ActivitySignNewDraw(c *gin.Context) { } if reward == 0 { a.Code = values.CodeRetry + log.Error("reward == 0") return } -- 2.36.2