- 修复GetStoresOrderSaleInfoNew中的bug
This commit is contained in:
@@ -791,51 +791,59 @@ 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)
|
||||
for _, v := range orderSkuList {
|
||||
if v.EarningPrice == 0 {
|
||||
v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, v.PayPercentage)
|
||||
}
|
||||
|
||||
status := v.Status
|
||||
if status < model.OrderStatusEndBegin {
|
||||
status = 0
|
||||
}
|
||||
index := jxutils.Combine2Int(v.StoreID, v.VendorID)*1000 + int64(status)
|
||||
saleInfo := saleInfoMap[index]
|
||||
if saleInfo == nil {
|
||||
saleInfo = &dao.StoresOrderSaleInfo{
|
||||
StoreID: v.StoreID,
|
||||
VendorID: v.VendorID,
|
||||
Status: status,
|
||||
}
|
||||
saleInfoMap[index] = saleInfo
|
||||
}
|
||||
saleInfo.ShopPrice += v.ShopPrice * int64(v.Count)
|
||||
saleInfo.VendorPrice += v.VendorPrice * int64(v.Count)
|
||||
saleInfo.SalePrice += v.SalePrice * int64(v.Count)
|
||||
saleInfo.EarningPrice += v.EarningPrice * int64(v.Count)
|
||||
|
||||
universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)
|
||||
if orderMap[universalOrderID] == nil {
|
||||
orderMap[universalOrderID] = &model.GoodsOrder{
|
||||
StoreID: v.StoreID,
|
||||
VendorID: v.VendorID,
|
||||
ActualPayPrice: v.ActualPayPrice,
|
||||
}
|
||||
saleInfo.ActualPayPrice += v.ActualPayPrice
|
||||
saleInfo.Count++
|
||||
}
|
||||
orderMap[universalOrderID].SkuCount += v.Count
|
||||
|
||||
universalOrderSkuID := universalOrderID + "/" + utils.Int2Str(jxutils.GetSkuIDFromOrderSku(&v.OrderSku))
|
||||
if orderSkuMap[universalOrderSkuID] == nil {
|
||||
orderSkuMap[universalOrderSkuID] = v
|
||||
}
|
||||
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)
|
||||
}
|
||||
|
||||
status := v.Status
|
||||
if status < model.OrderStatusEndBegin {
|
||||
status = 0
|
||||
}
|
||||
index := jxutils.Combine2Int(v.StoreID, v.VendorID)*1000 + int64(status)
|
||||
saleInfo := saleInfoMap[index]
|
||||
if saleInfo == nil {
|
||||
saleInfo = &dao.StoresOrderSaleInfo{
|
||||
StoreID: v.StoreID,
|
||||
VendorID: v.VendorID,
|
||||
Status: status,
|
||||
}
|
||||
saleInfoMap[index] = saleInfo
|
||||
}
|
||||
saleInfo.ShopPrice += v.ShopPrice * int64(v.Count)
|
||||
saleInfo.VendorPrice += v.VendorPrice * int64(v.Count)
|
||||
saleInfo.SalePrice += v.SalePrice * int64(v.Count)
|
||||
saleInfo.EarningPrice += v.EarningPrice * int64(v.Count)
|
||||
|
||||
universalOrderID := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)
|
||||
if orderMap[universalOrderID] == nil {
|
||||
orderMap[universalOrderID] = &model.GoodsOrder{
|
||||
StoreID: v.StoreID,
|
||||
VendorID: v.VendorID,
|
||||
ActualPayPrice: v.ActualPayPrice,
|
||||
}
|
||||
saleInfo.ActualPayPrice += v.ActualPayPrice
|
||||
saleInfo.Count++
|
||||
}
|
||||
orderMap[universalOrderID].SkuCount += v.Count
|
||||
|
||||
universalOrderSkuID := universalOrderID + "/" + utils.Int2Str(jxutils.GetSkuIDFromOrderSku(&v.OrderSku))
|
||||
if orderSkuMap[universalOrderSkuID] == nil {
|
||||
orderSkuMap[universalOrderSkuID] = v
|
||||
}
|
||||
}
|
||||
return orderMap, orderSkuMap, saleInfoMap
|
||||
}
|
||||
_, _, saleInfoMap := orderSkuHandler(orderSkuList)
|
||||
orderMap, orderSkuMap, _ := orderSkuHandler(orderSkuList4Afs)
|
||||
|
||||
afsOrderMap := make(map[string]*model.GoodsOrder)
|
||||
for _, v := range afsSkuList {
|
||||
|
||||
Reference in New Issue
Block a user