From e2cb972241309558fb1911410de8b99cd3a65fdf Mon Sep 17 00:00:00 2001 From: tommy <3405129587@qq.com> Date: Mon, 13 Jul 2020 09:40:05 +0800 Subject: [PATCH] fix:bug --- controllers/client/shake_red_envelope.go | 4 +++- controllers/pc/shake_red_envelope.go | 2 +- go.mod | 2 ++ go.sum | 5 +++++ services/red_envelope/red_envelop.go | 19 +++++++------------ 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/controllers/client/shake_red_envelope.go b/controllers/client/shake_red_envelope.go index e0cb843..08f1e09 100644 --- a/controllers/client/shake_red_envelope.go +++ b/controllers/client/shake_red_envelope.go @@ -70,7 +70,9 @@ func (t *ShakeRedEnvelopeCtl) Shake() { // done: 增加概率, 修改概率 r := rand.New(rand.NewSource(time.Now().UnixNano())) - t.Assert(r.Float64()*100 <= rule.Probability, code.MSG_SHAKERB_RECORD_NOT_HIT, "您与红包擦肩而过") // 必须在红包概率以内才能获取 + p := r.Float64() * 100 + fmt.Println(p) + t.Assert(p <= rule.Probability, code.MSG_SHAKERB_RECORD_NOT_HIT, "您与红包擦肩而过") // 必须在红包概率以内才能获取 // 增加session 或者乐观锁 exist, err = record.GetByRuleId(ruleId, activity.RehearsalId, 0, activity.ArchId) diff --git a/controllers/pc/shake_red_envelope.go b/controllers/pc/shake_red_envelope.go index c6d6044..8a529d6 100644 --- a/controllers/pc/shake_red_envelope.go +++ b/controllers/pc/shake_red_envelope.go @@ -81,7 +81,7 @@ func (t *ShakeRedEnvelopeCtl) Start() { _, err = rule.UpdateStatus(ruleId, define.StatusRunning) t.CheckErr(err) - err = red_envelope_service.GenRedEnvelope(activity.Id, activity.Name, activity.RehearsalId, rule) + err = red_envelope_service.GenRedEnvelope(activity.Id, activity.Name, activity.RehearsalId, rule, activity.ArchId) t.CheckErr(err) // 彩排不用发送到直播间 diff --git a/go.mod b/go.mod index d3f3784..d789f02 100644 --- a/go.mod +++ b/go.mod @@ -25,6 +25,7 @@ require ( github.com/ouxuanserver/osmanthuswine v0.0.0-20190916032555-480efadf4941 github.com/panjf2000/ants v4.0.2+incompatible github.com/pkg/errors v0.9.1 + github.com/rs/zerolog v1.19.0 github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e github.com/smartystreets/goconvey v1.6.4 @@ -42,6 +43,7 @@ require ( golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect google.golang.org/appengine v1.6.5 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 + gopkg.in/olahol/melody.v1 v1.0.0-20170518105555-d52139073376 gopkg.in/yaml.v2 v2.3.0 // indirect xorm.io/core v0.7.3 // indirect xorm.io/xorm v1.0.1 // indirect diff --git a/go.sum b/go.sum index 1d08200..6411d08 100644 --- a/go.sum +++ b/go.sum @@ -77,6 +77,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -304,6 +305,9 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= +github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= github.com/satori/go.uuid v0.0.0-20190313024323-b2ce2384e17b h1:PB8A682UQ6pwoFhkszETBsYw3B9Ze9FEA4cf9H9O3f8= github.com/satori/go.uuid v0.0.0-20190313024323-b2ce2384e17b/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24 h1:pntxY8Ary0t43dCZ5dqY4YTJCObLY1kIXl0uzMv+7DE= @@ -509,6 +513,7 @@ golang.org/x/tools v0.0.0-20190606050223-4d9ae51c2468/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b h1:/mJ+GKieZA6hFDQGdWZrjj4AXPl5ylY+5HusG80roy0= golang.org/x/tools v0.0.0-20190611222205-d73e1c7e250b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191025023517-2077df36852e h1:ejUPpxsbZzyShOEURCSvFIT0ltnmBW92Vsc3i8QRcw8= golang.org/x/tools v0.0.0-20191025023517-2077df36852e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= diff --git a/services/red_envelope/red_envelop.go b/services/red_envelope/red_envelop.go index f9b2bee..4758801 100644 --- a/services/red_envelope/red_envelop.go +++ b/services/red_envelope/red_envelop.go @@ -85,7 +85,7 @@ func GenRedPack(amount, num int) []int { } // 提前生成红包 -func GenRedEnvelope(aid int64, name string, rid int64, rule *models.ShakeRedEnvelopeRule) error { +func GenRedEnvelope(aid int64, name string, rid int64, rule *models.ShakeRedEnvelopeRule, archId int) error { // 判断红包是否存在 // 根据算法提前生成红包 r := rand.New(rand.NewSource(time.Now().Unix())) @@ -130,11 +130,9 @@ func GenRedEnvelope(aid int64, name string, rid int64, rule *models.ShakeRedEnve record.ShakeRedEnvelopeRuleId = rule.Id record.Amount = utils.Float64CusDecimal(float64(money)/float64(100), 2) record.IsDraw = -1 - record.IsDelete = false - record.CreatedAt = time.Now() - record.UpdatedAt = time.Now() + record.ArchId = archId - if _, err := core.GetXormAuto().InsertOne(record); err != nil { + if _, err := models.Add(record); err != nil { return err } sumMoney += money @@ -149,10 +147,8 @@ func GenRedEnvelope(aid int64, name string, rid int64, rule *models.ShakeRedEnve record.ShakeRedEnvelopeRuleId = rule.Id record.Amount = rule.Single record.IsDraw = -1 - record.IsDelete = false - record.CreatedAt = time.Now() - record.UpdatedAt = time.Now() - if _, err := core.GetXormAuto().InsertOne(record); err != nil { + record.ArchId = archId + if _, err := models.Add(record); err != nil { return err } } @@ -173,9 +169,8 @@ func GenRedEnvelope(aid int64, name string, rid int64, rule *models.ShakeRedEnve record.ShakeRedEnvelopeRuleId = rule.Id record.Amount = ladder.Single record.IsDraw = -1 - record.CreatedAt = time.Now() - record.UpdatedAt = time.Now() - if _, err := core.GetXormAuto().InsertOne(record); err != nil { + record.ArchId = archId + if _, err := models.Add(record); err != nil { return err } }