|
@@ -108,6 +108,16 @@ func (m *msgRemind) PaySuccess(orderId int, orderCode, userId, prepayTime string
|
|
|
}()
|
|
|
}
|
|
|
|
|
|
+func (m *msgRemind) getExpireTime() int64 {
|
|
|
+ order_countdown := Config.OrderCountdown //配置文件读取
|
|
|
+ if strings.Contains(util.ObjToString(order_countdown), "h") {
|
|
|
+ onehour, _ := time.ParseDuration(util.ObjToString(order_countdown))
|
|
|
+ return int64(onehour.Seconds())
|
|
|
+ } else {
|
|
|
+ return util.Int64All(order_countdown) * 24 * 60 * 60
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func (m *msgRemind) getVipType(vipType int) string {
|
|
|
switch vipType {
|
|
|
case 0:
|
|
@@ -131,7 +141,7 @@ func (m *msgRemind) run() {
|
|
|
now_unix := time.Now().Unix()
|
|
|
remind_status := 0
|
|
|
//剩余2小时
|
|
|
- if unpaidOrder.remindStatus != 2 && now_unix >= unpaidOrder.prepayTime+259200-TimeTaskConfig.UnpaidRemind.BeforeExpire {
|
|
|
+ if unpaidOrder.remindStatus != 2 && unpaidOrder.prepayTime+m.getExpireTime() < now_unix && now_unix >= unpaidOrder.prepayTime+m.getExpireTime()-TimeTaskConfig.UnpaidRemind.BeforeExpire {
|
|
|
remind_status = 2
|
|
|
} else if unpaidOrder.remindStatus == 0 && now_unix > unpaidOrder.prepayTime+TimeTaskConfig.UnpaidRemind.AfterOrder { //下单时间后2小时未支付
|
|
|
remind_status = 1
|
|
@@ -199,7 +209,20 @@ func (m *msgRemind) run() {
|
|
|
m.run()
|
|
|
})
|
|
|
}
|
|
|
-
|
|
|
+func (m *msgRemind) gc() {
|
|
|
+ log.Println(m.getExpireTime())
|
|
|
+ time.AfterFunc(5*time.Minute, func() {
|
|
|
+ defer util.Catch()
|
|
|
+ m.unpaidOrders.Range(func(k interface{}, v interface{}) bool {
|
|
|
+ unpaidOrder, _ := v.(*unpaidOrder)
|
|
|
+ if time.Now().Unix() > unpaidOrder.prepayTime+m.getExpireTime() {
|
|
|
+ m.unpaidOrders.Delete(k)
|
|
|
+ }
|
|
|
+ return true
|
|
|
+ })
|
|
|
+ m.gc()
|
|
|
+ })
|
|
|
+}
|
|
|
func init() {
|
|
|
go func() {
|
|
|
log.Println("开始加载72小时内的订单到内存中。。。")
|
|
@@ -226,4 +249,5 @@ func init() {
|
|
|
log.Println("加载72小时内的订单到内存中结束。。。", len(*list))
|
|
|
}()
|
|
|
MsgRemind.run()
|
|
|
+ MsgRemind.gc()
|
|
|
}
|