This commit is contained in:
邹宗楠
2023-09-14 11:33:12 +08:00
parent 8f6bdaa68e
commit 9e33517dcb
3 changed files with 63 additions and 17 deletions

View File

@@ -876,7 +876,7 @@ func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDLis
return c.GetStoresOrderSaleInfoNew(ctx, storeIDList, fromTime, toTime, statusList) return c.GetStoresOrderSaleInfoNew(ctx, storeIDList, fromTime, toTime, statusList)
} }
func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime time.Time, toTime time.Time, storeId int) (map[string]interface{}, error) { func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime time.Time, toTime time.Time, storeId int, brandId, vendorId []int) (map[string]interface{}, error) {
year, month, day := time.Now().Date() year, month, day := time.Now().Date()
if fromTime.IsZero() { if fromTime.IsZero() {
fromTime = time.Date(year, month, day, 0, 0, 0, 0, time.Local) fromTime = time.Date(year, month, day, 0, 0, 0, 0, time.Local)
@@ -887,19 +887,19 @@ func (c *OrderManager) GetStoresOrderSaleInfo2(ctx *jxcontext.Context, fromTime
db := dao.GetDB() db := dao.GetDB()
// 门店统计 // 门店统计
storeStatus, err := dao.StatisticsStoreInfo(db) storeStatus, err := dao.StatisticsStoreInfo(db, brandId, vendorId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 订单统计 // 订单统计
orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId) orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// 售后单统计 // 售后单统计
afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId) afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId, brandId, vendorId)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -1698,11 +1698,23 @@ type StatisticsStore struct {
} }
// StatisticsStoreInfo 统计所有的门店信息 // StatisticsStoreInfo 统计所有的门店信息
func StatisticsStoreInfo(db *DaoDB) ([]*StatisticsStore, error) { func StatisticsStoreInfo(db *DaoDB, brandId []int, vendorId []int) ([]*StatisticsStore, error) {
statistics := make([]*StatisticsStore, 0, 0) statistics := make([]*StatisticsStore, 0, 0)
sql := ` SELECT count(s.status) count, s.status FROM store s GROUP BY s.status ` sql := ` SELECT count(s.status) count, s.status FROM store s `
if err := GetRows(db, &statistics, sql, nil); err != nil { param := make([]interface{}, 0, 0)
if len(vendorId) > model.NO {
sql += ` INNER JOIN store_map m ON s.id = m.store_id AND m.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)`
param = append(param, vendorId)
}
sql += ` WHERE 1=1 `
if len(brandId) > model.NO {
sql += ` AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
param = append(param, brandId)
}
sql += ` GROUP BY s.status `
if err := GetRows(db, &statistics, sql, param); err != nil {
return nil, err return nil, err
} }
return statistics, nil return statistics, nil
@@ -1715,13 +1727,25 @@ type StatisticsOrder struct {
} }
// StatisticsOrderInfo 统计订单信息 // StatisticsOrderInfo 统计订单信息
func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) ([]*StatisticsOrder, error) { func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId []int) ([]*StatisticsOrder, error) {
sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g WHERE g.order_created_at >= ? AND g.order_created_at <= ? ` parma := []interface{}{}
parma := []interface{}{startTime, endTime} sql := ` SELECT count(g.vendor_order_id) count,g.status status ,sum(g.total_shop_money) total_shop_money FROM goods_order g `
if len(brandId) > model.NO {
sql += ` INNER JOIN store s ON IF(g.store_id <> 0,g.store_id,g.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
sql += ` WHERE g.order_created_at >= ? AND g.order_created_at <= ?`
parma = append(parma, startTime, endTime)
if storeId != model.NO { if storeId != model.NO {
sql += ` AND IF(g.store_id <> 0,g.store_id,g.jx_store_id) = ?` sql += ` AND IF(g.store_id <> 0,g.store_id,g.jx_store_id) = ?`
parma = append(parma, storeId) parma = append(parma, storeId)
} }
if len(vendorId) > model.NO {
sql += ` AND g.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)`
parma = append(parma, vendorId)
}
sql += ` GROUP BY g.status ` sql += ` GROUP BY g.status `
orderStatistics := make([]*StatisticsOrder, 0, 0) orderStatistics := make([]*StatisticsOrder, 0, 0)
if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil {
@@ -1731,13 +1755,27 @@ func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) (
} }
// StatisticsAfsOrderInfo 售后单信息统计 // StatisticsAfsOrderInfo 售后单信息统计
func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int) ([]*StatisticsOrder, error) { func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId int, brandId, vendorId []int) ([]*StatisticsOrder, error) {
sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a WHERE a.afs_created_at >= ? AND a.afs_created_at <= ? ` parma := []interface{}{}
parma := []interface{}{startTime, endTime} sql := `SELECT count(a.vendor_order_id) count,a.status status ,sum(a.afs_total_shop_money) total_shop_money FROM afs_order a `
if len(brandId) > model.NO {
sql += ` INNER JOIN store s ON IF(a.store_id <> 0,a.store_id,a.jx_store_id) = s.id AND s.brand_id IN (` + GenQuestionMarks(len(brandId)) + `)`
parma = append(parma, brandId)
}
sql += ` WHERE a.afs_created_at >= ? AND a.afs_created_at <= ?`
parma = append(parma, startTime, endTime)
if storeId != model.NO { if storeId != model.NO {
sql += ` AND IF(a.store_id <> 0,a.store_id,a.jx_store_id) = 100743` sql += ` AND IF(a.store_id <> 0,a.store_id,a.jx_store_id) = ?`
parma = append(parma, storeId) parma = append(parma, storeId)
} }
if len(vendorId) > 0 {
sql += ` AND a.vendor_id IN (` + GenQuestionMarks(len(vendorId)) + `)`
parma = append(parma, vendorId)
}
sql += ` GROUP BY a.status` sql += ` GROUP BY a.status`
orderStatistics := make([]*StatisticsOrder, 0, 0) orderStatistics := make([]*StatisticsOrder, 0, 0)
if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil {

View File

@@ -484,16 +484,24 @@ func (c *OrderController) GetStoresOrderSaleInfo() {
// @Param token header string true "认证token" // @Param token header string true "认证token"
// @Param fromTime query string true "起始时间" // @Param fromTime query string true "起始时间"
// @Param toTime query string true "结束时间" // @Param toTime query string true "结束时间"
// @Param storeIDs query int false "门店id" // @Param brandIds query string false "品牌id"
// @Param vendorIds query string false "平台id"
// @Param storeID query int false "门店id"
// @Success 200 {object} controllers.CallResult // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // @Failure 200 {object} controllers.CallResult
// @router /StaleIndexInfo [get] // @router /StaleIndexInfo [get]
func (c *OrderController) StaleIndexInfo() { func (c *OrderController) StaleIndexInfo() {
c.callStaleIndexInfo(func(params *tOrderStaleIndexInfoParams) (retVal interface{}, code string, err error) { c.callStaleIndexInfo(func(params *tOrderStaleIndexInfoParams) (retVal interface{}, code string, err error) {
timeList, err := jxutils.BatchStr2Time(params.FromTime, params.ToTime) timeList, err := jxutils.BatchStr2Time(params.FromTime, params.ToTime)
if err == nil { if err != nil {
retVal, err = orderman.FixedOrderManager.GetStoresOrderSaleInfo2(params.Ctx, timeList[0], timeList[1], params.StoreIDs) return nil, "", err
} }
var vendors []int
var brandIds []int
if err := jxutils.Strings2Objs(params.VendorIds, &vendors, params.BrandIds, &brandIds); err != nil {
return nil, "", err
}
retVal, err = orderman.FixedOrderManager.GetStoresOrderSaleInfo2(params.Ctx, timeList[0], timeList[1], params.StoreID, brandIds, vendors)
return retVal, "", err return retVal, "", err
}) })
} }