запретить регистрацию идентичного идентификатора при редактировании формы - PullRequest
1 голос
/ 16 мая 2019

Я хочу запретить пользователю дублировать идентификатор пользователя при регистрации, и созданные мной коды работают хорошо, но возникает одна проблема, когда я пытаюсь изменить идентификатор пользователя так, чтобы он совпадал с другим, уже существующий идентификатор пользователя все еще действителени может быть зарегистрирован.

@PostMapping("/create/")
public ModelAndView createNewUser(@ModelAttribute UserForm form) {
    user = null;
    if (form.getSubmitType().equalsIgnoreCase("delete")) {
        // delete
        user = repo.findById(form.getId()).get();
        user.setEnabled(false);
    } else if (form.getSubmitType().equalsIgnoreCase("update")) {
        // update
        user = repo.findById(form.getId()).get();
        if (form.getPassword() != null && !form.getPassword().isEmpty()) {
            user.setPassword(pe.encode(form.getPassword()));
        }
        // Create
    } else {
        user = new MsUser();
        user.setEnabled(true);
        user.setPassword(pe.encode(form.getPassword()));
        MsUserPointHistory lastPointUsage = new MsUserPointHistory();
        lastPointUsage.setLastPoints(lastPointUsage.getPoints());
    }

    if (form.getSubmitType().equalsIgnoreCase("update") || (form.getSubmitType().equalsIgnoreCase("create"))) {
        user.setUsername(form.getUsername());
        user.setRole(form.getRole());
        user.setShareownerNum(form.getShareownerNum());
        user.setName(form.getName());
        user.setNameKana(form.getNameKana());
        user.setPostalCode(form.getPostalCode());
        user.setAddress(form.getAddress());
        user.setMailaddress(form.getMailaddress());
        user.setShares(form.getShares());
        user.setPoints(form.getPoints());
        user.setBonusPoints(form.getBonusPoints());
        user.setStadiumUsage(form.getStadiumUsage());
        user.setRemarks(form.getRemarks());
    }
    // Validasi
    if (!form.getSubmitType().equalsIgnoreCase("delete")) {
        if (form.getUsername().matches("[0-9]{5,10}")) {
            System.out.println("valid");
        } else {
            return new ModelAndView("redirect:/admin/user?error=1");
        }
        if (form.getShareownerNum().matches("[0-9]{5}")) {
            System.out.println("valid");
        } else {
            return new ModelAndView("redirect:/admin/user?error=2");
        }
        if (form.getPostalCode().matches("[0-9]{7}")) {
            System.out.println("valid");
        } else {
            return new ModelAndView("redirect:/admin/user?error=3");
        }
        if (form.getSubmitType().equalsIgnoreCase("update")) {
            user = repo.findById(form.getId()).get();       
        } else if (repo.findByUsername(form.getUsername()).size() > 0) {
            return new ModelAndView("redirect:/admin/user?error=4");
        }
    }

Я хочу Когда я редактирую идентификатор пользователя (только идентификатор пользователя) так же, как и другое, появится сообщение об ошибке.И я могу редактировать другие данные в форме, кроме идентификатора пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...