- 导出订单时(ExportOrders),将售后单的商品去除
This commit is contained in:
@@ -260,7 +260,7 @@ func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, from
|
|||||||
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at`, model.DefaultEarningPricePercentage)
|
t2.actual_fee, t2.desired_fee, t2.waybill_created_at, t2.waybill_finished_at`, model.DefaultEarningPricePercentage)
|
||||||
if isIncludeSku {
|
if isIncludeSku {
|
||||||
sql += `,
|
sql += `,
|
||||||
t3.sku_id,
|
IF(t3.jx_sku_id > 0, t3.jx_sku_id, t3.sku_id) sku_id,
|
||||||
t3.count sku_count2,
|
t3.count sku_count2,
|
||||||
t3.shop_price sku_shop_price,
|
t3.shop_price sku_shop_price,
|
||||||
t3.earning_price sku_earning_price,
|
t3.earning_price sku_earning_price,
|
||||||
@@ -299,6 +299,9 @@ func (c *OrderManager) getOrders(ctx *jxcontext.Context, isIncludeSku bool, from
|
|||||||
if err = err2; err != nil {
|
if err = err2; err != nil {
|
||||||
return nil, 0, err
|
return nil, 0, err
|
||||||
}
|
}
|
||||||
|
if utils.IsTimeZero(fromDate) {
|
||||||
|
return nil, 0, fmt.Errorf("在没有指定订单号时,必须指定查询日期范围")
|
||||||
|
}
|
||||||
if toDateStr == "" {
|
if toDateStr == "" {
|
||||||
toDateStr = fromDateStr
|
toDateStr = fromDateStr
|
||||||
}
|
}
|
||||||
@@ -437,6 +440,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
var (
|
var (
|
||||||
orders, orders2 []*model.GoodsOrderExt
|
orders, orders2 []*model.GoodsOrderExt
|
||||||
order *model.GoodsOrderExt
|
order *model.GoodsOrderExt
|
||||||
|
afsSkuMap map[string]map[int]*model.OrderSkuFinancial
|
||||||
excelBin []byte
|
excelBin []byte
|
||||||
)
|
)
|
||||||
task := tasksch.NewSeqTask("导出订单SKU信息", ctx,
|
task := tasksch.NewSeqTask("导出订单SKU信息", ctx,
|
||||||
@@ -445,7 +449,20 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
case 0:
|
case 0:
|
||||||
orders, _, err = c.getOrders(ctx, true, fromDateStr, toDateStr, mapParams, 0, -1)
|
orders, _, err = c.getOrders(ctx, true, fromDateStr, toDateStr, mapParams, 0, -1)
|
||||||
case 1:
|
case 1:
|
||||||
|
afsSkuMap, err = c.getAfsOrderSkuInfo4ExportOrders(ctx, fromDateStr, toDateStr)
|
||||||
|
case 2:
|
||||||
for _, v := range orders {
|
for _, v := range orders {
|
||||||
|
if afsInfo := afsSkuMap[jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)]; afsInfo != nil {
|
||||||
|
if afsInfo[v.SkuID] != nil && afsInfo[v.SkuID].Count > 0 {
|
||||||
|
minus := afsInfo[v.SkuID].Count
|
||||||
|
if minus > v.SkuCount2 {
|
||||||
|
minus = v.SkuCount2
|
||||||
|
}
|
||||||
|
v.SkuCount2 -= minus
|
||||||
|
afsInfo[v.SkuID].Count -= minus
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if v.SkuCount2 > 0 {
|
||||||
skuStr := strings.Join([]string{
|
skuStr := strings.Join([]string{
|
||||||
utils.Int2Str(v.SkuID),
|
utils.Int2Str(v.SkuID),
|
||||||
utils.Int2Str(v.SkuCount2),
|
utils.Int2Str(v.SkuCount2),
|
||||||
@@ -463,7 +480,8 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
order.SkuInfo += ";" + skuStr
|
order.SkuInfo += ";" + skuStr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case 2:
|
}
|
||||||
|
case 3:
|
||||||
excelConf := &excel.Obj2ExcelSheetConfig{
|
excelConf := &excel.Obj2ExcelSheetConfig{
|
||||||
Title: "订单导出",
|
Title: "订单导出",
|
||||||
Data: orders2,
|
Data: orders2,
|
||||||
@@ -503,7 +521,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
excelBin = excel.Obj2Excel([]*excel.Obj2ExcelSheetConfig{excelConf})
|
excelBin = excel.Obj2Excel([]*excel.Obj2ExcelSheetConfig{excelConf})
|
||||||
case 3:
|
case 4:
|
||||||
keyPart := []string{
|
keyPart := []string{
|
||||||
ctx.GetUserName(),
|
ctx.GetUserName(),
|
||||||
}
|
}
|
||||||
@@ -522,7 +540,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
|||||||
globals.SugarLogger.Debugf("导出订单SKU信息excelURL:%s, err:%v", excelURL, err)
|
globals.SugarLogger.Debugf("导出订单SKU信息excelURL:%s, err:%v", excelURL, err)
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, 4)
|
}, 5)
|
||||||
tasksch.ManageTask(task).Run()
|
tasksch.ManageTask(task).Run()
|
||||||
hint = task.GetID()
|
hint = task.GetID()
|
||||||
return hint, err
|
return hint, err
|
||||||
@@ -881,6 +899,53 @@ func (c *OrderManager) GetAfsOrderSkuInfo(ctx *jxcontext.Context, afsOrderID str
|
|||||||
return skus, err
|
return skus, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *OrderManager) getAfsOrderSkuInfo4ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateStr string) (skuMap map[string]map[int]*model.OrderSkuFinancial, err error) {
|
||||||
|
fromDate, err2 := utils.TryStr2Time(fromDateStr)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if utils.IsTimeZero(fromDate) {
|
||||||
|
return nil, fmt.Errorf("在没有指定订单号时,必须指定查询日期范围")
|
||||||
|
}
|
||||||
|
if toDateStr == "" {
|
||||||
|
toDateStr = fromDateStr
|
||||||
|
}
|
||||||
|
toDate, err2 := utils.TryStr2Time(toDateStr)
|
||||||
|
if err = err2; err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
toDate = toDate.Add(7 * 24 * time.Hour) // todo 售后单最多只可能延后7天吧
|
||||||
|
sql := `
|
||||||
|
SELECT t2.*
|
||||||
|
FROM afs_order t1
|
||||||
|
JOIN order_sku_financial t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.is_afs_order = 1
|
||||||
|
WHERE t1.afs_created_at >= ? AND t1.afs_created_at <= ? AND t1.status = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
fromDate,
|
||||||
|
toDate,
|
||||||
|
model.AfsOrderStatusFinished,
|
||||||
|
}
|
||||||
|
var skus []*model.OrderSkuFinancial
|
||||||
|
if err = dao.GetRows(dao.GetDB(), &skus, sql, sqlParams...); err == nil {
|
||||||
|
skuMap = make(map[string]map[int]*model.OrderSkuFinancial)
|
||||||
|
for _, v := range skus {
|
||||||
|
key := jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)
|
||||||
|
if skuMap[key] == nil {
|
||||||
|
skuMap[key] = make(map[int]*model.OrderSkuFinancial)
|
||||||
|
}
|
||||||
|
if skuID := jxutils.GetSkuIDFromOrderSkuFinancial(v); skuID > 0 {
|
||||||
|
if skuMap[key][skuID] == nil {
|
||||||
|
skuMap[key][skuID] = v
|
||||||
|
} else {
|
||||||
|
skuMap[key][skuID].Count += v.Count
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return skuMap, err
|
||||||
|
}
|
||||||
|
|
||||||
func (c *OrderManager) GetStoreAfsOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int) (countInfo []*model.GoodsOrderCountInfo, err error) {
|
func (c *OrderManager) GetStoreAfsOrderCountInfo(ctx *jxcontext.Context, storeID, lastHours int) (countInfo []*model.GoodsOrderCountInfo, err error) {
|
||||||
globals.SugarLogger.Debugf("GetStoreAfsOrderCountInfo storeID:%d", storeID)
|
globals.SugarLogger.Debugf("GetStoreAfsOrderCountInfo storeID:%d", storeID)
|
||||||
if lastHours > maxLastHours {
|
if lastHours > maxLastHours {
|
||||||
|
|||||||
@@ -113,6 +113,13 @@ func GetSaleStoreIDFromAfsOrder(order *model.AfsOrder) (retVal int) {
|
|||||||
return order.StoreID
|
return order.StoreID
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSkuIDFromOrderSkuFinancial(sku *model.OrderSkuFinancial) (skuID int) {
|
||||||
|
if sku.JxSkuID > 0 {
|
||||||
|
return sku.JxSkuID
|
||||||
|
}
|
||||||
|
return sku.SkuID
|
||||||
|
}
|
||||||
|
|
||||||
func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) {
|
func SplitUniversalOrderID(universalOrderID string) (orderID string, vendorID int) {
|
||||||
index := strings.Index(universalOrderID, "|")
|
index := strings.Index(universalOrderID, "|")
|
||||||
if index != -1 {
|
if index != -1 {
|
||||||
|
|||||||
Reference in New Issue
Block a user