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

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

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