You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
866 B
47 lines
866 B
1 month ago
|
package cacheApi
|
||
|
|
||
|
import (
|
||
|
"epur-pay/model"
|
||
|
"epur-pay/pkg/logger"
|
||
|
"epur-pay/pkg/rds"
|
||
|
"epur-pay/pkg/utils"
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
type Version struct {
|
||
|
Data sync.Map
|
||
|
duplicate *Version
|
||
|
}
|
||
|
|
||
|
func (p *Version) Refresh() *Version {
|
||
|
|
||
|
p.duplicate = &Version{}
|
||
|
|
||
|
versions := make([]model.Version, 0)
|
||
|
|
||
|
utils.Error(rds.DB.Table(model.Version{}.TableName()).Where(`status = 0`).Scan(&versions).Error)
|
||
|
|
||
|
for index, _ := range versions {
|
||
|
p.duplicate.Data.Store(versions[index].Type, versions[index])
|
||
|
}
|
||
|
|
||
|
return p.duplicate
|
||
|
}
|
||
|
|
||
|
func (p *Version) RefreshRow(data interface{}) {
|
||
|
|
||
|
instance := data.(model.Version)
|
||
|
p.Data.Store(instance.Type, instance)
|
||
|
}
|
||
|
|
||
|
func (p *Version) Get(key string) *model.Version {
|
||
|
|
||
|
if row, ok := p.Data.Load(key); ok {
|
||
|
t1 := row.(model.Version)
|
||
|
return &t1
|
||
|
} else {
|
||
|
logger.AccessLogger.Errorln("缓存不存在了,注意!", key)
|
||
|
return nil
|
||
|
}
|
||
|
}
|