From 1631c5c20b8f878d765ea74605f4ff365c029e99 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Sat, 29 Jul 2023 18:47:41 +0800 Subject: [PATCH 1/2] feature/diamond-detail --- internal/model/diamond_m/diamond.go | 11 ++++++++--- internal/model/diamond_m/repo.go | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/internal/model/diamond_m/diamond.go b/internal/model/diamond_m/diamond.go index e18f91b..7357cff 100644 --- a/internal/model/diamond_m/diamond.go +++ b/internal/model/diamond_m/diamond.go @@ -36,6 +36,11 @@ type DiamondAccountDetail struct { diamondAccount *DiamondAccount `gorm:"-"` } +func (DiamondAccountDetail) TableName() string { + month := time.Now().Format("200601") + return fmt.Sprintf("diamond_account_detail_%s", month) +} + // 粉钻详情 type DiamondPinkAccountDetail struct { mysql.Entity @@ -107,7 +112,7 @@ func (diamondAccount *DiamondAccount) addDiamondAccountDetail(operateType diamon var count int64 if diamondOperateSet.FrequencyDay == -1 { if diamondOperateSet.FrequencyNum != -1 { - diamondAccount.Db.Model(&DiamondAccountDetail{}).Where(&DiamondAccountDetail{ + diamondAccount.DB().Table(DiamondAccountDetail{}.TableName()).Where(&DiamondAccountDetail{ UserId: diamondAccount.UserId, OperateType: operateType, }).Count(&count) @@ -121,7 +126,7 @@ func (diamondAccount *DiamondAccount) addDiamondAccountDetail(operateType diamon return nil, err } //一天的次数 - diamondAccount.Db.Model(&DiamondAccountDetail{}).Where(&DiamondAccountDetail{ + diamondAccount.DB().Table(DiamondAccountDetail{}.TableName()).Where(&DiamondAccountDetail{ UserId: diamondAccount.UserId, OperateType: operateType, }).Where("created_time >= ? ", beginTime).Count(&count) @@ -129,7 +134,7 @@ func (diamondAccount *DiamondAccount) addDiamondAccountDetail(operateType diamon return nil, fmt.Errorf("bizerr.DiamondFrequency") } //终极拦截,利用 - diamondAccount.SetCheckUpdateCondition(" EXISTS (SELECT * from (SELECT COUNT(1) as n from diamond_account_detail d where d.user_id = " + strconv.FormatUint(diamondAccount.UserId, 10) + " and d.operate_type = " + strconv.FormatUint(uint64(operateType), 10) + " and d.created_time >= from_unixtime(" + strconv.FormatInt(getZeroTime(time.Now()).Unix(), 10) + ")) t where t.n < " + strconv.Itoa(diamondOperateSet.FrequencyNum) + " )") + diamondAccount.SetCheckUpdateCondition(" EXISTS (SELECT * from (SELECT COUNT(1) as n from " + DiamondAccountDetail{}.TableName() + " d where d.user_id = " + strconv.FormatUint(diamondAccount.UserId, 10) + " and d.operate_type = " + strconv.FormatUint(uint64(operateType), 10) + " and d.created_time >= from_unixtime(" + strconv.FormatInt(getZeroTime(time.Now()).Unix(), 10) + ")) t where t.n < " + strconv.Itoa(diamondOperateSet.FrequencyNum) + " )") } //-1,代表值无效,由参数给与 diff --git a/internal/model/diamond_m/repo.go b/internal/model/diamond_m/repo.go index 284eabe..d4d2840 100644 --- a/internal/model/diamond_m/repo.go +++ b/internal/model/diamond_m/repo.go @@ -33,8 +33,11 @@ func (diamondAccountDetail *DiamondAccountDetail) Persistent() error { } //持久化diamondAccountDetail - if err := domain.Persistent(diamondAccountDetail.Db, diamondAccountDetail); err != nil { - return err + //if err := domain.Persistent(diamondAccountDetail.Db, diamondAccountDetail); err != nil { + // return err + //} + if err := diamondAccountDetail.DB().Table(diamondAccountDetail.TableName()).Save(diamondAccountDetail).Error; err != nil { + return myerr.WrapErr(err) } //改变diamondAccount值 if diamondAccountDetail.diamondAccount == nil { @@ -42,7 +45,7 @@ func (diamondAccountDetail *DiamondAccountDetail) Persistent() error { } var newDiamondAccount DiamondAccount - if err := diamondAccountDetail.Db.First(&newDiamondAccount, diamondAccountDetail.diamondAccount.ID).Error; err != nil { + if err := diamondAccountDetail.DB().Table(diamondAccountDetail.TableName()).First(&newDiamondAccount, diamondAccountDetail.diamondAccount.ID).Error; err != nil { return err } -- 2.22.0 From 6a7c078ba6a8993f66793bb5d0ad23734e0abf35 Mon Sep 17 00:00:00 2001 From: hujiebin Date: Sat, 29 Jul 2023 19:03:12 +0800 Subject: [PATCH 2/2] fix --- internal/model/diamond_m/repo.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/model/diamond_m/repo.go b/internal/model/diamond_m/repo.go index d4d2840..31a9edf 100644 --- a/internal/model/diamond_m/repo.go +++ b/internal/model/diamond_m/repo.go @@ -45,7 +45,7 @@ func (diamondAccountDetail *DiamondAccountDetail) Persistent() error { } var newDiamondAccount DiamondAccount - if err := diamondAccountDetail.DB().Table(diamondAccountDetail.TableName()).First(&newDiamondAccount, diamondAccountDetail.diamondAccount.ID).Error; err != nil { + if err := diamondAccountDetail.Db.First(&newDiamondAccount, diamondAccountDetail.diamondAccount.ID).Error; err != nil { return err } -- 2.22.0