刷新历史订单结算价
This commit is contained in:
@@ -618,14 +618,52 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
|
|||||||
orderList []*model.GoodsOrder
|
orderList []*model.GoodsOrder
|
||||||
fromDateParam time.Time
|
fromDateParam time.Time
|
||||||
toDateParam time.Time
|
toDateParam time.Time
|
||||||
|
beginAt time.Time
|
||||||
|
endAt time.Time
|
||||||
)
|
)
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if actID > 0 {
|
if actID > 0 {
|
||||||
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", 0, nil, nil, nil, 0, 0, 0, time.Time{}, time.Time{}, time.Time{}, time.Time{})
|
if fromDate != "" && toDate != "" {
|
||||||
if len(actList.Data) > 0 {
|
fromDateParam = utils.Str2Time(fromDate)
|
||||||
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, actList.Data[0].BeginAt, actList.Data[0].EndAt)
|
toDateParam = utils.Str2Time(toDate)
|
||||||
|
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", 0, nil, nil, nil, 0, 0, 0, time.Time{}, time.Time{}, time.Time{}, time.Time{})
|
||||||
|
if len(actList.Data) > 0 {
|
||||||
|
actBeginAt := actList.Data[0].BeginAt
|
||||||
|
actEndAt := actList.Data[0].EndAt
|
||||||
|
if fromDateParam.Sub(actBeginAt) > 0 && fromDateParam.Sub(actEndAt) > 0 {
|
||||||
|
return "", errors.New(fmt.Sprintf("结算活动有效时间范围与订单创建时间范围不一致!,活动时间范围:[%v] 至 [%v] ,订单创建时间范围 :[%v] 至 [%v]", actBeginAt, actEndAt, fromDateParam, toDateParam))
|
||||||
|
}
|
||||||
|
if actBeginAt.Sub(toDateParam) > 0 && actEndAt.Sub(toDateParam) > 0 {
|
||||||
|
return "", errors.New(fmt.Sprintf("结算活动有效时间范围与订单创建时间范围不一致!,活动时间范围:[%v] 至 [%v] ,订单创建时间范围 :[%v] 至 [%v]", actBeginAt, actEndAt, fromDateParam, toDateParam))
|
||||||
|
}
|
||||||
|
if fromDateParam.Sub(actBeginAt) > 0 {
|
||||||
|
beginAt = fromDateParam
|
||||||
|
if toDateParam.Sub(actEndAt) > 0 {
|
||||||
|
endAt = actEndAt
|
||||||
|
} else {
|
||||||
|
endAt = toDateParam
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
beginAt = actBeginAt
|
||||||
|
if toDateParam.Sub(actEndAt) > 0 {
|
||||||
|
endAt = actEndAt
|
||||||
|
} else {
|
||||||
|
endAt = toDateParam
|
||||||
|
}
|
||||||
|
}
|
||||||
|
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, beginAt, endAt)
|
||||||
|
} else {
|
||||||
|
return "", errors.New(fmt.Sprintf("未查询到相关结算活动,活动ID:[%d]", actID))
|
||||||
|
}
|
||||||
|
} else if fromDate == "" && toDate == "" {
|
||||||
|
actList, _ := dao.QueryActs(db, actID, 0, math.MaxInt32, 0, "", 0, nil, nil, nil, 0, 0, 0, time.Time{}, time.Time{}, time.Time{}, time.Time{})
|
||||||
|
if len(actList.Data) > 0 {
|
||||||
|
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, actList.Data[0].BeginAt, actList.Data[0].EndAt)
|
||||||
|
} else {
|
||||||
|
return "", errors.New(fmt.Sprintf("未查询到相关结算活动,活动ID:[%d]", actID))
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return "", errors.New(fmt.Sprintf("未查询到相关结算活动,活动ID:[%d]", actID))
|
return "", errors.New(fmt.Sprintf("若不按活动查询则间隔时间必须完整!时间范围:[%v] 至 [%v]", fromDate, toDate))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if fromDate != "" && toDate != "" {
|
if fromDate != "" && toDate != "" {
|
||||||
@@ -635,7 +673,6 @@ func (c *OrderManager) RefreshHistoryOrdersEarningPrice(ctx *jxcontext.Context,
|
|||||||
if math.Ceil(toDateParam.Sub(fromDateParam).Hours()/24) > 10 {
|
if math.Ceil(toDateParam.Sub(fromDateParam).Hours()/24) > 10 {
|
||||||
return "", errors.New(fmt.Sprintf("查询间隔时间不允许大于10天!时间范围:[%v] 至 [%v]", fromDate, toDate))
|
return "", errors.New(fmt.Sprintf("查询间隔时间不允许大于10天!时间范围:[%v] 至 [%v]", fromDate, toDate))
|
||||||
}
|
}
|
||||||
// orderList, _ := dao.QueryOrders(db, vendorOrderID, vendorIDs, storeID, fromDateParam, toDateParam)
|
|
||||||
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, fromDateParam, toDateParam)
|
orderList, _ = dao.QueryOrders(db, vendorOrderID, actID, vendorIDs, storeID, fromDateParam, toDateParam)
|
||||||
} else {
|
} else {
|
||||||
return "", errors.New(fmt.Sprintf("若不按活动查询则间隔时间必须完整!时间范围:[%v] 至 [%v]", fromDate, toDate))
|
return "", errors.New(fmt.Sprintf("若不按活动查询则间隔时间必须完整!时间范围:[%v] 至 [%v]", fromDate, toDate))
|
||||||
|
|||||||
@@ -68,6 +68,26 @@ func QueryOrders(db *DaoDB, vendorOrderID string, actID int, vendorIDs []int, st
|
|||||||
b.vendor_price sku_vendor_price, b.sale_price sku_sale_price, b.earning_price sku_earning_price, b.weight, b.sku_type, b.promotion_type
|
b.vendor_price sku_vendor_price, b.sale_price sku_sale_price, b.earning_price sku_earning_price, b.weight, b.sku_type, b.promotion_type
|
||||||
FROM goods_order a
|
FROM goods_order a
|
||||||
JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id
|
JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id
|
||||||
|
`
|
||||||
|
if actID > 0 {
|
||||||
|
sql += `
|
||||||
|
JOIN ( SELECT t4.vendor_order_id, t4.vendor_id
|
||||||
|
FROM act t1
|
||||||
|
JOIN act_store_sku t2 ON t2.act_id = t1.id
|
||||||
|
JOIN order_sku t3 ON t3.sku_id = t2.sku_id
|
||||||
|
JOIN goods_order t4 ON t4.vendor_order_id = t3.vendor_order_id
|
||||||
|
AND t4.vendor_id = t3.vendor_id
|
||||||
|
AND t2.store_id = IF(t4.jx_store_id <> 0, t4.jx_store_id, t4.store_id)
|
||||||
|
AND t4.order_created_at BETWEEN t1.begin_at AND t1.end_at
|
||||||
|
WHERE t1.status = 1
|
||||||
|
AND t1.type = ?
|
||||||
|
AND t1.id = ?
|
||||||
|
GROUP BY 1,2
|
||||||
|
)s ON s.vendor_order_id = a.vendor_order_id AND s.vendor_id = a.vendor_id
|
||||||
|
`
|
||||||
|
sqlParams = append(sqlParams, model.ActSkuFake, actID)
|
||||||
|
}
|
||||||
|
sql += `
|
||||||
WHERE 1=1
|
WHERE 1=1
|
||||||
`
|
`
|
||||||
if vendorOrderID != "" {
|
if vendorOrderID != "" {
|
||||||
@@ -86,24 +106,6 @@ func QueryOrders(db *DaoDB, vendorOrderID string, actID int, vendorIDs []int, st
|
|||||||
sql += " AND a.order_created_at BETWEEN ? and ?"
|
sql += " AND a.order_created_at BETWEEN ? and ?"
|
||||||
sqlParams = append(sqlParams, fromDate, toDate)
|
sqlParams = append(sqlParams, fromDate, toDate)
|
||||||
}
|
}
|
||||||
if actID > 0 {
|
|
||||||
sql += `
|
|
||||||
AND a.vendor_order_id IN
|
|
||||||
( SELECT DISTINCT t4.vendor_order_id
|
|
||||||
FROM act t1
|
|
||||||
JOIN act_store_sku t2 ON t2.act_id = t1.id
|
|
||||||
JOIN order_sku t3 ON t3.sku_id = t2.sku_id
|
|
||||||
JOIN goods_order t4 ON t4.vendor_order_id = t3.vendor_order_id
|
|
||||||
AND t4.vendor_id = t3.vendor_id
|
|
||||||
AND t2.store_id = IF(t4.jx_store_id <> 0, t4.jx_store_id, t4.store_id)
|
|
||||||
AND t4.order_created_at BETWEEN t1.begin_at AND t1.end_at
|
|
||||||
WHERE t1.status = 1
|
|
||||||
AND t1.type = ?
|
|
||||||
AND t1.id = ?
|
|
||||||
)
|
|
||||||
`
|
|
||||||
sqlParams = append(sqlParams, model.ActSkuFake, actID)
|
|
||||||
}
|
|
||||||
err = GetRows(db, &orderNewList, sql, sqlParams...)
|
err = GetRows(db, &orderNewList, sql, sqlParams...)
|
||||||
if len(orderNewList) > 0 {
|
if len(orderNewList) > 0 {
|
||||||
orderNewMap = make(map[string][]*model.OrderSku)
|
orderNewMap = make(map[string][]*model.OrderSku)
|
||||||
|
|||||||
Reference in New Issue
Block a user