[STYLE] serviceの無駄な改行やスペースなどの削除

This commit is contained in:
s-choi
2026-09-10 15:46:10 +09:00
parent 50caa2eef4
commit 8b44c7a7b6
12 changed files with 180 additions and 282 deletions

View File

@@ -4,7 +4,7 @@ import com.example.rhizome.app.domain.model.LoginInfo;
import com.example.rhizome.app.domain.model.LoginUser;
public interface Login {
LoginUser doLogin(LoginInfo loginInfo);
LoginUser doLogin(LoginInfo loginInfo);
boolean canLogin(LoginInfo loginInfo);
boolean canLogin(LoginInfo loginInfo);
}

View File

@@ -3,5 +3,5 @@ package com.example.rhizome.app.domain.service;
import com.example.rhizome.app.domain.model.Department;
public interface RegisterDepartment {
void registerDepartment(Department department);
void registerDepartment(Department department);
}

View File

@@ -3,5 +3,5 @@ package com.example.rhizome.app.domain.service;
import com.example.rhizome.app.domain.model.Employee;
public interface RegisterEmployee {
void registerEmployee(Employee employee);
void registerEmployee(Employee employee);
}

View File

@@ -1,12 +1,12 @@
package com.example.rhizome.app.domain.service;
import java.util.List;
import com.example.rhizome.app.domain.model.EmployeeInfo;
import com.example.rhizome.app.domain.model.SearchConditionEmployee;
import java.util.List;
public interface SearchEmployeeInfo {
List<EmployeeInfo> selectAll();
List<EmployeeInfo> selectAll();
List<EmployeeInfo> searchBy(SearchConditionEmployee searchConditionEmployee);
List<EmployeeInfo> searchBy(SearchConditionEmployee searchConditionEmployee);
}

View File

@@ -3,6 +3,6 @@ package com.example.rhizome.app.domain.service;
import com.example.rhizome.app.domain.model.Employee;
public interface UpdateEmployee {
void updateEmployee(Employee beforeEmployee, Employee updateEmployee);
void updateEmployee(Employee beforeEmployee, Employee updateEmployee);
}

View File

@@ -1,33 +1,25 @@
package com.example.rhizome.app.domain.service.impl;
import com.example.rhizome.app.domain.service.DeleteEmployee;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* Employee レコード削除関連の機能を持つサービス
*/
import com.example.rhizome.app.domain.service.DeleteEmployee;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
@Service
@Transactional
public class DeleteEmployeeImpl implements DeleteEmployee {
EmployeeRepository employeeRepository;
EmployeeRepository employeeRepository;
@Autowired
public DeleteEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Autowired
public DeleteEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
/**
* idEmployee を元に employee データを削除
*
* @param idEmployee 削除対象のidEmployee
*/
public void deleteEmployee(Integer idEmployee) {
employeeRepository.deleteById(idEmployee);
}
public void deleteEmployee(Integer idEmployee) {
employeeRepository.deleteById(idEmployee);
}
}

View File

@@ -1,55 +1,38 @@
package com.example.rhizome.app.domain.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.LoginInfo;
import com.example.rhizome.app.domain.model.LoginUser;
import com.example.rhizome.app.domain.service.Login;
import com.example.rhizome.app.infra.entity.EmployeeEntity;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* ログイン系の機能を集約させるサービスクラスです。
*/
@Service
@Transactional
public class LoginImpl implements Login {
EmployeeRepository employeeRepository;
EmployeeRepository employeeRepository;
@Autowired
public LoginImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Autowired
public LoginImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
public LoginUser doLogin(LoginInfo loginInfo) {
return employeeRepository
.findByMailAddressAndPassword(loginInfo.getMailAddress(), loginInfo.getPassword())
.orElse(new EmployeeEntity())
.createLoginUser();
/**
* メールアドレス、パスワードでログイン判定を行う
*
* @param loginInfo ログインを試みるアカウント
* @return loginUser のインスタンス
*/
public LoginUser doLogin(LoginInfo loginInfo) {
// ログイン情報を元にログインユーザーを取得
return employeeRepository
.findByMailAddressAndPassword(loginInfo.getMailAddress(), loginInfo.getPassword())
.orElse(new EmployeeEntity())
.createLoginUser();
}
}
public boolean canLogin(LoginInfo loginInfo) {
return employeeRepository
.findByMailAddressAndPassword(loginInfo.getMailAddress(), loginInfo.getPassword())
.isPresent();
/**
* メールアドレス、パスワードでログイン判定を行う
*
* @param loginInfo ログインを試みるアカウント
* @return loginUser のインスタンス
*/
public boolean canLogin(LoginInfo loginInfo) {
// ログイン情報を元にログインユーザーを取得
return employeeRepository
.findByMailAddressAndPassword(loginInfo.getMailAddress(), loginInfo.getPassword())
.isPresent();
}
}
}

