待支付订单超时自动取消
This commit is contained in:
@@ -104,6 +104,8 @@ var (
|
||||
}
|
||||
|
||||
importantTaskMap = &sync.Map{}
|
||||
|
||||
cancelPayTimeOutOrderList = localjx.GetHalfHoursList()
|
||||
)
|
||||
|
||||
func GetImportantTaskID(taskName string) string {
|
||||
@@ -180,6 +182,9 @@ func Init() {
|
||||
ScheduleTimerFunc("AutoPayForPopluarMan", func() {
|
||||
localjx.AutoPayForPopluarMan(jxcontext.AdminCtx)
|
||||
}, autoPayForPopluarManList)
|
||||
ScheduleTimerFunc("CancelPayTimeOutOrder", func() {
|
||||
localjx.CancelPayTimeOutOrder(jxcontext.AdminCtx)
|
||||
}, cancelPayTimeOutOrderList)
|
||||
}
|
||||
ScheduleTimerFunc("AutoSaleStoreSku", func() {
|
||||
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false)
|
||||
|
||||
@@ -39,6 +39,8 @@ const (
|
||||
specialFreightPrice = 1500
|
||||
|
||||
wxAppID = "wx4b5930c13f8b1170"
|
||||
|
||||
autoCancelOrderReason = "支付超时,系统自动取消!"
|
||||
)
|
||||
|
||||
type JxSkuInfo struct {
|
||||
@@ -808,3 +810,42 @@ func updateUserAndTransfers(db *dao.DaoDB, param *wxpayapi.TransfersParam, user
|
||||
_, err = dao.UpdateEntity(db, user, "ProfitSum", "Profit", "Arrears")
|
||||
return err
|
||||
}
|
||||
|
||||
func CancelPayTimeOutOrder(ctx *jxcontext.Context) (err error) {
|
||||
db := dao.GetDB()
|
||||
var orders []*model.GoodsOrder
|
||||
sql := `
|
||||
SELECT *
|
||||
FROM goods_order
|
||||
WHERE order_created_at >= ? AND order_created_at <= NOW()
|
||||
AND status = ?
|
||||
AND vendor_id = ?
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
time.Now().Add(-time.Minute * 30),
|
||||
model.OrderStatusWait4Pay,
|
||||
model.VendorIDJX,
|
||||
}
|
||||
err = dao.GetRows(db, &orders, sql, sqlParams)
|
||||
for _, v := range orders {
|
||||
if v.OrderCreatedAt.Add(2 * time.Minute).Before(time.Now()) {
|
||||
err2 := CancelOrder(ctx, v, autoCancelOrderReason)
|
||||
err = err2
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func GetHalfHoursList() (strs []string) {
|
||||
for k := 0; k < 3; k++ {
|
||||
for i := 0; i < 10; i++ {
|
||||
for j := 0; j < 4; j += 3 {
|
||||
if k == 2 && i > 3 {
|
||||
break
|
||||
}
|
||||
strs = append(strs, utils.Int2Str(k)+utils.Int2Str(i)+":"+utils.Int2Str(j)+"0"+":00")
|
||||
}
|
||||
}
|
||||
}
|
||||
return strs
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user