待支付订单超时自动取消

This commit is contained in:
苏尹岚
2020-02-25 15:54:03 +08:00
parent f9e9088445
commit 18c24e010d
2 changed files with 46 additions and 0 deletions

View File

@@ -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)

View File

@@ -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
}