新增删除订单,已经轮询修改订单状态,没两个小时更新一次

This commit is contained in:
邹宗楠
2022-07-01 18:34:27 +08:00
parent 6d871f85a0
commit e786ad4bdc
5 changed files with 89 additions and 1 deletions

View File

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

View File

@@ -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是 转寄单
}

View File

@@ -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, &param, "OrderStatus"); err != nil {
globals.SugarLogger.Debug("Update Order Status Fail ", err)
continue
}
}
}

View File

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

View File

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