新增删除订单,已经轮询修改订单状态,没两个小时更新一次
This commit is contained in:
@@ -2,6 +2,7 @@ package misc
|
||||
|
||||
import (
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/partner/pdd"
|
||||
bidaServer "git.rosy.net.cn/jx-callback/business/q_bida"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/jx-callback/business/jxstore/event"
|
||||
@@ -37,6 +38,11 @@ func Init() {
|
||||
//同步油站信息
|
||||
cms.InitStation(jxcontext.AdminCtx)
|
||||
}, stationTimeList)
|
||||
|
||||
// 每两小时更新一下订单信息UpdateOrderStatus
|
||||
ScheduleTimerFuncByInterval(func() {
|
||||
bidaServer.UpdateOrderStatus()
|
||||
}, 5*time.Second, 2*time.Hour)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ type UserVendorOrder struct {
|
||||
Bulk float64 `orm:"column(bulk)" json:"bulk"` // 体积抛比系数
|
||||
Increment float64 `orm:"column(increment)" json:"increment"` // 增值(物流)
|
||||
ChannelType int `orm:"size(8);column(channel_type)" json:"channelType"` // 渠道类型(1-快递,2-物流,3-国际物流,4-整车)
|
||||
OrderStatus int `orm:"size(8);column(order_status)" json:"orderType"` // 订单状态(2-待支付,3-支付失败,4-支付成功,5-待取件,6-配送,110-完成,150-取消)
|
||||
OrderStatus int `orm:"size(8);column(order_status)" json:"orderType"` // 订单状态(2-待支付,3-支付失败,4-支付成功,10预下单11待取件12运输中15已签收16取消订单17终止揽收)
|
||||
Img string `orm:"column(img)" json:"img"` // 包裹图片
|
||||
IsForward int `orm:"column(is_forward)" json:"isForward"` // 1否,2是 转寄单
|
||||
}
|
||||
|
||||
@@ -457,3 +457,61 @@ func ManagerGetOrderList(param *model.OrderListReq) ([]*model.UserVendorOrder, e
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// DeleteOrderByLocalId 删除订单
|
||||
func DeleteOrderByLocalId(userId, localId string) (int64, error) {
|
||||
sql := `SELECT * FROM user_vendor_order uo WHERE 1=1 AND user_id = ? AND local_way_bill =? `
|
||||
paramSql := make([]interface{}, 0, 0)
|
||||
paramSql = append(paramSql, userId, localId)
|
||||
|
||||
data := model.UserVendorOrder{}
|
||||
if err := dao.GetRow(dao.GetDB(), &data, sql, paramSql); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if data.ID <= 0 {
|
||||
return 0, errors.New("用户数据不存在")
|
||||
}
|
||||
// 待支付,支付失败,取消,可以删除
|
||||
if data.OrderStatus == 2 || data.OrderStatus == 3 || data.OrderStatus == 150 {
|
||||
return dao.DeleteEntity(dao.GetDB(), &model.UserVendorOrder{UserId: userId, LocalWayBill: localId}, "UserId", "LocalWayBill")
|
||||
}
|
||||
|
||||
// 支付成功保留15天,可以删除
|
||||
if !data.CreatedAt.IsZero() && data.CreatedAt.AddDate(0, 0, 15).Unix() > time.Now().Unix() {
|
||||
return dao.DeleteEntity(dao.GetDB(), &model.UserVendorOrder{UserId: userId, LocalWayBill: localId}, "UserId", "LocalWayBill")
|
||||
}
|
||||
return 0, errors.New("订单完成后保存15天,才可以删除")
|
||||
}
|
||||
|
||||
// UpdateOrderStatus 查询所有支付成功的订单
|
||||
func UpdateOrderStatus() {
|
||||
// 查询状态值为【4-支付成功,10预下单11待取件12运输中17终止揽收】//2,3 15已签收16取消订单 完成订单
|
||||
db := dao.GetDB()
|
||||
sql := `SELECT * FROM user_vendor_order uo WHERE order_status IN (4,10,11,12,17) `
|
||||
var data []*model.UserVendorOrder
|
||||
if err := dao.GetRows(db, &data, sql); err != nil {
|
||||
globals.SugarLogger.Debug("Scheduled task Err = ", err)
|
||||
return
|
||||
}
|
||||
|
||||
for _, v := range data {
|
||||
if v.LocalWayBill == v.OtherWayBill {
|
||||
globals.SugarLogger.Debug("ERROR ", "第三方订单Id写入错误,")
|
||||
continue
|
||||
}
|
||||
if v.OrderStatus == 2 || v.OrderStatus == 3 || v.OrderStatus == 15 || v.OrderStatus == 16 {
|
||||
continue
|
||||
}
|
||||
otherOrder, err := QueryOrderDetail(v.Type, v.OtherWayBill)
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debug("Get Order Fail To QBiDa:", err)
|
||||
continue
|
||||
}
|
||||
param := model.UserVendorOrder{ModelIDCUL: model.ModelIDCUL{ID: v.ModelIDCUL.ID}}
|
||||
param.OrderStatus = otherOrder.Status + 10
|
||||
if _, err := dao.UpdateEntity(db, ¶m, "OrderStatus"); err != nil {
|
||||
globals.SugarLogger.Debug("Update Order Status Fail ", err)
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user