1
This commit is contained in:
@@ -144,6 +144,7 @@ func (c *OrderManager) GetOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID str
|
||||
t3.img4 image4,
|
||||
t3.img5 image5,
|
||||
t3.desc_img descImg,
|
||||
t3.price price,
|
||||
t3.upc
|
||||
FROM order_sku t1
|
||||
LEFT JOIN goods_order t6 ON t6.vendor_order_id = t1.vendor_order_id AND t6.vendor_id = t1.vendor_id
|
||||
@@ -354,36 +355,71 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, isIncludeFake bool, fro
|
||||
task := tasksch.NewParallelTask("RefreshOrderFinancial", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
order := batchItemList[0].(*model.GoodsOrderExt)
|
||||
var afsOrder *AfsOrderExt
|
||||
sql := `
|
||||
SELECT t1.afs_total_shop_money, t2.shop_price
|
||||
FROM afs_order t1
|
||||
LEFT JOIN (
|
||||
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
|
||||
FROM order_sku_financial a
|
||||
LEFT JOIN (
|
||||
SELECT MAX(created_at), afs_order_id
|
||||
FROM afs_order
|
||||
WHERE status = ?
|
||||
AND vendor_order_id = ?
|
||||
GROUP BY 2
|
||||
) b ON a.afs_order_id = b.afs_order_id
|
||||
WHERE a.afs_order_id = b.afs_order_id AND a.is_afs_order = ?
|
||||
GROUP BY 1) t2 ON t1.afs_order_id = t2.afs_order_id
|
||||
WHERE t1.afs_order_id = t2.afs_order_id
|
||||
`
|
||||
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID,
|
||||
model.YES}
|
||||
if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil {
|
||||
if afsOrder.AfsTotalShopMoney != 0 && afsOrder.AfsTotalShopMoney != order.TotalShopMoney {
|
||||
//报价,要减去商品的京西价
|
||||
if order.EarningType == model.EarningTypeQuote {
|
||||
order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + (afsOrder.ShopPrice * int64(order.OrderPayPercentage) / int64(100))
|
||||
} else {
|
||||
order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2) / 100
|
||||
switch beego.BConfig.RunMode {
|
||||
case model.ServerTypeFruits, model.ServerTypeVegetable:
|
||||
var afsOrder *AfsOrderExt
|
||||
sql := `
|
||||
SELECT t1.afs_total_shop_money, t2.shop_price
|
||||
FROM afs_order t1
|
||||
LEFT JOIN (
|
||||
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
|
||||
FROM order_sku_financial a
|
||||
LEFT JOIN (
|
||||
SELECT MAX(created_at), afs_order_id
|
||||
FROM afs_order
|
||||
WHERE status = ?
|
||||
AND vendor_order_id = ?
|
||||
GROUP BY 2
|
||||
) b ON a.afs_order_id = b.afs_order_id
|
||||
WHERE a.afs_order_id = b.afs_order_id AND a.is_afs_order = ?
|
||||
GROUP BY 1) t2 ON t1.afs_order_id = t2.afs_order_id
|
||||
WHERE t1.afs_order_id = t2.afs_order_id
|
||||
`
|
||||
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID, model.YES}
|
||||
if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil {
|
||||
if afsOrder.AfsTotalShopMoney != 0 && afsOrder.AfsTotalShopMoney != order.TotalShopMoney {
|
||||
//报价,要减去商品的京西价
|
||||
if order.EarningType == model.EarningTypeQuote {
|
||||
order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + (afsOrder.ShopPrice * int64(order.OrderPayPercentage) / int64(100))
|
||||
} else {
|
||||
order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2) / 100
|
||||
}
|
||||
}
|
||||
}
|
||||
case model.ServerTypePet:
|
||||
afsSkuIDList := make([]int, 0, 0)
|
||||
skuFinancial, _ := dao.GetStoreAfsOrderSkuList(db, []int{order.JxStoreID}, []int{model.AfsOrderStatusFinished, model.AfsOrderStatusNew})
|
||||
if len(skuFinancial) != model.NO {
|
||||
for _, v := range skuFinancial {
|
||||
afsSkuIDList = append(afsSkuIDList, v.JxSkuID)
|
||||
}
|
||||
}
|
||||
|
||||
sql := `
|
||||
SELECT sum(o.sale_price*o.count) - sum(n.price*o.count ) inCome
|
||||
FROM order_sku o
|
||||
INNER JOIN sku s on s.id = o.sku_id
|
||||
INNER JOIN sku_name n ON n.id = s.name_id
|
||||
WHERE o.vendor_order_id = ? `
|
||||
incomeParam := []interface{}{order.VendorOrderID}
|
||||
if len(afsSkuIDList) != model.NO {
|
||||
sql += `AND o.sku_id NOT IN (
|
||||
SELECT t1.sku_id
|
||||
FROM order_sku_financial t1
|
||||
JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id
|
||||
WHERE t2.vendor_order_id = ? AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) = ? AND t1.is_afs_order = 1 AND t2.status IN (` + dao.GenQuestionMarks(2) + `)
|
||||
)`
|
||||
incomeParam = append(incomeParam, order.VendorOrderID, order.JxStoreID, model.AfsOrderStatusFinished, model.AfsOrderStatusNew)
|
||||
}
|
||||
// 百货收益算法
|
||||
var baiHuo = &struct {
|
||||
Income int64 `json:"income"`
|
||||
}{}
|
||||
if err = dao.GetRow(db, baiHuo, sql, incomeParam); err == nil {
|
||||
order.JxIncome = baiHuo.Income
|
||||
}
|
||||
}
|
||||
|
||||
// 统计订单的违约金
|
||||
var damages = &struct {
|
||||
Damages int64 `json:"damages"`
|
||||
|
||||
Reference in New Issue
Block a user