123456789101112131415161718192021222324252627282930313233343536 |
- package model
- import (
- "fmt"
- "gorm.io/gorm"
- "time"
- )
- // DynamicChapterLogsUserDetail 动态战斗日志表名(时间分表)
- type DynamicChapterLogsUserDetail interface {
- TimeInfo() string
- }
- // TimeInfo 根据时间进行分表,格式年+月
- func (clog *ChapterLogsUserDetail) TimeInfo() string {
- if clog.EventAt == 0 {
- return "chapter_logs_user_details"
- }
- return fmt.Sprintf("chapter_logs_user_details_%v", time.Unix(int64(clog.EventAt), 0).Format("200601"))
- }
- // ChapterLogsUserDetailTable gormDB的scopes, 根据clog来获取对应的表名
- func ChapterLogsUserDetailTable(clog ChapterLogsUserDetail) func(tx *gorm.DB) *gorm.DB {
- return func(tx *gorm.DB) *gorm.DB {
- return tx.Table(clog.TimeInfo())
- }
- }
- func ChapterLogsUserDetailTableSetDate(n string) func(tx *gorm.DB) *gorm.DB {
- return func(tx *gorm.DB) *gorm.DB {
- if n == "" {
- return tx.Table("chapter_logs_user_details")
- }
- return tx.Table(fmt.Sprintf("chapter_logs_user_details_%v", n))
- }
- }
|