This commit is contained in:
aozhiwei 2020-12-02 17:59:08 +08:00
parent 760aad52de
commit ccc09fee69

View File

@ -96,73 +96,9 @@ func (this *Game2005) DailyMailGo() {
err)
return
}
var lastIdx int64
for true {
rows, err := conn.Query("SELECT idx, accountid, vip_lv, privi_lv, createtime, modifytime, " +
" privi_daily_mail_lasttime, vip_weekly_mail_lasttime " +
"FROM `vip_user` " +
"WHERE idx > ? LIMIT 0, 1000;",
lastIdx)
if err != nil {
f5.SysLog().Warning(
"DailyMailGo queryError %s error:%s",
conn,
err)
return
}
defer rows.Close()
hasData := false
for rows.Next() {
var idx int64
var accountId string
var vipLv int32
var priviLv int32
var createTime int32
var modifyTime int32
var priviDailyMailLastTime int64
var vipWeeklyMailLastTime int64
nowTime := f5.App.NowUnix()
rows.Scan(&idx,
&accountId,
&vipLv,
&priviLv,
&createTime,
&modifyTime,
&priviDailyMailLastTime,
&vipWeeklyMailLastTime)
if priviDailyMailLastTime <= 0 ||
q5.GetDaySeconds(nowTime) > q5.GetDaySeconds(nowTime) {
if priviLv > 0 {
this.SendPriviDailyMail(accountId, priviLv)
if _, err :=conn.Exec("UPDATE `vip_user` SET privi_daily_mail_lasttime = ? WHERE idx = ?;",
nowTime,
idx); err != nil {
return
}
}
}
if vipWeeklyMailLastTime <= 0 ||
q5.GetDaySeconds(nowTime) > q5.GetDaySeconds(nowTime) {
if vipLv > 0 {
this.SendVipWeeklyMail(accountId, vipLv)
if _, err :=conn.Exec("UPDATE `vip_user` SET vip_weekly_mail_lasttime = ? WHERE idx = ?;",
nowTime,
idx); err != nil {
return
}
}
}
if idx > lastIdx {
lastIdx = idx
}
}
if !hasData {
break
}
if !this.DailyMailOneDB(conf, conn) {
f5.SysLog().Warning("DailyMailOneDB error")
return
}
}
}
@ -256,3 +192,96 @@ func (this *Game2005) FetchEventOneDB(conf *MtwGame2005MysqlConf, conn *q5.Mysql
this.SetDBIdx(conf.GetInstanceId(), lastIdx)
return true
}
func (this *Game2005) DailyMailOneDB(conf *MtwGame2005MysqlConf, conn *q5.Mysql) bool {
procPriviDailyMail := func(accountId string,
priviLv int32,
nowTime int64,
priviDailyMailLastTime int64,
idx int64) bool {
if priviDailyMailLastTime <= 0 ||
q5.GetDaySeconds(nowTime) > q5.GetDaySeconds(nowTime) {
if priviLv > 0 {
this.SendPriviDailyMail(accountId, priviLv)
if _, err := conn.Exec("UPDATE `vip_user` SET privi_daily_mail_lasttime = ? WHERE idx = ?;",
nowTime,
idx); err != nil {
return false
}
}
}
return true
}
procVipWeeklyMail := func(accountId string,
vipLv int32,
nowTime int64,
vipWeeklyMailLastTime int64,
idx int64) bool {
if vipWeeklyMailLastTime <= 0 ||
q5.GetDaySeconds(nowTime) > q5.GetDaySeconds(nowTime) {
if vipLv > 0 {
this.SendVipWeeklyMail(accountId, vipLv)
if _, err := conn.Exec("UPDATE `vip_user` SET vip_weekly_mail_lasttime = ? WHERE idx = ?;",
nowTime,
idx); err != nil {
return false
}
}
}
return true
}
var lastIdx int64
for true {
rows, err := conn.Query("SELECT idx, accountid, vip_lv, privi_lv, createtime, modifytime, " +
" privi_daily_mail_lasttime, vip_weekly_mail_lasttime " +
"FROM `vip_user` " +
"WHERE idx > ? LIMIT 0, 1000;",
lastIdx)
if err != nil {
f5.SysLog().Warning(
"DailyMailOneDB queryError %s error:%s",
conn,
err)
return false
}
defer rows.Close()
hasData := false
for rows.Next() {
var idx int64
var accountId string
var vipLv int32
var priviLv int32
var createTime int32
var modifyTime int32
var priviDailyMailLastTime int64
var vipWeeklyMailLastTime int64
nowTime := f5.App.NowUnix()
rows.Scan(&idx,
&accountId,
&vipLv,
&priviLv,
&createTime,
&modifyTime,
&priviDailyMailLastTime,
&vipWeeklyMailLastTime)
if !procPriviDailyMail(accountId, priviLv, nowTime, priviDailyMailLastTime, idx) {
return false
}
if !procVipWeeklyMail(accountId, vipLv, nowTime, vipWeeklyMailLastTime, idx) {
return false
}
if idx > lastIdx {
lastIdx = idx
}
}
if !hasData {
break
}
}
return true
}