待支付订单超时自动取消
This commit is contained in:
@@ -104,6 +104,8 @@ var (
|
|||||||
}
|
}
|
||||||
|
|
||||||
importantTaskMap = &sync.Map{}
|
importantTaskMap = &sync.Map{}
|
||||||
|
|
||||||
|
cancelPayTimeOutOrderList = localjx.GetHalfHoursList()
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetImportantTaskID(taskName string) string {
|
func GetImportantTaskID(taskName string) string {
|
||||||
@@ -180,6 +182,9 @@ func Init() {
|
|||||||
ScheduleTimerFunc("AutoPayForPopluarMan", func() {
|
ScheduleTimerFunc("AutoPayForPopluarMan", func() {
|
||||||
localjx.AutoPayForPopluarMan(jxcontext.AdminCtx)
|
localjx.AutoPayForPopluarMan(jxcontext.AdminCtx)
|
||||||
}, autoPayForPopluarManList)
|
}, autoPayForPopluarManList)
|
||||||
|
ScheduleTimerFunc("CancelPayTimeOutOrder", func() {
|
||||||
|
localjx.CancelPayTimeOutOrder(jxcontext.AdminCtx)
|
||||||
|
}, cancelPayTimeOutOrderList)
|
||||||
}
|
}
|
||||||
ScheduleTimerFunc("AutoSaleStoreSku", func() {
|
ScheduleTimerFunc("AutoSaleStoreSku", func() {
|
||||||
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false)
|
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, false)
|
||||||
|
|||||||
@@ -39,6 +39,8 @@ const (
|
|||||||
specialFreightPrice = 1500
|
specialFreightPrice = 1500
|
||||||
|
|
||||||
wxAppID = "wx4b5930c13f8b1170"
|
wxAppID = "wx4b5930c13f8b1170"
|
||||||
|
|
||||||
|
autoCancelOrderReason = "支付超时,系统自动取消!"
|
||||||
)
|
)
|
||||||
|
|
||||||
type JxSkuInfo struct {
|
type JxSkuInfo struct {
|
||||||
@@ -808,3 +810,42 @@ func updateUserAndTransfers(db *dao.DaoDB, param *wxpayapi.TransfersParam, user
|
|||||||
_, err = dao.UpdateEntity(db, user, "ProfitSum", "Profit", "Arrears")
|
_, err = dao.UpdateEntity(db, user, "ProfitSum", "Profit", "Arrears")
|
||||||
return err
|
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