- 修复GetStoresOrderSaleInfoNew中的bug

This commit is contained in:
gazebo
2019-08-20 14:07:31 +08:00
parent bcd8eba95e
commit 6bd473839c
2 changed files with 74 additions and 44 deletions

View File

@@ -791,10 +791,14 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
if err != nil {
return nil, err
}
orderMap := make(map[string]*model.GoodsOrder)
orderSkuMap := make(map[string]*dao.OrderSkuWithActualPayPrice)
saleInfoMap := make(map[int64]*dao.StoresOrderSaleInfo)
orderSkuList4Afs, err := dao.GetStoreOrderSkuList4Afs(db, storeIDList, fromTime, toTime)
if err != nil {
return nil, err
}
orderSkuHandler := func(skuList []*dao.OrderSkuWithActualPayPrice) (orderMap map[string]*model.GoodsOrder, orderSkuMap map[string]*dao.OrderSkuWithActualPayPrice, saleInfoMap map[int64]*dao.StoresOrderSaleInfo) {
orderMap = make(map[string]*model.GoodsOrder)
orderSkuMap = make(map[string]*dao.OrderSkuWithActualPayPrice)
saleInfoMap = make(map[int64]*dao.StoresOrderSaleInfo)
for _, v := range orderSkuList {
if v.EarningPrice == 0 {
v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, v.PayPercentage)
@@ -836,6 +840,10 @@ func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeID
orderSkuMap[universalOrderSkuID] = v
}
}
return orderMap, orderSkuMap, saleInfoMap
}
_, _, saleInfoMap := orderSkuHandler(orderSkuList)
orderMap, orderSkuMap, _ := orderSkuHandler(orderSkuList4Afs)
afsOrderMap := make(map[string]*model.GoodsOrder)
for _, v := range afsSkuList {

View File

@@ -248,6 +248,28 @@ func GetStoreOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAt
return skuList, err
}
func GetStoreOrderSkuList4Afs(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time) (skuList []*OrderSkuWithActualPayPrice, err error) {
sql := `
SELECT t1.*,
t2.actual_pay_price, t2.status, IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) store_id,
t3.pay_percentage
FROM order_sku t1
JOIN goods_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id
LEFT JOIN store t3 ON t3.id = IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id)
JOIN (
SELECT t12.*
FROM afs_order t12
WHERE IF(t12.jx_store_id > 0, t12.jx_store_id, t12.store_id) IN (` + GenQuestionMarks(len(storeIDs)) + `) AND t12.afs_finished_at >= ? AND t12.afs_finished_at <= ?
) t4 ON t4.vendor_order_id = t2.vendor_order_id AND t4.vendor_id = t2.vendor_id`
sqlParams := []interface{}{
storeIDs,
finishedAtBegin,
finishedAtEnd,
}
err = GetRows(db, &skuList, sql, sqlParams...)
return skuList, err
}
func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int) (afsSkuList []*model.OrderSkuFinancial, err error) {
sql := `
SELECT t1.*