订单统计接口修改,对比差异程序修改

This commit is contained in:
苏尹岚
2019-11-01 15:31:29 +08:00
parent c30cd01756
commit 4d605195ac
6 changed files with 163 additions and 69 deletions

View File

@@ -1,8 +1,6 @@
package dao
import (
"fmt"
"strconv"
"time"
"git.rosy.net.cn/baseapi/utils"
@@ -37,8 +35,6 @@ type StatisticsReportForOrdersList struct {
//查询统计订单信息
func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time, toDate time.Time) (statisticsReportForOrdersList []*StatisticsReportForOrdersList, err error) {
//排除已取消的订单
status := strconv.Itoa(model.OrderStatusCanceled)
sql := `
SELECT
c.id store_id,
@@ -75,24 +71,24 @@ func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time,
SUM(discount_money) discount_money,
SUM(desired_fee) desired_fee,
SUM(distance_freight_money) distance_freight_money,
SUM(waybill_tip_money) waybill_tip_money,
SUM(IF(a.vendor_id = a.waybill_vendor_id,waybill_tip_money,0)) waybill_tip_money,
SUM(total_shop_money) total_shop_money,
SUM(pm_subsidy_money) pm_subsidy_money,
SUM(earning_price) earning_price,
SUM(total_shop_money-earning_price-desired_fee-distance_freight_money-waybill_tip_money-80) total_gross_profit
FROM goods_order a
LEFT JOIN waybill b ON IF(a.waybill_vendor_id = -1,a.vendor_order_id,a.vendor_waybill_id) = b.vendor_waybill_id
WHERE a.status != ` + status + `
WHERE a.status != ?
`
sqlParams := []interface{}{}
sqlParams := []interface{}{
model.OrderStatusCanceled, //排除已取消的订单
}
if !utils.IsTimeZero(fromDate) && !utils.IsTimeZero(toDate) {
sql += `AND a.order_created_at BETWEEN ? AND ?
`
sql += ` AND a.order_created_at BETWEEN ? AND ?`
sqlParams = append(sqlParams, fromDate, toDate)
}
if len(storeIDs) > 0 {
sql += `AND a.store_id IN(` + GenQuestionMarks(len(storeIDs)) + `)
`
sql += ` AND a.store_id IN(` + GenQuestionMarks(len(storeIDs)) + `)`
sqlParams = append(sqlParams, storeIDs)
}
sql += `
@@ -101,8 +97,7 @@ func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time,
ON s.store_id = c.id
`
if len(storeIDs) > 0 {
sql += `WHERE c.id IN (` + GenQuestionMarks(len(storeIDs)) + `)
`
sql += ` WHERE c.id IN (` + GenQuestionMarks(len(storeIDs)) + `)`
sqlParams = append(sqlParams, storeIDs)
}
if err = GetRows(db, &statisticsReportForOrdersList, sql, sqlParams...); err == nil {
@@ -113,8 +108,6 @@ func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time,
//查询统计售后单信息
func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time.Time, toDate time.Time) (statisticsReportForOrdersList []*StatisticsReportForOrdersList, err error) {
//排除已取消的订单
status := strconv.Itoa(model.OrderStatusCanceled)
sql := `
SELECT
c.id store_id,
@@ -151,24 +144,23 @@ func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time
SUM(discount_money) discount_money,
SUM(afs_freight_money) desired_fee,
SUM(distance_freight_money) distance_freight_money,
SUM(waybill_tip_money) waybill_tip_money,
SUM(IF(a.vendor_id = a.waybill_vendor_id,waybill_tip_money,0)) waybill_tip_money,
SUM(total_shop_money) total_shop_money,
SUM(b.pm_subsidy_money) pm_subsidy_money,
SUM(earning_price) earning_price,
SUM(total_shop_money-earning_price-afs_freight_money-distance_freight_money-waybill_tip_money-80) total_gross_profit
FROM goods_order a,afs_order b
WHERE a.vendor_order_id = b.vendor_order_id
AND a.status != ` + status + `
FROM goods_order a JOIN afs_order b ON a.vendor_order_id = b.vendor_order_id
WHERE a.status != ?
`
sqlParams := []interface{}{}
sqlParams := []interface{}{
model.OrderStatusCanceled, //排除已取消的订单
}
if !utils.IsTimeZero(fromDate) && !utils.IsTimeZero(toDate) {
sql += `AND a.order_created_at BETWEEN ? AND ?
`
sql += ` AND a.order_created_at BETWEEN ? AND ?`
sqlParams = append(sqlParams, fromDate, toDate)
}
if len(storeIDs) > 0 {
sql += `AND a.store_id IN(` + GenQuestionMarks(len(storeIDs)) + `)
`
sql += ` AND a.store_id IN(` + GenQuestionMarks(len(storeIDs)) + `)`
sqlParams = append(sqlParams, storeIDs)
}
sql += `
@@ -177,11 +169,9 @@ func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time
ON s.store_id = c.id
`
if len(storeIDs) > 0 {
sql += `WHERE c.id IN (` + GenQuestionMarks(len(storeIDs)) + `)
`
sql += ` WHERE c.id IN (` + GenQuestionMarks(len(storeIDs)) + `)`
sqlParams = append(sqlParams, storeIDs)
}
fmt.Println(sql)
if err = GetRows(db, &statisticsReportForOrdersList, sql, sqlParams...); err == nil {
return statisticsReportForOrdersList, nil
}

View File

@@ -51,7 +51,8 @@ func DeleteSkuNamePlace(db *DaoDB, nameID int, placeCodes []int) (num int64, err
func GetSkus(db *DaoDB, skuIDs, nameIDs, statuss, catIDs []int) (skuList []*model.SkuAndName, err error) {
sql := `
SELECT t1.*, t2.name, t2.unit
SELECT t1.*,
t2.name, t2.unit,t2.spec_quality,t2.spec_unit,t2.prefix
FROM sku t1
JOIN sku_name t2 ON t2.id = t1.name_id AND t2.deleted_at = ?
`

View File

@@ -236,8 +236,11 @@ type Sku struct {
type SkuAndName struct {
Sku
Name string
Unit string
Name string
Unit string
SpecQuality float32
SpecUnit string
Prefix string
}
// func (*Sku) TableUnique() [][]string {