diff --git a/pkg/api/accounts.go b/pkg/api/accounts.go index 06eb8b2e..24b00666 100644 --- a/pkg/api/accounts.go +++ b/pkg/api/accounts.go @@ -92,7 +92,7 @@ func (a *AccountsApi) AccountCreateHandler(c *core.Context) (interface{}, *errs. } uid := c.GetCurrentUid() - maxOrderId, err := a.accounts.GetMaxDisplayOrder(uid) + maxOrderId, err := a.accounts.GetMaxDisplayOrder(uid, accountCreateReq.Category) if err != nil { log.ErrorfWithRequestId(c, "[accounts.AccountCreateHandler] failed to get max display order for user \"uid:%d\", because %s", uid, err.Error()) diff --git a/pkg/services/accounts.go b/pkg/services/accounts.go index 94e7e26b..1b17b11c 100644 --- a/pkg/services/accounts.go +++ b/pkg/services/accounts.go @@ -38,13 +38,13 @@ func (s *AccountService) GetAllAccountsByUid(uid int64) ([]*models.Account, erro return accounts, err } -func (s *AccountService) GetMaxDisplayOrder(uid int64) (int, error) { +func (s *AccountService) GetMaxDisplayOrder(uid int64, category models.AccountCategory) (int, error) { if uid <= 0 { return 0, errs.ErrUserIdInvalid } account := &models.Account{} - has, err := s.UserDataDB(uid).Cols("uid", "deleted", "parent_account_id", "display_order").Where("uid=? AND deleted=? AND parent_account_id=?", uid, false, models.ACCOUNT_PARENT_ID_LEVEL_ONE).OrderBy("display_order desc").Limit(1).Get(account) + has, err := s.UserDataDB(uid).Cols("uid", "deleted", "parent_account_id", "display_order").Where("uid=? AND deleted=? AND parent_account_id=? AND category=?", uid, false, models.ACCOUNT_PARENT_ID_LEVEL_ONE, category).OrderBy("display_order desc").Limit(1).Get(account) if err != nil { return 0, err @@ -57,7 +57,7 @@ func (s *AccountService) GetMaxDisplayOrder(uid int64) (int, error) { } } -func (s *AccountService) GetMaxSubAccountDisplayOrder(uid int64, parentAccountId int64) (int, error) { +func (s *AccountService) GetMaxSubAccountDisplayOrder(uid int64, category models.AccountCategory, parentAccountId int64) (int, error) { if uid <= 0 { return 0, errs.ErrUserIdInvalid } @@ -67,7 +67,7 @@ func (s *AccountService) GetMaxSubAccountDisplayOrder(uid int64, parentAccountId } account := &models.Account{} - has, err := s.UserDataDB(uid).Cols("uid", "deleted", "parent_account_id", "display_order").Where("uid=? AND deleted=? AND parent_account_id=?", uid, false, parentAccountId).OrderBy("display_order desc").Limit(1).Get(account) + has, err := s.UserDataDB(uid).Cols("uid", "deleted", "parent_account_id", "display_order").Where("uid=? AND deleted=? AND parent_account_id=? AND category=?", uid, false, parentAccountId, category).OrderBy("display_order desc").Limit(1).Get(account) if err != nil { return 0, err