Я хочу запретить пользователю дублировать идентификатор пользователя при регистрации, и созданные мной коды работают хорошо, но возникает одна проблема, когда я пытаюсь изменить идентификатор пользователя так, чтобы он совпадал с другим, уже существующий идентификатор пользователя все еще действителени может быть зарегистрирован.
@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");
}
}
Я хочу Когда я редактирую идентификатор пользователя (только идентификатор пользователя) так же, как и другое, появится сообщение об ошибке.И я могу редактировать другие данные в форме, кроме идентификатора пользователя.