|
|
|
|
@@ -74,7 +74,8 @@ public class EmployeeService {
|
|
|
|
|
checkMail(f, f.getIdEmployee(), e);
|
|
|
|
|
checkFlag(f.getFlgAdmin(), "管理者フラグ", e);
|
|
|
|
|
checkFlag(f.getFlgRetirement(), "退職フラグ", e);
|
|
|
|
|
if (f.getPassword().length() > 256) e.add("パスワードは256文字以内で入力してください。");
|
|
|
|
|
if (f.getPassword().length() > 256)
|
|
|
|
|
e.add("パスワードは256文字以内で入力してください。");
|
|
|
|
|
return e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -82,30 +83,49 @@ public class EmployeeService {
|
|
|
|
|
public List<String> validateUpdateBySelf(EmployeeForm f) {
|
|
|
|
|
f.trim();
|
|
|
|
|
List<String> e = new ArrayList<>();
|
|
|
|
|
if (f.getPassword().isEmpty()) e.add("パスワードを入力してください。");
|
|
|
|
|
else if (f.getPassword().length() > 256) e.add("パスワードは256文字以内で入力してください。");
|
|
|
|
|
if (f.getPassword().isEmpty())
|
|
|
|
|
e.add("パスワードを入力してください。");
|
|
|
|
|
else if (f.getPassword().length() > 256)
|
|
|
|
|
e.add("パスワードは256文字以内で入力してください。");
|
|
|
|
|
return e;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkBasic(EmployeeForm f, List<String> e) {
|
|
|
|
|
if (f.getNmEmployee().isEmpty()) e.add("社員名を入力してください。");
|
|
|
|
|
else if (f.getNmEmployee().length() > 50) e.add("社員名は50文字以内で入力してください。");
|
|
|
|
|
if (f.getNmEmployee().isEmpty())
|
|
|
|
|
e.add("社員名を入力してください。");
|
|
|
|
|
else if (f.getNmEmployee().length() > 50)
|
|
|
|
|
e.add("社員名は50文字以内で入力してください。");
|
|
|
|
|
// ※社員名よみの文字種(ひらがなのみ等)は設計で確定する。現状は文字数のみチェック
|
|
|
|
|
if (f.getKnEmployee().isEmpty()) e.add("社員名よみを入力してください。");
|
|
|
|
|
else if (f.getKnEmployee().length() > 100) e.add("社員名よみは100文字以内で入力してください。");
|
|
|
|
|
if (f.getKnEmployee().isEmpty())
|
|
|
|
|
e.add("社員名よみを入力してください。");
|
|
|
|
|
else if (f.getKnEmployee().length() > 100)
|
|
|
|
|
e.add("社員名よみは100文字以内で入力してください。");
|
|
|
|
|
else if (!f.getKnEmployee().matches("^[\\u3040-\\u309F]+$"))
|
|
|
|
|
e.add("社員名よみはひらがなで入力してください");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void checkMail(EmployeeForm f, Integer selfId, List<String> e) {
|
|
|
|
|
String m = f.getMailAddress();
|
|
|
|
|
if (m.isEmpty()) { e.add("メールアドレスを入力してください。"); return; }
|
|
|
|
|
if (m.length() > 256) { e.add("メールアドレスは256文字以内で入力してください。"); return; }
|
|
|
|
|
if (!MAIL.matcher(m).matches()) { e.add("メールアドレスの形式が正しくありません。"); return; }
|
|
|
|
|
if (m.isEmpty()) {
|
|
|
|
|
e.add("メールアドレスを入力してください。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (m.length() > 256) {
|
|
|
|
|
e.add("メールアドレスは256文字以内で入力してください。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!MAIL.matcher(m).matches()) {
|
|
|
|
|
e.add("メールアドレスの形式が正しくありません。");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Optional<Employee> dup = employeeRepository.findByMailAddress(m);
|
|
|
|
|
if (dup.isPresent() && !dup.get().getIdEmployee().equals(selfId)) e.add(MSG_DUP);
|
|
|
|
|
if (dup.isPresent() && !dup.get().getIdEmployee().equals(selfId))
|
|
|
|
|
e.add(MSG_DUP);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void checkFlag(String v, String label, List<String> e) {
|
|
|
|
|
if (!"0".equals(v) && !"1".equals(v)) e.add(label + "が正しくありません。");
|
|
|
|
|
if (!"0".equals(v) && !"1".equals(v))
|
|
|
|
|
e.add(label + "が正しくありません。");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ---------- 登録・更新 ----------
|
|
|
|
|
@@ -136,7 +156,8 @@ public class EmployeeService {
|
|
|
|
|
e.setNmEmployee(f.getNmEmployee());
|
|
|
|
|
e.setKnEmployee(f.getKnEmployee());
|
|
|
|
|
e.setMailAddress(f.getMailAddress());
|
|
|
|
|
if (!f.getPassword().isEmpty()) e.setPassword(f.getPassword());
|
|
|
|
|
if (!f.getPassword().isEmpty())
|
|
|
|
|
e.setPassword(f.getPassword());
|
|
|
|
|
e.setFlgAdmin(f.getFlgAdmin());
|
|
|
|
|
e.setFlgRetirement(f.getFlgRetirement());
|
|
|
|
|
e.setIdUpdate(admin.getIdEmployee());
|
|
|
|
|
@@ -159,6 +180,7 @@ public class EmployeeService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static void raise(List<String> errors) {
|
|
|
|
|
if (!errors.isEmpty()) throw new BusinessException(String.join(" ", errors));
|
|
|
|
|
if (!errors.isEmpty())
|
|
|
|
|
throw new BusinessException(String.join(" ", errors));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|