25 Star 154 Fork 51

中光云计算(西安)有限公司 / 柚备

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
expireDelete.go 1.03 KB
一键复制 编辑 原始数据 按行查看 历史
countpoison 提交于 2020-10-27 12:11 . no commit message
package jobs
import (
"os"
"time"
md "gitee.com/countpoison/youbei/models"
)
//ExpireDelete ... num 份数
func ExpireDelete(id string, num int) error {
logs := []md.Log{}
if err := md.Localdb().Where("deleted=0 and tid=?", id).Desc("created").Find(&logs); err == nil {
for _, v := range logs {
_, err := os.Stat(v.Localfilepath)
if os.IsNotExist(err) {
log := new(md.Log)
log.Deleted = time.Now().Unix()
if _, err := md.Localdb().ID(v.ID).Cols("deleted").Update(log); err != nil {
return err
}
}
}
} else {
return err
}
logs = []md.Log{}
err := md.Localdb().Where("deleted=0 and tid=?", id).Desc("created").Find(&logs)
if err != nil {
return err
}
for i := num; i < len(logs); i++ {
f, err := os.Stat(logs[i].Localfilepath)
if err == nil {
if !f.IsDir() {
log := new(md.Log)
log.Deleted = time.Now().Unix()
_, err := md.Localdb().ID(logs[i].ID).Cols("deleted").Update(log)
if err != nil {
return err
}
os.Remove(logs[i].Localfilepath)
}
}
}
return nil
}
Go
1
https://gitee.com/countpoison/youbei.git
git@gitee.com:countpoison/youbei.git
countpoison
youbei
柚备
1285923a97ec

搜索帮助