Add Filter and Total Tempat WIsata
This commit is contained in:
@@ -188,10 +188,14 @@ func (r *OrderRepository) SumAmount(ctx mycontext.Context, req entity.OrderSearc
|
||||
Where("date(created_at) = ?", today).
|
||||
Where("status = ?", "PAID")
|
||||
|
||||
if !req.IsAdmin {
|
||||
if req.PartnerID != nil {
|
||||
query = query.Where("orders.partner_id = ?", req.PartnerID)
|
||||
}
|
||||
|
||||
if req.SiteID != nil {
|
||||
query = query.Where("orders.site_id = ?", req.SiteID)
|
||||
}
|
||||
|
||||
if err := query.Scan(&amount).Error; err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when get cash amount", zap.Error(err))
|
||||
return nil, err
|
||||
|
||||
@@ -109,6 +109,7 @@ type User interface {
|
||||
GetUserByEmail(ctx context.Context, email string) (*entity.UserDB, error)
|
||||
UpdateUser(ctx context.Context, user *entity.UserDB) (*entity.UserDB, error)
|
||||
UpdateUserWithTx(ctx context.Context, tx *gorm.DB, user *entity.UserDB) (*entity.UserDB, error)
|
||||
CountUsersByRoleAndSiteOrPartner(ctx context.Context, roleID int, siteID *int64) (int, error)
|
||||
}
|
||||
|
||||
type Branch interface {
|
||||
|
||||
@@ -105,6 +105,10 @@ func (r *SiteRepository) GetAll(ctx context.Context, req entity.SiteSearch) (ent
|
||||
query = query.Where("partner_id = ?", req.PartnerID)
|
||||
}
|
||||
|
||||
if req.SiteID != nil {
|
||||
query = query.Where("id = ?", req.SiteID)
|
||||
}
|
||||
|
||||
if req.Limit > 0 {
|
||||
query = query.Limit(req.Limit)
|
||||
}
|
||||
|
||||
@@ -207,3 +207,22 @@ func (r *UserRepository) UpdateUserWithTx(ctx context.Context, tx *gorm.DB, user
|
||||
func logError(ctx context.Context, action string, err error) {
|
||||
logger.ContextLogger(ctx).Error("error when "+action, zap.Error(err))
|
||||
}
|
||||
|
||||
func (r *UserRepository) CountUsersByRoleAndSiteOrPartner(ctx context.Context, roleID int, siteID *int64) (int, error) {
|
||||
var count int64
|
||||
|
||||
query := r.db.Table("users").
|
||||
Joins("LEFT JOIN user_roles ur ON users.id = ur.user_id").
|
||||
Where("ur.role_id = ?", roleID)
|
||||
|
||||
if siteID != nil {
|
||||
query = query.Where("ur.site_id = ?", siteID)
|
||||
}
|
||||
|
||||
if err := query.Count(&count).Error; err != nil {
|
||||
logger.ContextLogger(ctx).Error("error when counting users by role and site/partner", zap.Error(err))
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return int(count), nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user