package com.eactive.testmaster.user.service; import static com.eactive.testmaster.user.service.UserService.USER_NOT_FOUND_MESSAGE; import com.eactive.testmaster.common.entity.EnabledStatus; import com.eactive.testmaster.common.exception.UserNotFoundException; import com.eactive.testmaster.user.entity.StaffUser; import com.eactive.testmaster.user.entity.UserStatus; import com.eactive.testmaster.user.repository.StaffUserRepository; import java.util.UUID; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class StaffUserService { @Autowired private StaffUserRepository staffUserRepository; public Page findAll(Specification spec, Pageable pageable) { return staffUserRepository.findAll(spec, pageable); } public StaffUser findById(String id) { return staffUserRepository.findById(id).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE)); } public void update(String esntlId, StaffUser user) { StaffUser original = staffUserRepository.findById(esntlId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE)); original.setUserId(user.getUserId()); original.setMobilePhone(user.getMobilePhone()); original.setStatus(user.getStatus()); original.setLockAt(user.getLockAt()); if (original.getLockAt().equals(EnabledStatus.N)) { original.setLockCnt(0); original.setLastLockDate(null); } original.setUserSecurity(user.getUserSecurity()); staffUserRepository.save(original); } public void deleteById(String esntlId) { StaffUser user = staffUserRepository.findById(esntlId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE)); user.setUserId(UserStatus.DELETED.toString()); user.setUsername(UserStatus.DELETED.toString()); user.setStatus(UserStatus.DELETED); user.setLockAt(EnabledStatus.Y); staffUserRepository.save(user); } public void create(StaffUser user) { user.setEsntlId(UUID.randomUUID().toString()); user.setStatus(UserStatus.ACTIVE); user.setLockAt(EnabledStatus.N); user.setLockCnt(0); staffUserRepository.save(user); } public void updatePassword(String id, String newPassword) { StaffUser user = staffUserRepository.findById(id).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE)); user.setUserSecurity(newPassword); user.setLockAt(EnabledStatus.N); user.setLockCnt(0); user.setLastLockDate(null); staffUserRepository.save(user); } }