From adf3ece0d25ac4474a2896d589472a063a6fef4a Mon Sep 17 00:00:00 2001 From: o-matsuda <26-o-matsuda-stellatecnica@it-college.co.jp> Date: Tue, 27 Oct 2026 14:25:06 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=90=E3=83=AA=E3=83=86=E3=83=BC=E3=82=B7?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/service/BookAdminService.java | 134 ++++++++++-------- .../example/demo/service/EmployeeService.java | 5 +- 2 files changed, 73 insertions(+), 66 deletions(-) diff --git a/book-rent/src/main/java/com/example/demo/service/BookAdminService.java b/book-rent/src/main/java/com/example/demo/service/BookAdminService.java index 17f56d1..de84299 100644 --- a/book-rent/src/main/java/com/example/demo/service/BookAdminService.java +++ b/book-rent/src/main/java/com/example/demo/service/BookAdminService.java @@ -18,76 +18,84 @@ import com.example.demo.repository.BookCollectionRepository; @Service public class BookAdminService { - private final BookCollectionRepository bookRepository; + private final BookCollectionRepository bookRepository; - public BookAdminService(BookCollectionRepository bookRepository) { - this.bookRepository = bookRepository; - } + public BookAdminService(BookCollectionRepository bookRepository) { + this.bookRepository = bookRepository; + } - /** 入力チェック(ISBN必須13文字以内、書籍名必須50、よみ100、出版社50)。※ISBNを数字13桁に限定するかは要確認 */ - public List validate(BookForm f) { - f.trim(); - List e = new ArrayList<>(); - if (f.getIsbn().isEmpty()) e.add("ISBNを入力してください。"); - else if (f.getIsbn().length() > 13) e.add("ISBNは13文字以内で入力してください。"); - if (f.getNmBook().isEmpty()) e.add("書籍名を入力してください。"); - else if (f.getNmBook().length() > 50) e.add("書籍名は50文字以内で入力してください。"); - if (f.getKnBook().length() > 100) e.add("書籍名よみは100文字以内で入力してください。"); - if (f.getPublisher().length() > 50) e.add("出版社は50文字以内で入力してください。"); - return e; - } + /** 入力チェック(ISBN必須13文字以内、書籍名必須50、よみ100、出版社50)。※ISBNを数字13桁に限定するかは要確認 */ + public List validate(BookForm f) { + f.trim(); + List e = new ArrayList<>(); + if (f.getIsbn().isEmpty()) + e.add("ISBNを入力してください。"); + else if (f.getIsbn().length() > 13) + e.add("ISBNは13文字以内で入力してください。"); + if (f.getNmBook().isEmpty()) + e.add("書籍名を入力してください。"); + else if (f.getNmBook().length() > 50) + e.add("書籍名は50文字以内で入力してください。"); + if (f.getKnBook().length() > 100) + e.add("書籍名よみは100文字以内で入力してください。"); + else if (!f.getKnBook().matches("^[\\u3040-\\u309F]+$")) + e.add("書籍名よみはひらがなで入力してください"); + if (f.getPublisher().length() > 50) + e.add("出版社は50文字以内で入力してください。"); + return e; + } - @Transactional(readOnly = true) - public BookCollection find(Integer idBook) { - return bookRepository.findById(idBook) - .orElseThrow(() -> new BusinessException("対象の書籍が見つかりません。")); - } + @Transactional(readOnly = true) + public BookCollection find(Integer idBook) { + return bookRepository.findById(idBook) + .orElseThrow(() -> new BusinessException("対象の書籍が見つかりません。")); + } - public BookForm toForm(BookCollection b) { - BookForm f = new BookForm(); - f.setIdBook(b.getIdBook()); - f.setIsbn(b.getIsbn()); - f.setNmBook(b.getNmBook()); - f.setKnBook(b.getKnBook() == null ? "" : b.getKnBook()); - f.setPublisher(b.getPublisher() == null ? "" : b.getPublisher()); - f.setNote(b.getNote() == null ? "" : b.getNote()); - return f; - } + public BookForm toForm(BookCollection b) { + BookForm f = new BookForm(); + f.setIdBook(b.getIdBook()); + f.setIsbn(b.getIsbn()); + f.setNmBook(b.getNmBook()); + f.setKnBook(b.getKnBook() == null ? "" : b.getKnBook()); + f.setPublisher(b.getPublisher() == null ? "" : b.getPublisher()); + f.setNote(b.getNote() == null ? "" : b.getNote()); + return f; + } - /** 新規登録:貸出可として登録する。 */ - @Transactional - public Integer register(BookForm f, LoginUser admin) { - check(f); - BookCollection b = new BookCollection(); - apply(b, f); - b.setFlgLending(Const.LENDING_OK); - b.setIdUpdate(admin.getIdEmployee()); - b.setDateUpdate(LocalDateTime.now()); - return bookRepository.save(b).getIdBook(); - } + /** 新規登録:貸出可として登録する。 */ + @Transactional + public Integer register(BookForm f, LoginUser admin) { + check(f); + BookCollection b = new BookCollection(); + apply(b, f); + b.setFlgLending(Const.LENDING_OK); + b.setIdUpdate(admin.getIdEmployee()); + b.setDateUpdate(LocalDateTime.now()); + return bookRepository.save(b).getIdBook(); + } - /** 編集:書籍情報のみ更新する(貸出フラグは変更しない)。 */ - @Transactional - public void update(BookForm f, LoginUser admin) { - check(f); - BookCollection b = find(f.getIdBook()); - apply(b, f); - b.setIdUpdate(admin.getIdEmployee()); - b.setDateUpdate(LocalDateTime.now()); - } + /** 編集:書籍情報のみ更新する(貸出フラグは変更しない)。 */ + @Transactional + public void update(BookForm f, LoginUser admin) { + check(f); + BookCollection b = find(f.getIdBook()); + apply(b, f); + b.setIdUpdate(admin.getIdEmployee()); + b.setDateUpdate(LocalDateTime.now()); + } - private void check(BookForm f) { - List errors = validate(f); - if (!errors.isEmpty()) throw new BusinessException(String.join(" ", errors)); - } + private void check(BookForm f) { + List errors = validate(f); + if (!errors.isEmpty()) + throw new BusinessException(String.join(" ", errors)); + } - - private static void apply(BookCollection b, BookForm f) { - b.setIsbn(f.getIsbn()); - b.setNmBook(f.getNmBook()); - b.setKnBook(f.getKnBook().isEmpty() ? null : f.getKnBook()); - b.setPublisher(f.getPublisher().isEmpty() ? null : f.getPublisher()); - b.setNote(f.getNote().isEmpty() ? null : f.getNote()); - } + private static void apply(BookCollection b, BookForm f) { + b.setIsbn(f.getIsbn()); + b.setNmBook(f.getNmBook()); + b.setKnBook(f.getKnBook().isEmpty() ? null : f.getKnBook()); + b.setPublisher(f.getPublisher().isEmpty() ? null : f.getPublisher()); + b.setNote(f.getNote().isEmpty() ? null : f.getNote()); + } } diff --git a/book-rent/src/main/java/com/example/demo/service/EmployeeService.java b/book-rent/src/main/java/com/example/demo/service/EmployeeService.java index c1f56af..ebf0a89 100644 --- a/book-rent/src/main/java/com/example/demo/service/EmployeeService.java +++ b/book-rent/src/main/java/com/example/demo/service/EmployeeService.java @@ -18,9 +18,6 @@ import com.example.demo.entity.Employee; import com.example.demo.form.EmployeeForm; import com.example.demo.repository.EmployeeRepository; - - - /** EMP-01:社員登録、EMP-02:社員編集 */ @Service public class EmployeeService { @@ -110,6 +107,8 @@ public class EmployeeService { 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 e) {