diff --git a/controller/checkerboard.go b/controller/checkerboard.go
index 07935df..b9339f2 100644
--- a/controller/checkerboard.go
+++ b/controller/checkerboard.go
@@ -19,6 +19,18 @@ type CheckerBoardController struct {
// UserBetting 押注
func (p *CheckerBoardController) UserBetting(c *gin.Context) {
+ //计算总金额,如果大于100万,就结束,阻止请求
+ amountTotal, err := utils.Amount()
+ if err != nil {
+ utils.Tools.LG.Error("计算总金额失败", zap.Error(err))
+ pkg.ResponseError(c, pkg.CodeActivityEnd)
+ return
+ }
+ if amountTotal >= 1000000 {
+ utils.Tools.LG.Error("活动结束", zap.Error(err))
+ pkg.ResponseError(c, pkg.CodeActivityEnd)
+ return
+ }
userId := c.GetString(pkg.USERID)
if userId == "" {
p.LG.Error("用户id在上下文中未找到")
@@ -181,7 +193,7 @@ func (p *CheckerBoardController) GetBoardInfoNoLogin(c *gin.Context) {
pkg.ResponseError(c, pkg.CodeServerBusy)
return
}
- total, err := utils.Amonent()
+ total, err := utils.Amount()
if err != nil {
p.LG.Error("查询用户总金额失败", zap.Error(err))
pkg.ResponseError(c, pkg.CodeServerBusy)
@@ -259,7 +271,7 @@ func (p *CheckerBoardController) GetCheckBoardInfo(c *gin.Context) {
boardInfo[i].Status = pkg.HAVE
}
}
- total, err := utils.Amonent()
+ total, err := utils.Amount()
if err != nil {
p.LG.Error("查询用户总金额失败", zap.Error(err))
pkg.ResponseError(c, pkg.CodeServerBusy)
@@ -296,6 +308,18 @@ func (p *CheckerBoardController) AddShield(c *gin.Context) {
5、更新用户盾数量
6、查询交易是否成功
*/
+ //计算总金额,如果大于100万,就结束,阻止请求
+ amountTotal, err := utils.Amount()
+ if err != nil {
+ utils.Tools.LG.Error("计算总金额失败", zap.Error(err))
+ pkg.ResponseError(c, pkg.CodeActivityEnd)
+ return
+ }
+ if amountTotal >= 1000000 {
+ utils.Tools.LG.Error("活动结束", zap.Error(err))
+ pkg.ResponseError(c, pkg.CodeActivityEnd)
+ return
+ }
var data model.AddShield
if err := c.ShouldBind(&data); err != nil {
p.LG.Error("参数错误:", zap.Error(err))
@@ -358,3 +382,14 @@ func (p *CheckerBoardController) AddShield(c *gin.Context) {
utils.ChMessage <- message
pkg.ResponseSuccess(c, pkg.CodeSuccess)
}
+
+// GetAmountTotal 获取总价值
+func (p *CheckerBoardController) GetAmountTotal(c *gin.Context) {
+ total, err := utils.Amount()
+ if err != nil {
+ p.LG.Error("获取总价值失败", zap.Error(err))
+ pkg.ResponseError(c, pkg.CodeServerBusy)
+ return
+ }
+ pkg.ResponseSuccess(c, total)
+}
diff --git a/middleware/activity_end.go b/middleware/activity_end.go
index b8be450..2705a93 100644
--- a/middleware/activity_end.go
+++ b/middleware/activity_end.go
@@ -1,26 +1,12 @@
package middleware
import (
- "activity/utils"
"github.com/gin-gonic/gin"
- "go.uber.org/zap"
)
// 活动结束中间件
func ActivityEnd() func(c *gin.Context) {
return func(c *gin.Context) {
- //计算总金额,如果大于100万,就结束,阻止请求
- total, err := utils.Amonent()
- if err != nil {
- utils.Tools.LG.Error("计算总金额失败", zap.Error(err))
- c.Abort()
- return
- }
- if total >= 1000000 {
- utils.Tools.LG.Error("活动结束", zap.Error(err))
- c.Abort()
- return
- }
- c.Next()
+
}
}
diff --git a/pkg/code.go b/pkg/code.go
index d860d99..313d7fb 100644
--- a/pkg/code.go
+++ b/pkg/code.go
@@ -23,6 +23,7 @@ const (
CodeInsufficientBalance
CodeUpdateError
CodePriceError
+ CodeActivityEnd
)
var codeMsgMap = map[ResCode]string{
@@ -46,6 +47,7 @@ var codeMsgMap = map[ResCode]string{
CodeInsufficientBalance: "余额不足",
CodeUpdateError: "更新失败",
CodePriceError: "提交的价格过低",
+ CodeActivityEnd: "本期活动结束",
}
func (c ResCode) Msg() string {
diff --git a/utils/common.go b/utils/common.go
index acba9b9..e0210b0 100644
--- a/utils/common.go
+++ b/utils/common.go
@@ -4,7 +4,7 @@ import (
"activity/model"
)
-func Amonent() (total float64, err error) {
+func Amount() (total float64, err error) {
var boards []model.CheckerBoard
err = Tools.DB.Find(&boards).Error
if err != nil {