diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 05fdb3e39..5d69aaff1 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -34,7 +34,7 @@ type tStoreSkuBindAndSkuName struct { UnitPriceList []int } -func GetStatisticsReportForOrders(ctx *jxcontext.Context, storeIDs []int, fromDate string, toDate string) (statisticsReportForOrdersList []*dao.StatisticsReportForOrdersList, err error) { +func GetStatisticsReportForOrders(ctx *jxcontext.Context, storeIDs, vendorIDs []int, fromDate string, toDate string) (statisticsReportForOrdersList []*dao.StatisticsReportForOrdersList, err error) { db := dao.GetDB() fromDateParm := utils.Str2Time(fromDate) toDateParm := utils.Str2Time(toDate) @@ -42,7 +42,7 @@ func GetStatisticsReportForOrders(ctx *jxcontext.Context, storeIDs []int, fromDa if math.Ceil(toDateParm.Sub(fromDateParm).Hours()/24) > 92 { return nil, errors.New(fmt.Sprintf("查询间隔时间不允许大于3个月!: 时间范围:[%v] 至 [%v]", fromDate, toDate)) } - statisticsReportForOrdersList, err = dao.GetStatisticsReportForOrders(db, storeIDs, fromDateParm, toDateParm) + statisticsReportForOrdersList, err = dao.GetStatisticsReportForOrders(db, storeIDs, vendorIDs, fromDateParm, toDateParm) return statisticsReportForOrdersList, err } diff --git a/business/model/dao/report.go b/business/model/dao/report.go index cd45242a9..2f27048ed 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -50,7 +50,7 @@ type PriceReferSnapshotExt struct { } //查询统计订单信息 -func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time, toDate time.Time) (statisticsReportForOrdersList []*StatisticsReportForOrdersList, err error) { +func GetStatisticsReportForOrders(db *DaoDB, storeIDs, vendorIDs []int, fromDate time.Time, toDate time.Time) (statisticsReportForOrdersList []*StatisticsReportForOrdersList, err error) { sql := ` SELECT c.id store_id, @@ -113,6 +113,10 @@ func GetStatisticsReportForOrders(db *DaoDB, storeIDs []int, fromDate time.Time, sql += ` AND IF(a.jx_store_id != 0, a.jx_store_id, a.store_id) IN(` + GenQuestionMarks(len(storeIDs)) + `)` sqlParams = append(sqlParams, storeIDs) } + if len(vendorIDs) > 0 { + sql += ` AND a.vendor_id IN(` + GenQuestionMarks(len(vendorIDs)) + `)` + sqlParams = append(sqlParams, vendorIDs) + } sql += ` GROUP BY 1 )s diff --git a/controllers/jx_report.go b/controllers/jx_report.go index 5625ae33f..e80011d25 100644 --- a/controllers/jx_report.go +++ b/controllers/jx_report.go @@ -24,9 +24,9 @@ type ReportController struct { // @router /StatisticsReportForOrders [post] func (c *ReportController) StatisticsReportForOrders() { c.callStatisticsReportForOrders(func(params *tReportStatisticsReportForOrdersParams) (retVal interface{}, errCode string, err error) { - var storeIDList []int - if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil { - retVal, err = report.GetStatisticsReportForOrders(params.Ctx, storeIDList, params.FromDate, params.ToDate) + var storeIDList, vendorIDs []int + if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDList, params.VendorIDs, &vendorIDs); err == nil { + retVal, err = report.GetStatisticsReportForOrders(params.Ctx, storeIDList, vendorIDs, params.FromDate, params.ToDate) } return retVal, "", err })