| package org.eclipse.openk.contactbasedata.service; |
| |
| import lombok.extern.log4j.Log4j2; |
| import org.eclipse.openk.contactbasedata.constants.Constants; |
| import org.eclipse.openk.contactbasedata.exceptions.NotFoundException; |
| import org.eclipse.openk.contactbasedata.mapper.ContactMapper; |
| import org.eclipse.openk.contactbasedata.mapper.ExternalPersonMapper; |
| import org.eclipse.openk.contactbasedata.mapper.InternalPersonMapper; |
| import org.eclipse.openk.contactbasedata.model.RefPersonType; |
| import org.eclipse.openk.contactbasedata.model.RefSalutation; |
| import org.eclipse.openk.contactbasedata.model.TblContact; |
| import org.eclipse.openk.contactbasedata.model.TblExternalPerson; |
| import org.eclipse.openk.contactbasedata.repository.*; |
| import org.eclipse.openk.contactbasedata.viewmodel.ExternalPersonDto; |
| import org.eclipse.openk.contactbasedata.viewmodel.InternalPersonDto; |
| import org.springframework.beans.factory.annotation.Autowired; |
| import org.springframework.data.domain.Page; |
| import org.springframework.data.domain.Pageable; |
| import org.springframework.stereotype.Service; |
| import org.springframework.transaction.annotation.Transactional; |
| |
| import java.util.UUID; |
| |
| @Log4j2 |
| @Service |
| public class InternalPersonService { |
| @Autowired |
| private InternalPersonRepository internalPersonRepository; |
| |
| @Autowired |
| private ContactRepository contactRepository; |
| |
| @Autowired |
| private SalutationRepository salutationRepository; |
| |
| @Autowired |
| private PersonTypeRepository personTypeRepository; |
| |
| @Autowired |
| private InternalPersonMapper internalPersonMapper; |
| |
| @Autowired |
| private ContactMapper contactMapper; |
| |
| @Autowired |
| private BaseContactService baseContactService; |
| |
| public InternalPersonDto findInternalPerson(UUID contactUuid) { |
| return internalPersonMapper.toInternalPersonDto( |
| internalPersonRepository.findByTblContactUuid(contactUuid).orElseThrow(NotFoundException::new) |
| ); |
| } |
| |
| // public Page<ExternalPersonDto> findExternalPersons(Pageable pageable) { |
| // return externalPersonRepository.findAll(pageable).map(externalPersonMapper::toExternalPersonDto); |
| // } |
| |
| |
| // @Transactional |
| // public ExternalPersonDto insertExternalPerson(ExternalPersonDto externalPersonDto) { |
| // TblContact contactToSave = new TblContact(); |
| // contactToSave.setUuid(UUID.randomUUID()); |
| // contactToSave.setContactType(Constants.CONTACT_TYPE_EXTERNAL_PERSON); |
| // |
| // TblExternalPerson externalPersonToSave = externalPersonMapper.toTblExternalPerson(externalPersonDto); |
| // externalPersonToSave.setContact(contactToSave); |
| // contactRepository.save(externalPersonToSave.getContact()); |
| // |
| // setFromExternalPersonDto( externalPersonToSave, externalPersonDto ); |
| // // Save Contact first |
| // |
| // // Then save dependent Model-Object |
| // return externalPersonMapper.toExternalPersonDto(externalPersonRepository.save(externalPersonToSave)); |
| // } |
| // |
| // @Transactional |
| // public ExternalPersonDto updateExternalPerson(ExternalPersonDto externalPersonDto){ |
| // TblExternalPerson externalPersonUpdated; |
| // |
| // //Externe Person holen |
| // //TODO: Fehlermeldung mit message! |
| // TblExternalPerson existingExternalPerson = externalPersonRepository |
| // .findByTblContactUuid(externalPersonDto.getContactId()) |
| // .orElseThrow(() -> new NotFoundException("Der angegebene Kontakt existiert nicht")); |
| // |
| // existingExternalPerson.setLastName(externalPersonDto.getLastName()); |
| // existingExternalPerson.setFirstName(externalPersonDto.getFirstName()); |
| // existingExternalPerson.setTitle(externalPersonDto.getTitle()); |
| // |
| // setFromExternalPersonDto( existingExternalPerson, externalPersonDto ); |
| // externalPersonUpdated = externalPersonRepository.save(existingExternalPerson); |
| // |
| // return externalPersonMapper.toExternalPersonDto(externalPersonUpdated); |
| // } |
| // |
| // private void setFromExternalPersonDto( TblExternalPerson destTblExternalPerson, ExternalPersonDto sourceDto ) { |
| // RefSalutation salutationUpdated = salutationRepository |
| // .findByUuid(sourceDto.getSalutationId()) |
| // .orElseThrow(() -> new NotFoundException("Anrede wurde nicht gefunden")); |
| // // TODO: Nachricht auslagern |
| // RefPersonType personTypeUpdated = personTypeRepository |
| // .findByUuid(sourceDto.getPersonTypeId()) |
| // .orElseThrow(() -> new NotFoundException("Persontyp wurde nicht gefunden")); |
| // |
| // destTblExternalPerson.setSalutation(salutationUpdated); |
| // destTblExternalPerson.setRefPersonType(personTypeUpdated); |
| // |
| // destTblExternalPerson.getContact().setNote(sourceDto.getContactNote()); |
| // } |
| } |