diff --git a/internal/model/order/model.go b/internal/model/order/model.go index 51141d3..e175b19 100644 --- a/internal/model/order/model.go +++ b/internal/model/order/model.go @@ -166,12 +166,11 @@ func (m *customOrderModel) QueryMonthlyOrders(ctx context.Context, date time.Tim // QueryDateOrders Query orders by date func (m *customOrderModel) QueryDateOrders(ctx context.Context, date time.Time) (OrdersTotal, error) { - start := time.Date(date.Year(), date.Month(), date.Day(), 0, 0, 0, 0, date.Location()) - end := start.AddDate(0, 0, 1).Add(-time.Nanosecond) + dateStr := date.Format("2006-01-02") var result OrdersTotal err := m.QueryNoCacheCtx(ctx, &result, func(conn *gorm.DB, v interface{}) error { return conn.Model(&Order{}). - Where("status IN ? AND created_at BETWEEN ? AND ? AND method != ?", []int64{2, 5}, start, end, "balance"). + Where("status IN ? AND DATE_FORMAT(created_at, '%Y-%m-%d') = ? AND method != ?", []int64{2, 5}, dateStr, "balance"). Select( "SUM(amount) as amount_total, " + "SUM(CASE WHEN is_new = 1 THEN amount ELSE 0 END) as new_order_amount, " + @@ -222,10 +221,7 @@ func (m *customOrderModel) QueryMonthlyUserCounts(ctx context.Context, date time return counts.NewUsers, counts.RenewalUsers, err } func (m *customOrderModel) QueryDateUserCounts(ctx context.Context, date time.Time) (int64, int64, error) { - // 当天 00:00:00 - start := time.Date(date.Year(), date.Month(), date.Day(), 0, 0, 0, 0, date.Location()) - // 下一天 00:00:00 - nextDay := start.Add(24 * time.Hour) + dateStr := date.Format("2006-01-02") var counts UserCounts @@ -235,8 +231,8 @@ func (m *customOrderModel) QueryDateUserCounts(ctx context.Context, date time.Ti COUNT(DISTINCT CASE WHEN is_new = 1 THEN user_id END) AS new_users, COUNT(DISTINCT CASE WHEN is_new = 0 THEN user_id END) AS renewal_users `). - Where("status IN ? AND created_at >= ? AND created_at < ? AND method != ?", - []int64{2, 5}, start, nextDay, "balance"). + Where("status IN ? AND DATE_FORMAT(created_at, '%Y-%m-%d') = ? AND method != ?", + []int64{2, 5}, dateStr, "balance"). Scan(&counts).Error })