diff --git a/internal/model/diamond_m/diamond.go b/internal/model/diamond_m/diamond.go index e18f91b3bfc90b21dd4b73f0d4a54aa51ed91119..7357cffef868b3b5c334789bd1a92bf71ec33b3e 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 284eabed95ac3148cd6bf796ef029f91503c167f..31a9edf9988f6e1ae024a473c07cd486275a889f 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 {