View File

@@ -1,34 +1,26 @@
package com.example.rhizome.app.domain.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.Employee;
import com.example.rhizome.app.domain.service.RegisterEmployee;
import com.example.rhizome.app.infra.entity.EmployeeEntity;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* Employee テーブルの登録系の機能を集約させるサービスクラスです。
*/
@Service
@Transactional
public class RegisterEmployeeImpl implements RegisterEmployee {
EmployeeRepository employeeRepository;
EmployeeRepository employeeRepository;
@Autowired
public RegisterEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Autowired
public RegisterEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
/**
* employee インスタンスの内容を登録する
*
* @param employee 登録対象のデータ
*/
public void registerEmployee(Employee employee) {
employeeRepository.save(EmployeeEntity.convertFrom(employee));
}
public void registerEmployee(Employee employee) {
employeeRepository.save(EmployeeEntity.convertFrom(employee));
}
}

View File

@@ -1,82 +1,75 @@
package com.example.rhizome.app.domain.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.Department;
import com.example.rhizome.app.domain.model.SearchConditionDepartment;
import com.example.rhizome.app.domain.service.SearchDepartment;
import com.example.rhizome.app.infra.entity.DepartmentEntity;
import com.example.rhizome.app.infra.repository.DepartmentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 部署情報検索系の機能を集約させるサービスクラスです。
*/
@Service
@Transactional
public class SearchDepartmentImpl implements SearchDepartment {
DepartmentRepository departmentRepository;
DepartmentRepository departmentRepository;
/**
* コンストラクタ
*
* @param departmentRepository DI対象
*/
@Autowired
public SearchDepartmentImpl(DepartmentRepository departmentRepository) {
this.departmentRepository = departmentRepository;
}
@Autowired
public SearchDepartmentImpl(DepartmentRepository departmentRepository) {
this.departmentRepository = departmentRepository;
}
/**
* 部署情報を全件取得する
*
* @return 取得した部署情報レコード全件
*/
public List<Department> selectAll() {
return DepartmentEntity.createDepartmentList(departmentRepository.findAll());
}
public List<Department> selectAll() {
return DepartmentEntity.createDepartmentList(departmentRepository.findAll());
}
/**
* searchConditionDepartment の情報を元に Department のレコードを取得
*
* @param searchConditionDepartment 検索条件
* @return 検索結果のレコード
*/
public List<Department> searchBy(SearchConditionDepartment searchConditionDepartment) {
// 動的に検索条件を絞り込む
// Specification は Criteria API の Predicate をラップしたもの
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository.idDepartmentEqual(searchConditionDepartment.getIdDepartment()))
.and(DepartmentRepository.nmDepartmentEqual(searchConditionDepartment.getNmDepartment()))
)
);
public List<Department> searchBy(SearchConditionDepartment searchConditionDepartment) {
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository
.idDepartmentEqual(searchConditionDepartment.getIdDepartment()))
.and(DepartmentRepository
.nmDepartmentEqual(searchConditionDepartment.getNmDepartment()))));
}
}
/**
* searchConditionDepartment の情報を元に Department のレコードを取得
* 部分一致検索
*
* @param searchConditionDepartment 検索条件
* @return 検索結果のレコード
*/
public List<Department> searchByWithLike(SearchConditionDepartment searchConditionDepartment) {
// 動的に検索条件を絞り込む
// Specification は Criteria API の Predicate をラップしたもの
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository.idDepartmentEqual(searchConditionDepartment.getIdDepartment()))
.and(DepartmentRepository.nmDepartmentLike(searchConditionDepartment.getNmDepartment()))
)
);
public List<Department> searchByWithLike(SearchConditionDepartment searchConditionDepartment) {
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository
.idDepartmentEqual(searchConditionDepartment.getIdDepartment()))
.and(DepartmentRepository
.nmDepartmentLike(searchConditionDepartment.getNmDepartment()))));
}
@Override
public List<Department> searchByDepartmentName(SearchConditionDepartment searchConditionDepartment) {
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository
.nmDepartmentEqual(searchConditionDepartment.getNmDepartment()))));
}
@Override
public List<Department> searchByDepartmentId(SearchConditionDepartment searchConditionDepartment) {
return DepartmentEntity
.createDepartmentList(
departmentRepository.findAll(Specification
.where(DepartmentRepository
.idDepartmentEqual(searchConditionDepartment.getIdDepartment()))));
}
}
}

View File

