From 0999414560d296e5baba37721ee418809395f6f7 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Wed, 23 Jun 2021 09:41:35 +0800 Subject: [PATCH] aa --- business/jxcallback/orderman/orderman_ext.go | 64 ++++++++++++-------- business/model/dao/dao_order.go | 2 +- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 59d20f1e6..d5dacc5af 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -343,35 +343,51 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, isIncludeFake bool, fro if err == nil { pagedInfo = &model.PagedInfo{ TotalCount: totalCount, - Data: orders, + //Data: orders, } - //if len(orders) > 0 { - // 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) - // afsOrders, _ := dao.GetAfsOrders(db, order.VendorID, order.VendorOrderID, "") - // //tempTotalShopMoney := order.TotalShopMoney - // for _, v := range afsOrders { - // if v.Status == model.AfsOrderStatusFinished { - // //报价的,平台结算重算后,预计收益要减去那个商品的报价 - // //扣点的只用重算平台结算再算预计收益 - // if order.EarningType == model.EarningTypeQuote { - // //tempTotalShopMoney - // } else { - // - // } - // } - // } - // return nil, err - // }, orders) - // tasksch.HandleTask(task, nil, true).Run() - // task.GetResult(0) - //} - //pagedInfo.Data = orders + if len(orders) > 0 { + 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) + afsOrder := &AfsOrderExt{} + sql := ` + SELECT a.*, SUM(c.shop_price) shop_price + FROM afs_order 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 + LEFT JOIN order_sku_financial c ON c.afs_order_id = a.afs_order_id AND c.is_afs_order = ? + ` + sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID, + model.YES} + if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil { + if afsOrder.AfsTotalShopMoney != 0 { + //报价,要减去商品的京西价 + if order.EarningType == model.EarningTypeQuote { + order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + afsOrder.ShopPrice + } else { + order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2/100) + } + } + } + return retVal, err + }, orders) + tasksch.HandleTask(task, nil, true).Run() + task.GetResult(0) + } + pagedInfo.Data = orders } return pagedInfo, err } +type AfsOrderExt struct { + model.AfsOrder + ShopPrice int64 `json:"shopPrice"` +} + func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string, mapParams map[string]interface{}) (hint string, err error) { globals.SugarLogger.Debugf("ExportOrders from:%s to:%s", fromDateStr, toDateStr) var ( diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 92979d95b..7feb83702 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -781,7 +781,7 @@ func GetOrders(db *DaoDB, ids []int64, isIncludeSku, isIncludeFake bool, fromDat t5.operator_phone, t5.operator_phone2, t5.operator_phone3, tu1.name operator_name, tu2.name operator_name2, tu3.name operator_name3, t6.vendor_pay_percentage, city.name city_name, district.name district_name, - ROUND(IF(t1.earning_type = 1, IF(IFNULL(t8.afs_total_shop_money, 0) <> 0,IFNULL(t8.afs_total_shop_money, 0), t1.total_shop_money)-t1.earning_price-IFNULL(t2.desired_fee,0),IF(IFNULL(t8.afs_total_shop_money, 0) <> 0,IFNULL(t8.afs_total_shop_money, 0), t1.total_shop_money) *(t1.order_pay_percentage/2)/100)) jx_income`, model.DefaultEarningPricePercentage) + ROUND(IF(t1.earning_type = 1, t1.total_shop_money-t1.earning_price-IFNULL(t2.desired_fee,0), t1.total_shop_money *(t1.order_pay_percentage/2)/100)) jx_income`, model.DefaultEarningPricePercentage) if isIncludeSku { sql += `, IF(t3.jx_sku_id > 0, t3.jx_sku_id, t3.sku_id) sku_id,