fix(api) fill renewal_order_users in user statistics (#40)
This commit is contained in:
parent
4f49dea769
commit
626c3ef05c
@ -72,6 +72,15 @@ func (l *QueryUserStatisticsLogic) QueryUserStatistics() (resp *types.UserStatis
|
||||
} else {
|
||||
resp.All.Register = allUserCount
|
||||
}
|
||||
|
||||
// query all user order counts
|
||||
allNewOrderUsers, allRenewalOrderUsers, err := l.svcCtx.OrderModel.QueryTotalUserCounts(l.ctx)
|
||||
if err != nil {
|
||||
l.Errorw("[QueryUserStatisticsLogic] QueryTotalUserCounts error", logger.Field("error", err.Error()))
|
||||
} else {
|
||||
resp.All.NewOrderUsers = allNewOrderUsers
|
||||
resp.All.RenewalOrderUsers = allRenewalOrderUsers
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@ -50,6 +50,7 @@ type customOrderLogicModel interface {
|
||||
QueryTotalOrders(ctx context.Context) (OrdersTotal, error)
|
||||
QueryMonthlyUserCounts(ctx context.Context, date time.Time) (int64, int64, error)
|
||||
QueryDateUserCounts(ctx context.Context, date time.Time) (int64, int64, error)
|
||||
QueryTotalUserCounts(ctx context.Context) (int64, int64, error)
|
||||
IsUserEligibleForNewOrder(ctx context.Context, userID int64) (bool, error)
|
||||
}
|
||||
|
||||
@ -202,6 +203,20 @@ func (m *customOrderModel) QueryDateUserCounts(ctx context.Context, date time.Ti
|
||||
return newUsers, renewalUsers, err
|
||||
}
|
||||
|
||||
func (m *customOrderModel) QueryTotalUserCounts(ctx context.Context) (int64, int64, error) {
|
||||
var newUsers int64
|
||||
var renewalUsers int64
|
||||
err := m.QueryNoCacheCtx(ctx, nil, func(conn *gorm.DB, _ interface{}) error {
|
||||
return conn.Model(&Order{}).
|
||||
Where("status IN ? AND method != ?", []int64{2, 5}, "balance").
|
||||
Select(
|
||||
"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").
|
||||
Row().Scan(&newUsers, &renewalUsers)
|
||||
})
|
||||
return newUsers, renewalUsers, err
|
||||
}
|
||||
|
||||
func (m *customOrderModel) IsUserEligibleForNewOrder(ctx context.Context, userID int64) (bool, error) {
|
||||
var count int64
|
||||
err := m.QueryNoCacheCtx(ctx, nil, func(conn *gorm.DB, _ interface{}) error {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user