@@ -1,70 +1,43 @@
package com.example.rhizome.app.domain.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.Employee;
import com.example.rhizome.app.domain.model.LoginUser;
import com.example.rhizome.app.domain.service.SearchEmployee;
import com.example.rhizome.app.infra.entity.EmployeeEntity;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Employee テーブル検索系の機能を集約させるサービスクラスです。
*/
@Service
@Transactional
public class SearchEmployeeImpl implements SearchEmployee {
EmployeeRepository employeeRepository;
EmployeeRepository employeeRepository;
@Autowired
public SearchEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Autowired
public SearchEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
public List<Employee> searchEmployee(String mailAddress) {
return EmployeeEntity.createEmployeeList(employeeRepository.findByMailAddress(mailAddress).stream().toList());
}
/**
* mailAddress を元に Employee Table を検索します。
*
* @param mailAddress 検索対象の mailAddress
* @return Table から取得したレコードの情報
*/
public List<Employee> searchEmployee(String mailAddress) {
return EmployeeEntity.createEmployeeList(employeeRepository.findByMailAddress(mailAddress).stream().toList());
}
public LoginUser searchLoginUser(String mailAddress) {
return employeeRepository.findByMailAddress(mailAddress).orElse(new EmployeeEntity()).createLoginUser();
}
/**
* mailAddress を元に ログイン者の情報 を検索します。
*
* @param mailAddress 検索対象の mailAddress
* @return login者の情報
*/
public LoginUser searchLoginUser(String mailAddress) {
return employeeRepository.findByMailAddress(mailAddress).orElse(new EmployeeEntity()).createLoginUser();
}
public Employee searchEmployeeByIdEmployee(Integer idEmployee) {
return EmployeeEntity
.createEmployee(employeeRepository.findByIdEmployee(idEmployee).orElse(new EmployeeEntity()));
}
/**
* idEmployee を元に Employee Table を検索します。
*
* @param idEmployee 検索対象の idEmployee
* @return Table から取得したレコードの情報
*/
public Employee searchEmployeeByIdEmployee(Integer idEmployee) {
return EmployeeEntity.createEmployee(employeeRepository.findByIdEmployee(idEmployee).orElse(new EmployeeEntity()));
}
/**
* idDepartment を元に Employee Table を検索します。
*
* @param idDepartment 部署ID
* @return Table から取得したレコードの情報
*/
@Override
public List<Employee> searchEmployeeByIdDepartment(Integer idDepartment) {
return EmployeeEntity.createEmployeeList(employeeRepository.findByIdDepartment(idDepartment));
}
@Override
public List<Employee> searchEmployeeByIdDepartment(Integer idDepartment) {
return EmployeeEntity.createEmployeeList(employeeRepository.findByIdDepartment(idDepartment));
}
}

View File

@@ -1,62 +1,45 @@
package com.example.rhizome.app.domain.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.EmployeeInfo;
import com.example.rhizome.app.domain.model.SearchConditionEmployee;
import com.example.rhizome.app.domain.service.SearchEmployeeInfo;
import com.example.rhizome.app.infra.entity.EmployeeDepartmentEntity;
import com.example.rhizome.app.infra.repository.EmployeeInfoRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* SearchEmployeeInfoImpl (employee join department) 検索系の機能を集約させるサービスクラスです
*/
@Service
@Transactional
public class SearchEmployeeInfoImpl implements SearchEmployeeInfo {
EmployeeInfoRepository employeeInfoRepository;
EmployeeInfoRepository employeeInfoRepository;
@Autowired
public SearchEmployeeInfoImpl(EmployeeInfoRepository employeeInfoRepository) {
this.employeeInfoRepository = employeeInfoRepository;
}
@Autowired
public SearchEmployeeInfoImpl(EmployeeInfoRepository employeeInfoRepository) {
this.employeeInfoRepository = employeeInfoRepository;
}
public List<EmployeeInfo> selectAll() {
/**
* EmployeeInfo (employee join department) のレコードを全件取得
*
* @return 取得したレコード全件
*/
public List<EmployeeInfo> selectAll() {
return EmployeeDepartmentEntity.createEmployeeInfoList(employeeInfoRepository.findAll());
return EmployeeDepartmentEntity.createEmployeeInfoList(employeeInfoRepository.findAll());
}
}
public List<EmployeeInfo> searchBy(SearchConditionEmployee searchConditionEmployee) {
return EmployeeDepartmentEntity
.createEmployeeInfoList(
employeeInfoRepository.findAll(Specification
.where(EmployeeInfoRepository.idEmployeeEqual(searchConditionEmployee.getIdEmployee()))
.and(EmployeeInfoRepository.nmEmployeeEqual(searchConditionEmployee.getNmEmployee()))
.and(EmployeeInfoRepository.knEmployeeEqual(searchConditionEmployee.getKnEmployee()))
.and(EmployeeInfoRepository.mailAddressEqual(searchConditionEmployee.getMailAddress()))
.and(EmployeeInfoRepository
.idDepartmentEqual(searchConditionEmployee.getIdDepartment()))));
/**
* SearchConditionEmployee の情報を元に EmployeeInfo (employee join department) のレコードを取得
*
* @param searchConditionEmployee 検索条件
* @return 検索結果のレコードリスト
*/
public List<EmployeeInfo> searchBy(SearchConditionEmployee searchConditionEmployee) {
// 動的に検索条件を絞り込む
// Specification は Criteria API の Predicate をラップしたもの
return EmployeeDepartmentEntity
.createEmployeeInfoList(
employeeInfoRepository.findAll(Specification
.where(EmployeeInfoRepository.idEmployeeEqual(searchConditionEmployee.getIdEmployee()))
.and(EmployeeInfoRepository.nmEmployeeEqual(searchConditionEmployee.getNmEmployee()))
.and(EmployeeInfoRepository.knEmployeeEqual(searchConditionEmployee.getKnEmployee()))
.and(EmployeeInfoRepository.mailAddressEqual(searchConditionEmployee.getMailAddress()))
.and(EmployeeInfoRepository.idDepartmentEqual(searchConditionEmployee.getIdDepartment()))
)
);
}
}
}

