1 Star 0 Fork 0

h79 / gothird

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
realid.go 1.42 KB
一键复制 编辑 原始数据 按行查看 历史
huqiuyun 提交于 2023-07-28 16:16 . 还是把 token 放在这里
package token
import (
"encoding/gob"
"go.uber.org/zap"
"sync"
)
type RealId struct {
at updateTime
mu sync.Mutex
ids map[string]string //广告组id 或 个人在公众号的 openid
}
func (rid *RealId) Add(realId []string, id string) {
rid.mu.Lock()
defer rid.mu.Unlock()
for i := range realId {
if len(realId[i]) == 0 {
continue
}
if r, ok := rid.ids[realId[i]]; ok {
zap.L().Warn("Token:RealId is existed", zap.String("id", r))
continue
}
rid.ids[realId[i]] = id
}
rid.at.Update()
}
func (rid *RealId) Get(realId string) (string, bool) {
rid.mu.Lock()
defer rid.mu.Unlock()
if r, ok := rid.ids[realId]; ok {
return r, true
}
return "", false
}
func (rid *RealId) Delete(realId string) bool {
rid.mu.Lock()
defer rid.mu.Unlock()
if _, ok := rid.ids[realId]; ok {
delete(rid.ids, realId)
rid.at.Update()
return true
}
return false
}
func (rid *RealId) load() {
rid.mu.Lock()
defer rid.mu.Unlock()
if err := loadFile(realIdFileName, func(de *gob.Decoder) error {
return de.Decode(&rid.ids)
}); err != nil {
zap.L().Error("Token:RealId", zap.Error(err))
} else {
rid.at.Complete()
}
}
func (rid *RealId) save() {
rid.mu.Lock()
defer rid.mu.Unlock()
if !rid.at.HasUpdate() {
return
}
if err := saveFile(realIdFileName, func(en *gob.Encoder) error {
return en.Encode(rid.ids)
}); err != nil {
zap.L().Error("Token:RealId", zap.Error(err))
} else {
rid.at.Complete()
}
}
1
https://gitee.com/h79/gothird.git
git@gitee.com:h79/gothird.git
h79
gothird
gothird
v1.8.103

搜索帮助