Skip to content

Commit 70db163

Browse files
committed
修复限期到期不马上生效的问题
1 parent dd2c7af commit 70db163

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

core/mysql.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -201,47 +201,46 @@ func (mysql *Mysql) MonthlyResetData() error {
201201
defer db.Close()
202202
userList, err := queryUserList(db, "SELECT * FROM users WHERE useDays != 0 AND quota != 0")
203203
if err != nil {
204-
fmt.Println(err)
205204
return err
206205
}
207206
for _, user := range userList {
208207
if _, err := db.Exec(fmt.Sprintf("UPDATE users SET download=0, upload=0 WHERE id=%d;", user.ID)); err != nil {
209-
fmt.Println(err)
210208
return err
211209
}
212210
}
213211
return nil
214212
}
215213

216214
// DailyCheckExpire 检查是否有过期,过期了设置流量上限为0
217-
func (mysql *Mysql) DailyCheckExpire() error {
215+
func (mysql *Mysql) DailyCheckExpire() (bool, error) {
216+
needRestart := false
218217
now := time.Now()
219218
utc, err := time.LoadLocation("Asia/Shanghai")
220219
if err != nil {
221-
fmt.Println(err)
222-
return err
220+
return false, err
223221
}
224222
addDay, _ := time.ParseDuration("-24h")
225223
todayDay := now.Add(addDay).In(utc).Format("2006-01-02")
226224
db := mysql.GetDB()
227225
if db == nil {
228-
return errors.New("can't connect mysql")
226+
return false, errors.New("can't connect mysql")
229227
}
230228
defer db.Close()
231229
userList, err := queryUserList(db, "SELECT * FROM users WHERE useDays != 0 AND quota != 0")
232230
if err != nil {
233-
fmt.Println(err)
234-
return err
231+
return false, err
235232
}
236233
for _, user := range userList {
237234
if user.ExpiryDate == todayDay {
238235
if _, err := db.Exec(fmt.Sprintf("UPDATE users SET quota=0 WHERE id=%d;", user.ID)); err != nil {
239-
fmt.Println(err)
240-
return err
236+
return false, err
237+
}
238+
if !needRestart {
239+
needRestart = true
241240
}
242241
}
243242
}
244-
return nil
243+
return needRestart, nil
245244
}
246245

247246
// CancelExpire 取消过期时间

web/web.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"net/http"
1010
"strconv"
1111
"trojan/core"
12+
"trojan/trojan"
1213
"trojan/util"
1314
"trojan/web/controller"
1415
)
@@ -144,11 +145,17 @@ func sheduleTask() {
144145
c := cron.New()
145146
c.AddFunc("CRON_TZ=Asia/Shanghai @monthly", func() {
146147
mysql := core.GetMysql()
147-
mysql.MonthlyResetData()
148+
if err := mysql.MonthlyResetData(); err != nil {
149+
fmt.Println("MonthlyResetError: " + err.Error())
150+
}
148151
})
149152
c.AddFunc("CRON_TZ=Asia/Shanghai @daily", func() {
150153
mysql := core.GetMysql()
151-
mysql.DailyCheckExpire()
154+
if needRestart, err := mysql.DailyCheckExpire(); err != nil {
155+
fmt.Println("DailyCheckError: " + err.Error())
156+
} else if needRestart {
157+
trojan.Restart()
158+
}
152159
})
153160
c.Start()
154161
}

0 commit comments

Comments
 (0)