View File

@@ -1,60 +1,42 @@
package com.example.rhizome.app.domain.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.example.rhizome.app.domain.model.Employee;
import com.example.rhizome.app.domain.service.UpdateEmployee;
import com.example.rhizome.app.infra.entity.EmployeeEntity;
import com.example.rhizome.app.infra.repository.EmployeeRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* employee の更新系の機能を集約させるサービスクラスです。
*/
@Service
@Transactional
public class UpdateEmployeeImpl implements UpdateEmployee {
EmployeeRepository employeeRepository;
EmployeeRepository employeeRepository;
@Autowired
public UpdateEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
@Autowired
public UpdateEmployeeImpl(EmployeeRepository employeeRepository) {
this.employeeRepository = employeeRepository;
}
/**
* employee の情報を元に employee table のレコードを更新する
*
* @param beforeEmployee 更新前のデータ
* @param updateEmployee 更新後のデータ
*/
public void updateEmployee(Employee beforeEmployee, Employee updateEmployee) {
public void updateEmployee(Employee beforeEmployee, Employee updateEmployee) {
employeeRepository.save(EmployeeEntity.convertFrom(mergeEmployee(beforeEmployee, updateEmployee)));
employeeRepository.save(EmployeeEntity.convertFrom(mergeEmployee(beforeEmployee, updateEmployee)));
}
}
/**
* 更新前のデータと更新対象のデータをマージする
*
* @param beforeEmployee 更新前のデータ
* @param updateEmployee 更新対象のデータ
* @return マージしたデータ
*/
private Employee mergeEmployee(Employee beforeEmployee, Employee updateEmployee) {
// 更新対象のデータのパスワードが空文字の場合は、更新前のパスワードを使用する
// 更新対象のデータの管理者権限が null の場合は、更新前の管理者権限を使用する
// 更新対象のデータの部署IDが null の場合は、更新前の部署IDを使用する
return new Employee(
updateEmployee.getIdEmployee(),
updateEmployee.getNmEmployee(),
updateEmployee.getKnEmployee(),
updateEmployee.getMailAddress(),
updateEmployee.getPassword().isBlank() ? beforeEmployee.getPassword() : updateEmployee.getPassword(),
updateEmployee.getAdminAuth() == null ? beforeEmployee.getAdminAuth() : updateEmployee.getAdminAuth(),
updateEmployee.getIdDepartment() == null ? beforeEmployee.getIdDepartment() : updateEmployee.getIdDepartment()
);
private Employee mergeEmployee(Employee beforeEmployee, Employee updateEmployee) {
return new Employee(
updateEmployee.getIdEmployee(),
updateEmployee.getNmEmployee(),
updateEmployee.getKnEmployee(),
updateEmployee.getMailAddress(),
updateEmployee.getPassword().isBlank() ? beforeEmployee.getPassword() : updateEmployee.getPassword(),
updateEmployee.getAdminAuth() == null ? beforeEmployee.getAdminAuth() : updateEmployee.getAdminAuth(),
updateEmployee.getIdDepartment() == null ? beforeEmployee.getIdDepartment()
: updateEmployee.getIdDepartment());
}
}
}