diff --git a/ClearOldData.go b/ClearOldData.go index 655fbba..6b77267 100644 --- a/ClearOldData.go +++ b/ClearOldData.go @@ -1,10 +1,78 @@ -/****************************************************************************** - * @Function Name : - *----------------------------------------------------------------------------- - * @Description : - * @Function Parameters: - * @Return Value : - * @Author : Zhang Xin - * @Date : 2021/3/3 11:02 - ******************************************************************************/ - package main \ No newline at end of file +package main + +import ( + "LAPP_GAAS_GFrame_BACKEND/conf" + dal "LAPP_GAAS_GFrame_BACKEND/dao/log" + omDal "LAPP_GAAS_GFrame_BACKEND/dao/om" + "LAPP_GAAS_GFrame_BACKEND/db" + "LAPP_GAAS_GFrame_BACKEND/grmi" + "LAPP_GAAS_GFrame_BACKEND/utils" + "fmt" + "github.com/robfig/cron" + "log" + "time" +) + +func main() { + //加载配置 + path := utils.EnsureDir("conf/config.yaml") + err := conf.ReadYamlConfig(path) + if err != nil { + log.Fatal("init config failed, error:", err) + } + err = Start() + if err != nil { + fmt.Println("start failed, error:", err) + } +} + + +func Start() error { + c := cron.New() + var err error + err = c.AddFunc("0 0 1 * * ?", ClearOldData) + if err != nil { + return err + } + + c.Start() + select {} +} + +func ClearOldData() { + + err := db.InitDb() + if err != nil { + fmt.Println("init db failed, error:", err) + return + } + engine := db.Eloquent.Master() + session := engine.NewSession() + if err = session.Begin(); err != nil { + fmt.Println("开始事务失败") + return + } + headDao := dal.NewArtDemandHeadDAO(session, 100, "cron") + lstDao := dal.NewArtDemandLstDAO(session, 100, "cron") + workOrderDao := omDal.NewWorkOrderDAO(session, 100, "cron") + endTime := time.Now().AddDate(0, 0, -30).Format(grmi.DatetimeOutFormat) + err = headDao.ClearOldData(endTime) + if err != nil { + fmt.Println("clear head data failed:", err) + _ = session.Rollback() + return + } + err = lstDao.ClearOldData(endTime) + if err != nil { + fmt.Println("clear list data failed:", err) + _ = session.Rollback() + return + } + err = workOrderDao.ClearOldData(endTime) + if err != nil { + fmt.Println("clear work order data failed:", err) + _ = session.Rollback() + return + } + fmt.Println("clear date success, endTime:", endTime) +} \ No newline at end of file