diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 858a62124..5c6c73fed 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -861,12 +861,43 @@ func (c *OrderManager) GetOrdersFinancial(ctx *jxcontext.Context, fromDateStr, t } func (c *OrderManager) GetStoresOrderSaleInfo(ctx *jxcontext.Context, storeIDList []int, fromTime time.Time, toTime time.Time, statusList []int) (saleInfoList []*dao.StoresOrderSaleInfo, err error) { - // if globals.IsProductEnv() { - // return dao.GetStoresOrderSaleInfo(dao.GetDB(), storeIDList, fromTime, toTime, statusList) - // } + //if globals.IsProductEnv() { + // return dao.GetStoresOrderSaleInfo(dao.GetDB(), 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) { + year, month, day := time.Now().Date() + if fromTime.IsZero() { + fromTime = time.Date(year, month, day, 0, 0, 0, 0, time.Local) + } + if toTime.IsZero() { + toTime = time.Date(year, month, day, 23, 59, 59, 0, time.Local) + } + + db := dao.GetDB() + // 门店统计 + storeStatus, err := dao.StatisticsStoreInfo(db) + if err != nil { + return nil, err + } + + // 订单统计 + orderStatus, err := dao.StatisticsOrderInfo(db, fromTime, toTime, storeId) + if err != nil { + return nil, err + } + + // 售后单统计 + afsOrderStatus, err := dao.StatisticsAfsOrderInfo(db, fromTime, toTime, storeId) + if err != nil { + return nil, err + } + + return map[string]interface{}{"storeStatus": storeStatus, "orderStatus": orderStatus, "afsOrderStatus": afsOrderStatus}, nil +} + func (c *OrderManager) GetStoresOrderSaleInfoNew(ctx *jxcontext.Context, storeIDList []int, fromTime time.Time, toTime time.Time, statusList []int) (saleInfoList []*dao.StoresOrderSaleInfo, err error) { db := dao.GetDB() var isLongTime = false diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 163b4a6ad..0e0b2bdd8 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -2,7 +2,6 @@ package misc import ( "fmt" - "git.rosy.net.cn/jx-callback/business/jxutils/enterprise_msg" "sync" "time" @@ -650,11 +649,6 @@ func syncStoreSkuTao() { db := dao.GetDB() switch step { case 0: - - if err := ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output("开始同步", false)); err != nil { - globals.SugarLogger.Debugf("SendUserMessage := %s", utils.Format4Output(err, false)) - } - enterprise_msg.SendUserMessage("18981810340", "淘鲜达同步消息", utils.Format4Output("开始同步", false), utils.Format4Output("开始同步", false)) _, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, nil, false, nil, nil, syncFlag, true, true) errList.AddErr(err) case 1: diff --git a/business/model/dao/store.go b/business/model/dao/store.go index d52d68171..bfe07e46d 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -1691,3 +1691,57 @@ func GetStoreBaseByVendorStoreID(vendorStoreID string, vendorID int) (storeDetai } return storeDetail, err } + +type StatisticsStore struct { + Count int `json:"count"` // 条数 + Status int `json:"status"` // 状态 +} + +// StatisticsStoreInfo 统计所有的门店信息 +func StatisticsStoreInfo(db *DaoDB) ([]*StatisticsStore, error) { + statistics := make([]*StatisticsStore, 0, 0) + + sql := ` SELECT count(s.status) count, s.status FROM store s GROUP BY s.status ` + if err := GetRows(db, &statistics, sql, nil); err != nil { + return nil, err + } + return statistics, nil +} + +type StatisticsOrder struct { + Count int `json:"count"` // 条数 + Status int `json:"status"` // 状态 + TotalShopMoney int `json:"total_shop_money"` // 订单金额 +} + +// StatisticsOrderInfo 统计订单信息 +func StatisticsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId 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{}{startTime, endTime} + if storeId != model.NO { + sql += ` AND IF(g.store_id <> 0,g.store_id,g.jx_store_id) = ?` + parma = append(parma, storeId) + } + sql += ` GROUP BY g.status ` + orderStatistics := make([]*StatisticsOrder, 0, 0) + if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { + return nil, err + } + return orderStatistics, nil +} + +// StatisticsAfsOrderInfo 售后单信息统计 +func StatisticsAfsOrderInfo(db *DaoDB, startTime, endTime time.Time, storeId 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{}{startTime, endTime} + if storeId != model.NO { + sql += ` AND IF(a.store_id <> 0,a.store_id,a.jx_store_id) = 100743` + parma = append(parma, storeId) + } + sql += ` GROUP BY a.status` + orderStatistics := make([]*StatisticsOrder, 0, 0) + if err := GetRows(GetDB(), &orderStatistics, sql, parma...); err != nil { + return nil, err + } + return orderStatistics, nil +} diff --git a/controllers/jx_order.go b/controllers/jx_order.go index 2c59ab300..9ff3adfa3 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -479,6 +479,25 @@ func (c *OrderController) GetStoresOrderSaleInfo() { }) } +// @Title 首页统计信息[(营业门店,休息门店,禁用门店),(订单状态订单数量统计,售后单+时间),(预计收益)] +// @Description 首页统计信息 +// @Param token header string true "认证token" +// @Param fromTime query string true "起始时间" +// @Param toTime query string true "结束时间" +// @Param storeIDs query int false "门店id" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /StaleIndexInfo [get] +func (c *OrderController) StaleIndexInfo() { + c.callStaleIndexInfo(func(params *tOrderStaleIndexInfoParams) (retVal interface{}, code string, err error) { + timeList, err := jxutils.BatchStr2Time(params.FromTime, params.ToTime) + if err == nil { + retVal, err = orderman.FixedOrderManager.GetStoresOrderSaleInfo2(params.Ctx, timeList[0], timeList[1], params.StoreIDs) + } + return retVal, "", err + }) +} + // @Title 刷新订单真实手机号 // @Description 刷新订单真实手机号 // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index b59d985b8..06d2ad0bb 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1474,6 +1474,16 @@ func init() { Filters: nil, Params: nil}) + // 首页统计信息 + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], + web.ControllerComments{ + Method: "StaleIndexInfo", + Router: `/StaleIndexInfo`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], web.ControllerComments{ Method: "GetWaybills",