新增删除订单,已经轮询修改订单状态,没两个小时更新一次
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,3 +230,18 @@ func (c *QBiDaExpressController) GetOrderList() {
|
||||
return result, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// DeleteOrder 删除订单
|
||||
// @Title Q必达
|
||||
// @Description 删除未支付订单,已支付订单一个星期后才能删除
|
||||
// @Param token header string true "管理员token"
|
||||
// @Param localOrderId formData string true "本地订单"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /DeleteOrder [post]
|
||||
func (c *QBiDaExpressController) DeleteOrder() {
|
||||
c.callDeleteOrder(func(params *tExpressDeleteOrderParams) (interface{}, string, error) {
|
||||
count, err := bidaServer.DeleteOrderByLocalId(params.Ctx.GetUserID(), params.LocalOrderId)
|
||||
return count, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1069,4 +1069,13 @@ func init() {
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
// 删除订单
|
||||
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:QBiDaExpressController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:QBiDaExpressController"],
|
||||
beego.ControllerComments{
|
||||
Method: "DeleteOrder",
|
||||
Router: "/DeleteOrder",
|
||||
AllowHTTPMethods: []string{"post"},
|
||||
MethodParams: param.Make(),
|
||||
Filters: nil,
|
||||
Params: nil})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user