From fb89f2f58fa36b61970af65b93c292720417e753 Mon Sep 17 00:00:00 2001 From: wayne <wayne8692wayne8692@gmail.com> Date: 星期四, 03 三月 2022 15:11:08 +0800 Subject: [PATCH] [update] 將後端大部分程式拉近PamBusiness中,已便共用 --- pamapi/src/main/java/com/pollex/pam/config/DatabaseConfiguration.java | 6 pamapi/src/main/java/com/pollex/pam/config/WebsocketSecurityConfiguration.java | 2 pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentMemoResource.java | 21 - pamapi/src/test/java/com/pollex/pam/web/rest/PublicUserResourceIT.java | 6 pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java | 24 +- pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java | 2 pamapi/src/main/java/com/pollex/pam/service/OtpUtilService.java | 12 pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantLoginValidateResource.java | 8 pamapi/src/main/java/com/pollex/pam/web/rest/TestLoginResource.java | 4 pamapi/src/main/java/com/pollex/pam/aop/logging/LoggingAspect.java | 2 pamapi/src/main/java/com/pollex/pam/service/CustomerService.java | 22 + pamapi/src/main/java/com/pollex/pam/web/rest/InterviewRecordResource.java | 11 pamapi/src/main/java/com/pollex/pam/web/rest/OtpResource.java | 20 pamapi/src/main/java/com/pollex/pam/security/SpringSecurityAuditorAware.java | 4 pamapi/src/main/java/com/pollex/pam/config/ApplicationProperties.java | 123 +---------- pamapi/pom.xml | 5 pamapi/src/main/java/com/pollex/pam/service/CustomerAuthService.java | 8 pamapi/src/test/java/com/pollex/pam/web/rest/AccountResourceIT.java | 21 - pamapi/src/main/java/com/pollex/pam/web/rest/UserJWTController.java | 2 pamapi/src/main/java/com/pollex/pam/config/WebsocketConfiguration.java | 2 pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantResource.java | 25 - pamapi/src/main/java/com/pollex/pam/web/rest/TestSendMsgResource.java | 7 pamapi/src/test/java/com/pollex/pam/web/rest/UserJWTControllerIT.java | 6 pamapi/src/test/java/com/pollex/pam/web/rest/UserResourceIT.java | 14 pamapi/src/main/java/com/pollex/pam/security/DomainUserDetailsService.java | 4 pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java | 33 +- pamapi/src/main/java/com/pollex/pam/web/rest/EServiceResource.java | 9 pamapi/src/test/java/com/pollex/pam/config/NoOpMailConfiguration.java | 2 pamapi/src/main/java/com/pollex/pam/web/rest/errors/ExceptionTranslator.java | 9 /dev/null | 66 ------ pamapi/src/main/java/com/pollex/pam/config/SecurityConfiguration.java | 2 pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java | 27 +- pamapi/src/main/java/com/pollex/pam/config/CacheConfiguration.java | 10 pamapi/src/test/java/com/pollex/pam/ArchTest.java | 4 pamapi/src/main/java/com/pollex/pam/web/rest/UserResource.java | 20 pamapi/src/main/java/com/pollex/pam/web/rest/CustomerInfoResource.java | 6 pamapi/src/main/java/com/pollex/pam/web/rest/NoticeResource.java | 17 pamapi/src/main/java/com/pollex/pam/security/provider/CustomAuthenticationProvider.java | 3 pamapi/src/main/java/com/pollex/pam/security/token/OtpAuthenticationToken.java | 5 pamapi/src/main/java/com/pollex/pam/web/rest/SatisfactionResource.java | 16 pamapi/src/main/java/com/pollex/pam/security/provider/OtpAuthenticationProvider.java | 12 pamapi/src/main/java/com/pollex/pam/web/rest/PublicUserResource.java | 4 42 files changed, 210 insertions(+), 396 deletions(-) diff --git a/pamapi/pom.xml b/pamapi/pom.xml index bda6083..500eb4e 100644 --- a/pamapi/pom.xml +++ b/pamapi/pom.xml @@ -101,6 +101,11 @@ <dependencies> <dependency> + <groupId>com.pollex.pam.business</groupId> + <artifactId>PamBusiness</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> <groupId>tech.jhipster</groupId> <artifactId>jhipster-framework</artifactId> </dependency> diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/LoggingAspect.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/LoggingAspect.java index 19b207e..50e5c0e 100644 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/LoggingAspect.java +++ b/pamapi/src/main/java/com/pollex/pam/aop/logging/LoggingAspect.java @@ -42,7 +42,7 @@ /** * Pointcut that matches all Spring beans in the application's main packages. */ - @Pointcut("within(com.pollex.pam.repository..*)" + " || within(com.pollex.pam.service..*)" + " || within(com.pollex.pam.web.rest..*)") + @Pointcut("within(com.pollex.pam.business.repository..*)" + " || within(com.pollex.pam.business.service..*)" + " || within(com.pollex.pam.web.rest..*)") public void applicationPackagePointcut() { // Method is empty as this is just a Pointcut, the implementations are in the advices. } diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingAspect.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingAspect.java deleted file mode 100644 index 55c2b62..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingAspect.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.pollex.pam.aop.logging.audit; - -import com.pollex.pam.aop.logging.audit.strategy.AuditLoggingFactory; -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.lang.reflect.Method; - -@Component -@Aspect -public class AuditLoggingAspect { - - private static final Logger log = LoggerFactory.getLogger(AuditLoggingAspect.class); - - @Autowired - AuditLoggingFactory auditLoggingFactory; - - @Around("@annotation(com.pollex.pam.aop.logging.audit.AuditLoggingInject)") - public Object around(ProceedingJoinPoint joinPoint) throws Throwable { - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); - Method method = signature.getMethod(); - AuditLoggingInject auditLoggingInject = method.getAnnotation(AuditLoggingInject.class); - - log.info("run audit logging strategy = {}", auditLoggingInject.type()); - auditLoggingFactory.getAuditLoggingStrategy(auditLoggingInject.type()).auditLogging(joinPoint); - - return joinPoint.proceed(); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingInject.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingInject.java deleted file mode 100644 index 3f27ded..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingInject.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.aop.logging.audit; - - -import java.lang.annotation.*; - -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.RUNTIME) -@Documented -public @interface AuditLoggingInject { - AuditLoggingType type(); -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingType.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingType.java deleted file mode 100644 index 59f795c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/AuditLoggingType.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.pollex.pam.aop.logging.audit; - -public enum AuditLoggingType { - CUSTOMER_LOGIN, - EDIT_CUSTOMER_DATA, - CUSTOMER_CREATE_APPOINTMENT, - CUSTOMER_CANCEL_APPOINTMENT, - CUSTOMER_EDIT_APPOINTMENT, - - CHECK_APPOINTMENT, - CUSTOMER_FILL_SATISFACTION, - - CONSULTANT_LOGIN, - EDIT_CONSULTANT_DATA, - CONSULTANT_READ_APPOINTMENT, - CONSULTANT_CREATE_INTERVIEW, - CONSULTANT_SEND_INTERVIEW_NOTICE, - - APPOINTMENT_CLOSE, - EDIT_CLOSED_APPOINTMENT, - CONSULTANT_SEND_FILL_SATISFACTION_NOTICE, - - DO_NOTHING -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingFactory.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingFactory.java deleted file mode 100644 index 87d1513..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import java.util.List; - -@Component -public class AuditLoggingFactory { - - @Autowired - List<AuditLoggingStrategy> strategies; - - @Autowired - DoNothingStrategy doNothingStrategy; - - public AuditLoggingStrategy getAuditLoggingStrategy(AuditLoggingType type) { - for(AuditLoggingStrategy strategy : strategies) { - if(strategy.getType() == type) { - return strategy; - } - } - - return doNothingStrategy; - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingStrategy.java deleted file mode 100644 index b500621..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/AuditLoggingStrategy.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.stereotype.Component; - -@Component -public interface AuditLoggingStrategy { - AuditLoggingType getType(); - void auditLogging(ProceedingJoinPoint joinPoint); -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/ConsultantReadAppointmentStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/ConsultantReadAppointmentStrategy.java deleted file mode 100644 index d770121..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/ConsultantReadAppointmentStrategy.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.AppointmentService; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_READ_APPOINTMENT; - -@Component -@Transactional -public class ConsultantReadAppointmentStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Autowired - AppointmentService appointmentService; - - @Override - public AuditLoggingType getType() { - return CONSULTANT_READ_APPOINTMENT; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - Long appointmentId = (Long) joinPoint.getArgs()[0]; - Appointment appointment = appointmentService.findById(appointmentId); - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(appointment)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getAgentNo()); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/DoNothingStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/DoNothingStrategy.java deleted file mode 100644 index 4f602cc..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/DoNothingStrategy.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import org.aspectj.lang.ProceedingJoinPoint; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Component; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.DO_NOTHING; - -@Component -public class DoNothingStrategy implements AuditLoggingStrategy{ - - private static final Logger log = LoggerFactory.getLogger(DoNothingStrategy.class); - - @Override - public AuditLoggingType getType() { - return DO_NOTHING; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - log.info("audit logging do nothing...."); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingAppointmentCloseStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingAppointmentCloseStrategy.java deleted file mode 100644 index 9b7fc45..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingAppointmentCloseStrategy.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentCloseDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.APPOINTMENT_CLOSE; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.EDIT_CLOSED_APPOINTMENT; - -@Component -@Transactional -public class LoggingAppointmentCloseStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - @Override - public AuditLoggingType getType() { - return APPOINTMENT_CLOSE; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - AppointmentCloseDTO dto = (AppointmentCloseDTO) joinPoint.getArgs()[0]; - Long appointmentId = dto.getAppointmentId(); - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - boolean isAppointmentClosedInfoExist = appointmentClosedInfoRepository.findByAppointmentId(appointmentId).isPresent(); - if(isAppointmentClosedInfoExist) { - auditLogging.setFunctionalType(EDIT_CLOSED_APPOINTMENT); - } - else { - auditLogging.setFunctionalType(APPOINTMENT_CLOSE); - } - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCancelAppointmentStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCancelAppointmentStrategy.java deleted file mode 100644 index ffcd39e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCancelAppointmentStrategy.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentDTO; -import com.pollex.pam.service.mapper.AppointmentMapper; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CUSTOMER_CANCEL_APPOINTMENT; - -@Component -@Transactional -public class LoggingCancelAppointmentStrategy implements AuditLoggingStrategy { - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Autowired - AppointmentRepository appointmentRepository; - - @Autowired - AppointmentMapper appointmentMapper; - - @Override - public AuditLoggingType getType() { - return CUSTOMER_CANCEL_APPOINTMENT; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - Long appointmentId = (Long) joinPoint.getArgs()[0]; - - appointmentRepository.findById(appointmentId).ifPresent(appointment -> { - AppointmentDTO dto = appointmentMapper.toAppointmentDTO(appointment); - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - }); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCheckAppointmentStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCheckAppointmentStrategy.java deleted file mode 100644 index 240a6fc..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCheckAppointmentStrategy.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentDTO; -import com.pollex.pam.service.mapper.AppointmentMapper; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CHECK_APPOINTMENT; - -@Component -@Transactional -public class LoggingCheckAppointmentStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Autowired - AppointmentRepository appointmentRepository; - - @Autowired - AppointmentMapper appointmentMapper; - - @Override - public AuditLoggingType getType() { - return CHECK_APPOINTMENT; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - Long appointmentId = (Long) joinPoint.getArgs()[0]; - - appointmentRepository.findById(appointmentId).ifPresent(appointment -> { - AppointmentDTO dto = appointmentMapper.toAppointmentDTO(appointment); - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - }); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingConsultantLoginStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingConsultantLoginStrategy.java deleted file mode 100644 index 41373a7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingConsultantLoginStrategy.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.service.ConsultantService; -import com.pollex.pam.web.rest.vm.EServiceLoginVM; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_LOGIN; - -@Component -@Transactional -public class LoggingConsultantLoginStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Autowired - ConsultantRepository consultantRepository; - - @Autowired - ConsultantService consultantService; - - @Override - public AuditLoggingType getType() { - return CONSULTANT_LOGIN; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - EServiceLoginVM loginVM = (EServiceLoginVM)joinPoint.getArgs()[0]; - consultantRepository.findOneByAgentNo(loginVM.getUsername()).ifPresent(consultant -> { - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(consultant)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(loginVM.getUsername()); - - auditLoggingRepository.save(auditLogging); - }); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateAppointmentStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateAppointmentStrategy.java deleted file mode 100644 index 56402ec..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateAppointmentStrategy.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentCreateDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -@Component -@Transactional -public class LoggingCreateAppointmentStrategy implements AuditLoggingStrategy { - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return AuditLoggingType.CUSTOMER_CREATE_APPOINTMENT; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - AppointmentCreateDTO dto = (AppointmentCreateDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateInterviewStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateInterviewStrategy.java deleted file mode 100644 index 2cf3c11..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCreateInterviewStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.InterviewRecordDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_CREATE_INTERVIEW; - -@Component -@Transactional -public class LoggingCreateInterviewStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return CONSULTANT_CREATE_INTERVIEW; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - InterviewRecordDTO dto = (InterviewRecordDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCustomerLoginStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCustomerLoginStrategy.java deleted file mode 100644 index 24d5b6f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingCustomerLoginStrategy.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.web.rest.vm.VerifyOtpVM; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CUSTOMER_LOGIN; - -@Component -@Transactional -public class LoggingCustomerLoginStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return CUSTOMER_LOGIN; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - VerifyOtpVM verifyOtpVM = (VerifyOtpVM) joinPoint.getArgs()[0]; - - AuditLogging logging = new AuditLogging(); - logging.setContent(new Gson().toJson(verifyOtpVM)); - logging.setFunctionalType(getType()); - logging.setCreatedBy(verifyOtpVM.getAccount()); - - auditLoggingRepository.save(logging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditAppointmentStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditAppointmentStrategy.java deleted file mode 100644 index d86aab7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditAppointmentStrategy.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentUpdateDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -@Component -@Transactional -public class LoggingEditAppointmentStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return AuditLoggingType.CUSTOMER_EDIT_APPOINTMENT; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - AppointmentUpdateDTO dto = (AppointmentUpdateDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditConsultantStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditConsultantStrategy.java deleted file mode 100644 index 45c4677..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditConsultantStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.GsonBuilder; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.ConsultantEditDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.EDIT_CONSULTANT_DATA; - -@Component -@Transactional -public class LoggingEditConsultantStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return EDIT_CONSULTANT_DATA; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - ConsultantEditDTO dto = (ConsultantEditDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new GsonBuilder().excludeFieldsWithModifiers().create().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditCustomerStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditCustomerStrategy.java deleted file mode 100644 index a41dcce..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingEditCustomerStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.CustomerDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.EDIT_CUSTOMER_DATA; - -@Component -@Transactional -public class LoggingEditCustomerStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return EDIT_CUSTOMER_DATA; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - CustomerDTO dto = (CustomerDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingFillSatisfactionStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingFillSatisfactionStrategy.java deleted file mode 100644 index 4c179f9..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingFillSatisfactionStrategy.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.SatisfactionCustomerScoreDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import java.util.List; -import java.util.stream.Collectors; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CUSTOMER_FILL_SATISFACTION; - -@Component -@Transactional -public class LoggingFillSatisfactionStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return CUSTOMER_FILL_SATISFACTION; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - Object arg = joinPoint.getArgs()[0]; - - if(arg instanceof List) { - List<SatisfactionCustomerScoreDTO> dtos = (List<SatisfactionCustomerScoreDTO>) arg; - List<AuditLogging> loggings = dtos.stream().map(dto -> { - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - return auditLogging; - }).collect(Collectors.toList()); - - auditLoggingRepository.saveAll(loggings); - } - else { - SatisfactionCustomerScoreDTO dto = (SatisfactionCustomerScoreDTO) arg; - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendFillSatisfactionNoticeStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendFillSatisfactionNoticeStrategy.java deleted file mode 100644 index 2b3de65..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendFillSatisfactionNoticeStrategy.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_FILL_SATISFACTION_NOTICE; - -@Component -@Transactional -public class LoggingSendFillSatisfactionNoticeStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return CONSULTANT_SEND_FILL_SATISFACTION_NOTICE; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendInterviewNoticeStrategy.java b/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendInterviewNoticeStrategy.java deleted file mode 100644 index 2de3fa5..0000000 --- a/pamapi/src/main/java/com/pollex/pam/aop/logging/audit/strategy/LoggingSendInterviewNoticeStrategy.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pollex.pam.aop.logging.audit.strategy; - -import com.google.gson.Gson; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.AuditLogging; -import com.pollex.pam.repository.AuditLoggingRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; -import org.aspectj.lang.ProceedingJoinPoint; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; - -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_INTERVIEW_NOTICE; - -@Component -@Transactional -public class LoggingSendInterviewNoticeStrategy implements AuditLoggingStrategy{ - - @Autowired - AuditLoggingRepository auditLoggingRepository; - - @Override - public AuditLoggingType getType() { - return CONSULTANT_SEND_INTERVIEW_NOTICE; - } - - @Override - public void auditLogging(ProceedingJoinPoint joinPoint) { - AppointmentNoticeSendDTO dto = (AppointmentNoticeSendDTO) joinPoint.getArgs()[0]; - - AuditLogging auditLogging = new AuditLogging(); - auditLogging.setContent(new Gson().toJson(dto)); - auditLogging.setFunctionalType(getType()); - auditLogging.setCreatedBy(SecurityUtils.getCurrentUserLogin().orElse(null)); - - auditLoggingRepository.save(auditLogging); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java deleted file mode 100644 index 846287c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcess.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.pollex.pam.appointment.process; - -import java.time.Instant; -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.service.AppointmentClosedInfoService; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; -import com.pollex.pam.service.dto.DoneProcessDTO; - -@Service -public class AppointmentProcess{ - - @Autowired - List<AppointmentProcessInterface> processList; - - @Autowired - AppointmentService appointmentService; - - @Autowired - AppointmentRepository appointmentRepository; - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - public void process(AbstractAppointmentProcessDTO dto) { - - processList.stream().forEach(process ->{ - if(process.getProcessType() == dto.getContactStatus()) { - Optional<AppointmentClosedInfo> closedInfoOP = appointmentClosedInfoRepository.findByAppointmentId(dto.getAppointmentId()); - if(closedInfoOP.isPresent()) { - process.editClosedInfo(dto, closedInfoOP.get()); - }else { - process.create(dto); - } - } - }); - - changeAppointmentCommunicateStatus(dto.getAppointmentId(), dto.getContactStatus()); - } - - private void changeAppointmentCommunicateStatus(Long appointmentId, ContactStatusEnum contactStatus) { - Appointment appointment = appointmentService.findById(appointmentId); - appointment.setCommunicateStatus(contactStatus); - appointmentRepository.save(appointment); - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java deleted file mode 100644 index ee63d5a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/AppointmentProcessInterface.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.pollex.pam.appointment.process; - -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; - -public interface AppointmentProcessInterface { - - AppointmentClosedInfo create(AbstractAppointmentProcessDTO dto); - AppointmentClosedInfo editClosedInfo(AbstractAppointmentProcessDTO dto - , AppointmentClosedInfo closedInfo); - ContactStatusEnum getProcessType(); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java deleted file mode 100644 index 69dbd24..0000000 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/ClosedProcess.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.pollex.pam.appointment.process; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.service.AppointmentClosedInfoService; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.SatisfactionService; -import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; -import com.pollex.pam.service.dto.ClosedProcessDTO; - -@Service -@Transactional -public class ClosedProcess implements AppointmentProcessInterface{ - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - @Autowired - AppointmentService appointmentService; - - @Autowired - AppointmentClosedInfoService appointmentClosedInfoService; - - @Autowired - SatisfactionService satisfactionService; - - @Override - public AppointmentClosedInfo create(AbstractAppointmentProcessDTO processDTO) { - ClosedProcessDTO closeProcess = toClosedProcessDTO(processDTO); - AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); - BeanUtils.copyProperties(closeProcess, closedInfo); - Appointment appointment = appointmentService.findById(processDTO.getAppointmentId()); - satisfactionService.createAppointmentSatisfaction(appointment); - return appointmentClosedInfoRepository.save(closedInfo); - } - - private ClosedProcessDTO toClosedProcessDTO(AbstractAppointmentProcessDTO processDTO) { - ClosedProcessDTO closeProcess = (ClosedProcessDTO)processDTO; - BeanUtils.copyProperties(processDTO, closeProcess); - return closeProcess; - } - - @Override - public ContactStatusEnum getProcessType() { - return ContactStatusEnum.CLOSED; - } - - @Override - public AppointmentClosedInfo editClosedInfo( - AbstractAppointmentProcessDTO abstractDTO - , AppointmentClosedInfo closedInfo) { - ClosedProcessDTO closeProcess = toClosedProcessDTO(abstractDTO); - BeanUtils.copyProperties(closeProcess, closedInfo); - return appointmentClosedInfoRepository.save(closedInfo); - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java b/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java deleted file mode 100644 index f42257e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/appointment/process/DoneProcess.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.pollex.pam.appointment.process; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.service.AppointmentClosedInfoService; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.SatisfactionService; -import com.pollex.pam.service.dto.AbstractAppointmentProcessDTO; -import com.pollex.pam.service.dto.DoneProcessDTO; - -@Service -@Transactional -public class DoneProcess implements AppointmentProcessInterface{ - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - @Autowired - AppointmentClosedInfoService appointmentClosedInfoService; - - @Autowired - SatisfactionService satisfactionService; - - @Autowired - AppointmentService appointmentService; - - @Override - public AppointmentClosedInfo create(AbstractAppointmentProcessDTO processDTO) { - DoneProcessDTO doneProcess = toDoneProcessDTO(processDTO); - AppointmentClosedInfo closedInfo = new AppointmentClosedInfo(); - BeanUtils.copyProperties(doneProcess, closedInfo); - Appointment appointment = appointmentService.findById(processDTO.getAppointmentId()); - satisfactionService.createAppointmentSatisfaction(appointment); - return appointmentClosedInfoRepository.save(closedInfo); - } - - @Override - public ContactStatusEnum getProcessType() { - return ContactStatusEnum.DONE; - } - - @Override - public AppointmentClosedInfo editClosedInfo( - AbstractAppointmentProcessDTO abstractDTO - , AppointmentClosedInfo closedInfo) { - DoneProcessDTO doneProcess = toDoneProcessDTO(abstractDTO); - BeanUtils.copyProperties(doneProcess, closedInfo); - return appointmentClosedInfoRepository.save(closedInfo); - } - - private DoneProcessDTO toDoneProcessDTO(AbstractAppointmentProcessDTO abstractDTO) { - DoneProcessDTO doneProcess = (DoneProcessDTO)abstractDTO; - BeanUtils.copyProperties(abstractDTO, doneProcess); - return doneProcess; - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/config/ApplicationProperties.java b/pamapi/src/main/java/com/pollex/pam/config/ApplicationProperties.java index 60b33ca..d692e29 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/ApplicationProperties.java +++ b/pamapi/src/main/java/com/pollex/pam/config/ApplicationProperties.java @@ -1,6 +1,9 @@ package com.pollex.pam.config; -import com.pollex.pam.enums.SendEmailMsgMethod; +import com.pollex.pam.business.config.AppProperties; +import com.pollex.pam.business.config.SendEmailProperties; +import com.pollex.pam.business.config.SendSMSProperties; +import com.pollex.pam.business.enums.SendEmailMsgMethod; import org.springframework.boot.context.properties.ConfigurationProperties; /** @@ -10,7 +13,7 @@ * See {@link tech.jhipster.config.JHipsterProperties} for a good example. */ @ConfigurationProperties(prefix = "application", ignoreUnknownFields = false) -public class ApplicationProperties { +public class ApplicationProperties implements AppProperties { private boolean mockLogin; private String otpWebServiceUrl; @@ -20,8 +23,8 @@ private String eServiceLoginFunc; private String eServiceLoginSys; private String frontEndDomain; - private SMS sms; - private Email email; + private SendSMSProperties sms; + private SendEmailProperties email; private String fileFolderPath; public boolean isMockLogin() { @@ -88,126 +91,22 @@ this.frontEndDomain = frontEndDomain; } - public SMS getSms() { + public SendSMSProperties getSms() { return sms; } - public void setSms(SMS sms) { + public void setSms(SendSMSProperties sms) { this.sms = sms; } - public Email getEmail() { + public SendEmailProperties getEmail() { return email; } - public void setEmail(Email email) { + public void setEmail(SendEmailProperties email) { this.email = email; } - public static class SMS { - private String url; - private String sourceCode; - private String sender; - private String smsType; - private String subject; - private boolean sendNotifyMsg; - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getSourceCode() { - return sourceCode; - } - - public void setSourceCode(String sourceCode) { - this.sourceCode = sourceCode; - } - - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - public String getSmsType() { - return smsType; - } - - public void setSmsType(String smsType) { - this.smsType = smsType; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public boolean isSendNotifyMsg() { - return sendNotifyMsg; - } - - public void setSendNotifyMsg(boolean sendNotifyMsg) { - this.sendNotifyMsg = sendNotifyMsg; - } - } - - public static class Email { - private String url; - private String functionId; - private String senderEmail; - private boolean sendNotifyMsg; - private SendEmailMsgMethod method; - - public String getUrl() { - return url; - } - - public void setUrl(String url) { - this.url = url; - } - - public String getFunctionId() { - return functionId; - } - - public void setFunctionId(String functionId) { - this.functionId = functionId; - } - - public String getSenderEmail() { - return senderEmail; - } - - public void setSenderEmail(String senderEmail) { - this.senderEmail = senderEmail; - } - - public boolean isSendNotifyMsg() { - return sendNotifyMsg; - } - - public void setSendNotifyMsg(boolean sendNotifyMsg) { - this.sendNotifyMsg = sendNotifyMsg; - } - - public SendEmailMsgMethod getMethod() { - return method; - } - - public void setMethod(SendEmailMsgMethod method) { - this.method = method; - } - } public String getFileFolderPath() { return fileFolderPath; } diff --git a/pamapi/src/main/java/com/pollex/pam/config/CacheConfiguration.java b/pamapi/src/main/java/com/pollex/pam/config/CacheConfiguration.java index 980373c..12bbec4 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/CacheConfiguration.java +++ b/pamapi/src/main/java/com/pollex/pam/config/CacheConfiguration.java @@ -43,11 +43,11 @@ @Bean public JCacheManagerCustomizer cacheManagerCustomizer() { return cm -> { - createCache(cm, com.pollex.pam.repository.UserRepository.USERS_BY_LOGIN_CACHE); - createCache(cm, com.pollex.pam.repository.UserRepository.USERS_BY_EMAIL_CACHE); - createCache(cm, com.pollex.pam.domain.User.class.getName()); - createCache(cm, com.pollex.pam.domain.Authority.class.getName()); - createCache(cm, com.pollex.pam.domain.User.class.getName() + ".authorities"); + createCache(cm, com.pollex.pam.business.repository.UserRepository.USERS_BY_LOGIN_CACHE); + createCache(cm, com.pollex.pam.business.repository.UserRepository.USERS_BY_EMAIL_CACHE); + createCache(cm, com.pollex.pam.business.domain.User.class.getName()); + createCache(cm, com.pollex.pam.business.domain.Authority.class.getName()); + createCache(cm, com.pollex.pam.business.domain.User.class.getName() + ".authorities"); // jhipster-needle-ehcache-add-entry }; } diff --git a/pamapi/src/main/java/com/pollex/pam/config/Constants.java b/pamapi/src/main/java/com/pollex/pam/config/Constants.java deleted file mode 100644 index 87dd25b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/config/Constants.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.pollex.pam.config; - -/** - * Application constants. - */ -public final class Constants { - - // Regex for acceptable logins - public static final String LOGIN_REGEX = "^(?>[a-zA-Z0-9!$&*+=?^_`{|}~.-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)|(?>[_.@A-Za-z0-9-]+)$"; - - public static final String SYSTEM = "system"; - public static final String DEFAULT_LANGUAGE = "zh-tw"; - - /** - * �閰勗�mail�撱箇���(T)敺�憭抵������� - * �����摰2 - */ - public static final int APPOINTMENT_PENDING_PHONE_INTERVAL = 2; - public static final int APPOINTMENT_PENDING_EMAIL_INTERVAL = 2; - - /** - * �閰勗�mail�撱箇���(T)敺�憭拇�◤閬������嚗憭拇甈⊥����策憿批�� - * �敺�憭�(T+N+1)嚗停���甈∠策摰X�� 閰脤“���敹�瘜������閬��� - */ - public static final int APPOINTMENT_EXPIRING_PHONE_INTERVAL = APPOINTMENT_PENDING_PHONE_INTERVAL + 1; - public static final int APPOINTMENT_EXPIRING_EMAIL_INTERVAL = APPOINTMENT_PENDING_EMAIL_INTERVAL + 1; - - /** - * �摰X��活��� - */ - public static final int SEND_EXPIRING_NOTIFY_LIMIT = 1; - - public static final String SPRING_PROFILE_POLLEX_DEVELOPMENT = "pollex"; - - private Constants() {} -} diff --git a/pamapi/src/main/java/com/pollex/pam/config/DatabaseConfiguration.java b/pamapi/src/main/java/com/pollex/pam/config/DatabaseConfiguration.java index 02439f2..5746359 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/DatabaseConfiguration.java +++ b/pamapi/src/main/java/com/pollex/pam/config/DatabaseConfiguration.java @@ -1,16 +1,12 @@ package com.pollex.pam.config; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; -import tech.jhipster.config.JHipsterConstants; @Configuration -@EnableJpaRepositories({ "com.pollex.pam.repository" }) +@EnableJpaRepositories({"com.pollex.pam.business.repository"}) @EnableJpaAuditing(auditorAwareRef = "springSecurityAuditorAware") @EnableTransactionManagement public class DatabaseConfiguration {} diff --git a/pamapi/src/main/java/com/pollex/pam/config/SecurityConfiguration.java b/pamapi/src/main/java/com/pollex/pam/config/SecurityConfiguration.java index 0b995e0..a8ee0cf 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/SecurityConfiguration.java +++ b/pamapi/src/main/java/com/pollex/pam/config/SecurityConfiguration.java @@ -1,6 +1,6 @@ package com.pollex.pam.config; -import com.pollex.pam.security.*; +import com.pollex.pam.business.security.AuthoritiesConstants; import com.pollex.pam.security.jwt.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; diff --git a/pamapi/src/main/java/com/pollex/pam/config/WebsocketConfiguration.java b/pamapi/src/main/java/com/pollex/pam/config/WebsocketConfiguration.java index 45e29b6..871056d 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/WebsocketConfiguration.java +++ b/pamapi/src/main/java/com/pollex/pam/config/WebsocketConfiguration.java @@ -1,6 +1,6 @@ package com.pollex.pam.config; -import com.pollex.pam.security.AuthoritiesConstants; +import com.pollex.pam.business.security.AuthoritiesConstants; import java.security.Principal; import java.util.*; import org.springframework.context.annotation.Bean; diff --git a/pamapi/src/main/java/com/pollex/pam/config/WebsocketSecurityConfiguration.java b/pamapi/src/main/java/com/pollex/pam/config/WebsocketSecurityConfiguration.java index 30afbb2..0ccc2f4 100644 --- a/pamapi/src/main/java/com/pollex/pam/config/WebsocketSecurityConfiguration.java +++ b/pamapi/src/main/java/com/pollex/pam/config/WebsocketSecurityConfiguration.java @@ -1,6 +1,6 @@ package com.pollex.pam.config; -import com.pollex.pam.security.AuthoritiesConstants; +import com.pollex.pam.business.security.AuthoritiesConstants; import org.springframework.context.annotation.Configuration; import org.springframework.messaging.simp.SimpMessageType; import org.springframework.security.config.annotation.web.messaging.MessageSecurityMetadataSourceRegistry; diff --git a/pamapi/src/main/java/com/pollex/pam/consts/SeniorityQueryConst.java b/pamapi/src/main/java/com/pollex/pam/consts/SeniorityQueryConst.java deleted file mode 100644 index fc57ae7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/consts/SeniorityQueryConst.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pollex.pam.consts; - -public class SeniorityQueryConst { - public static final String SENIOR = "SENIOR"; - public static final String YOUNG = "YOUNG"; - public static final String UNLIMITED = "UNLIMITED"; - - private SeniorityQueryConst() {} -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AbstractAuditingEntity.java b/pamapi/src/main/java/com/pollex/pam/domain/AbstractAuditingEntity.java deleted file mode 100644 index c89d1d2..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AbstractAuditingEntity.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.pollex.pam.domain; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import java.io.Serializable; -import java.time.Instant; -import javax.persistence.Column; -import javax.persistence.EntityListeners; -import javax.persistence.MappedSuperclass; -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedBy; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -/** - * Base abstract class for entities which will hold definitions for created, last modified, created by, - * last modified by attributes. - */ -@MappedSuperclass -@EntityListeners(AuditingEntityListener.class) -public abstract class AbstractAuditingEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - @CreatedBy - @Column(name = "created_by", nullable = false, length = 50, updatable = false) - @JsonIgnore - private String createdBy; - - @CreatedDate - @Column(name = "created_date", updatable = false) - @JsonIgnore - private Instant createdDate = Instant.now(); - - @LastModifiedBy - @Column(name = "last_modified_by", length = 50) - @JsonIgnore - private String lastModifiedBy; - - @LastModifiedDate - @Column(name = "last_modified_date") - @JsonIgnore - private Instant lastModifiedDate = Instant.now(); - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public String getLastModifiedBy() { - return lastModifiedBy; - } - - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java b/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java deleted file mode 100644 index 76d30ca..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/Appointment.java +++ /dev/null @@ -1,285 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; -import java.util.List; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EntityListeners; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; -import javax.persistence.Table; - -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; - -@EntityListeners(AuditingEntityListener.class) -@Entity -@Table(name = "appointment") -public class Appointment implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "phone") - private String phone; - - @Column(name = "email") - private String email; - - @Column(name = "contact_type") - private String contactType; - - @Column(name = "gender") - private String gender; - - @Column(name = "age") - private String age; - - @Column(name = "job") - private String job; - - @Column(name = "requirement") - private String requirement; - - @Enumerated(EnumType.STRING) - @Column(name = "communicate_status") - private ContactStatusEnum communicateStatus; - - @Column(name = "hope_contact_time") - private String hopeContactTime; - - @Column(name = "other_requirement") - private String otherRequirement; - - @CreatedDate - @Column(name = "appointment_date", updatable = false) - private Instant appointmentDate = Instant.now(); - - @Column(name = "last_modified_date") - @LastModifiedDate - private Instant lastModifiedDate = Instant.now(); - - @Column(name = "agent_no") - private String agentNo; - - @Column(name = "customer_id") - private Long customerId; - - @Column(name = "consultant_view_time") - private Instant consultantViewTime; - - @Column(name = "consultant_read_time") - private Instant consultantReadTime; - - @Column(name = "contact_time") - private Instant contactTime; - - @Enumerated(value = EnumType.STRING) - @Column(name = "status") - private AppointmentStatusEnum status; - - @JoinColumn(name = "appointment_id") - @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.REMOVE) - private List<AppointmentMemo> appointmentMemoList; - -// @OneToOne(cascade = CascadeType.REMOVE,fetch=FetchType.EAGER) -//// @JoinColumn(name = "form_authority_id", referencedColumnName = "id") -// @JoinColumn(name = "appointment_id", referencedColumnName = "id") -// private AppointmentClosedInfo closedInfo; - -// @OneToOne(cascade = CascadeType.REMOVE -// , mappedBy = "appointment", fetch=FetchType.LAZY) -// private AppointmentClosedInfo closedInfo; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getContactType() { - return contactType; - } - - public void setContactType(String contactType) { - this.contactType = contactType; - } - - public String getGender() { - return gender; - } - - public void setGender(String gender) { - this.gender = gender; - } - - public String getAge() { - return age; - } - - public void setAge(String age) { - this.age = age; - } - - public String getJob() { - return job; - } - - public void setJob(String job) { - this.job = job; - } - - public String getRequirement() { - return requirement; - } - - public void setRequirement(String requirement) { - this.requirement = requirement; - } - - public String getHopeContactTime() { - return hopeContactTime; - } - - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - - public String getOtherRequirement() { - return otherRequirement; - } - - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - - public Instant getAppointmentDate() { - return appointmentDate; - } - - public void setAppointmentDate(Instant appointmentDate) { - this.appointmentDate = appointmentDate; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public ContactStatusEnum getCommunicateStatus() { - return communicateStatus; - } - - public void setCommunicateStatus(ContactStatusEnum communicateStatus) { - this.communicateStatus = communicateStatus; - } - - public Long getCustomerId() { - return customerId; - } - - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - public Instant getConsultantViewTime() { - return consultantViewTime; - } - - public void setConsultantViewTime(Instant consultantViewTime) { - this.consultantViewTime = consultantViewTime; - } - - public Instant getConsultantReadTime() { - return consultantReadTime; - } - - public void setConsultantReadTime(Instant consultantReadTime) { - this.consultantReadTime = consultantReadTime; - } - - public Instant getContactTime() { - return contactTime; - } - - public void setContactTime(Instant markCommunicateTime) { - this.contactTime = markCommunicateTime; - } - - public AppointmentStatusEnum getStatus() { - return status; - } - - public void setStatus(AppointmentStatusEnum status) { - this.status = status; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public List<AppointmentMemo> getAppointmentMemoList() { - return appointmentMemoList; - } - - public void setAppointmentMemoList(List<AppointmentMemo> appointmentMemoList) { - this.appointmentMemoList = appointmentMemoList; - } - -// public AppointmentClosedInfo getClosedInfo() { -// return closedInfo; -// } -// -// public void setClosedInfo(AppointmentClosedInfo closedInfo) { -// this.closedInfo = closedInfo; -// } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentClosedInfo.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentClosedInfo.java deleted file mode 100644 index bc16a7a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentClosedInfo.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "appointment_closed_info") -public class AppointmentClosedInfo implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "policyholder_identity_id") - private String policyholderIdentityId; - - @Column(name = "plan_code") - private String planCode; - - @Column(name = "policy_entry_date") - private Date policyEntryDate; - - @Column(name = "remark") - private String remark; - - @Column(name = "closed_reason") - private String closedReason; - - @Column(name = "closed_other_reason") - private String closedOtherReason; - - @Column(name = "appointment_id") - private Long appointmentId; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getPolicyholderIdentityId() { - return policyholderIdentityId; - } - - public void setPolicyholderIdentityId(String policyholderIdentityId) { - this.policyholderIdentityId = policyholderIdentityId; - } - - public String getPlanCode() { - return planCode; - } - - public void setPlanCode(String planCode) { - this.planCode = planCode; - } - - public Date getPolicyEntryDate() { - return policyEntryDate; - } - - public void setPolicyEntryDate(Date policyEntryDate) { - this.policyEntryDate = policyEntryDate; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getClosedReason() { - return closedReason; - } - - public void setClosedReason(String closedReason) { - this.closedReason = closedReason; - } - - public String getClosedOtherReason() { - return closedOtherReason; - } - - public void setClosedOtherReason(String closedOtherReason) { - this.closedOtherReason = closedOtherReason; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java deleted file mode 100644 index bb2a477..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentCustomerView.java +++ /dev/null @@ -1,265 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; -import java.util.List; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.Table; - -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; - -@Entity -@Table(name = "appointment_customer_view") -public class AppointmentCustomerView implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Column(name = "appointment_id") - @Id - private Long id; - - @Column(name = "phone") - private String phone; - - @Column(name = "email") - private String email; - - @Column(name = "contact_type") - private String contactType; - - @Column(name = "gender") - private String gender; - - @Column(name = "age") - private String age; - - @Column(name = "job") - private String job; - - @Column(name = "requirement") - private String requirement; - - @Enumerated(EnumType.STRING) - @Column(name = "communicate_status") - private ContactStatusEnum communicateStatus; - - @Column(name = "hope_contact_time") - private String hopeContactTime; - - @Column(name = "other_requirement") - private String otherRequirement; - - @Column(name = "appointment_date") - private Instant appointmentDate; - - @Column(name = "agent_no") - private String agentNo; - - @Column(name = "customer_id") - private Long customerId; - - @Column(name = "consultant_view_time") - private Instant consultantViewTime; - - @Column(name = "consultant_read_time") - private Instant consultantReadTime; - - @Column(name = "contact_time") - private Instant contactTime; - - @Column(name = "last_modified_date") - private Instant lastModifiedDate; - - @Column(name = "name") - private String name; - - @Enumerated(value = EnumType.STRING) - @Column(name = "status") - private AppointmentStatusEnum status; - - @JoinColumn(name = "appointment_id") - @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.REMOVE) - private List<AppointmentMemo> appointmentMemoList; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getContactType() { - return contactType; - } - - public void setContactType(String contactType) { - this.contactType = contactType; - } - - public String getGender() { - return gender; - } - - public void setGender(String gender) { - this.gender = gender; - } - - public String getAge() { - return age; - } - - public void setAge(String age) { - this.age = age; - } - - public String getJob() { - return job; - } - - public void setJob(String job) { - this.job = job; - } - - public String getRequirement() { - return requirement; - } - - public void setRequirement(String requirement) { - this.requirement = requirement; - } - - public ContactStatusEnum getCommunicateStatus() { - return communicateStatus; - } - - public void setCommunicateStatus(ContactStatusEnum communicateStatus) { - this.communicateStatus = communicateStatus; - } - - public String getHopeContactTime() { - return hopeContactTime; - } - - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - - public String getOtherRequirement() { - return otherRequirement; - } - - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - - public Instant getAppointmentDate() { - return appointmentDate; - } - - public void setAppointmentDate(Instant appointmentDate) { - this.appointmentDate = appointmentDate; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public Long getCustomerId() { - return customerId; - } - - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - public Instant getConsultantViewTime() { - return consultantViewTime; - } - - public void setConsultantViewTime(Instant consultantViewTime) { - this.consultantViewTime = consultantViewTime; - } - - public Instant getConsultantReadTime() { - return consultantReadTime; - } - - public void setConsultantReadTime(Instant consultantReadTime) { - this.consultantReadTime = consultantReadTime; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Instant getContactTime() { - return contactTime; - } - - public void setContactTime(Instant markCommunicateTime) { - this.contactTime = markCommunicateTime; - } - public AppointmentStatusEnum getStatus() { - return status; - } - - public void setStatus(AppointmentStatusEnum status) { - this.status = status; - } - - public List<AppointmentMemo> getAppointmentMemoList() { - return appointmentMemoList; - } - - public void setAppointmentMemoList(List<AppointmentMemo> appointmentMemoList) { - this.appointmentMemoList = appointmentMemoList; - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentExpiringNotifyRecord.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentExpiringNotifyRecord.java deleted file mode 100644 index 5f2f8f6..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentExpiringNotifyRecord.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.pollex.pam.domain; - -import javax.persistence.*; -import java.io.Serializable; -import java.time.Instant; - -@Entity -@Table(name = "appointment_expiring_notify_record") -public class AppointmentExpiringNotifyRecord implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "appointment_id") - private Long appointmentId; - - @Column(name = "send_time") - private Instant sendTime; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - public Instant getSendTime() { - return sendTime; - } - - public void setSendTime(Instant sendTime) { - this.sendTime = sendTime; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentMemo.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentMemo.java deleted file mode 100644 index 1b6299a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentMemo.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name = "appointment_memo") -public class AppointmentMemo extends AbstractAuditingEntity implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "content") - private String content; - - @Column(name = "appointment_id") - private Long appointmentId; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentNoticeLog.java b/pamapi/src/main/java/com/pollex/pam/domain/AppointmentNoticeLog.java deleted file mode 100644 index 10c6173..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AppointmentNoticeLog.java +++ /dev/null @@ -1,135 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.CreatedDate; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -@Entity -@Table(name = "appointment_notice_log") -public class AppointmentNoticeLog implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "phone") - private String phone; - - @Column(name = "email") - private String email; - - @Column(name = "appointment_id") - private Long appointmentId; - -// @Column(name = "type") -// private String type; - - @Column(name = "content") - private String content; - -// @CreatedBy -// @Column(name = "created_by", nullable = false, length = 50, updatable = false) -// @JsonIgnore -// private String createdBy; - - @CreatedDate - @Column(name = "created_date", updatable = false) - private Instant createdDate = Instant.now(); - - @Column(name = "interview_date") - private Date interviewDate; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - -// public String getType() { -// return type; -// } -// -// public void setType(String type) { -// this.type = type; -// } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - -// public String getCreatedBy() { -// return createdBy; -// } -// -// public void setCreatedBy(String createdBy) { -// this.createdBy = createdBy; -// } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public Date getInterviewDate() { - return interviewDate; - } - - public void setInterviewDate(Date interviewDate) { - this.interviewDate = interviewDate; - } - - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/AuditLogging.java b/pamapi/src/main/java/com/pollex/pam/domain/AuditLogging.java deleted file mode 100644 index 0084c6c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/AuditLogging.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.pollex.pam.domain; - -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.io.Serializable; -import java.time.Instant; - -@EntityListeners(AuditingEntityListener.class) -@Entity -@Table(name = "audit_logging") -public class AuditLogging implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Enumerated(EnumType.STRING) - @Column(name = "functional_type") - private AuditLoggingType functionalType; - - @Column(name = "content") - private String content; - - @Column(name = "created_by", updatable = false) - private String createdBy; - - @CreatedDate - @Column(name = "created_date", updatable = false) - private Instant createdDate; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public AuditLoggingType getFunctionalType() { - return functionalType; - } - - public void setFunctionalType(AuditLoggingType functionalType) { - this.functionalType = functionalType; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Authority.java b/pamapi/src/main/java/com/pollex/pam/domain/Authority.java deleted file mode 100644 index c393e2b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/Authority.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.util.Objects; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -/** - * An authority (a security role) used by Spring Security. - */ -@Entity -@Table(name = "jhi_authority") -@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) -public class Authority implements Serializable { - - private static final long serialVersionUID = 1L; - - @NotNull - @Size(max = 50) - @Id - @Column(length = 50) - private String name; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof Authority)) { - return false; - } - return Objects.equals(name, ((Authority) o).name); - } - - @Override - public int hashCode() { - return Objects.hashCode(name); - } - - // prettier-ignore - @Override - public String toString() { - return "Authority{" + - "name='" + name + '\'' + - "}"; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java b/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java deleted file mode 100644 index f3552b3..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/Consultant.java +++ /dev/null @@ -1,294 +0,0 @@ -package com.pollex.pam.domain; - -import com.pollex.pam.enums.ConsultantStatusEnum; -import com.pollex.pam.enums.GenderEnum; - -import javax.persistence.*; -import java.io.Serializable; -import java.time.Instant; - -@Entity -@Table(name = "consultant") -public class Consultant extends AbstractAuditingEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") - @SequenceGenerator(name = "sequenceGenerator") - private Long id; - - @Column(name = "agent_no", unique = true) - private String agentNo; - - @Column(name = "name") - private String name; - - @Column(name = "photo_path") - private String photoPath; - - @Column(name = "expertise") - private String expertise; - - @Column(name = "avg_score") - private Float avgScore; - - @Column(name = "title") - private String title; - - @Column(name = "role") - private String role; - - @Column(name = "serve_area") - private String serveArea; - - @Enumerated(value = EnumType.STRING) - @Column(name = "gender") - private GenderEnum gender; - - @Column(name = "phone_number") - private String phoneNumber; - - @Column(name = "company_address") - private String companyAddress; - - @Column(name = "seniority_year") - private Long seniorityYear; - - @Column(name = "seniority_month") - private Long seniorityMonth; - - @Column(name = "concept") - private String concept; - - @Column(name = "experience") - private String experience; - - @Column(name = "award") - private String award; - - @Column(name = "recommend") - private Boolean recommend; - - @Column(name = "communication_style") - private String communicationStyle; - - @Column(name = "email") - private String email; - - @Enumerated(value = EnumType.STRING) - @Column(name = "status") - private ConsultantStatusEnum status; - - @Column(name = "latest_login_time") - private Instant latestLoginTime; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPhotoPath() { - return photoPath; - } - - public void setPhotoPath(String photoPath) { - this.photoPath = photoPath; - } - - public String getExpertise() { - return expertise; - } - - public void setExpertise(String expertise) { - this.expertise = expertise; - } - - public Float getAvgScore() { - return avgScore; - } - - public void setAvgScore(Float avgScore) { - this.avgScore = avgScore; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - - public String getServeArea() { - return serveArea; - } - - public void setServeArea(String serveArea) { - this.serveArea = serveArea; - } - - public GenderEnum getGender() { - return gender; - } - - public void setGender(GenderEnum gender) { - this.gender = gender; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public String getCompanyAddress() { - return companyAddress; - } - - public void setCompanyAddress(String companyAddress) { - this.companyAddress = companyAddress; - } - - public Long getSeniorityYear() { - return seniorityYear; - } - - public void setSeniorityYear(Long seniorityYear) { - this.seniorityYear = seniorityYear; - } - - public Long getSeniorityMonth() { - return seniorityMonth; - } - - public void setSeniorityMonth(Long seniorityMonth) { - this.seniorityMonth = seniorityMonth; - } - - public String getSeniorityDTOString() { - final String seniorityYearString = this.seniorityYear != 0 ? this.seniorityYear + " 撟� " : ""; - final String seniorityMonthString = this.seniorityMonth != 0 ? this.seniorityMonth + " ���" : ""; - - return seniorityYearString + seniorityMonthString; - } - - public String getConcept() { - return concept; - } - - public void setConcept(String concept) { - this.concept = concept; - } - - public String getExperience() { - return experience; - } - - public void setExperience(String experience) { - this.experience = experience; - } - - public String getAward() { - return award; - } - - public void setAward(String award) { - this.award = award; - } - - public Boolean getRecommend() { - return recommend; - } - - public void setRecommend(Boolean recommend) { - this.recommend = recommend; - } - - public String getCommunicationStyle() { - return communicationStyle; - } - - public void setCommunicationStyle(String communicationStyle) { - this.communicationStyle = communicationStyle; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public ConsultantStatusEnum getStatus() { - return status; - } - - public void setStatus(ConsultantStatusEnum status) { - this.status = status; - } - - public Instant getLatestLoginTime() { - return latestLoginTime; - } - - public void setLatestLoginTime(Instant latestLoginTime) { - this.latestLoginTime = latestLoginTime; - } - - @Override - public String toString() { - return "Consultant{" + - "id=" + id + - ", agentNo='" + agentNo + '\'' + - ", name='" + name + '\'' + - ", photoPath='" + photoPath + '\'' + - ", expertise='" + expertise + '\'' + - ", avgScore=" + avgScore + - ", title='" + title + '\'' + - ", role='" + role + '\'' + - ", serveArea='" + serveArea + '\'' + - ", gender=" + gender + - ", phoneNumber='" + phoneNumber + '\'' + - ", companyAddress='" + companyAddress + '\'' + - ", seniorityYear=" + seniorityYear + - ", seniorityMonth=" + seniorityMonth + - ", concept='" + concept + '\'' + - ", experience='" + experience + '\'' + - ", award='" + award + '\'' + - ", recommend=" + recommend + - ", communicationStyle='" + communicationStyle + '\'' + - ", email='" + email + '\'' + - '}'; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Customer.java b/pamapi/src/main/java/com/pollex/pam/domain/Customer.java deleted file mode 100644 index c3055cc..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/Customer.java +++ /dev/null @@ -1,129 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; -import java.util.Optional; - -import javax.persistence.*; - -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; -import org.springframework.util.StringUtils; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.pollex.pam.enums.OtpLoginTypeEnum; - -@EntityListeners(AuditingEntityListener.class) -@Entity -@Table(name = "customer") -public class Customer implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "name") - private String name; - - @Column(name = "phone") - private String phone; - - @Column(name = "email") - private String email; - - @Enumerated(value = EnumType.STRING) - @Column(name = "contact_type") - private OtpLoginTypeEnum contactType; - - @CreatedDate - @Column(name = "created_date", updatable = false) - @JsonIgnore - private Instant createdDate = Instant.now(); - - @LastModifiedDate - @Column(name = "last_modified_date") - @JsonIgnore - private Instant lastModifiedDate = Instant.now(); - - @CreatedDate - @Column(name = "agree_personal_information_time", updatable = false) - @JsonIgnore - private Instant agreePersonalInformationTime; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public OtpLoginTypeEnum getContactType() { - return contactType; - } - - public void setContactType(OtpLoginTypeEnum contactType) { - this.contactType = contactType; - } - - public Instant getAgreePersonalInformationTime() { - return agreePersonalInformationTime; - } - - public void setAgreePersonalInformationTime(Instant agreePersonalInformationTime) { - this.agreePersonalInformationTime = agreePersonalInformationTime; - } - - public String toAccountString() { - return Optional.ofNullable(getPhone()) - .filter(StringUtils::hasText) - .orElseGet(this::getEmail); - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/CustomerFavoriteConsultant.java b/pamapi/src/main/java/com/pollex/pam/domain/CustomerFavoriteConsultant.java deleted file mode 100644 index a25ab35..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/CustomerFavoriteConsultant.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.pollex.pam.domain; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import org.springframework.data.annotation.CreatedBy; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedBy; -import org.springframework.data.annotation.LastModifiedDate; -import org.springframework.data.jpa.domain.support.AuditingEntityListener; - -import javax.persistence.*; -import java.io.Serializable; -import java.time.Instant; - -@EntityListeners(AuditingEntityListener.class) -@Entity -@Table(name = "customer_favorite_consultant") -public class CustomerFavoriteConsultant implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") - @SequenceGenerator(name = "sequenceGenerator") - private Long id; - - @ManyToOne - @JoinColumn(name = "consultant_id") - private Consultant consultant; - - @Column(name = "customer_id") - private Long customerId; - - @CreatedBy - @Column(name = "created_by", updatable = false) - @JsonIgnore - private String createdBy; - - @Column(name = "created_date") - @JsonIgnore - private Instant createdDate; - - @LastModifiedBy - @Column(name = "last_modified_by") - @JsonIgnore - private String lastModifiedBy; - - @Column(name = "last_modified_date") - @JsonIgnore - private Instant lastModifiedDate = Instant.now(); - - @Column(name = "view_time") - private Instant viewTime; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Consultant getConsultant() { - return consultant; - } - - public void setConsultant(Consultant consultant) { - this.consultant = consultant; - } - - public Long getCustomerId() { - return customerId; - } - - public void setCustomerId(Long customId) { - this.customerId = customId; - } - - public Instant getViewTime() { - return viewTime; - } - - public void setViewTime(Instant viewTime) { - this.viewTime = viewTime; - } - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public String getLastModifiedBy() { - return lastModifiedBy; - } - - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - @Override - public String toString() { - return "CustomerFavoriteConsultant{" + - "id=" + id + - ", consultant=" + consultant + - ", customerId=" + customerId + - ", createdBy='" + createdBy + '\'' + - ", createdDate=" + createdDate + - ", lastModifiedBy='" + lastModifiedBy + '\'' + - ", lastModifiedDate=" + lastModifiedDate + - ", viewTime=" + viewTime + - '}'; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/InterviewRecord.java b/pamapi/src/main/java/com/pollex/pam/domain/InterviewRecord.java deleted file mode 100644 index c7f02d1..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/InterviewRecord.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import com.pollex.pam.enums.InterviewRecordStatusEnum; - -@Entity -@Table(name = "interview_record") -public class InterviewRecord extends AbstractAuditingEntity implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "content") - private String content; - - @Column(name = "interview_date") - private Date interviewDate; - - @Column(name = "appointment_id") - private Long appointmentId; - - @Enumerated(EnumType.STRING) - @Column(name = "status") - private InterviewRecordStatusEnum status; - - - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public Date getInterviewDate() { - return interviewDate; - } - - public void setInterviewDate(Date interviewDate) { - this.interviewDate = interviewDate; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - public InterviewRecordStatusEnum getStatus() { - return status; - } - - public void setStatus(InterviewRecordStatusEnum status) { - this.status = status; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/OtpTmp.java b/pamapi/src/main/java/com/pollex/pam/domain/OtpTmp.java deleted file mode 100644 index 4007d37..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/OtpTmp.java +++ /dev/null @@ -1,92 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.springframework.data.annotation.CreatedDate; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.pollex.pam.enums.OtpLoginTypeEnum; -import com.pollex.pam.enums.OtpTmpStatusEnum; - -@Entity -@Table(name = "otp_tmp") -public class OtpTmp implements Serializable{ - - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "account") - private String account; - - @Column(name = "index_key") - private String indexKey; - - @Enumerated(value = EnumType.STRING) - @Column(name = "status") - private OtpTmpStatusEnum status; - - @CreatedDate - @Column(name = "created_date", updatable = false) - @JsonIgnore - private Instant createdDate = Instant.now(); - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getIndexKey() { - return indexKey; - } - - public void setIndexKey(String indexKey) { - this.indexKey = indexKey; - } - - public OtpTmpStatusEnum getStatus() { - return status; - } - - public void setStatus(OtpTmpStatusEnum status) { - this.status = status; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java b/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java deleted file mode 100644 index 922994b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/PersonalNotification.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import org.springframework.data.annotation.CreatedDate; - -import com.pollex.pam.enums.NotificationTypeEnum; -import com.pollex.pam.enums.PersonalNotificationRoleEnum; - -@Entity -@Table(name = "personal_notification") -public class PersonalNotification implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @Column(name = "title") - private String title; - - @Column(name = "content") - private String content; - - @Enumerated(EnumType.STRING) - @Column(name = "notification_type") - private NotificationTypeEnum notificationType; - - @Enumerated(EnumType.STRING) - @Column(name = "owner_role") - private PersonalNotificationRoleEnum ownerRole; - - @Column(name = "owner_id") - private Long ownerId; - - @CreatedDate - @Column(name = "created_date", updatable = false) - private Instant createdDate = Instant.now(); - - @Column(name = "read_date") - private Instant readDate; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public NotificationTypeEnum getNotificationType() { - return notificationType; - } - - public void setNotificationType(NotificationTypeEnum notificationType) { - this.notificationType = notificationType; - } - - public PersonalNotificationRoleEnum getOwnerRole() { - return ownerRole; - } - - public void setOwnerRole(PersonalNotificationRoleEnum ownerRole) { - this.ownerRole = ownerRole; - } - - public Long getOwnerId() { - return ownerId; - } - - public void setOwnerId(Long ownerId) { - this.ownerId = ownerId; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public Instant getReadDate() { - return readDate; - } - - public void setReadDate(Instant readDate) { - this.readDate = readDate; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/Satisfaction.java b/pamapi/src/main/java/com/pollex/pam/domain/Satisfaction.java deleted file mode 100644 index 530bc06..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/Satisfaction.java +++ /dev/null @@ -1,137 +0,0 @@ -package com.pollex.pam.domain; - -import java.io.Serializable; -import java.time.Instant; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -import com.pollex.pam.enums.PersonalNotificationRoleEnum; -import com.pollex.pam.enums.SatisfactionTypeEnum; -import org.springframework.data.annotation.CreatedDate; -import org.springframework.data.annotation.LastModifiedDate; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.pollex.pam.enums.SatisfactionStatusEnum; - -@Entity -@Table(name = "satisfaction") -public class Satisfaction implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; - - @CreatedDate - @Column(name = "created_date", updatable = false) - @JsonIgnore - private Instant createdDate = Instant.now(); - - @LastModifiedDate - @Column(name = "last_modified_date") - @JsonIgnore - private Instant lastModifiedDate = Instant.now(); - - @Column(name = "customer_id") - private Long customerId; - - @Column(name = "agent_no") - private String agentNo; - - @Enumerated(EnumType.STRING) - @Column(name = "status") - private SatisfactionStatusEnum status; - - @Column(name = "score") - private Float score; - - @Column(name = "appointment_id") - private Long appointmentId; - - @Enumerated(EnumType.STRING) - @Column(name = "type") - private SatisfactionTypeEnum type; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public Long getCustomerId() { - return customerId; - } - - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public SatisfactionStatusEnum getStatus() { - return status; - } - - public void setStatus(SatisfactionStatusEnum status) { - this.status = status; - } - - public Float getScore() { - return score; - } - - public void setScore(Float score) { - this.score = score; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - public SatisfactionTypeEnum getType() { - return type; - } - - public void setType(SatisfactionTypeEnum type) { - this.type = type; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/User.java b/pamapi/src/main/java/com/pollex/pam/domain/User.java deleted file mode 100644 index 3be5c1d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/User.java +++ /dev/null @@ -1,232 +0,0 @@ -package com.pollex.pam.domain; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.pollex.pam.config.Constants; -import java.io.Serializable; -import java.time.Instant; -import java.util.HashSet; -import java.util.Locale; -import java.util.Set; -import javax.persistence.*; -import javax.validation.constraints.Email; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; -import org.apache.commons.lang3.StringUtils; -import org.hibernate.annotations.BatchSize; -import org.hibernate.annotations.Cache; -import org.hibernate.annotations.CacheConcurrencyStrategy; - -/** - * A user. - */ -@Entity -@Table(name = "jhi_user") -@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) -public class User extends AbstractAuditingEntity implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") - @SequenceGenerator(name = "sequenceGenerator") - private Long id; - - @NotNull - @Pattern(regexp = Constants.LOGIN_REGEX) - @Size(min = 1, max = 50) - @Column(length = 50, unique = true, nullable = false) - private String login; - - @JsonIgnore - @NotNull - @Size(min = 60, max = 60) - @Column(name = "password_hash", length = 60, nullable = false) - private String password; - - @Size(max = 50) - @Column(name = "first_name", length = 50) - private String firstName; - - @Size(max = 50) - @Column(name = "last_name", length = 50) - private String lastName; - - @Email - @Size(min = 5, max = 254) - @Column(length = 254, unique = true) - private String email; - - @NotNull - @Column(nullable = false) - private boolean activated = false; - - @Size(min = 2, max = 10) - @Column(name = "lang_key", length = 10) - private String langKey; - - @Size(max = 256) - @Column(name = "image_url", length = 256) - private String imageUrl; - - @Size(max = 20) - @Column(name = "activation_key", length = 20) - @JsonIgnore - private String activationKey; - - @Size(max = 20) - @Column(name = "reset_key", length = 20) - @JsonIgnore - private String resetKey; - - @Column(name = "reset_date") - private Instant resetDate = null; - - @JsonIgnore - @ManyToMany - @JoinTable( - name = "jhi_user_authority", - joinColumns = { @JoinColumn(name = "user_id", referencedColumnName = "id") }, - inverseJoinColumns = { @JoinColumn(name = "authority_name", referencedColumnName = "name") } - ) - @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE) - @BatchSize(size = 20) - private Set<Authority> authorities = new HashSet<>(); - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getLogin() { - return login; - } - - // Lowercase the login before saving it in database - public void setLogin(String login) { - this.login = StringUtils.lowerCase(login, Locale.ENGLISH); - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - public boolean isActivated() { - return activated; - } - - public void setActivated(boolean activated) { - this.activated = activated; - } - - public String getActivationKey() { - return activationKey; - } - - public void setActivationKey(String activationKey) { - this.activationKey = activationKey; - } - - public String getResetKey() { - return resetKey; - } - - public void setResetKey(String resetKey) { - this.resetKey = resetKey; - } - - public Instant getResetDate() { - return resetDate; - } - - public void setResetDate(Instant resetDate) { - this.resetDate = resetDate; - } - - public String getLangKey() { - return langKey; - } - - public void setLangKey(String langKey) { - this.langKey = langKey; - } - - public Set<Authority> getAuthorities() { - return authorities; - } - - public void setAuthorities(Set<Authority> authorities) { - this.authorities = authorities; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (!(o instanceof User)) { - return false; - } - return id != null && id.equals(((User) o).id); - } - - @Override - public int hashCode() { - // see https://vladmihalcea.com/how-to-implement-equals-and-hashcode-using-the-jpa-entity-identifier/ - return getClass().hashCode(); - } - - // prettier-ignore - @Override - public String toString() { - return "User{" + - "login='" + login + '\'' + - ", firstName='" + firstName + '\'' + - ", lastName='" + lastName + '\'' + - ", email='" + email + '\'' + - ", imageUrl='" + imageUrl + '\'' + - ", activated='" + activated + '\'' + - ", langKey='" + langKey + '\'' + - ", activationKey='" + activationKey + '\'' + - "}"; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/domain/package-info.java b/pamapi/src/main/java/com/pollex/pam/domain/package-info.java deleted file mode 100644 index bcfa3f9..0000000 --- a/pamapi/src/main/java/com/pollex/pam/domain/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * JPA domain objects. - */ -package com.pollex.pam.domain; diff --git a/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java deleted file mode 100644 index 55d674c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/AppointmentStatusEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum AppointmentStatusEnum { - AVAILABLE, - DELETED -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/ConsultantDetailEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/ConsultantDetailEnum.java deleted file mode 100644 index 331dd27..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/ConsultantDetailEnum.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.pollex.pam.enums; - -public enum ConsultantDetailEnum { - ID("ConsultantId"), - NAME("ConsultantName"), - AGENT_NO("ConsultantAgentNo"); - - private final String value; - - ConsultantDetailEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/ConsultantStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/ConsultantStatusEnum.java deleted file mode 100644 index c10f9fe..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/ConsultantStatusEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum ConsultantStatusEnum { - AVAILABLE, - DISABLE -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/ContactStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/ContactStatusEnum.java deleted file mode 100644 index 934a167..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/ContactStatusEnum.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.pollex.pam.enums; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum ContactStatusEnum { - @JsonProperty("picked") - PICKED, - - @JsonProperty("reserved") - RESERVED, - - @JsonProperty("contacted") - CONTACTED, - - @JsonProperty("done") - DONE, - - @JsonProperty("closed") - CLOSED, - - @JsonProperty("cancel") - CANCEL -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/CustomerDetailEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/CustomerDetailEnum.java deleted file mode 100644 index aa56703..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/CustomerDetailEnum.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.enums; - -public enum CustomerDetailEnum { - DB_ID("CustomerDBId"); - - private final String value; - - CustomerDetailEnum(String value) { - this.value = value; - } - - public String getValue() { - return value; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/GenderEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/GenderEnum.java deleted file mode 100644 index 0bcc63f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/GenderEnum.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.pollex.pam.enums; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -public enum GenderEnum { - - @JsonProperty("male") - MALE, - - @JsonProperty("female") - FEMALE; - - @JsonCreator - public static GenderEnum forName(String name) { - for(GenderEnum c: values()) { - if(c.name().equals(name.toUpperCase())) { - return c; - } - } - - return null; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/InterviewRecordStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/InterviewRecordStatusEnum.java deleted file mode 100644 index 9bc0ee8..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/InterviewRecordStatusEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum InterviewRecordStatusEnum { - AVAILABLE, - DELETED -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/LoginMethod.java b/pamapi/src/main/java/com/pollex/pam/enums/LoginMethod.java deleted file mode 100644 index 836e852..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/LoginMethod.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum LoginMethod { - OTP, - E_SERVICE -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/LoginResult.java b/pamapi/src/main/java/com/pollex/pam/enums/LoginResult.java deleted file mode 100644 index 562700d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/LoginResult.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum LoginResult { - SUCCESS, - FAIL -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/NotificationTypeEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/NotificationTypeEnum.java deleted file mode 100644 index a14a84d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/NotificationTypeEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum NotificationTypeEnum { - SYSTEM, - ACTIVITY -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/OtpLoginTypeEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/OtpLoginTypeEnum.java deleted file mode 100644 index 43635cd..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/OtpLoginTypeEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum OtpLoginTypeEnum { - SMS, - EMAIL -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/OtpTmpStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/OtpTmpStatusEnum.java deleted file mode 100644 index b48d88e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/OtpTmpStatusEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum OtpTmpStatusEnum { - UNVERIFIED, - VERRIFIED -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/PersonalNotificationRoleEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/PersonalNotificationRoleEnum.java deleted file mode 100644 index 0f063c2..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/PersonalNotificationRoleEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum PersonalNotificationRoleEnum { - CUSTOMER, - CONSULTANT -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionStatusEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionStatusEnum.java deleted file mode 100644 index 0b708e6..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionStatusEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum SatisfactionStatusEnum { - UNFILLED, - FILLED -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionTypeEnum.java b/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionTypeEnum.java deleted file mode 100644 index a15dfc0..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/SatisfactionTypeEnum.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum SatisfactionTypeEnum { - APPOINTMENT, // 撠“�����遛��漲 - SYSTEM // 撠像���遛��漲 -} diff --git a/pamapi/src/main/java/com/pollex/pam/enums/SendEmailMsgMethod.java b/pamapi/src/main/java/com/pollex/pam/enums/SendEmailMsgMethod.java deleted file mode 100644 index 42a10ce..0000000 --- a/pamapi/src/main/java/com/pollex/pam/enums/SendEmailMsgMethod.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.pollex.pam.enums; - -public enum SendEmailMsgMethod { - PAM_EMAIL_SERVICE, - POLLEX_GMAIL -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentClosedInfoRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentClosedInfoRepository.java deleted file mode 100644 index b5d23ad..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentClosedInfoRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.AppointmentClosedInfo; - -@Repository -public interface AppointmentClosedInfoRepository extends JpaRepository<AppointmentClosedInfo, Long>{ - - Optional<AppointmentClosedInfo> findByAppointmentId(Long apId); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentCustomerViewRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentCustomerViewRepository.java deleted file mode 100644 index 61b5a04..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentCustomerViewRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.AppointmentCustomerView; - -@Repository -public interface AppointmentCustomerViewRepository extends JpaRepository<AppointmentCustomerView, Long>{ - List<AppointmentCustomerView> findByAgentNo(String agentNo); - List<AppointmentCustomerView> findByAgentNoAndCustomerId(String agentNo, Long customerId); - List<AppointmentCustomerView> findAllByCommunicateStatusAndStatus(ContactStatusEnum contactStatus, AppointmentStatusEnum status); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentExpiringNotifyRecordRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentExpiringNotifyRecordRepository.java deleted file mode 100644 index 61a559a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentExpiringNotifyRecordRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.AppointmentExpiringNotifyRecord; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository -public interface AppointmentExpiringNotifyRecordRepository extends JpaRepository<AppointmentExpiringNotifyRecord, Long> { - List<AppointmentExpiringNotifyRecord> findAllByAppointmentId(Long appointmentId); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentMemoRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentMemoRepository.java deleted file mode 100644 index 1b14cc7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentMemoRepository.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.AppointmentMemo; - -@Repository -public interface AppointmentMemoRepository extends JpaRepository<AppointmentMemo, Long>{ - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentNoticeLogRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentNoticeLogRepository.java deleted file mode 100644 index e939258..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentNoticeLogRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.AppointmentNoticeLog; - -@Repository -public interface AppointmentNoticeLogRepository extends JpaRepository<AppointmentNoticeLog, Long>{ - - List<AppointmentNoticeLog> findByAppointmentId(Long appointmentId); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AppointmentRepository.java deleted file mode 100644 index fe01955..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AppointmentRepository.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; -import java.util.Optional; - -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.Appointment; - -@Repository -public interface AppointmentRepository extends JpaRepository<Appointment, Long>{ - - List<Appointment> findByAgentNo(String agentNo); - - List<Appointment> findByAgentNoAndCustomerId(String agentNo, Long customerId); - - Optional<Appointment> findTopByAgentNoAndCustomerIdOrderByAppointmentDateDesc(String agentNo, Long customerId); - - List<Appointment> findAllByCommunicateStatusAndStatus(ContactStatusEnum contactStatus, AppointmentStatusEnum status); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AuditLoggingRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AuditLoggingRepository.java deleted file mode 100644 index df66794..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AuditLoggingRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.AuditLogging; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface AuditLoggingRepository extends JpaRepository<AuditLogging, Long> { -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/AuthorityRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/AuthorityRepository.java deleted file mode 100644 index 111c063..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/AuthorityRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.Authority; -import org.springframework.data.jpa.repository.JpaRepository; - -/** - * Spring Data JPA repository for the {@link Authority} entity. - */ -public interface AuthorityRepository extends JpaRepository<Authority, String> {} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/ConsultantRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/ConsultantRepository.java deleted file mode 100644 index af244ab..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/ConsultantRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.Consultant; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.JpaSpecificationExecutor; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface ConsultantRepository extends JpaRepository<Consultant, Long>, JpaSpecificationExecutor<Consultant> { - Optional<Consultant> findOneByAgentNo(String agentNo); - List<Consultant> findAllByRecommendIsTrue(); - List<Consultant> findAllByAgentNoIn(List<String> agentNoList); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/CustomerFavoriteConsultantRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/CustomerFavoriteConsultantRepository.java deleted file mode 100644 index e61c4df..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/CustomerFavoriteConsultantRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.domain.CustomerFavoriteConsultant; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CustomerFavoriteConsultantRepository extends JpaRepository<CustomerFavoriteConsultant, Long> { - List<CustomerFavoriteConsultant> findAllByCustomerId(Long id); - Optional<CustomerFavoriteConsultant> findOneByCustomerIdAndConsultant(Long customerId, Consultant consultant); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/CustomerRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/CustomerRepository.java deleted file mode 100644 index e4ff8ee..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/CustomerRepository.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.pollex.pam.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.Customer; - -import java.util.List; -import java.util.Optional; - -@Repository -public interface CustomerRepository extends JpaRepository<Customer, Long>{ - - default Optional<Customer> findOneByEmailEqualsOrPhoneEquals(String emailOrEmail) { - return this.findOneByEmailEqualsOrPhoneEquals(emailOrEmail, emailOrEmail); - } - - Optional<Customer> findOneByEmailEqualsOrPhoneEquals(String email, String phone); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/InterviewRecordRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/InterviewRecordRepository.java deleted file mode 100644 index 1b2f8d4..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/InterviewRecordRepository.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.InterviewRecord; -import com.pollex.pam.enums.InterviewRecordStatusEnum; - -@Repository -public interface InterviewRecordRepository extends JpaRepository<InterviewRecord, Long>{ - - List<InterviewRecord> findByAppointmentId(Long appointmentId); - - List<InterviewRecord> findByAppointmentIdAndStatus(Long appointmentId, InterviewRecordStatusEnum status); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/OtpTmpRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/OtpTmpRepository.java deleted file mode 100644 index 7b49c10..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/OtpTmpRepository.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.OtpTmp; - -@Repository -public interface OtpTmpRepository extends JpaRepository<OtpTmp, Long>{ - - OtpTmp findByAccountAndIndexKey(String account, String indexKey); - - OtpTmp findByAccount(String account); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/PersonalNotificationRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/PersonalNotificationRepository.java deleted file mode 100644 index e6e4027..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/PersonalNotificationRepository.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.PersonalNotification; -import com.pollex.pam.enums.PersonalNotificationRoleEnum; - -@Repository -public interface PersonalNotificationRepository extends JpaRepository<PersonalNotification, Long>{ - - List<PersonalNotification> findAllByOwnerRoleAndOwnerId(PersonalNotificationRoleEnum role, Long ownerId); - -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java deleted file mode 100644 index fa37237..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/SatisfactionRepository.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.pollex.pam.repository; - -import java.util.List; -import java.util.Optional; - -import com.pollex.pam.enums.SatisfactionStatusEnum; -import com.pollex.pam.enums.SatisfactionTypeEnum; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import com.pollex.pam.domain.Satisfaction; - -@Repository -public interface SatisfactionRepository extends JpaRepository<Satisfaction, Long>{ - - List<Satisfaction> findByAgentNoAndType(String agentNo, SatisfactionTypeEnum type); - - List<Satisfaction> findByCustomerId(Long customerId); - - Optional<Satisfaction> findOneByAppointmentIdAndType(Long appointmentId, SatisfactionTypeEnum type); - - List<Satisfaction> findAllByStatusAndType(SatisfactionStatusEnum status, SatisfactionTypeEnum type); - - @Query(value = "SELECT avg(score) FROM satisfaction where type='APPOINTMENT'" - + " and agent_no=:agent_no" - + " and score is not null" - , nativeQuery = true) - Optional<Float> getAgentScoreAvg(@Param("agent_no") String agentNo); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/UserRepository.java b/pamapi/src/main/java/com/pollex/pam/repository/UserRepository.java deleted file mode 100644 index f4407cf..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/UserRepository.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.pollex.pam.repository; - -import com.pollex.pam.domain.User; -import java.time.Instant; -import java.util.List; -import java.util.Optional; -import org.springframework.cache.annotation.Cacheable; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.EntityGraph; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * Spring Data JPA repository for the {@link User} entity. - */ -@Repository -public interface UserRepository extends JpaRepository<User, Long> { - String USERS_BY_LOGIN_CACHE = "usersByLogin"; - - String USERS_BY_EMAIL_CACHE = "usersByEmail"; - - Optional<User> findOneByActivationKey(String activationKey); - - List<User> findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant dateTime); - - Optional<User> findOneByResetKey(String resetKey); - - Optional<User> findOneByEmailIgnoreCase(String email); - - Optional<User> findOneByLogin(String login); - - @EntityGraph(attributePaths = "authorities") - @Cacheable(cacheNames = USERS_BY_LOGIN_CACHE) - Optional<User> findOneWithAuthoritiesByLogin(String login); - - @EntityGraph(attributePaths = "authorities") - @Cacheable(cacheNames = USERS_BY_EMAIL_CACHE) - Optional<User> findOneWithAuthoritiesByEmailIgnoreCase(String email); - - Page<User> findAllByIdNotNullAndActivatedIsTrue(Pageable pageable); -} diff --git a/pamapi/src/main/java/com/pollex/pam/repository/package-info.java b/pamapi/src/main/java/com/pollex/pam/repository/package-info.java deleted file mode 100644 index 44ecf27..0000000 --- a/pamapi/src/main/java/com/pollex/pam/repository/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Spring Data JPA repositories. - */ -package com.pollex.pam.repository; diff --git a/pamapi/src/main/java/com/pollex/pam/security/AuthoritiesConstants.java b/pamapi/src/main/java/com/pollex/pam/security/AuthoritiesConstants.java deleted file mode 100644 index b67d92d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/security/AuthoritiesConstants.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.security; - -/** - * Constants for Spring Security authorities. - */ -public final class AuthoritiesConstants { - - public static final String ADMIN = "ROLE_ADMIN"; - - public static final String USER = "ROLE_USER"; - - public static final String ANONYMOUS = "ROLE_ANONYMOUS"; - - private AuthoritiesConstants() {} -} diff --git a/pamapi/src/main/java/com/pollex/pam/security/DomainUserDetailsService.java b/pamapi/src/main/java/com/pollex/pam/security/DomainUserDetailsService.java index e8a35fa..91b4da8 100644 --- a/pamapi/src/main/java/com/pollex/pam/security/DomainUserDetailsService.java +++ b/pamapi/src/main/java/com/pollex/pam/security/DomainUserDetailsService.java @@ -1,7 +1,7 @@ package com.pollex.pam.security; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; import java.util.*; import java.util.stream.Collectors; import org.hibernate.validator.internal.constraintvalidators.hv.EmailValidator; diff --git a/pamapi/src/main/java/com/pollex/pam/security/SecurityUtils.java b/pamapi/src/main/java/com/pollex/pam/security/SecurityUtils.java deleted file mode 100644 index 787c1f3..0000000 --- a/pamapi/src/main/java/com/pollex/pam/security/SecurityUtils.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.pollex.pam.security; - -import java.util.Arrays; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Stream; - -import com.pollex.pam.enums.ConsultantDetailEnum; -import com.pollex.pam.enums.CustomerDetailEnum; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; - -/** - * Utility class for Spring Security. - */ -public final class SecurityUtils { - - private SecurityUtils() {} - - /** - * Get the login of the current user. - * - * @return the login of the current user. - */ - public static Optional<String> getCurrentUserLogin() { - SecurityContext securityContext = SecurityContextHolder.getContext(); - return Optional.ofNullable(extractPrincipal(securityContext.getAuthentication())); - } - - private static String extractPrincipal(Authentication authentication) { - if (authentication == null) { - return null; - } else if (authentication.getPrincipal() instanceof UserDetails) { - UserDetails springSecurityUser = (UserDetails) authentication.getPrincipal(); - return springSecurityUser.getUsername(); - } else if (authentication.getPrincipal() instanceof String) { - return (String) authentication.getPrincipal(); - } - return null; - } - - /** - * Get the JWT of the current user. - * - * @return the JWT of the current user. - */ - public static Optional<String> getCurrentUserJWT() { - SecurityContext securityContext = SecurityContextHolder.getContext(); - return Optional - .ofNullable(securityContext.getAuthentication()) - .filter(authentication -> authentication.getCredentials() instanceof String) - .map(authentication -> (String) authentication.getCredentials()); - } - - /** - * Check if a user is authenticated. - * - * @return true if the user is authenticated, false otherwise. - */ - public static boolean isAuthenticated() { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - return authentication != null && getAuthorities(authentication).noneMatch(AuthoritiesConstants.ANONYMOUS::equals); - } - - /** - * Checks if the current user has any of the authorities. - * - * @param authorities the authorities to check. - * @return true if the current user has any of the authorities, false otherwise. - */ - public static boolean hasCurrentUserAnyOfAuthorities(String... authorities) { - Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); - return ( - authentication != null && getAuthorities(authentication).anyMatch(authority -> Arrays.asList(authorities).contains(authority)) - ); - } - - /** - * Checks if the current user has none of the authorities. - * - * @param authorities the authorities to check. - * @return true if the current user has none of the authorities, false otherwise. - */ - public static boolean hasCurrentUserNoneOfAuthorities(String... authorities) { - return !hasCurrentUserAnyOfAuthorities(authorities); - } - - /** - * Checks if the current user has a specific authority. - * - * @param authority the authority to check. - * @return true if the current user has the authority, false otherwise. - */ - public static boolean hasCurrentUserThisAuthority(String authority) { - return hasCurrentUserAnyOfAuthorities(authority); - } - - private static Stream<String> getAuthorities(Authentication authentication) { - return authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority); - } - - public static String getAgentNo() { - Map<String, String> userDetails = getCurrentUserDetails(); - return userDetails.get(ConsultantDetailEnum.AGENT_NO.getValue()); - } - - public static Long getCustomerDBId() { - Map<String, String> userDetails = getCurrentUserDetails(); - return Long.parseLong(userDetails.get(CustomerDetailEnum.DB_ID.getValue())); - } - - public static Map<String, String> getCurrentUserDetails() { - SecurityContext securityContext = SecurityContextHolder.getContext(); - if(securityContext.getAuthentication()==null || - securityContext.getAuthentication().getDetails() ==null) { - return null; - } - return (Map<String, String>) securityContext.getAuthentication().getDetails(); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/security/SpringSecurityAuditorAware.java b/pamapi/src/main/java/com/pollex/pam/security/SpringSecurityAuditorAware.java index bd4efb7..66c8c8b 100644 --- a/pamapi/src/main/java/com/pollex/pam/security/SpringSecurityAuditorAware.java +++ b/pamapi/src/main/java/com/pollex/pam/security/SpringSecurityAuditorAware.java @@ -1,7 +1,9 @@ package com.pollex.pam.security; -import com.pollex.pam.config.Constants; +import com.pollex.pam.business.config.Constants; import java.util.Optional; + +import com.pollex.pam.business.security.SecurityUtils; import org.springframework.data.domain.AuditorAware; import org.springframework.stereotype.Component; diff --git a/pamapi/src/main/java/com/pollex/pam/security/provider/CustomAuthenticationProvider.java b/pamapi/src/main/java/com/pollex/pam/security/provider/CustomAuthenticationProvider.java index 079a473..d4cea92 100644 --- a/pamapi/src/main/java/com/pollex/pam/security/provider/CustomAuthenticationProvider.java +++ b/pamapi/src/main/java/com/pollex/pam/security/provider/CustomAuthenticationProvider.java @@ -1,7 +1,8 @@ package com.pollex.pam.security.provider; +import com.pollex.pam.business.security.provider.EServiceAuthenticationProvider; import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.security.token.EServiceAuthenticationToken; +import com.pollex.pam.business.security.token.EServiceAuthenticationToken; import com.pollex.pam.security.token.OtpAuthenticationToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AbstractAuthenticationToken; diff --git a/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java b/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java deleted file mode 100644 index afef2d0..0000000 --- a/pamapi/src/main/java/com/pollex/pam/security/provider/EServiceAuthenticationProvider.java +++ /dev/null @@ -1,153 +0,0 @@ -package com.pollex.pam.security.provider; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.enums.ConsultantDetailEnum; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.security.token.EServiceAuthenticationToken; -import com.pollex.pam.service.dto.EServiceResponse; -import com.pollex.pam.web.rest.errors.ConsultantDisableException; -import com.pollex.pam.web.rest.errors.EServiceErrorException; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContexts; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.*; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.http.converter.HttpMessageConverter; -import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.AuthenticationException; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.UsernameNotFoundException; -import org.springframework.stereotype.Component; -import org.springframework.web.client.RestTemplate; -import org.springframework.web.util.UriComponentsBuilder; - -import javax.net.ssl.SSLContext; -import java.security.GeneralSecurityException; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; -import java.time.Instant; -import java.util.*; - -import static com.pollex.pam.enums.ConsultantStatusEnum.DISABLE; - -@Component -public class EServiceAuthenticationProvider { - - private static final String E_SERVICE_LOGIN_SUCCESS_CODE = "true"; - private static final Logger log = LoggerFactory.getLogger(EServiceAuthenticationProvider.class); - - @Autowired - ApplicationProperties applicationProperty; - - @Autowired - ConsultantRepository consultantRepository; - - public Authentication authenticate(EServiceAuthenticationToken authenticationToken) throws AuthenticationException { - String account = authenticationToken.getPrincipal(); - String credentials = authenticationToken.getCredentials(); - - if(applicationProperty.isMockLogin()){ - return getConsultantTokenAndRecordLoginTime(account, credentials); - } - - try { - ResponseEntity<EServiceResponse> responseEntity = loginByEService(account, credentials); - if(HttpStatus.OK.equals(responseEntity.getStatusCode())) { - EServiceResponse eServiceResponse = responseEntity.getBody(); - log.debug("eService response = {}", eServiceResponse); - - if(E_SERVICE_LOGIN_SUCCESS_CODE.equals(eServiceResponse.getIssuccess())){ - return getConsultantTokenAndRecordLoginTime(account, credentials); - } - else { - throw new EServiceErrorException(eServiceResponse.getMsg()); - } - } - - throw new RuntimeException("eService http error!, response http status code = " + responseEntity.getStatusCode()); - } catch (JsonProcessingException e) { - throw new RuntimeException("convert to json processing error!"); - } catch (GeneralSecurityException e) { - throw new RuntimeException("General Security SSL error!"); - } - } - - private UsernamePasswordAuthenticationToken getConsultantTokenAndRecordLoginTime(String account, String credential) throws ConsultantDisableException { - Consultant consultant = consultantRepository.findOneByAgentNo(account).orElseThrow(() -> new UsernameNotFoundException("閰脤“����蒂銝��慦�像�蝟餌絞銝�")); - - if(consultant.getStatus() == DISABLE) { - throw new ConsultantDisableException(); - } - - consultant.setLatestLoginTime(Instant.now()); - consultantRepository.save(consultant); - - List<GrantedAuthority> grantedAuths = Arrays.asList(new SimpleGrantedAuthority("ROLE_USER")); - UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(account, credential, grantedAuths); - - Map<String, String> details = new HashMap<>(); - details.put(ConsultantDetailEnum.ID.getValue(), consultant.getId().toString()); - details.put(ConsultantDetailEnum.NAME.getValue(), consultant.getName()); - details.put(ConsultantDetailEnum.AGENT_NO.getValue(), account); - authenticationToken.setDetails(details); - - return authenticationToken; - } - - private ResponseEntity<EServiceResponse> loginByEService(String account, String paxxword) throws JsonProcessingException, GeneralSecurityException { - RestTemplate restTemplate = getTrustAllRestTemplate(); - settingMessageConvertersToSpecifyType(restTemplate, MediaType.ALL); - - String urlTemplate = UriComponentsBuilder.fromHttpUrl(applicationProperty.geteServiceLoginUrl()) - .queryParam("func", applicationProperty.geteServiceLoginFunc()) - .queryParam("id", account) - .queryParam("pin", paxxword) - .queryParam("pwd", paxxword) - .queryParam("sys", applicationProperty.geteServiceLoginSys()) - .queryParam("transactionId", UUID.randomUUID().toString()) - .encode().toUriString(); - - log.debug("http get loginByEService, url = {}", urlTemplate); - - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - - HttpEntity<String> entity = new HttpEntity<>(headers); - return restTemplate.exchange(urlTemplate, HttpMethod.GET, entity, EServiceResponse.class); - } - - private RestTemplate getTrustAllRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { - SSLContext sslContext = SSLContexts.custom() - .loadTrustMaterial(null, (X509Certificate[] x509Certs, String s) -> true) - .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); - CloseableHttpClient httpClient = HttpClients.custom() - .setSSLSocketFactory(csf) - .build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - requestFactory.setConnectTimeout(300000); - requestFactory.setReadTimeout(300000); - return new RestTemplate(requestFactory); - } - - private void settingMessageConvertersToSpecifyType(RestTemplate restTemplate, MediaType mediaType) { - List<HttpMessageConverter<?>> messageConverters = new ArrayList<>(); - MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); - converter.setSupportedMediaTypes(Collections.singletonList(mediaType)); - messageConverters.add(converter); - restTemplate.setMessageConverters(messageConverters); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/security/provider/OtpAuthenticationProvider.java b/pamapi/src/main/java/com/pollex/pam/security/provider/OtpAuthenticationProvider.java index 3802087..c76937e 100644 --- a/pamapi/src/main/java/com/pollex/pam/security/provider/OtpAuthenticationProvider.java +++ b/pamapi/src/main/java/com/pollex/pam/security/provider/OtpAuthenticationProvider.java @@ -1,6 +1,7 @@ package com.pollex.pam.security.provider; -import com.pollex.pam.web.rest.errors.CustomerNotRegisteredException; +import com.pollex.pam.business.web.errors.CustomerNotRegisteredException; +import com.pollex.pam.security.token.OtpAuthenticationToken; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -8,13 +9,12 @@ import org.springframework.security.core.AuthenticationException; import org.springframework.stereotype.Component; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.repository.CustomerRepository; -import com.pollex.pam.security.token.OtpAuthenticationToken; +import com.pollex.pam.business.domain.Customer; +import com.pollex.pam.business.repository.CustomerRepository; import com.pollex.pam.service.CustomerAuthService; -import com.pollex.pam.service.OtpTmpService; +import com.pollex.pam.business.service.OtpTmpService; import com.pollex.pam.service.OtpUtilService; -import com.pollex.pam.web.rest.vm.OtpAccount; +import com.pollex.pam.business.web.vm.OtpAccount; @Component public class OtpAuthenticationProvider { diff --git a/pamapi/src/main/java/com/pollex/pam/security/token/EServiceAuthenticationToken.java b/pamapi/src/main/java/com/pollex/pam/security/token/EServiceAuthenticationToken.java deleted file mode 100644 index 6bc8410..0000000 --- a/pamapi/src/main/java/com/pollex/pam/security/token/EServiceAuthenticationToken.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.pollex.pam.security.token; - -import org.springframework.security.authentication.AbstractAuthenticationToken; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.SpringSecurityCoreVersion; -import org.springframework.util.Assert; - -import java.util.Collection; - -public class EServiceAuthenticationToken extends AbstractAuthenticationToken { - - private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID; - - private final String principle; - private String credentials; - - public EServiceAuthenticationToken(String principle, String credentials) { - super(null); - this.principle = principle; - this.credentials = credentials; - setAuthenticated(false); - } - - public EServiceAuthenticationToken(String principle, String credentials, Collection<? extends GrantedAuthority> authorities) { - super(authorities); - this.principle = principle; - this.credentials = credentials; - setAuthenticated(true); - } - - @Override - public String getCredentials() { - return credentials; - } - - @Override - public String getPrincipal() { - return principle; - } - - @Override - public void setAuthenticated(boolean isAuthenticated) throws IllegalArgumentException { - Assert.isTrue(!isAuthenticated, - "Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead"); - super.setAuthenticated(false); - } - - @Override - public void eraseCredentials() { - super.eraseCredentials(); - this.credentials = null; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/security/token/OtpAuthenticationToken.java b/pamapi/src/main/java/com/pollex/pam/security/token/OtpAuthenticationToken.java index 9652e9c..a4c450c 100644 --- a/pamapi/src/main/java/com/pollex/pam/security/token/OtpAuthenticationToken.java +++ b/pamapi/src/main/java/com/pollex/pam/security/token/OtpAuthenticationToken.java @@ -1,12 +1,9 @@ package com.pollex.pam.security.token; -import com.pollex.pam.web.rest.vm.OtpAccount; +import com.pollex.pam.business.web.vm.OtpAccount; import org.springframework.security.authentication.AbstractAuthenticationToken; -import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.SpringSecurityCoreVersion; import org.springframework.util.Assert; - -import java.util.Collection; public class OtpAuthenticationToken extends AbstractAuthenticationToken { diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentClosedInfoService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentClosedInfoService.java deleted file mode 100644 index 9931a44..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentClosedInfoService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.pollex.pam.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.web.rest.errors.AppointmentClosedInfoNotFoundException; - -@Service -@Transactional -public class AppointmentClosedInfoService { - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - public AppointmentClosedInfo findByAppointmentId(Long apId) { - return appointmentClosedInfoRepository.findByAppointmentId(apId) - .orElseThrow(AppointmentClosedInfoNotFoundException::new); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentMemoService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentMemoService.java deleted file mode 100644 index 6fdd613..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentMemoService.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.pollex.pam.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentMemo; -import com.pollex.pam.repository.AppointmentMemoRepository; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentMemoCreateDTO; -import com.pollex.pam.service.dto.AppointmentMemoUpdateDTO; -import com.pollex.pam.service.mapper.AppointmentMemoMapper; -import com.pollex.pam.web.rest.errors.AppointmentMemoNotFoundException; -import com.pollex.pam.web.rest.errors.AppointmentNotFoundException; - -@Service -@Transactional -public class AppointmentMemoService { - - @Autowired - AppointmentMemoRepository appointmentMemoRepository; - - @Autowired - AppointmentMemoMapper appointmentMemoMapper; - - @Autowired - AppointmentRepository appointmentRepository; - - public AppointmentMemo create(AppointmentMemoCreateDTO memoDTO) { - AppointmentMemo memo = appointmentMemoMapper.toAppointmentMemo(memoDTO); - return appointmentMemoRepository.save(memo); - } - - public void checkPermission(Long appointmentId) { - Appointment appointment = appointmentRepository.findById(appointmentId) - .orElseThrow(AppointmentNotFoundException::new); - if(!appointment.getAgentNo().equals(SecurityUtils.getAgentNo())) { - throw new IllegalAccessError("not have permission"); - } - } - - public AppointmentMemo update(AppointmentMemoUpdateDTO memoDTO) { - AppointmentMemo memo = appointmentMemoRepository - .findById(memoDTO.getId()) - .orElseThrow(AppointmentMemoNotFoundException::new); - checkPermission(memo.getAppointmentId()); - appointmentMemoMapper.copyToAppointmentMemo(memoDTO, memo); - return appointmentMemoRepository.save(memo); - } - - public void delete(Long memoId) { - AppointmentMemo memo = appointmentMemoRepository - .findById(memoId) - .orElseThrow(AppointmentMemoNotFoundException::new); - checkPermission(memo.getAppointmentId()); - appointmentMemoRepository.delete(memo); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentNoticeLogService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentNoticeLogService.java deleted file mode 100644 index bfb0134..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentNoticeLogService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.pollex.pam.service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.repository.AppointmentNoticeLogRepository; -import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; -import com.pollex.pam.service.mapper.AppointmentNoticeSendMapper; - -@Service -@Transactional -public class AppointmentNoticeLogService { - - @Autowired - AppointmentNoticeLogRepository appointmentNoticeLogRepository; - - @Autowired - AppointmentNoticeSendMapper appointmentNoticeSendMapper; - - public AppointmentNoticeLog create(AppointmentNoticeSendDTO noticeSendDTO) { - AppointmentNoticeLog appointmentNoticeLog = - appointmentNoticeSendMapper.toAppointmentNoticeLog(noticeSendDTO); - return appointmentNoticeLogRepository.save(appointmentNoticeLog); - } - - public List<AppointmentNoticeLog> findByAppointmentId(Long appointmentId){ - return appointmentNoticeLogRepository.findByAppointmentId(appointmentId); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java b/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java deleted file mode 100644 index fe55f38..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/AppointmentService.java +++ /dev/null @@ -1,319 +0,0 @@ -package com.pollex.pam.service; - -import java.time.Instant; -import java.time.LocalDate; -import java.time.ZoneId; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.stream.Collectors; - -import com.pollex.pam.appointment.process.AppointmentProcess; -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.config.Constants; -import com.pollex.pam.enums.SatisfactionTypeEnum; -import com.pollex.pam.service.dto.*; -import com.pollex.pam.web.rest.errors.SendEmailFailException; -import com.pollex.pam.web.rest.errors.SendSMSFailException; -import io.jsonwebtoken.lang.Assert; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentCustomerView; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.enums.InterviewRecordStatusEnum; -import com.pollex.pam.repository.AppointmentCustomerViewRepository; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper; -import com.pollex.pam.service.mapper.AppointmentDTOMapper; -import com.pollex.pam.web.rest.errors.AppointmentNotFoundException; -import org.springframework.util.StringUtils; -import org.thymeleaf.context.Context; -import org.thymeleaf.spring5.SpringTemplateEngine; - -import static com.pollex.pam.enums.AppointmentStatusEnum.AVAILABLE; -import static com.pollex.pam.enums.AppointmentStatusEnum.DELETED; - -@Service -@Transactional -public class AppointmentService { - - private static final Logger log = LoggerFactory.getLogger(AppointmentService.class); - - private static final String NOTIFY_EMAIL_SUBJECT = "靽���像�蝟餌絞�嚗���"; - - @Autowired - AppointmentRepository appointmentRepository; - - @Autowired - AppointmentDTOMapper appointmentDTOMapper; - - @Autowired - ConsultantService consultantService; - - @Autowired - AppointmentCustomerViewMapper appointmentCustomerViewMapper; - - @Autowired - AppointmentCustomerViewRepository appointmentCustomerViewRepository; - - @Autowired - SatisfactionService satisfactionService; - - @Autowired - SendMsgService sendMsgService; - - @Autowired - ApplicationProperties applicationProperties; - - @Autowired - SpringTemplateEngine springTemplateEngine; - - @Autowired - InterviewRecordService interviewRecordService; - - @Autowired - AppointmentProcess abstractAppointmentProcess; - - @Autowired - PersonalNotificationService personalNotificationService; - - public Appointment customerCreateAppointment(AppointmentCreateDTO appointmentCreateDTO) { - Appointment appointment = appointmentDTOMapper.toAppointment(appointmentCreateDTO); - appointment.setStatus(AVAILABLE); - appointment.setCustomerId(SecurityUtils.getCustomerDBId()); - appointment.setCommunicateStatus(ContactStatusEnum.RESERVED); - return appointmentRepository.save(appointment); - } - - public Appointment updateAppointment(AppointmentUpdateDTO updateAppointmentDTO) { - Appointment appointment = appointmentRepository.findById(updateAppointmentDTO.getId()).get(); - BeanUtils.copyProperties(updateAppointmentDTO, appointment); - appointment.setPhone(updateAppointmentDTO.getPhone()); - appointment.setEmail(updateAppointmentDTO.getEmail()); - appointment.setContactType(updateAppointmentDTO.getContactType()); - appointment.setGender(updateAppointmentDTO.getGender()); - appointment.setAge(updateAppointmentDTO.getAge()); - appointment.setJob(updateAppointmentDTO.getJob()); - appointment.setRequirement(updateAppointmentDTO.getRequirement()); - appointment.setHopeContactTime(updateAppointmentDTO.getHopeContactTime()); - appointment.setOtherRequirement(updateAppointmentDTO.getOtherRequirement()); - appointment.setLastModifiedDate(Instant.now()); - - return appointmentRepository.save(appointment); - } - - public void markAppointmentDeleted(Long appointmentId) { - Appointment appointment = appointmentRepository.findById(appointmentId).get(); - appointment.setStatus(DELETED); - appointment.setLastModifiedDate(Instant.now()); - appointment.setCommunicateStatus(ContactStatusEnum.CANCEL); - appointmentRepository.save(appointment); - personalNotificationService.createMarkAppointmentDeletedToConsultant(appointment); - - } - - public List<Appointment> findByAgentNo(String agentNo) { - return appointmentRepository.findByAgentNo(agentNo); - } - - public Appointment markAsContacted(Long appointmentId) { - Appointment appointment = appointmentRepository.findById(appointmentId).get(); - appointment.setCommunicateStatus(ContactStatusEnum.CONTACTED); - appointment.setContactTime(Instant.now()); - appointment.setLastModifiedDate(Instant.now()); - return appointmentRepository.save(appointment); - } - - public AppointmentCustomerViewDTO getAppointmentDetail(Long appointmentId) { - AppointmentCustomerView appointment = appointmentCustomerViewRepository.findById(appointmentId) - .orElseThrow(AppointmentNotFoundException::new); - - AppointmentCustomerViewDTO dto = appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointment); - setSatisfactionScore(dto, appointmentId); -// setInterviewRecordDTO(dto); - return dto; - } - - public void setInterviewRecordDTO(AppointmentCustomerViewDTO dto) { - List<InterviewRecordDTO> interviewRecords = interviewRecordService.findByAppointmentIdAndStatus(dto.getId(), InterviewRecordStatusEnum.AVAILABLE); - dto.setInterviewRecordDTOs(interviewRecords); - } - - public List<AppointmentCustomerViewDTO> getConsultantAvailableAppointments(String agentNo) { - return appointmentCustomerViewRepository.findByAgentNo(agentNo).stream() - .filter(appointment -> appointment.getStatus() == AVAILABLE) - .map(appointmentCustomerView -> { - AppointmentCustomerViewDTO dto = appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointmentCustomerView); - setSatisfactionScore(dto, appointmentCustomerView.getId()); - return dto; - }) - .collect(Collectors.toList()); - } - - public void setSatisfactionScore(AppointmentCustomerViewDTO dto, Long appointmentId) { - satisfactionService.getByAppointmentIdAndType(appointmentId, SatisfactionTypeEnum.APPOINTMENT).ifPresent(satisfaction -> { - dto.setSatisfactionScore(satisfaction.getScore()); - }); - } - - public List<AppointmentCustomerView> findAvailableByAgentNoAndCustomerId(String agentNo, Long customerId) { - return appointmentCustomerViewRepository.findByAgentNoAndCustomerId(agentNo, customerId) - .stream() - .filter(appointmentCustomerView -> appointmentCustomerView.getStatus() == AVAILABLE) - .collect(Collectors.toList()); - } - - public Optional<Appointment> findLatestAppointmentByAgentNoAndCustomerId(String agentNo, Long customerId) { - return appointmentRepository.findTopByAgentNoAndCustomerIdOrderByAppointmentDateDesc(agentNo, customerId); - } - - public void recordConsultantReadTime(Long appointmentId) { - Appointment appointment = appointmentRepository.findById(appointmentId).get(); - - if(appointment.getConsultantReadTime() == null) { - appointment.setConsultantReadTime(Instant.now()); - appointmentRepository.save(appointment); - } - else { - log.debug("this appointment was read, read time = {}", appointment.getConsultantReadTime()); - } - } - - public void recordAllAppointmentsView(String agentNo) { - List<Appointment> consultantNotViewAppointments = findByAgentNo(agentNo) - .stream() - .filter(appointment -> Objects.isNull(appointment.getConsultantViewTime())) - .collect(Collectors.toList()); - - consultantNotViewAppointments.forEach(appointment -> appointment.setConsultantViewTime(Instant.now())); - appointmentRepository.saveAll(consultantNotViewAppointments); - } - - public void sendAppointmentNotify(Appointment appointment) { - Assert.notNull(appointment, "appointment entity cannot be null"); - - log.debug("is need send appointment notify msg? sms = {}, email = {}", - applicationProperties.getSms().isSendNotifyMsg(), applicationProperties.getEmail().isSendNotifyMsg()); - - log.debug("sending appointment notify, appointmentId = {}", appointment.getId()); - sendAppointmentNotifyBySMS(appointment); - sendAppointmentNotifyByHtmlEmail(appointment); - } - - private void sendAppointmentNotifyBySMS(Appointment appointment) { - String msg = getAppointmentNotifyWording(appointment); - String consultantMobile = consultantService.findByAgentNo(appointment.getAgentNo()).getPhoneNumber(); - - try { - if(!StringUtils.hasText(consultantMobile)) { - throw new SendSMSFailException("the consultant does not have mobile!"); - } - - sendMsgService.sendMsgBySMS(consultantMobile, msg); - } catch (SendSMSFailException e) { - log.warn("send appointment notify by sms was fail, appointment Id = {}", appointment.getId(), e); - } - } - - private String getAppointmentNotifyWording(Appointment appointment) { - String normalContent; - if(StringUtils.hasText(appointment.getPhone())) { - normalContent = "閬芣��“��憟踝����蝑�靽�犖憯賢��像��������恥�����Ⅳ�" + appointment.getPhone(); - } - else { - normalContent = "閬芣��“��憟踝����蝑�靽�犖憯賢��像������"; - } - - String urlContent = "嚗���雯��嚗�" + getAppointmentDetailUrl(appointment.getId()) + "����蒂摰�蝯∟赤隢�����"; - return normalContent + urlContent; - } - - private void sendAppointmentNotifyByHtmlEmail(Appointment appointment) { - String consultantEmail = consultantService.findByAgentNo(appointment.getAgentNo()).getEmail(); - String customerMobile = appointment.getPhone(); - String normalContent; - - if(StringUtils.hasText(customerMobile)) { - normalContent = "閬芣��“��憟踝����蝑�靽�犖憯賢��像��������恥�����Ⅳ�" + customerMobile + "嚗�"; - } - else { - normalContent = "閬芣��“��憟踝����蝑�靽�犖憯賢��像�������"; - } - - Context context = new Context(); - context.setVariable("content", normalContent); - context.setVariable("urlHint", getAppointmentDetailUrl(appointment.getId())); - String content = springTemplateEngine.process("mail/appointmentNotifyEmail", context); - - try { - if(!StringUtils.hasText(consultantEmail)) { - throw new SendEmailFailException("the consultant does not have email!"); - } - - sendMsgService.sendMsgByEmail(consultantEmail, NOTIFY_EMAIL_SUBJECT, content, true); - } catch (SendEmailFailException e) { - log.warn("send appointment notify by email was fail, appointment Id = {}", appointment.getId(), e); - } - } - - public String getAppointmentDetailUrl(Long appointmentId) { - return applicationProperties.getFrontEndDomain() + "/myAppointmentList/contactedList?appointmentId=" + appointmentId; - } - - public Appointment findById(Long id) { - return appointmentRepository.findById(id) - .orElseThrow(AppointmentNotFoundException::new); - } - - public void closeAppointment(AppointmentCloseDTO closeDTO) { - if(closeDTO.getContactStatus() == ContactStatusEnum.DONE) { - DoneProcessDTO dto = new DoneProcessDTO(); - BeanUtils.copyProperties(closeDTO, dto); - abstractAppointmentProcess.process(dto); - }else if(closeDTO.getContactStatus() == ContactStatusEnum.CLOSED){ - ClosedProcessDTO dto = new ClosedProcessDTO(); - BeanUtils.copyProperties(closeDTO, dto); - abstractAppointmentProcess.process(dto); - } - } - - public Long getConsultantPendingAppointmentSum(String agentNo) { - return appointmentCustomerViewRepository.findAllByCommunicateStatusAndStatus(ContactStatusEnum.RESERVED, AVAILABLE) - .stream() - .filter(appointment -> agentNo.equals(appointment.getAgentNo())) - .filter(appointment -> isAppointmentDateNotInIntervalFromNow(appointment, Constants.APPOINTMENT_PENDING_PHONE_INTERVAL, Constants.APPOINTMENT_PENDING_EMAIL_INTERVAL)) - .count(); - } - - public AppointmentCustomerViewDTO getCustomerNewestExpiringAppointment(Long customerId) { - return appointmentCustomerViewRepository.findAllByCommunicateStatusAndStatus(ContactStatusEnum.RESERVED, AVAILABLE) - .stream() - .filter(appointment -> customerId.equals(appointment.getCustomerId())) - .filter(appointment -> isAppointmentDateNotInIntervalFromNow(appointment, Constants.APPOINTMENT_EXPIRING_PHONE_INTERVAL, Constants.APPOINTMENT_EXPIRING_EMAIL_INTERVAL)) - .max(Comparator.comparing(AppointmentCustomerView::getAppointmentDate)) - .map(appointmentCustomerView -> appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointmentCustomerView)) - .orElse(null); - } - - public boolean isAppointmentDateNotInIntervalFromNow(AppointmentCustomerView appointment, int phoneInterval, int emailInterval) { - final boolean isHavePhone = StringUtils.hasText(appointment.getPhone()); - final boolean isHaveEmail = StringUtils.hasText(appointment.getEmail()); - - LocalDate appointmentDate = appointment.getAppointmentDate().atZone(ZoneId.systemDefault()).toLocalDate(); - LocalDate nowDate = Instant.now().atZone(ZoneId.systemDefault()).toLocalDate(); - long intervalDays = nowDate.toEpochDay() - appointmentDate.toEpochDay(); - - final boolean isAppointmentExpiringByPhone = isHavePhone && intervalDays >= phoneInterval; - final boolean isAppointmentExpiringByEmail = isHaveEmail && intervalDays >= emailInterval; - - return isAppointmentExpiringByPhone || isAppointmentExpiringByEmail; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java deleted file mode 100644 index b9cba74..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantQuerySpec.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.pollex.pam.service; - -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.enums.ConsultantStatusEnum; -import com.pollex.pam.service.dto.FastQueryConsultantParam; -import com.pollex.pam.service.dto.StrictQueryConsultantParam; -import org.apache.commons.lang3.StringUtils; -import org.springframework.data.jpa.domain.Specification; - -import javax.persistence.criteria.*; -import java.util.*; - -import static com.pollex.pam.consts.SeniorityQueryConst.*; - -public class ConsultantQuerySpec { - private ConsultantQuerySpec() { - } - - public static Specification<Consultant> getFastQuerySpec(FastQueryConsultantParam param) { - return new Specification<Consultant>() { - @SuppressWarnings("FieldNameHidesFieldInSuperclass") - private static final long serialVersionUID = 6644524130903161741L; - private static final float QUERY_AVG_SCORE_OFFSET = 0.5f; - - @Override - public Predicate toPredicate(Root<Consultant> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { - Set<Predicate> set = new HashSet<>(); - - set.add(criteriaBuilder.equal(root.get("status"), ConsultantStatusEnum.AVAILABLE)); - - param.getCommunicationStyles().forEach((communicationStyle) -> { - set.add(criteriaBuilder.like(root.get("communicationStyle"), "%" + communicationStyle + "%")); - }); - - if(Objects.nonNull(param.getGender())) { - set.add(criteriaBuilder.equal(root.get("gender"), param.getGender())); - } - - if(Objects.nonNull(param.getAvgScore()) && param.getAvgScore().intValue() != 0) { - set.add(criteriaBuilder.greaterThanOrEqualTo(root.get("avgScore"), param.getAvgScore().intValue() - QUERY_AVG_SCORE_OFFSET)); - } - - if(StringUtils.isNotEmpty(param.getSeniority()) && !StringUtils.equals(UNLIMITED, param.getSeniority())) { - if(YOUNG.equals(param.getSeniority())) { - set.add(criteriaBuilder.lessThanOrEqualTo(root.get("seniorityYear"), 5)); - } - else if(SENIOR.equals(param.getSeniority())) { - set.add(criteriaBuilder.greaterThan(root.get("seniorityYear"), 5)); - } - } - - Predicate[] predicates = new Predicate[set.size()]; - predicates = set.toArray(predicates); - return criteriaBuilder.and(predicates); - } - }; - } - - public static Specification<Consultant> getStrictQuerySpec(StrictQueryConsultantParam param) { - return new Specification<Consultant>() { - @SuppressWarnings("FieldNameHidesFieldInSuperclass") - private static final long serialVersionUID = 664452413090316174L; - - @Override - public Predicate toPredicate(Root<Consultant> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { - Set<Predicate> set = new HashSet<>(); - - set.add(criteriaBuilder.equal(root.get("status"), ConsultantStatusEnum.AVAILABLE)); - - if(Objects.nonNull(param.getGender())) { - set.add(criteriaBuilder.equal(root.get("gender"), param.getGender())); - } - - if(StringUtils.isNotEmpty(param.getArea())) { - set.add(criteriaBuilder.like(root.get("serveArea"), "%" + param.getArea() + "%")); - } - - Predicate[] predicates = new Predicate[set.size()]; - predicates = set.toArray(predicates); - return criteriaBuilder.and(predicates); - } - }; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java b/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java deleted file mode 100644 index 0c9242c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/ConsultantService.java +++ /dev/null @@ -1,371 +0,0 @@ -package com.pollex.pam.service; - -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentCustomerView; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.domain.CustomerFavoriteConsultant; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.enums.ConsultantStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.repository.CustomerFavoriteConsultantRepository; -import com.pollex.pam.repository.SatisfactionRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.*; -import com.pollex.pam.service.mapper.AppointmentCustomerViewMapper; -import com.pollex.pam.service.mapper.ConsultantDTOMapper; -import com.pollex.pam.service.mapper.ConsultantMapper; -import com.pollex.pam.service.util.FileUtil; -import com.pollex.pam.web.rest.errors.ConsultantNotFoundException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; -import org.thymeleaf.context.Context; -import org.thymeleaf.spring5.SpringTemplateEngine; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.math.BigDecimal; -import java.time.Instant; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.stream.Collectors; - -import static com.pollex.pam.consts.SeniorityQueryConst.*; -import static com.pollex.pam.enums.ContactStatusEnum.*; - -@Service -@Transactional -public class ConsultantService { - - private static final Logger log = LoggerFactory.getLogger(ConsultantService.class); - - @Autowired - ConsultantRepository consultantRepository; - - @Autowired - CustomerFavoriteConsultantRepository customerFavoriteConsultantRepository; - - @Autowired - ConsultantMapper consultantMapper; - - @Autowired - AppointmentService appointmentService; - - @Autowired - AppointmentCustomerViewMapper appointmentCustomerViewMapper; - - @Autowired - SatisfactionService satisfactionService; - - @Autowired - ConsultantDTOMapper consultantDTOMapper; - - @Autowired - ApplicationProperties applicationProperty; - - @Autowired - SendMsgService sendMsgService; - - @Autowired - SpringTemplateEngine springTemplateEngine; - - @Autowired - ApplicationProperties applicationProperties; - - @Autowired - ConsultantService consultantService; - - @Autowired - SatisfactionRepository satisfactionRepository; - - @Autowired - PersonalNotificationService personalNotificationService; - - public List<CustomerFavoriteConsultantDTO> getMyConsultantList() { - Long customerId = SecurityUtils.getCustomerDBId(); - - return customerFavoriteConsultantRepository.findAllByCustomerId(customerId) - .stream() - .map(relation -> { - Consultant consultant = relation.getConsultant(); - CustomerFavoriteConsultantDTO dto = consultantMapper.toCustomerFavoriteConsultantDto(consultant); - dto.setCreateTime(relation.getCreatedDate()); - dto.setUpdateTime(relation.getCreatedDate()); - dto.setCustomerViewTime(relation.getViewTime()); - - setInfoByAvailableAppointment( - dto, - appointmentService.findAvailableByAgentNoAndCustomerId(consultant.getAgentNo(), customerId) - ); - - setFavoriteConsultantUpdatedTime(relation, dto); - - return dto; - - }).collect(Collectors.toList()); - } - - public void setFavoriteConsultantUpdatedTime(CustomerFavoriteConsultant relation, - CustomerFavoriteConsultantDTO dto) { - Consultant consultant = relation.getConsultant(); - appointmentService.findLatestAppointmentByAgentNoAndCustomerId(consultant.getAgentNo(), relation.getCustomerId()) - .ifPresent(latestAppointment -> { - dto.setUpdateTime(latestAppointment.getLastModifiedDate()); - }); - - if(dto.getUpdateTime().isBefore(relation.getCreatedDate())) { - dto.setUpdateTime(relation.getCreatedDate()); - } - } - - private void setInfoByAvailableAppointment(CustomerFavoriteConsultantDTO customerFavoriteConsultantDTO, List<AppointmentCustomerView> appointmentList) { - List<AppointmentCustomerView> appointments = appointmentList.stream() - .sorted(Comparator.comparing(AppointmentCustomerView::getAppointmentDate).reversed()) - .collect(Collectors.toList()); - - List<AppointmentCustomerViewDTO> appointmentCustomerViewDTOS = appointmentCustomerViewMapper.toAppointmentCustomerViewDTO(appointments); - customerFavoriteConsultantDTO.setAppointments(appointmentCustomerViewDTOS); - - if (!appointments.isEmpty()) { - AppointmentCustomerView latestAvailableAppointment = appointments.get(0); - ContactStatusEnum latestStatus = latestAvailableAppointment.getCommunicateStatus(); - if(latestStatus != ContactStatusEnum.DONE && latestStatus != ContactStatusEnum.CLOSED) - customerFavoriteConsultantDTO.setContactStatus(latestStatus); - else - customerFavoriteConsultantDTO.setContactStatus(PICKED); - }else { - customerFavoriteConsultantDTO.setContactStatus(PICKED); - } - } - - public List<ConsultantDTO> getRecommendConsultantList() { - return consultantRepository.findAllByRecommendIsTrue() - .stream() - .filter(consultant -> consultant.getStatus() == ConsultantStatusEnum.AVAILABLE) - .map(consultantMapper::toDto) - .collect(Collectors.toList()); - } - - public List<ConsultantDTO> strictQueryConsultant(StrictQueryConsultantParam param) { - return consultantRepository.findAll(ConsultantQuerySpec.getStrictQuerySpec(param)) - .stream() - .map(consultant -> { - int suitabilityScore = getStrictQuerySuitabilityScore(param, consultant); - - ConsultantDTO dto = consultantMapper.toDto(consultant); - dto.setSuitability(suitabilityScore); - - return dto; - }) - .collect(Collectors.toList()); - } - - private int getStrictQuerySuitabilityScore(StrictQueryConsultantParam param, Consultant consultant) { - final float QUERY_AVG_SCORE_OFFSET = 0.5f; - Float queryAvgScore = param.getAvgScore() - QUERY_AVG_SCORE_OFFSET; - String querySeniority = param.getSeniority(); - List<String> queryRequirements = param.getRequirements(); - - int score = 0; - if(isConsultantGreaterThanScore(queryAvgScore, consultant.getAvgScore())) { - score += 30; - } - - if(isConsultantInSeniority(querySeniority, consultant.getSeniorityYear())) { - score += 20; - } - - if(isAllRequirementsIncludeConsultant(queryRequirements, consultant.getExpertise())) { - score += 50; - } - - return score; - } - - private boolean isAllRequirementsIncludeConsultant(List<String> queryRequirements, String consultantExpertise) { - return queryRequirements - .stream() - .allMatch(queryRequirement -> consultantExpertise.matches(".*"+queryRequirement+".*")); - } - - private boolean isConsultantInSeniority(String querySeniority, Long consultantSeniorityYear) { - switch (querySeniority == null ? "" : querySeniority) { - case YOUNG: - return consultantSeniorityYear < 5; - case SENIOR: - return consultantSeniorityYear > 5; - case UNLIMITED: - case "": - return true; - default: - return false; - } - } - - private boolean isConsultantGreaterThanScore(Float queryAvgScore, Float consultantAvgScore) { - return Objects.isNull(queryAvgScore) || queryAvgScore < consultantAvgScore; - } - - public List<ConsultantDTO> fastQueryConsultant(FastQueryConsultantParam param) { - return consultantRepository.findAll(ConsultantQuerySpec.getFastQuerySpec(param)) - .stream() - .map(consultantMapper::toDto) - .collect(Collectors.toList()); - } - - public ConsultantDetailDTO getConsultantDetail(String agentNo) { - Consultant consultant = consultantRepository.findOneByAgentNo(agentNo).orElseThrow(ConsultantNotFoundException::new); - return consultantMapper.toDetailDto(consultant); - } - - @Transactional - public void addConsultantToCustomList(AddConsultantParam param) { - Long userId = SecurityUtils.getCustomerDBId(); - - param.getConsultantList().forEach(addConsultantData -> { - Consultant consultant = consultantRepository.findOneByAgentNo(addConsultantData.getAgentNo()).orElseThrow(ConsultantNotFoundException::new); - boolean isConsultantInList = customerFavoriteConsultantRepository.findOneByCustomerIdAndConsultant(userId, consultant).isPresent(); - - if(!isConsultantInList) { - CustomerFavoriteConsultant customerFavoriteConsultant = new CustomerFavoriteConsultant(); - Optional<Instant> createdTime = Optional.ofNullable(addConsultantData.getCreatedTime()); - - customerFavoriteConsultant.setCreatedDate(createdTime.orElse(Instant.now())); - customerFavoriteConsultant.setConsultant(consultant); - customerFavoriteConsultant.setCustomerId(userId); - - customerFavoriteConsultantRepository.save(customerFavoriteConsultant); - } - else { - log.info("The consultant is in customer favorite list! customId = {}, consultant AgentNo = {}", userId, consultant.getAgentNo()); - } - }); - } - - public List<AppointmentCustomerViewDTO> getMyAppointment() { - String agentNo = SecurityUtils.getAgentNo(); - return appointmentService.getConsultantAvailableAppointments(agentNo); - } - - public void removeConsultantFromCustomList(String agentNo) { - Long customId = SecurityUtils.getCustomerDBId(); - Consultant consultant = consultantRepository.findOneByAgentNo(agentNo).orElseThrow(ConsultantNotFoundException::new); - CustomerFavoriteConsultant target = customerFavoriteConsultantRepository.findOneByCustomerIdAndConsultant(customId, consultant).orElse(null); - - if(target != null) { - customerFavoriteConsultantRepository.delete(target); - } - else { - log.info("this consultant is not in customer list! agentNo = {}, customId = {}", agentNo, customId); - } - } - - public void recordAllAppointmentsView() { - String agentNo = SecurityUtils.getAgentNo(); - appointmentService.recordAllAppointmentsView(agentNo); - } - - public void recordMyConsultantListView() { - Long customerId = SecurityUtils.getCustomerDBId(); - List<CustomerFavoriteConsultant> notViewRelation = customerFavoriteConsultantRepository - .findAllByCustomerId(customerId) - .stream() - .filter(relation -> Objects.isNull(relation.getViewTime())) - .collect(Collectors.toList()); - - notViewRelation.forEach(relation -> { - relation.setViewTime(Instant.now()); - }); - - customerFavoriteConsultantRepository.saveAll(notViewRelation); - } - - public Consultant findByAgentNo(String agentNo) { - return consultantRepository.findOneByAgentNo(agentNo).get(); - } - - public Consultant editConsultant(ConsultantEditDTO editDTO) { - Consultant consultant = consultantRepository.findOneByAgentNo(editDTO.getAgentNo()) - .orElseThrow(ConsultantNotFoundException::new); - consultantDTOMapper.copyToConsultant(editDTO, consultant); - FileUtil.base64ToFile(editDTO.getPhotoBase64(), editDTO.getPhotoFileName(), applicationProperty.getFileFolderPath()); - consultantRepository.save(consultant); - personalNotificationService.createEditConsultantToConsultant(consultant); - return consultant; - } - - public InputStream getAvatarImage(String agentNo) { - Consultant consultant = consultantRepository.findOneByAgentNo(agentNo) - .orElseThrow(ConsultantNotFoundException::new); - File file = new File(consultant.getPhotoPath()); - try { - InputStream in = new FileInputStream(file); - return in; - } catch (FileNotFoundException e) { - log.error("agent photo not found , agentNo:"+agentNo,e); - return null; - } - } - - public void sendSatisfactionToClient(Appointment appointment) { - String subject = "皛踵�漲憛怠神�"; - - if(StringUtils.hasText(appointment.getEmail())) { - String content = genSendSatisfactionEmailContent(appointment); - sendMsgService.sendMsgByEmail(appointment.getEmail(), subject, content, true); - - }if(StringUtils.hasText(appointment.getPhone())) { - String content = genSendSatisfactionSMSContent(appointment); - sendMsgService.sendMsgBySMS(appointment.getPhone(), content); - } - - personalNotificationService.createSendSatisfactionToClientToCustomer(appointment); - } - - private String genSendSatisfactionSMSContent(Appointment appointment) { - String agentNo = appointment.getAgentNo(); - Consultant consultant = consultantService.findByAgentNo(agentNo); - String contsultantName = consultant.getName(); - String content = contsultantName+"憿批��憛怠神靽���像���遛��漲閰��"+getSendSatisfactionToClientUrl(appointment.getId()); - return content; - } - - private String genSendSatisfactionEmailContent(Appointment appointment) { - String agentNo = appointment.getAgentNo(); - Consultant consultant = consultantService.findByAgentNo(agentNo); - Context context = new Context(); - context.setVariable("consultantName", consultant.getName()); - context.setVariable("appointmentUrl", getSendSatisfactionToClientUrl(appointment.getId())); - String content = springTemplateEngine.process("mail/writeSatisfactionNotice", context); - return content; - } - - public String getSendSatisfactionToClientUrl(Long appointmentId) { - return applicationProperties.getFrontEndDomain() + "/?appointmentId=" + appointmentId; - } - - public void setConsultantAvgScore(Satisfaction satisfaction) { - Optional<Float> avgScore = getAgentAvgScore(satisfaction.getAgentNo()); - - if(avgScore.isPresent()) { - BigDecimal bigDecimal = BigDecimal.valueOf(avgScore.get()); - - Consultant consultant = consultantRepository.findOneByAgentNo(satisfaction.getAgentNo()).get(); - consultant.setAvgScore(bigDecimal.setScale(1, BigDecimal.ROUND_HALF_UP).floatValue()); - consultantRepository.save(consultant); - } - } - - public Optional<Float> getAgentAvgScore(String agentNo) { - return satisfactionRepository.getAgentScoreAvg(agentNo); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/CustomerAuthService.java b/pamapi/src/main/java/com/pollex/pam/service/CustomerAuthService.java index 427e102..e7d394c 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/CustomerAuthService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/CustomerAuthService.java @@ -15,12 +15,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.enums.CustomerDetailEnum; -import com.pollex.pam.repository.CustomerRepository; +import com.pollex.pam.business.domain.Customer; +import com.pollex.pam.business.enums.CustomerDetailEnum; +import com.pollex.pam.business.repository.CustomerRepository; import com.pollex.pam.security.jwt.TokenProvider; import com.pollex.pam.security.token.OtpAuthenticationToken; -import com.pollex.pam.web.rest.vm.OtpAccount; +import com.pollex.pam.business.web.vm.OtpAccount; @Service @Transactional diff --git a/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java b/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java index 79a086d..3f1b6c4 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/CustomerService.java @@ -2,21 +2,23 @@ import java.util.Optional; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.CustomerDTO; -import com.pollex.pam.service.mapper.CustomerMapper; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.OtpTmpService; +import com.pollex.pam.business.service.UsernameAlreadyUsedException; +import com.pollex.pam.business.service.dto.CustomerDTO; +import com.pollex.pam.business.service.mapper.CustomerMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.domain.OtpTmp; -import com.pollex.pam.enums.OtpLoginTypeEnum; -import com.pollex.pam.enums.OtpTmpStatusEnum; -import com.pollex.pam.repository.CustomerRepository; -import com.pollex.pam.service.dto.CustomerRegisterDTO; -import com.pollex.pam.service.mapper.CustomerDTOMapper; +import com.pollex.pam.business.domain.Customer; +import com.pollex.pam.business.domain.OtpTmp; +import com.pollex.pam.business.enums.OtpLoginTypeEnum; +import com.pollex.pam.business.enums.OtpTmpStatusEnum; +import com.pollex.pam.business.repository.CustomerRepository; +import com.pollex.pam.business.service.dto.CustomerRegisterDTO; +import com.pollex.pam.business.service.mapper.CustomerDTOMapper; @Service @Transactional diff --git a/pamapi/src/main/java/com/pollex/pam/service/EmailAlreadyUsedException.java b/pamapi/src/main/java/com/pollex/pam/service/EmailAlreadyUsedException.java deleted file mode 100644 index 427dc68..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/EmailAlreadyUsedException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.service; - -public class EmailAlreadyUsedException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - public EmailAlreadyUsedException() { - super("Email is already in use!"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/InterviewRecordService.java b/pamapi/src/main/java/com/pollex/pam/service/InterviewRecordService.java deleted file mode 100644 index 40197b4..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/InterviewRecordService.java +++ /dev/null @@ -1,84 +0,0 @@ -package com.pollex.pam.service; - -import java.util.List; - -import org.hibernate.boot.model.naming.IllegalIdentifierException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.InterviewRecord; -import com.pollex.pam.enums.InterviewRecordStatusEnum; -import com.pollex.pam.repository.InterviewRecordRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.InterviewRecordDTO; -import com.pollex.pam.service.mapper.InterviewRecordMapper; -import com.pollex.pam.web.rest.errors.InterviewRecordNotFoundException; - -@Service -@Transactional -public class InterviewRecordService { - - @Autowired - InterviewRecordRepository interviewRecordRepository; - - @Autowired - InterviewRecordMapper interviewRecordMapper; - - @Autowired - AppointmentService appointmentService; - - public InterviewRecord create(InterviewRecordDTO dto) { - if(dto.getId()!=null) { - throw new IllegalArgumentException(); - } - - InterviewRecord record = interviewRecordMapper.toInterviewRecord(dto); - checkAuth(record); - record.setStatus(InterviewRecordStatusEnum.AVAILABLE); - interviewRecordRepository.save(record); - return record; - } - - public InterviewRecord update(InterviewRecordDTO dto) { - if(dto.getId()==null) { - throw new IllegalArgumentException(); - } - - InterviewRecord record = findById(dto.getId()); - checkAuth(record); - interviewRecordMapper.copyToInterviewRecord(dto, record); - interviewRecordRepository.save(record); - return record; - } - - public void checkAuth(InterviewRecord record) { - Appointment appointment = appointmentService.findById(record.getAppointmentId()); - if(!appointment.getAgentNo().equals(SecurityUtils.getAgentNo())) { - throw new IllegalAccessError("The account can not edit the appointment"); - } - } - - public void delete(Long interviewRecordId) { - InterviewRecord record = findById(interviewRecordId); - record.setStatus(InterviewRecordStatusEnum.DELETED); - interviewRecordRepository.save(record); - } - - public InterviewRecord findById(Long id) { - return interviewRecordRepository.findById(id) - .orElseThrow(InterviewRecordNotFoundException::new); - } - - public List<InterviewRecordDTO> findByAppointmentId(Long appointmentId) { - List<InterviewRecord> records = interviewRecordRepository.findByAppointmentId(appointmentId); - return interviewRecordMapper.toInterviewRecordDTO(records); - } - - public List<InterviewRecordDTO> findByAppointmentIdAndStatus(Long appointmentId, InterviewRecordStatusEnum status) { - List<InterviewRecord> records = interviewRecordRepository.findByAppointmentIdAndStatus(appointmentId, status); - return interviewRecordMapper.toInterviewRecordDTO(records); - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/InvalidPasswordException.java b/pamapi/src/main/java/com/pollex/pam/service/InvalidPasswordException.java deleted file mode 100644 index 24b28e5..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/InvalidPasswordException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.service; - -public class InvalidPasswordException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - public InvalidPasswordException() { - super("Incorrect password"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/MailService.java b/pamapi/src/main/java/com/pollex/pam/service/MailService.java deleted file mode 100644 index 555edd5..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/MailService.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.pollex.pam.service; - -import com.pollex.pam.domain.User; -import java.nio.charset.StandardCharsets; -import java.util.Locale; -import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.context.MessageSource; -import org.springframework.mail.MailException; -import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; -import org.thymeleaf.context.Context; -import org.thymeleaf.spring5.SpringTemplateEngine; -import tech.jhipster.config.JHipsterProperties; - -/** - * Service for sending emails. - * <p> - * We use the {@link Async} annotation to send emails asynchronously. - */ -@Service -public class MailService { - - private final Logger log = LoggerFactory.getLogger(MailService.class); - - private static final String USER = "user"; - - private static final String BASE_URL = "baseUrl"; - - private final JHipsterProperties jHipsterProperties; - - private final JavaMailSender javaMailSender; - - private final MessageSource messageSource; - - private final SpringTemplateEngine templateEngine; - - public MailService( - JHipsterProperties jHipsterProperties, - JavaMailSender javaMailSender, - MessageSource messageSource, - SpringTemplateEngine templateEngine - ) { - this.jHipsterProperties = jHipsterProperties; - this.javaMailSender = javaMailSender; - this.messageSource = messageSource; - this.templateEngine = templateEngine; - } - - @Async - public void sendEmail(String to, String subject, String content, boolean isMultipart, boolean isHtml) { - log.debug( - "Send email[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}", - isMultipart, - isHtml, - to, - subject, - content - ); - - // Prepare message using a Spring helper - MimeMessage mimeMessage = javaMailSender.createMimeMessage(); - try { - MimeMessageHelper message = new MimeMessageHelper(mimeMessage, isMultipart, StandardCharsets.UTF_8.name()); - message.setTo(to); - message.setFrom(jHipsterProperties.getMail().getFrom()); - message.setSubject(subject); - message.setText(content, isHtml); - javaMailSender.send(mimeMessage); - log.debug("Sent email to User '{}'", to); - } catch (MailException | MessagingException e) { - log.warn("Email could not be sent to user '{}'", to, e); - } - } - - @Async - public void sendEmailFromTemplate(User user, String templateName, String titleKey) { - if (user.getEmail() == null) { - log.debug("Email doesn't exist for user '{}'", user.getLogin()); - return; - } - Locale locale = Locale.forLanguageTag(user.getLangKey()); - Context context = new Context(locale); - context.setVariable(USER, user); - context.setVariable(BASE_URL, jHipsterProperties.getMail().getBaseUrl()); - String content = templateEngine.process(templateName, context); - String subject = messageSource.getMessage(titleKey, null, locale); - sendEmail(user.getEmail(), subject, content, false, true); - } - - @Async - public void sendActivationEmail(User user) { - log.debug("Sending activation email to '{}'", user.getEmail()); - sendEmailFromTemplate(user, "mail/activationEmail", "email.activation.title"); - } - - @Async - public void sendCreationEmail(User user) { - log.debug("Sending creation email to '{}'", user.getEmail()); - sendEmailFromTemplate(user, "mail/creationEmail", "email.activation.title"); - } - - @Async - public void sendPasswordResetMail(User user) { - log.debug("Sending password reset email to '{}'", user.getEmail()); - sendEmailFromTemplate(user, "mail/passwordResetEmail", "email.reset.title"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/NoticeService.java b/pamapi/src/main/java/com/pollex/pam/service/NoticeService.java deleted file mode 100644 index 5d9a908..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/NoticeService.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.pollex.pam.service; - -import java.util.List; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; - -@Service -@Transactional -public class NoticeService { - - @Autowired - AppointmentService appointmentService; - - @Autowired - SendMsgService sendMsgService; - - @Autowired - AppointmentNoticeLogService appointmentNoticeLogService; - - @Autowired - AppointmentRepository appointmentRepository; - - @Autowired - PersonalNotificationService personalNotificationService; - - - public void sendNotice(AppointmentNoticeSendDTO dto) { - String subject = "靽���像�蝟餌絞�嚗���"; - - if(StringUtils.hasText(dto.getEmail())) { - sendMsgService.sendMsgByEmail(dto.getEmail(), subject, dto.getMessage(), true); - }if(StringUtils.hasText(dto.getPhone())) { - sendMsgService.sendMsgBySMS(dto.getPhone(), dto.getMessage()); - } - - List<AppointmentNoticeLog> noticeLogs = - appointmentNoticeLogService.findByAppointmentId(dto.getAppointmentId()); - if(noticeLogs.size()==0) { - Appointment appointment = appointmentService.findById(dto.getAppointmentId()); - appointment.setCommunicateStatus(ContactStatusEnum.CONTACTED); - appointmentRepository.save(appointment); - } - - appointmentNoticeLogService.create(dto); - personalNotificationService.createSendNoticeToCustomer(dto.getAppointmentId()); - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/OtpTmpService.java b/pamapi/src/main/java/com/pollex/pam/service/OtpTmpService.java deleted file mode 100644 index df66731..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/OtpTmpService.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.pollex.pam.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.OtpTmp; -import com.pollex.pam.enums.OtpLoginTypeEnum; -import com.pollex.pam.enums.OtpTmpStatusEnum; -import com.pollex.pam.repository.OtpTmpRepository; - -@Service -@Transactional -public class OtpTmpService { - - @Autowired - OtpTmpRepository otpTmpRepository; - - public OtpTmp createOtpTmp(String account, String indexKey) { - OtpTmp oldTmp = otpTmpRepository.findByAccount(account); - if(oldTmp==null) { - OtpTmp otpTmp = new OtpTmp(); - otpTmp.setIndexKey(indexKey); - otpTmp.setAccount(account); - otpTmp.setStatus(OtpTmpStatusEnum.UNVERIFIED); - return otpTmpRepository.save(otpTmp); - }else { - oldTmp.setIndexKey(indexKey); - oldTmp.setStatus(OtpTmpStatusEnum.UNVERIFIED); - return otpTmpRepository.save(oldTmp); - } - } - - public OtpTmp findByAccountAndIndexKey(String account, String indexKey) { - return otpTmpRepository.findByAccountAndIndexKey(account, indexKey); - } - - public OtpTmp save(OtpTmp otpTmp) { - return otpTmpRepository.save(otpTmp); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/OtpUtilService.java b/pamapi/src/main/java/com/pollex/pam/service/OtpUtilService.java index 9736d8e..ff21125 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/OtpUtilService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/OtpUtilService.java @@ -1,17 +1,17 @@ package com.pollex.pam.service; -import com.pollex.pam.domain.OtpTmp; -import com.pollex.pam.enums.OtpTmpStatusEnum; -import com.pollex.pam.web.rest.errors.OtpLoginFailException; -import com.pollex.pam.web.rest.vm.VerifyOtpVM; +import com.pollex.pam.business.domain.OtpTmp; +import com.pollex.pam.business.enums.OtpTmpStatusEnum; +import com.pollex.pam.business.service.OtpTmpService; +import com.pollex.pam.business.web.errors.OtpLoginFailException; +import com.pollex.pam.business.web.vm.VerifyOtpVM; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.stereotype.Service; import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.service.dto.OtpResponseDTO; +import com.pollex.pam.business.service.dto.OtpResponseDTO; import org.springframework.transaction.annotation.Transactional; @Service diff --git a/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java b/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java index b61ef34..cdbfb83 100644 --- a/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java +++ b/pamapi/src/main/java/com/pollex/pam/service/OtpWebService.java @@ -1,7 +1,7 @@ package com.pollex.pam.service; import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.service.dto.OtpResponseDTO; +import com.pollex.pam.business.service.dto.OtpResponseDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java b/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java deleted file mode 100644 index 3fa7b67..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/PersonalNotificationService.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.pollex.pam.service; - -import java.time.Instant; -import java.util.List; - -import javax.management.Notification; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.domain.PersonalNotification; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.enums.NotificationTypeEnum; -import com.pollex.pam.enums.PersonalNotificationRoleEnum; -import com.pollex.pam.repository.CustomerRepository; -import com.pollex.pam.repository.PersonalNotificationRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AppointmentUpdateDTO; - -@Service -@Transactional -public class PersonalNotificationService { - - @Autowired - PersonalNotificationRepository personalNotificationRepository; - - @Autowired - ConsultantService consultantService; - - @Autowired - AppointmentService appointmentService; - - @Autowired - CustomerService customerService; - - @Autowired - CustomerRepository customerRepository; - - @Autowired - SatisfactionService satisfactionService; - - public List<PersonalNotification> getMyPersonalNotification(Long ownerId, PersonalNotificationRoleEnum role) { - return personalNotificationRepository.findAllByOwnerRoleAndOwnerId(role, ownerId); - } - - public void createSendSatisfactionToClientToCustomer(Appointment appointment) { - PersonalNotification entity = new PersonalNotification(); - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - String content = consultant.getName()+"憿批��憛怠神皛踵�漲閰��"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(appointment.getCustomerId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CUSTOMER); - entity.setTitle("憛怠神皛踵�漲"); - personalNotificationRepository.save(entity); - } - - public void createSendNoticeToCustomer(Long appointmentId) { - Appointment appointment = appointmentService.findById(appointmentId); - PersonalNotification entity = new PersonalNotification(); - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - String content = "���� "+consultant.getName()+"憿批���赤�"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(appointment.getCustomerId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CUSTOMER); - entity.setTitle("憿批��赤�"); - personalNotificationRepository.save(entity); - } - - public void createNotFillAppointmentSatisfactionNumberToCustomer(Long customerId, int notFillSatisfactionSum) { - PersonalNotification entity = new PersonalNotification(); - - String content = "���� "+notFillSatisfactionSum+" 蝑“���遛��漲��閬‵撖�"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(customerId); - entity.setOwnerRole(PersonalNotificationRoleEnum.CUSTOMER); - entity.setTitle("摰X皛踵�漲"); - personalNotificationRepository.save(entity); - } - - public void createEditConsultantToConsultant(Consultant consultant) { - PersonalNotification entity = new PersonalNotification(); - String content = "����犖撣唾�身摰歇�脰��"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(consultant.getId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CONSULTANT); - entity.setTitle("霈撣唾����"); - personalNotificationRepository.save(entity); - } - - public void createMarkAppointmentDeletedToConsultant(Appointment appointment) { - PersonalNotification entity = new PersonalNotification(); - Customer customer = customerRepository.findById(appointment.getCustomerId()).get(); - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - String content = customer.getName()+"摰X撌脣�������"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(consultant.getId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CONSULTANT); - entity.setTitle("��������"); - personalNotificationRepository.save(entity); - } - - public void createUpdateAppointmentToConsultant(Appointment appointment) { - PersonalNotification entity = new PersonalNotification(); - Customer customer = customerRepository.findById(appointment.getCustomerId()).get(); - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - String content = customer.getName()+"摰X撌脫���������"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(consultant.getId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CONSULTANT); - entity.setTitle("��������"); - personalNotificationRepository.save(entity); - } - - public void createScorefactionToConsultant(Satisfaction satisfaction) { - PersonalNotification entity = new PersonalNotification(); - Appointment appointment = appointmentService.findById(satisfaction.getAppointmentId()); - Customer customer = customerRepository.findById(appointment.getCustomerId()).get(); - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - String content = customer.getName()+"摰X撌脣��脰�遛��漲閰��"; - entity.setContent(content); - entity.setNotificationType(NotificationTypeEnum.ACTIVITY); - entity.setOwnerId(consultant.getId()); - entity.setOwnerRole(PersonalNotificationRoleEnum.CONSULTANT); - entity.setTitle("摰X皛踵�漲"); - personalNotificationRepository.save(entity); - } - - public void readAllMyNotification() { - if(StringUtils.hasText(SecurityUtils.getAgentNo())) { - Long consultantId = consultantService.findByAgentNo(SecurityUtils.getAgentNo()).getId(); - readAllNotification(PersonalNotificationRoleEnum.CONSULTANT, consultantId); - }else if(SecurityUtils.getCustomerDBId()!=null){ - readAllNotification(PersonalNotificationRoleEnum.CUSTOMER, SecurityUtils.getCustomerDBId()); - } - } - - public void readAllNotification(PersonalNotificationRoleEnum ownerRole - , Long ownerId) { - List<PersonalNotification> allNotification = personalNotificationRepository.findAllByOwnerRoleAndOwnerId(ownerRole, ownerId); - Instant today = Instant.now(); - allNotification.stream() - .filter(notification -> notification.getReadDate()==null) - .forEach(notification ->{ - notification.setReadDate(today); - personalNotificationRepository.saveAll(allNotification); - }); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java b/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java deleted file mode 100644 index 1bf3c20..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/SatisfactionService.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.pollex.pam.service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import com.pollex.pam.enums.SatisfactionTypeEnum; -import com.pollex.pam.security.SecurityUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.enums.SatisfactionStatusEnum; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.repository.CustomerRepository; -import com.pollex.pam.repository.SatisfactionRepository; -import com.pollex.pam.service.dto.SatisfactionCustomerScoreDTO; -import com.pollex.pam.service.dto.SatisfactionDTO; -import com.pollex.pam.service.mapper.AppointmentMapper; -import com.pollex.pam.service.mapper.SatisfactionDTOMapper; -import com.pollex.pam.service.mapper.SatisfactionMapper; -import com.pollex.pam.web.rest.errors.SatisfactionAlreadyExistException; -import com.pollex.pam.web.rest.errors.SatisfactionNotFoundException; -import org.springframework.util.Assert; - -@Service -@Transactional -public class SatisfactionService { - - private static final Logger log = LoggerFactory.getLogger(SatisfactionService.class); - - @Autowired - SatisfactionRepository satisfactionRepository; - - @Autowired - AppointmentMapper appointmentMapper; - - @Autowired - SatisfactionDTOMapper satisfactionDTOMapper; - - @Autowired - SatisfactionMapper satisfactionMapper; - - @Autowired - CustomerRepository customerRepository; - - @Autowired - ConsultantRepository consultantRepository; - - @Autowired - ConsultantService consultantService; - - @Autowired - PersonalNotificationService personalNotificationService; - - public Satisfaction save(Satisfaction satisfaction) { - satisfaction = satisfactionRepository.save(satisfaction); - if(satisfaction.getType() == SatisfactionTypeEnum.APPOINTMENT) { - consultantService.setConsultantAvgScore(satisfaction); - } - return satisfaction; - } - - public Satisfaction scorefaction(SatisfactionCustomerScoreDTO scoreDTO) { - Optional<Satisfaction> satisfactionOP = satisfactionRepository.findOneByAppointmentIdAndType(scoreDTO.getAppointmentId(), scoreDTO.getType()); - Satisfaction satisfaction = satisfactionOP.orElseThrow(SatisfactionNotFoundException::new); - - boolean isSameCustomer = satisfaction.getCustomerId().equals(SecurityUtils.getCustomerDBId()); - Assert.isTrue(isSameCustomer, "The currently logged in customer has a different ID than the customer on Satisfaction"); - - satisfaction.setScore(scoreDTO.getScore()); - satisfaction.setStatus(SatisfactionStatusEnum.FILLED); - save(satisfaction); - - if(satisfaction.getType() == SatisfactionTypeEnum.APPOINTMENT) { - personalNotificationService.createScorefactionToConsultant(satisfaction); - } - return satisfaction; - } - - public Satisfaction createAppointmentSatisfaction(Appointment appointment) { - boolean isexist = getByAppointmentIdAndType(appointment.getId(), SatisfactionTypeEnum.APPOINTMENT).isPresent(); - if(isexist) { - throw new SatisfactionAlreadyExistException(); - } - Satisfaction satisfaction = appointmentMapper.toAppointmentSatisfaction(appointment); - return save(satisfaction); - } -// -// public Satisfaction createSatisfaction(SatisfactionCustomerScoreDTO createDTO) { -// Satisfaction satisfaction = satisfactionDTOMapper.toSatisfaction(createDTO); -// return save(satisfaction); -// } - - public List<SatisfactionDTO> getByAgentNoAndType(String agentNo, SatisfactionTypeEnum type) { - List<Satisfaction> satisfactionList = satisfactionRepository.findByAgentNoAndType(agentNo, type); - return satisfactionMapper.toDTO(satisfactionList); - } - - public List<SatisfactionDTO> getByCustomerId(Long customerDBId) { - List<Satisfaction> satisfactionList = satisfactionRepository.findByCustomerId(customerDBId); - return satisfactionMapper.toDTO(satisfactionList); - } - - public Optional<Satisfaction> getByAppointmentIdAndType(Long appointmentId, SatisfactionTypeEnum type) { - return satisfactionRepository.findOneByAppointmentIdAndType(appointmentId, type); - } - - public List<Satisfaction> getByStatusAndType(SatisfactionStatusEnum status, SatisfactionTypeEnum type) { - return satisfactionRepository.findAllByStatusAndType(status, type); - } - - public List<Satisfaction> scoreAllfaction(List<SatisfactionCustomerScoreDTO> scoreDTO) { - List<Satisfaction> satisfactionList = new ArrayList<>(); - scoreDTO.stream().forEach(dto ->{ - satisfactionList.add(scorefaction(dto)); - }); - return satisfactionList; - } - - public void createUnfilledSystemSatisfaction(Appointment appointment) { - Satisfaction satisfaction = new Satisfaction(); - satisfaction.setAppointmentId(appointment.getId()); - satisfaction.setCustomerId(SecurityUtils.getCustomerDBId()); - satisfaction.setStatus(SatisfactionStatusEnum.UNFILLED); - satisfaction.setType(SatisfactionTypeEnum.SYSTEM); - - satisfactionRepository.save(satisfaction); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java b/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java deleted file mode 100644 index be06791..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/ScheduleTaskService.java +++ /dev/null @@ -1,169 +0,0 @@ -package com.pollex.pam.service; - -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.*; -import com.pollex.pam.enums.AppointmentStatusEnum; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.enums.SatisfactionStatusEnum; -import com.pollex.pam.enums.SatisfactionTypeEnum; -import com.pollex.pam.repository.AppointmentCustomerViewRepository; -import com.pollex.pam.repository.AppointmentExpiringNotifyRecordRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; -import org.thymeleaf.context.Context; -import org.thymeleaf.spring5.SpringTemplateEngine; - -import java.time.Instant; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.stream.Collectors; - -@Service -@Transactional -public class ScheduleTaskService { - - private static final String NOT_CONTACTED_NOTIFY_SUBJECT = "�����脰�蝜恍�"; - private static final Logger log = LoggerFactory.getLogger(ScheduleTaskService.class); - - @Autowired - ConsultantService consultantService; - - @Autowired - AppointmentService appointmentService; - - @Autowired - AppointmentCustomerViewRepository appointmentCustomerViewRepository; - - @Autowired - SendMsgService sendMsgService; - - @Autowired - SpringTemplateEngine springTemplateEngine; - - @Autowired - ApplicationProperties applicationProperties; - - @Autowired - AppointmentExpiringNotifyRecordRepository appointmentExpiringNotifyRecordRepository; - - @Autowired - SatisfactionService satisfactionService; - - @Autowired - PersonalNotificationService personalNotificationService; - - @Scheduled(cron = "0 30 8 * * *") - public void sendAppointmentPendingNotifyToConsultant() { - log.info("Starting send appointment pending notify to consultant"); - - Map<String, List<AppointmentCustomerView>> consultantWithPendingAppointments = - appointmentCustomerViewRepository.findAllByCommunicateStatusAndStatus(ContactStatusEnum.RESERVED, AppointmentStatusEnum.AVAILABLE) - .stream() - .filter(appointment -> - appointmentService.isAppointmentDateNotInIntervalFromNow(appointment, Constants.APPOINTMENT_PENDING_PHONE_INTERVAL, Constants.APPOINTMENT_PENDING_EMAIL_INTERVAL) - ) - .collect(Collectors.groupingBy(AppointmentCustomerView::getAgentNo)); - - consultantWithPendingAppointments.forEach((agentNo, pendingAppointments) -> { - int pendingAppointmentsSum = pendingAppointments.size(); - Consultant consultant = consultantService.findByAgentNo(agentNo); - Optional<String> optionalPhone = Optional.ofNullable(consultant.getPhoneNumber()).filter(StringUtils::hasText); - Optional<String> optionalEmail = Optional.ofNullable(consultant.getEmail()).filter(StringUtils::hasText); - - String emailContent = getAppointmentPendingNotifyEmailContent(pendingAppointmentsSum, getAppointmentPendingNotifyUrl()); - - optionalPhone.ifPresent(phone -> { - sendMsgService.sendMsgBySMS(phone, String.format("����%s������脰�蝜恬��������雯��嚗�%s" - , pendingAppointmentsSum, getAppointmentPendingNotifyUrl())); - }); - optionalEmail.ifPresent(email -> { - sendMsgService.sendMsgByEmail(email, NOT_CONTACTED_NOTIFY_SUBJECT, emailContent, true); - }); - }); - - log.info("Sending appointment pending notify to consultant finish"); - } - - @Scheduled(cron = "0 30 8 * * *") - public void sendAppointmentExpiringNotifyToCustomer() { - log.info("Starting send appointment expiring notify to customer"); - - List<AppointmentCustomerView> allByCommunicateStatus = - appointmentCustomerViewRepository.findAllByCommunicateStatusAndStatus(ContactStatusEnum.RESERVED, AppointmentStatusEnum.AVAILABLE) - .stream() - .filter(appointment -> - appointmentService.isAppointmentDateNotInIntervalFromNow(appointment, Constants.APPOINTMENT_EXPIRING_PHONE_INTERVAL, Constants.APPOINTMENT_EXPIRING_EMAIL_INTERVAL) - ) - .filter(this::isAppointmentExpiringNotifyNotOnLimit) - .collect(Collectors.toList()); - - allByCommunicateStatus.forEach(appointment -> { - Consultant consultant = consultantService.findByAgentNo(appointment.getAgentNo()); - Optional<String> optionalPhone = Optional.ofNullable(appointment.getPhone()).filter(StringUtils::hasText); - Optional<String> optionalEmail = Optional.ofNullable(appointment.getEmail()).filter(StringUtils::hasText); - - optionalPhone.ifPresent(phone -> - sendMsgService.sendMsgBySMS(phone, String.format("敺甇�����%s憿批�迤敹�葉嚗������蒂���隞“������雯��嚗�%s" - , consultant.getName(), getAppointmentExpiringNotifyUrl(appointment.getId()))) - ); - optionalEmail.ifPresent(email -> - sendMsgService.sendMsgByEmail(email, NOT_CONTACTED_NOTIFY_SUBJECT, getAppointmentExpiringNotifyEmail(consultant.getName(), getAppointmentExpiringNotifyUrl(appointment.getId())), true) - ); - - AppointmentExpiringNotifyRecord record = new AppointmentExpiringNotifyRecord(); - record.setAppointmentId(appointment.getId()); - record.setSendTime(Instant.now()); - - appointmentExpiringNotifyRecordRepository.save(record); - }); - - log.info("Sending appointment expiring notify to customer finish"); - } - - @Scheduled(cron = "0 30 8 * * *") - public void sendNotFillAppointmentSatisfactionToPersonalNotification() { - Map<Long, List<Satisfaction>> customerNotFillSatisfactions = - satisfactionService.getByStatusAndType(SatisfactionStatusEnum.UNFILLED, SatisfactionTypeEnum.APPOINTMENT) - .stream() - .collect(Collectors.groupingBy(Satisfaction::getCustomerId)); - - customerNotFillSatisfactions.forEach((customerId, notFillSatisfactions) -> - personalNotificationService.createNotFillAppointmentSatisfactionNumberToCustomer(customerId, notFillSatisfactions.size()) - ); - } - private boolean isAppointmentExpiringNotifyNotOnLimit(AppointmentCustomerView appointment) { - int sendNotifyToCustomerRecordSum = - appointmentExpiringNotifyRecordRepository.findAllByAppointmentId(appointment.getId()).size(); - - return sendNotifyToCustomerRecordSum < Constants.SEND_EXPIRING_NOTIFY_LIMIT; - } - - private String getAppointmentPendingNotifyUrl() { - return applicationProperties.getFrontEndDomain() + "/consultantLogin"; - } - - private String getAppointmentExpiringNotifyUrl(Long appointmentId) { - return applicationProperties.getFrontEndDomain() + "?notContactAppointmentId=" + appointmentId; - } - - private String getAppointmentPendingNotifyEmailContent(int sum, String notifyUrl) { - Context context = new Context(); - context.setVariable("pendingAppointmentSum", sum); - context.setVariable("notifyUrl", notifyUrl); - return springTemplateEngine.process("mail/appointmentPendingNotifyEmail", context); - } - - private String getAppointmentExpiringNotifyEmail(String consultantName, String notifyUrl) { - Context context = new Context(); - context.setVariable("consultantName", consultantName); - context.setVariable("notifyUrl", notifyUrl); - return springTemplateEngine.process("mail/appointmentExpiringNotifyEmail", context); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/SendMsgService.java b/pamapi/src/main/java/com/pollex/pam/service/SendMsgService.java deleted file mode 100644 index a5be71e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/SendMsgService.java +++ /dev/null @@ -1,172 +0,0 @@ -package com.pollex.pam.service; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.config.ApplicationProperties.Email; -import com.pollex.pam.config.ApplicationProperties.SMS; -import com.pollex.pam.config.Constants; -import com.pollex.pam.enums.SendEmailMsgMethod; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.service.dto.*; -import com.pollex.pam.service.util.HttpRequestUtil; -import com.pollex.pam.web.rest.errors.SendEmailFailException; -import com.pollex.pam.web.rest.errors.SendSMSFailException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.env.Environment; -import org.springframework.core.env.Profiles; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.thymeleaf.spring5.SpringTemplateEngine; -import tech.jhipster.config.JHipsterConstants; - -import java.nio.charset.StandardCharsets; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.*; -import java.util.Base64.Encoder; - -@Service -public class SendMsgService { - - private static final Logger log = LoggerFactory.getLogger(SendMsgService.class); - private final Encoder encoder = Base64.getEncoder(); - - private static final String SEND_SMS_SUCCESS_CODE = "1"; - - @Autowired - ApplicationProperties applicationProperties; - - @Autowired - ConsultantRepository consultantRepository; - - @Autowired - SpringTemplateEngine springTemplateEngine; - - @Autowired - Environment environment; - - @Autowired - MailService mailService; - - public SendSMSResponse sendMsgBySMS(String toMobile, String content) throws SendSMSFailException { - - SMS smsProperties = applicationProperties.getSms(); - if(!smsProperties.isSendNotifyMsg()) { -// return getMockSMSResponse(); - return null; - } - - SendSMSRequest sendSMSRequest = new SendSMSRequest(); - sendSMSRequest.setpKey(UUID.randomUUID().toString()); - sendSMSRequest.setSourceCode(smsProperties.getSourceCode()); - sendSMSRequest.setSender(smsProperties.getSender()); - sendSMSRequest.setMsgTypeSet(smsProperties.getSmsType()); - sendSMSRequest.setSendTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:00"))); - sendSMSRequest.setSubject(encoder.encodeToString(smsProperties.getSubject().getBytes(StandardCharsets.UTF_8))); - sendSMSRequest.setActivityId(""); - - SMSDetail smsDetail = new SMSDetail(); - smsDetail.setMobile(toMobile); - smsDetail.setContent(encoder.encodeToString(content.getBytes(StandardCharsets.UTF_8))); - - sendSMSRequest.setDetail(Collections.singletonList(smsDetail)); - - try { - ResponseEntity<SendSMSResponse> responseEntity = HttpRequestUtil.postWithJson(smsProperties.getUrl(), sendSMSRequest, SendSMSResponse.class); - SendSMSResponse response = responseEntity.getBody(); - - log.debug("response status code = {}", responseEntity.getStatusCode()); - log.debug("smsResponse = {}", responseEntity.getBody()); - - if(!SEND_SMS_SUCCESS_CODE.equals(response.getReturnCode())) { - throw new SendSMSFailException("sms service return code = " + response.getReturnCode() + ", error_msg = " + response.getErrorMsg()); - } - - return responseEntity.getBody(); - } catch (SendSMSFailException e) { - throw e; - } catch (Exception e) { - log.warn("send sms fail by other reason!", e); - throw new SendSMSFailException("send sms fail by other reason!"); - } - } - -// private SendSMSResponse getMockSMSResponse() { -// SendSMSResponse mock = new SendSMSResponse(); -// mock.set -// return null; -// } - - public String sendMsgByEmail(String to, String subject, String content, boolean htmlFormat) throws SendEmailFailException{ - return sendMsgByEmail(to, subject, content, htmlFormat, Collections.emptyList(), Collections.emptyList()); - } - - public String sendMsgByEmail(String toAddress, String subject, String content, boolean htmlFormat, List<String> toCCAddress, - List<String> attachments) throws SendEmailFailException { - String fromAddress = applicationProperties.getEmail().getSenderEmail(); - - SendMailRequest sendMailRequest = new SendMailRequest(); - sendMailRequest.setSendMailAddresses(Collections.singletonList(toAddress)); - sendMailRequest.setFrom(fromAddress); - sendMailRequest.setContent(content); - sendMailRequest.setSubject(subject); - sendMailRequest.setSendCCMailAddresses(toCCAddress); - sendMailRequest.setAttachments(attachments); - sendMailRequest.setHtmlFormat(htmlFormat); - sendMailRequest.setFunctionId(applicationProperties.getEmail().getFunctionId()); - - return sendMsgByEmail(sendMailRequest); - } - - public String sendMsgByEmail(SendMailRequest sendMailRequest) throws SendEmailFailException{ - final Email emailProperties = applicationProperties.getEmail(); - - if(!emailProperties.isSendNotifyMsg()) { - return null; - } - - if(emailProperties.getMethod() == SendEmailMsgMethod.POLLEX_GMAIL) { - return sendMsgByPollexGmail(sendMailRequest); - } - else if(emailProperties.getMethod() == SendEmailMsgMethod.PAM_EMAIL_SERVICE) { - return sendMsgByPamEmailService(sendMailRequest); - } - - return null; - } - - private String sendMsgByPollexGmail(SendMailRequest sendMailRequest) { - String subject = sendMailRequest.getSubject(); - String content = sendMailRequest.getContent(); - boolean isHtml = sendMailRequest.isHtmlFormat(); - sendMailRequest.getSendMailAddresses().forEach(receiver -> mailService.sendEmail(receiver, subject, content, false, isHtml)); - - return null; - } - - private String sendMsgByPamEmailService(SendMailRequest sendMailRequest) { - final Email emailProperties = applicationProperties.getEmail(); - try { - ResponseEntity<String> responseEntity = - HttpRequestUtil.postWithJson(emailProperties.getUrl(), sendMailRequest, String.class); - log.debug("responseEntity = {}", responseEntity); - - String rawResponseString = responseEntity.getBody(); - SendMailResponse sendMailResponse = new ObjectMapper().readValue(rawResponseString, SendMailResponse.class); - log.debug("sendMailResponse = {}", sendMailResponse); - - if (sendMailResponse == null || sendMailResponse.getData() == null || !"ADDED".equalsIgnoreCase(sendMailResponse.getData().getMessageStatus())) { - throw new SendEmailFailException("send email service return error msg! raw response string= " + rawResponseString); - } - - return responseEntity.getBody(); - } catch (SendEmailFailException e) { - throw e; - } catch (Exception e) { - log.warn("send email fail by other reason", e); - throw new SendEmailFailException("send email failed!"); - } - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/UserService.java b/pamapi/src/main/java/com/pollex/pam/service/UserService.java deleted file mode 100644 index 3bfa0ad..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/UserService.java +++ /dev/null @@ -1,333 +0,0 @@ -package com.pollex.pam.service; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; -import java.util.stream.Collectors; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.cache.CacheManager; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.Authority; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.AuthorityRepository; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.dto.UserDTO; - -import tech.jhipster.security.RandomUtil; - -/** - * Service class for managing users. - */ -@Service -@Transactional -public class UserService { - - private final Logger log = LoggerFactory.getLogger(UserService.class); - - private final UserRepository userRepository; - - private final PasswordEncoder passwordEncoder; - - private final AuthorityRepository authorityRepository; - - private final CacheManager cacheManager; - - - public UserService( - UserRepository userRepository, - PasswordEncoder passwordEncoder, - AuthorityRepository authorityRepository, - CacheManager cacheManager - ) { - this.userRepository = userRepository; - this.passwordEncoder = passwordEncoder; - this.authorityRepository = authorityRepository; - this.cacheManager = cacheManager; - } - - public Optional<User> activateRegistration(String key) { - log.debug("Activating user for activation key {}", key); - return userRepository - .findOneByActivationKey(key) - .map(user -> { - // activate given user for the registration key. - user.setActivated(true); - user.setActivationKey(null); - this.clearUserCaches(user); - log.debug("Activated user: {}", user); - return user; - }); - } - - public Optional<User> completePasswordReset(String newPassword, String key) { - log.debug("Reset user password for reset key {}", key); - return userRepository - .findOneByResetKey(key) - .filter(user -> user.getResetDate().isAfter(Instant.now().minus(1, ChronoUnit.DAYS))) - .map(user -> { - user.setPassword(passwordEncoder.encode(newPassword)); - user.setResetKey(null); - user.setResetDate(null); - this.clearUserCaches(user); - return user; - }); - } - - public Optional<User> requestPasswordReset(String mail) { - return userRepository - .findOneByEmailIgnoreCase(mail) - .filter(User::isActivated) - .map(user -> { - user.setResetKey(RandomUtil.generateResetKey()); - user.setResetDate(Instant.now()); - this.clearUserCaches(user); - return user; - }); - } - -// public User registerUser(AdminUserDTO userDTO, String password) { -// userRepository -// .findOneByLogin(userDTO.getLogin().toLowerCase()) -// .ifPresent(existingUser -> { -// boolean removed = removeNonActivatedUser(existingUser); -// if (!removed) { -// throw new UsernameAlreadyUsedException(); -// } -// }); -// userRepository -// .findOneByEmailIgnoreCase(userDTO.getEmail()) -// .ifPresent(existingUser -> { -// boolean removed = removeNonActivatedUser(existingUser); -// if (!removed) { -// throw new EmailAlreadyUsedException(); -// } -// }); -// User newUser = new User(); -// String encryptedPassword = passwordEncoder.encode(password); -// newUser.setLogin(userDTO.getLogin().toLowerCase()); -// // new user gets initially a generated password -// newUser.setPassword(encryptedPassword); -// newUser.setFirstName(userDTO.getFirstName()); -// newUser.setLastName(userDTO.getLastName()); -// if (userDTO.getEmail() != null) { -// newUser.setEmail(userDTO.getEmail().toLowerCase()); -// } -// newUser.setImageUrl(userDTO.getImageUrl()); -// newUser.setLangKey(userDTO.getLangKey()); -// // new user is not active -// newUser.setActivated(false); -// // new user gets registration key -// newUser.setActivationKey(RandomUtil.generateActivationKey()); -// Set<Authority> authorities = new HashSet<>(); -// authorityRepository.findById(AuthoritiesConstants.USER).ifPresent(authorities::add); -// newUser.setAuthorities(authorities); -// userRepository.save(newUser); -// this.clearUserCaches(newUser); -// log.debug("Created Information for User: {}", newUser); -// return newUser; -// } - - private boolean removeNonActivatedUser(User existingUser) { - if (existingUser.isActivated()) { - return false; - } - userRepository.delete(existingUser); - userRepository.flush(); - this.clearUserCaches(existingUser); - return true; - } - - public User createUser(AdminUserDTO userDTO) { - User user = new User(); - user.setLogin(userDTO.getLogin().toLowerCase()); - user.setFirstName(userDTO.getFirstName()); - user.setLastName(userDTO.getLastName()); - if (userDTO.getEmail() != null) { - user.setEmail(userDTO.getEmail().toLowerCase()); - } - user.setImageUrl(userDTO.getImageUrl()); - if (userDTO.getLangKey() == null) { - user.setLangKey(Constants.DEFAULT_LANGUAGE); // default language - } else { - user.setLangKey(userDTO.getLangKey()); - } - String encryptedPassword = passwordEncoder.encode(RandomUtil.generatePassword()); - user.setPassword(encryptedPassword); - user.setResetKey(RandomUtil.generateResetKey()); - user.setResetDate(Instant.now()); - user.setActivated(true); - if (userDTO.getAuthorities() != null) { - Set<Authority> authorities = userDTO - .getAuthorities() - .stream() - .map(authorityRepository::findById) - .filter(Optional::isPresent) - .map(Optional::get) - .collect(Collectors.toSet()); - user.setAuthorities(authorities); - } - userRepository.save(user); - this.clearUserCaches(user); - log.debug("Created Information for User: {}", user); - return user; - } - - /** - * Update all information for a specific user, and return the modified user. - * - * @param userDTO user to update. - * @return updated user. - */ - public Optional<AdminUserDTO> updateUser(AdminUserDTO userDTO) { - return Optional - .of(userRepository.findById(userDTO.getId())) - .filter(Optional::isPresent) - .map(Optional::get) - .map(user -> { - this.clearUserCaches(user); - user.setLogin(userDTO.getLogin().toLowerCase()); - user.setFirstName(userDTO.getFirstName()); - user.setLastName(userDTO.getLastName()); - if (userDTO.getEmail() != null) { - user.setEmail(userDTO.getEmail().toLowerCase()); - } - user.setImageUrl(userDTO.getImageUrl()); - user.setActivated(userDTO.isActivated()); - user.setLangKey(userDTO.getLangKey()); - Set<Authority> managedAuthorities = user.getAuthorities(); - managedAuthorities.clear(); - userDTO - .getAuthorities() - .stream() - .map(authorityRepository::findById) - .filter(Optional::isPresent) - .map(Optional::get) - .forEach(managedAuthorities::add); - this.clearUserCaches(user); - log.debug("Changed Information for User: {}", user); - return user; - }) - .map(AdminUserDTO::new); - } - - public void deleteUser(String login) { - userRepository - .findOneByLogin(login) - .ifPresent(user -> { - userRepository.delete(user); - this.clearUserCaches(user); - log.debug("Deleted User: {}", user); - }); - } - - /** - * Update basic information (first name, last name, email, language) for the current user. - * - * @param firstName first name of user. - * @param lastName last name of user. - * @param email email id of user. - * @param langKey language key. - * @param imageUrl image URL of user. - */ - public void updateUser(String firstName, String lastName, String email, String langKey, String imageUrl) { - SecurityUtils - .getCurrentUserLogin() - .flatMap(userRepository::findOneByLogin) - .ifPresent(user -> { - user.setFirstName(firstName); - user.setLastName(lastName); - if (email != null) { - user.setEmail(email.toLowerCase()); - } - user.setLangKey(langKey); - user.setImageUrl(imageUrl); - this.clearUserCaches(user); - log.debug("Changed Information for User: {}", user); - }); - } - - @Transactional - public void changePassword(String currentClearTextPassword, String newPassword) { - SecurityUtils - .getCurrentUserLogin() - .flatMap(userRepository::findOneByLogin) - .ifPresent(user -> { - String currentEncryptedPassword = user.getPassword(); - if (!passwordEncoder.matches(currentClearTextPassword, currentEncryptedPassword)) { - throw new InvalidPasswordException(); - } - String encryptedPassword = passwordEncoder.encode(newPassword); - user.setPassword(encryptedPassword); - this.clearUserCaches(user); - log.debug("Changed password for User: {}", user); - }); - } - - @Transactional(readOnly = true) - public Page<AdminUserDTO> getAllManagedUsers(Pageable pageable) { - return userRepository.findAll(pageable).map(AdminUserDTO::new); - } - - @Transactional(readOnly = true) - public Page<UserDTO> getAllPublicUsers(Pageable pageable) { - return userRepository.findAllByIdNotNullAndActivatedIsTrue(pageable).map(UserDTO::new); - } - - @Transactional(readOnly = true) - public Optional<User> getUserWithAuthoritiesByLogin(String login) { - return userRepository.findOneWithAuthoritiesByLogin(login); - } - - @Transactional(readOnly = true) - public Optional<User> getUserWithAuthorities() { - return SecurityUtils.getCurrentUserLogin().flatMap(userRepository::findOneWithAuthoritiesByLogin); - } - - /** - * Not activated users should be automatically deleted after 3 days. - * <p> - * This is scheduled to get fired everyday, at 01:00 (am). - */ - @Scheduled(cron = "0 0 1 * * ?") - public void removeNotActivatedUsers() { - userRepository - .findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(Instant.now().minus(3, ChronoUnit.DAYS)) - .forEach(user -> { - log.debug("Deleting not activated user {}", user.getLogin()); - userRepository.delete(user); - this.clearUserCaches(user); - }); - } - - /** - * Gets a list of all the authorities. - * @return a list of all the authorities. - */ - @Transactional(readOnly = true) - public List<String> getAuthorities() { - return authorityRepository.findAll().stream().map(Authority::getName).collect(Collectors.toList()); - } - - private void clearUserCaches(User user) { - Objects.requireNonNull(cacheManager.getCache(UserRepository.USERS_BY_LOGIN_CACHE)).evict(user.getLogin()); - if (user.getEmail() != null) { - Objects.requireNonNull(cacheManager.getCache(UserRepository.USERS_BY_EMAIL_CACHE)).evict(user.getEmail()); - } - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/UsernameAlreadyUsedException.java b/pamapi/src/main/java/com/pollex/pam/service/UsernameAlreadyUsedException.java deleted file mode 100644 index 3d011f8..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/UsernameAlreadyUsedException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.service; - -public class UsernameAlreadyUsedException extends RuntimeException { - - private static final long serialVersionUID = 1L; - - public UsernameAlreadyUsedException() { - super("Login name already used!"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java deleted file mode 100644 index 13b270d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AbstractAppointmentProcessDTO.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.enums.ContactStatusEnum; - -public abstract class AbstractAppointmentProcessDTO{ - - private ContactStatusEnum contactStatus; - private Long appointmentId; -// private Long closedInfoId; - - public ContactStatusEnum getContactStatus() { - return contactStatus; - } - - public void setContactStatus(ContactStatusEnum contactStatus) { - this.contactStatus = contactStatus; - } - - public Long getAppointmentId() { - return appointmentId; - } - - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - -// public Long getClosedInfoId() { -// return closedInfoId; -// } -// -// public void setClosedInfoId(Long closedInfoId) { -// this.closedInfoId = closedInfoId; -// } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantData.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantData.java deleted file mode 100644 index 5bf8e35..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantData.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; - -public class AddConsultantData { - private String agentNo; - private Instant createdTime; - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public Instant getCreatedTime() { - return createdTime; - } - - public void setCreatedTime(Instant createdTime) { - this.createdTime = createdTime; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantParam.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantParam.java deleted file mode 100644 index 7e6e2af..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AddConsultantParam.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.List; - -public class AddConsultantParam { - List<AddConsultantData> consultantList; - - public List<AddConsultantData> getConsultantList() { - return consultantList; - } - - public void setConsultantList(List<AddConsultantData> consultantList) { - this.consultantList = consultantList; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AdminUserDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AdminUserDTO.java deleted file mode 100644 index bcdafec..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AdminUserDTO.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.Authority; -import com.pollex.pam.domain.User; -import java.time.Instant; -import java.util.Set; -import java.util.stream.Collectors; -import javax.validation.constraints.*; - -/** - * A DTO representing a user, with his authorities. - */ -public class AdminUserDTO { - - private Long id; - - @NotBlank - @Pattern(regexp = Constants.LOGIN_REGEX) - @Size(min = 1, max = 50) - private String login; - - @Size(max = 50) - private String firstName; - - @Size(max = 50) - private String lastName; - - @Email - @Size(min = 5, max = 254) - private String email; - - @Size(max = 256) - private String imageUrl; - - private boolean activated = false; - - @Size(min = 2, max = 10) - private String langKey; - - private String createdBy; - - private Instant createdDate; - - private String lastModifiedBy; - - private Instant lastModifiedDate; - - private Set<String> authorities; - - public AdminUserDTO() { - // Empty constructor needed for Jackson. - } - - public AdminUserDTO(User user) { - this.id = user.getId(); - this.login = user.getLogin(); - this.firstName = user.getFirstName(); - this.lastName = user.getLastName(); - this.email = user.getEmail(); - this.activated = user.isActivated(); - this.imageUrl = user.getImageUrl(); - this.langKey = user.getLangKey(); - this.createdBy = user.getCreatedBy(); - this.createdDate = user.getCreatedDate(); - this.lastModifiedBy = user.getLastModifiedBy(); - this.lastModifiedDate = user.getLastModifiedDate(); - this.authorities = user.getAuthorities().stream().map(Authority::getName).collect(Collectors.toSet()); - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getImageUrl() { - return imageUrl; - } - - public void setImageUrl(String imageUrl) { - this.imageUrl = imageUrl; - } - - public boolean isActivated() { - return activated; - } - - public void setActivated(boolean activated) { - this.activated = activated; - } - - public String getLangKey() { - return langKey; - } - - public void setLangKey(String langKey) { - this.langKey = langKey; - } - - public String getCreatedBy() { - return createdBy; - } - - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - - public Instant getCreatedDate() { - return createdDate; - } - - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - - public String getLastModifiedBy() { - return lastModifiedBy; - } - - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - - public Set<String> getAuthorities() { - return authorities; - } - - public void setAuthorities(Set<String> authorities) { - this.authorities = authorities; - } - - // prettier-ignore - @Override - public String toString() { - return "AdminUserDTO{" + - "login='" + login + '\'' + - ", firstName='" + firstName + '\'' + - ", lastName='" + lastName + '\'' + - ", email='" + email + '\'' + - ", imageUrl='" + imageUrl + '\'' + - ", activated=" + activated + - ", langKey='" + langKey + '\'' + - ", createdBy=" + createdBy + - ", createdDate=" + createdDate + - ", lastModifiedBy='" + lastModifiedBy + '\'' + - ", lastModifiedDate=" + lastModifiedDate + - ", authorities=" + authorities + - "}"; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java deleted file mode 100644 index bc9a8e2..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCloseDTO.java +++ /dev/null @@ -1,77 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.Date; - -import com.pollex.pam.enums.ContactStatusEnum; - -public class AppointmentCloseDTO{ - -// private Long closedInfoId; - private String policyholderIdentityId; - private String planCode; - private Date policyEntryDate; - private String remark; - private String closedReason; - private String closedOtherReason; - private ContactStatusEnum contactStatus; - private Long appointmentId; - - public String getPolicyholderIdentityId() { - return policyholderIdentityId; - } - public void setPolicyholderIdentityId(String policyholderIdentityId) { - this.policyholderIdentityId = policyholderIdentityId; - } - public String getPlanCode() { - return planCode; - } - public void setPlanCode(String planCode) { - this.planCode = planCode; - } - public Date getPolicyEntryDate() { - return policyEntryDate; - } - public void setPolicyEntryDate(Date policyEntryDate) { - this.policyEntryDate = policyEntryDate; - } - public String getRemark() { - return remark; - } - public void setRemark(String remark) { - this.remark = remark; - } - public String getClosedReason() { - return closedReason; - } - public void setClosedReason(String closedReason) { - this.closedReason = closedReason; - } - public String getClosedOtherReason() { - return closedOtherReason; - } - public void setClosedOtherReason(String closedOtherReason) { - this.closedOtherReason = closedOtherReason; - } - public ContactStatusEnum getContactStatus() { - return contactStatus; - } - public void setContactStatus(ContactStatusEnum contactStatus) { - this.contactStatus = contactStatus; - } - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } -// public Long getClosedInfoId() { -// return closedInfoId; -// } -// public void setClosedInfoId(Long closedInfoId) { -// this.closedInfoId = closedInfoId; -// } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCreateDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCreateDTO.java deleted file mode 100644 index 3c566ab..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCreateDTO.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.pollex.pam.service.dto; - -public class AppointmentCreateDTO { - - private String phone; - private String email; - private String contactType; //�蝯⊥撘� - private String gender; - private String age; - private String job; - private String requirement; - private String hopeContactTime; //撣�蝯∠���� - private String otherRequirement; - private String agentNo; - - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public String getContactType() { - return contactType; - } - public void setContactType(String contactType) { - this.contactType = contactType; - } - public String getGender() { - return gender; - } - public void setGender(String gender) { - this.gender = gender; - } - public String getJob() { - return job; - } - public void setJob(String job) { - this.job = job; - } - public String getRequirement() { - return requirement; - } - public void setRequirement(String requirement) { - this.requirement = requirement; - } - public String getHopeContactTime() { - return hopeContactTime; - } - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - public String getOtherRequirement() { - return otherRequirement; - } - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - public String getAge() { - return age; - } - public void setAge(String age) { - this.age = age; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCustomerViewDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCustomerViewDTO.java deleted file mode 100644 index 6c3f3fb..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentCustomerViewDTO.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; -import java.util.List; - -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.domain.AppointmentMemo; -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.domain.InterviewRecord; -import com.pollex.pam.enums.ContactStatusEnum; - -public class AppointmentCustomerViewDTO { - - private Long id; - private String phone; - private String email; - private String contactType; - private String gender; - private String age; - private String job; - private String requirement; - private ContactStatusEnum communicateStatus; - private String hopeContactTime; - private String otherRequirement; - private Instant appointmentDate; - private Instant lastModifiedDate; - private String agentNo; - private Long customerId; - private String name; - private Instant consultantViewTime; - private Instant consultantReadTime; - private Instant contactTime; - private Float satisfactionScore; - private List<AppointmentMemo> appointmentMemoList; - private List<InterviewRecordDTO> interviewRecordDTOs; - private List<AppointmentNoticeLog> appointmentNoticeLogs; - private AppointmentClosedInfo appointmentClosedInfo; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public String getContactType() { - return contactType; - } - public void setContactType(String contactType) { - this.contactType = contactType; - } - public String getGender() { - return gender; - } - public void setGender(String gender) { - this.gender = gender; - } - public String getAge() { - return age; - } - public void setAge(String age) { - this.age = age; - } - public String getJob() { - return job; - } - public void setJob(String job) { - this.job = job; - } - public String getRequirement() { - return requirement; - } - public void setRequirement(String requirement) { - this.requirement = requirement; - } - public ContactStatusEnum getCommunicateStatus() { - return communicateStatus; - } - public void setCommunicateStatus(ContactStatusEnum communicateStatus) { - this.communicateStatus = communicateStatus; - } - public String getHopeContactTime() { - return hopeContactTime; - } - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - public String getOtherRequirement() { - return otherRequirement; - } - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - public Instant getAppointmentDate() { - return appointmentDate; - } - public void setAppointmentDate(Instant appointmentDate) { - this.appointmentDate = appointmentDate; - } - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - public Long getCustomerId() { - return customerId; - } - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public Instant getConsultantViewTime() { - return consultantViewTime; - } - public void setConsultantViewTime(Instant consultantViewTime) { - this.consultantViewTime = consultantViewTime; - } - public Instant getConsultantReadTime() { - return consultantReadTime; - } - public void setConsultantReadTime(Instant consultantReadTime) { - this.consultantReadTime = consultantReadTime; - } - public Instant getContactTime() { - return contactTime; - } - public void setContactTime(Instant contactTime) { - this.contactTime = contactTime; - } - public Float getSatisfactionScore() { - return satisfactionScore; - } - public void setSatisfactionScore(Float satisfactionScore) { - this.satisfactionScore = satisfactionScore; - } - public List<AppointmentMemo> getAppointmentMemoList() { - return appointmentMemoList; - } - public void setAppointmentMemoList(List<AppointmentMemo> appointmentMemoList) { - this.appointmentMemoList = appointmentMemoList; - } - public List<InterviewRecordDTO> getInterviewRecordDTOs() { - return interviewRecordDTOs; - } - public void setInterviewRecordDTOs(List<InterviewRecordDTO> interviewRecordDTOs) { - this.interviewRecordDTOs = interviewRecordDTOs; - } - public List<AppointmentNoticeLog> getAppointmentNoticeLogs() { - return appointmentNoticeLogs; - } - public void setAppointmentNoticeLogs(List<AppointmentNoticeLog> appointmentNoticeLogs) { - this.appointmentNoticeLogs = appointmentNoticeLogs; - } - public AppointmentClosedInfo getAppointmentClosedInfo() { - return appointmentClosedInfo; - } - public void setAppointmentClosedInfo(AppointmentClosedInfo appointmentClosedInfo) { - this.appointmentClosedInfo = appointmentClosedInfo; - } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentDTO.java deleted file mode 100644 index ea18083..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentDTO.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; - -import org.springframework.stereotype.Service; - -import com.pollex.pam.enums.ContactStatusEnum; - -public class AppointmentDTO { - - private Long id; - private String phone; - private String email; - private String contactType; - private String gender; - private String age; - private String job; - private String requirement; - private ContactStatusEnum communicateStatus; - private String hopeContactTime; - private String otherRequirement; - private Instant appointmentDate; - private Instant lastModifiedDate; - private String agentNo; - private Long customerId; - private Instant consultantViewTime; - private Instant consultantReadTime; - private Instant contactTime; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public String getContactType() { - return contactType; - } - public void setContactType(String contactType) { - this.contactType = contactType; - } - public String getGender() { - return gender; - } - public void setGender(String gender) { - this.gender = gender; - } - public String getAge() { - return age; - } - public void setAge(String age) { - this.age = age; - } - public String getJob() { - return job; - } - public void setJob(String job) { - this.job = job; - } - public String getRequirement() { - return requirement; - } - public void setRequirement(String requirement) { - this.requirement = requirement; - } - public ContactStatusEnum getCommunicateStatus() { - return communicateStatus; - } - public void setCommunicateStatus(ContactStatusEnum communicateStatus) { - this.communicateStatus = communicateStatus; - } - public String getHopeContactTime() { - return hopeContactTime; - } - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - public String getOtherRequirement() { - return otherRequirement; - } - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - public Instant getAppointmentDate() { - return appointmentDate; - } - public void setAppointmentDate(Instant appointmentDate) { - this.appointmentDate = appointmentDate; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - public Long getCustomerId() { - return customerId; - } - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - public Instant getConsultantViewTime() { - return consultantViewTime; - } - public void setConsultantViewTime(Instant consultantViewTime) { - this.consultantViewTime = consultantViewTime; - } - public Instant getConsultantReadTime() { - return consultantReadTime; - } - public void setConsultantReadTime(Instant consultantReadTime) { - this.consultantReadTime = consultantReadTime; - } - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - public Instant getContactTime() { - return contactTime; - } - public void setContactTime(Instant contactTime) { - this.contactTime = contactTime; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoCreateDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoCreateDTO.java deleted file mode 100644 index 1750480..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoCreateDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.pollex.pam.service.dto; - -public class AppointmentMemoCreateDTO { - - private String content; - private Long appointmentId; - - public String getContent() { - return content; - } - public void setContent(String content) { - this.content = content; - } - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoUpdateDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoUpdateDTO.java deleted file mode 100644 index 262838a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentMemoUpdateDTO.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.pollex.pam.service.dto; - -public class AppointmentMemoUpdateDTO{ - - private Long id; - private String content; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentNoticeSendDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentNoticeSendDTO.java deleted file mode 100644 index 2256fc8..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentNoticeSendDTO.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.Date; - -public class AppointmentNoticeSendDTO { - - private String message; - private Long appointmentId; - private String email; - private String phone; -// private String noticeType; - private Date interviewDate; - - public String getMessage() { - return message; - } - public void setMessage(String message) { - this.message = message; - } - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } -// public String getNoticeType() { -// return noticeType; -// } -// public void setNoticeType(String noticeType) { -// this.noticeType = noticeType; -// } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public Date getInterviewDate() { - return interviewDate; - } - public void setInterviewDate(Date interviewDate) { - this.interviewDate = interviewDate; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentUpdateDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentUpdateDTO.java deleted file mode 100644 index 0be3753..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/AppointmentUpdateDTO.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.pollex.pam.service.dto; - -public class AppointmentUpdateDTO { - private Long id; - private String phone; - private String email; - private String contactType; - private String gender; - private String age; - private String job; - private String requirement; - private String hopeContactTime; - private String otherRequirement; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getContactType() { - return contactType; - } - - public void setContactType(String contactType) { - this.contactType = contactType; - } - - public String getGender() { - return gender; - } - - public void setGender(String gender) { - this.gender = gender; - } - - public String getAge() { - return age; - } - - public void setAge(String age) { - this.age = age; - } - - public String getJob() { - return job; - } - - public void setJob(String job) { - this.job = job; - } - - public String getRequirement() { - return requirement; - } - - public void setRequirement(String requirement) { - this.requirement = requirement; - } - - public String getHopeContactTime() { - return hopeContactTime; - } - - public void setHopeContactTime(String hopeContactTime) { - this.hopeContactTime = hopeContactTime; - } - - public String getOtherRequirement() { - return otherRequirement; - } - - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/ClosedProcessDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/ClosedProcessDTO.java deleted file mode 100644 index 9b18da4..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/ClosedProcessDTO.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.pollex.pam.service.dto; - -public class ClosedProcessDTO extends AbstractAppointmentProcessDTO{ - - private String remark; - private String closedReason; - private String closedOtherReason; - - public String getRemark() { - return remark; - } - public void setRemark(String remark) { - this.remark = remark; - } - public String getClosedReason() { - return closedReason; - } - public void setClosedReason(String closedReason) { - this.closedReason = closedReason; - } - public String getClosedOtherReason() { - return closedOtherReason; - } - public void setClosedOtherReason(String closedOtherReason) { - this.closedOtherReason = closedOtherReason; - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDTO.java deleted file mode 100644 index f847769..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDTO.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.pollex.pam.enums.ContactStatusEnum; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.List; - -public class ConsultantDTO { - - @JsonProperty("new") - private boolean newConsultant; - private String agentNo; - private String name; - private String img; - private List<String> expertise; - private Float avgScore; - private ContactStatusEnum contactStatus; - private Instant updateTime; - private String role; - private String seniority; - private int suitability; - - public boolean isNewConsultant() { - if(updateTime != null){ - Instant nowTimestamp = Instant.now(); - return ChronoUnit.DAYS.between(updateTime, nowTimestamp) < 3; - } - return false; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getImg() { - return img; - } - - public void setImg(String img) { - this.img = img; - } - - public List<String> getExpertise() { - return expertise; - } - - public void setExpertise(List<String> expertise) { - this.expertise = expertise; - } - - public Float getAvgScore() { - return avgScore; - } - - public void setAvgScore(Float avgScore) { - this.avgScore = avgScore; - } - - public ContactStatusEnum getContactStatus() { - return contactStatus; - } - - public void setContactStatus(ContactStatusEnum contactStatus) { - this.contactStatus = contactStatus; - } - - public Instant getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Instant updateTime) { - this.updateTime = updateTime; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - - public String getSeniority() { - return seniority; - } - - public void setSeniority(String seniority) { - this.seniority = seniority; - } - - public void setNewConsultant(boolean newConsultant) { - this.newConsultant = newConsultant; - } - - public int getSuitability() { - return suitability; - } - - public void setSuitability(int suitability) { - this.suitability = suitability; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java deleted file mode 100644 index f514e9d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantDetailDTO.java +++ /dev/null @@ -1,193 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; -import java.util.List; - -import com.pollex.pam.enums.GenderEnum; - -public class ConsultantDetailDTO { - - private String name; - private String agentNo; - private String role; - private String img; - private Float avgScore; - private String title; - private String phoneNumber; - private String serveArea; - private String companyAddress; - private Instant latestLoginTime; - private String seniority; - private Number nearlyMonthAppointmentCount; - private Number allAppointmentCount; - private List<String> expertise; - private String concept; - private String experiences; - private String awards; - private GenderEnum gender; - private String communicationStyle; - private String email; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - - public String getImg() { - return img; - } - - public void setImg(String img) { - this.img = img; - } - - public Float getAvgScore() { - return avgScore; - } - - public void setAvgScore(Float avgScore) { - this.avgScore = avgScore; - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getPhoneNumber() { - return phoneNumber; - } - - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public String getServeArea() { - return serveArea; - } - - public void setServeArea(String serveArea) { - this.serveArea = serveArea; - } - - public String getCompanyAddress() { - return companyAddress; - } - - public void setCompanyAddress(String companyAddress) { - this.companyAddress = companyAddress; - } - - public Instant getLatestLoginTime() { - return latestLoginTime; - } - - public void setLatestLoginTime(Instant latestLoginTime) { - this.latestLoginTime = latestLoginTime; - } - - public String getSeniority() { - return seniority; - } - - public void setSeniority(String seniority) { - this.seniority = seniority; - } - - public Number getNearlyMonthAppointmentCount() { - return nearlyMonthAppointmentCount; - } - - public void setNearlyMonthAppointmentCount(Number nearlyMonthAppointmentCount) { - this.nearlyMonthAppointmentCount = nearlyMonthAppointmentCount; - } - - public Number getAllAppointmentCount() { - return allAppointmentCount; - } - - public void setAllAppointmentCount(Number allAppointmentCount) { - this.allAppointmentCount = allAppointmentCount; - } - - public List<String> getExpertise() { - return expertise; - } - - public void setExpertise(List<String> expertise) { - this.expertise = expertise; - } - - public String getConcept() { - return concept; - } - - public void setConcept(String concept) { - this.concept = concept; - } - - public String getExperiences() { - return experiences; - } - - public void setExperiences(String experiences) { - this.experiences = experiences; - } - - public String getAwards() { - return awards; - } - - public void setAwards(String awards) { - this.awards = awards; - } - - public GenderEnum getGender() { - return gender; - } - - public void setGender(GenderEnum gender) { - this.gender = gender; - } - - public String getCommunicationStyle() { - return communicationStyle; - } - - public void setCommunicationStyle(String communicationStyle) { - this.communicationStyle = communicationStyle; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantEditDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantEditDTO.java deleted file mode 100644 index 73c397c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/ConsultantEditDTO.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.List; - -import com.google.gson.annotations.Expose; -import com.pollex.pam.enums.GenderEnum; - -public class ConsultantEditDTO { - -// private Long id; - private String name; - private List<String> expertise; - private String title; - private String role; - private String serveArea; - private GenderEnum gender; - private String phoneNumber; - private String email; - private String companyAddress; - private Long seniorityYear; - private Long seniorityMonth; - private String concept; - private String experiences; - private String awards; - private String communicationStyle; - - @Expose - private String photoBase64; - - private String photoFileName; - private String agentNo; - -// public Long getId() { -// return id; -// } -// public void setId(Long id) { -// this.id = id; -// } - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public List<String> getExpertise() { - return expertise; - } - public void setExpertise(List<String> expertise) { - this.expertise = expertise; - } - public String getTitle() { - return title; - } - public void setTitle(String title) { - this.title = title; - } - public String getRole() { - return role; - } - public void setRole(String role) { - this.role = role; - } - public String getServeArea() { - return serveArea; - } - public void setServeArea(String serveArea) { - this.serveArea = serveArea; - } - public GenderEnum getGender() { - return gender; - } - public void setGender(GenderEnum gender) { - this.gender = gender; - } - public String getPhoneNumber() { - return phoneNumber; - } - public void setPhoneNumber(String phoneNumber) { - this.phoneNumber = phoneNumber; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public void setPhotoFileName(String photoFileName) { - this.photoFileName = photoFileName; - } - - public String getCompanyAddress() { - return companyAddress; - } - public void setCompanyAddress(String companyAddress) { - this.companyAddress = companyAddress; - } - public Long getSeniorityYear() { - return seniorityYear; - } - public void setSeniorityYear(Long seniorityYear) { - this.seniorityYear = seniorityYear; - } - public Long getSeniorityMonth() { - return seniorityMonth; - } - public void setSeniorityMonth(Long seniorityMonth) { - this.seniorityMonth = seniorityMonth; - } - public String getConcept() { - return concept; - } - public void setConcept(String concept) { - this.concept = concept; - } - public String getExperiences() { - return experiences; - } - public void setExperiences(String experiences) { - this.experiences = experiences; - } - public String getAwards() { - return awards; - } - public void setAwards(String awards) { - this.awards = awards; - } - public String getCommunicationStyle() { - return communicationStyle; - } - public void setCommunicationStyle(String communicationStyle) { - this.communicationStyle = communicationStyle; - } - public String getPhotoBase64() { - return photoBase64; - } - public void setPhotoBase64(String photoBase64) { - this.photoBase64 = photoBase64; - } - public String getPhotoFileName() { - return "consultant_"+this.getAgentNo()+".jpg"; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerDTO.java deleted file mode 100644 index 176dc0b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerDTO.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.pollex.pam.service.dto; - -public class CustomerDTO { - private String email; - private String phone; - private String name; - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerFavoriteConsultantDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerFavoriteConsultantDTO.java deleted file mode 100644 index bdcdfd6..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerFavoriteConsultantDTO.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; -import com.pollex.pam.enums.ContactStatusEnum; - -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.List; - -public class CustomerFavoriteConsultantDTO { - - private String agentNo; - private String name; - private String img; - private List<String> expertise; - private Float avgScore; - private ContactStatusEnum contactStatus; - private Instant createTime; - private Instant updateTime; - private Instant customerViewTime; - private String role; - private String seniority; - private List<AppointmentCustomerViewDTO> appointments; - - public String getAgentNo() { - return agentNo; - } - - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getImg() { - return img; - } - - public void setImg(String img) { - this.img = img; - } - - public List<String> getExpertise() { - return expertise; - } - - public void setExpertise(List<String> expertise) { - this.expertise = expertise; - } - - public Float getAvgScore() { - return avgScore; - } - - public void setAvgScore(Float avgScore) { - this.avgScore = avgScore; - } - - public ContactStatusEnum getContactStatus() { - return contactStatus; - } - - public void setContactStatus(ContactStatusEnum contactStatus) { - this.contactStatus = contactStatus; - } - - public Instant getCreateTime() { - return createTime; - } - - public Instant getUpdateTime() { - return updateTime; - } - - public void setCreateTime(Instant createTime) { - this.createTime = createTime; - } - - public void setUpdateTime(Instant updateTime) { - this.updateTime = updateTime; - } - - public Instant getCustomerViewTime() { - return customerViewTime; - } - - public void setCustomerViewTime(Instant customerViewTime) { - this.customerViewTime = customerViewTime; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } - - public String getSeniority() { - return seniority; - } - - public void setSeniority(String seniority) { - this.seniority = seniority; - } - - public List<AppointmentCustomerViewDTO> getAppointments() { - return appointments; - } - - public void setAppointments(List<AppointmentCustomerViewDTO> appointments) { - this.appointments = appointments; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerRegisterDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerRegisterDTO.java deleted file mode 100644 index 058cc56..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/CustomerRegisterDTO.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.enums.OtpLoginTypeEnum; - -public class CustomerRegisterDTO { - - private String name; - private String phone; - private String email; - private OtpLoginTypeEnum contactType; - private String indexKey; - private String otpCode; - - public String getName() { - return name; - } - public void setName(String name) { - this.name = name; - } - public String getPhone() { - return phone; - } - public void setPhone(String phone) { - this.phone = phone; - } - public String getEmail() { - return email; - } - public void setEmail(String email) { - this.email = email; - } - public OtpLoginTypeEnum getContactType() { - return contactType; - } - public void setContactType(OtpLoginTypeEnum contactType) { - this.contactType = contactType; - } - public String getIndexKey() { - return indexKey; - } - public void setIndexKey(String indexKey) { - this.indexKey = indexKey; - } - public String getOtpCode() { - return otpCode; - } - public void setOtpCode(String otpCode) { - this.otpCode = otpCode; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/DoneProcessDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/DoneProcessDTO.java deleted file mode 100644 index 2c9881a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/DoneProcessDTO.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.Date; - -public class DoneProcessDTO extends AbstractAppointmentProcessDTO{ - - private String policyholderIdentityId; - private String planCode; - private Date policyEntryDate; - private String remark; - - public String getPolicyholderIdentityId() { - return policyholderIdentityId; - } - public void setPolicyholderIdentityId(String policyholderIdentityId) { - this.policyholderIdentityId = policyholderIdentityId; - } - public String getPlanCode() { - return planCode; - } - public void setPlanCode(String planCode) { - this.planCode = planCode; - } - public Date getPolicyEntryDate() { - return policyEntryDate; - } - public void setPolicyEntryDate(Date policyEntryDate) { - this.policyEntryDate = policyEntryDate; - } - public String getRemark() { - return remark; - } - public void setRemark(String remark) { - this.remark = remark; - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceRequest.java b/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceRequest.java deleted file mode 100644 index 00e139d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceRequest.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.pollex.pam.service.dto; - -public class EServiceRequest { - private String func; - private String id; - private String pin; - private String pwd; - private String sys; - - public String getFunc() { - return func; - } - - public void setFunc(String func) { - this.func = func; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getPin() { - return pin; - } - - public void setPin(String pin) { - this.pin = pin; - } - - public String getPwd() { - return pwd; - } - - public void setPwd(String pwd) { - this.pwd = pwd; - } - - public String getSys() { - return sys; - } - - public void setSys(String sys) { - this.sys = sys; - } -} - diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceResponse.java b/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceResponse.java deleted file mode 100644 index a04681d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/EServiceResponse.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.List; - -public class EServiceResponse { - private String issuccess; - private String code; - private String msg; - private List<EServiceData> data; - - public String getIssuccess() { - return issuccess; - } - - public void setIssuccess(String issuccess) { - this.issuccess = issuccess; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } - - public List<EServiceData> getData() { - return data; - } - - public void setData(List<EServiceData> data) { - this.data = data; - } - - @Override - public String toString() { - return "EServiceResponse{" + - "issuccess='" + issuccess + '\'' + - ", code='" + code + '\'' + - ", msg='" + msg + '\'' + - '}'; - } -} - -class EServiceData { - private String usr; - private String isactive; - private String role; - - public String getUsr() { - return usr; - } - - public void setUsr(String usr) { - this.usr = usr; - } - - public String getIsactive() { - return isactive; - } - - public void setIsactive(String isactive) { - this.isactive = isactive; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/FastQueryConsultantParam.java b/pamapi/src/main/java/com/pollex/pam/service/dto/FastQueryConsultantParam.java deleted file mode 100644 index a8c443d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/FastQueryConsultantParam.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.enums.GenderEnum; - -import java.util.List; - -public class FastQueryConsultantParam { - - private GenderEnum gender; - private List<String> communicationStyles; - private Number avgScore; - private String status; - private String seniority; - - public GenderEnum getGender() { - return gender; - } - - public void setGender(GenderEnum gender) { - this.gender = gender; - } - - public List<String> getCommunicationStyles() { - return communicationStyles; - } - - public void setCommunicationStyles(List<String> communicationStyles) { - this.communicationStyles = communicationStyles; - } - - public Number getAvgScore() { - return avgScore; - } - - public void setAvgScore(Number avgScore) { - this.avgScore = avgScore; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getSeniority() { - return seniority; - } - - public void setSeniority(String seniority) { - this.seniority = seniority; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/InterviewRecordDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/InterviewRecordDTO.java deleted file mode 100644 index 83c3a7b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/InterviewRecordDTO.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; -import java.util.Date; - -public class InterviewRecordDTO { - - private Long id; - private String content; - private Instant createdDate; - private Instant lastModifiedDate; - private String createdBy; - private String lastModifiedBy; - private Date interviewDate; - private Long appointmentId; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getContent() { - return content; - } - public void setContent(String content) { - this.content = content; - } - public Instant getCreatedDate() { - return createdDate; - } - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - public String getCreatedBy() { - return createdBy; - } - public void setCreatedBy(String createdBy) { - this.createdBy = createdBy; - } - public String getLastModifiedBy() { - return lastModifiedBy; - } - public void setLastModifiedBy(String lastModifiedBy) { - this.lastModifiedBy = lastModifiedBy; - } - public Date getInterviewDate() { - return interviewDate; - } - public void setInterviewDate(Date interviewDate) { - this.interviewDate = interviewDate; - } - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/OtpResponseDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/OtpResponseDTO.java deleted file mode 100644 index 68d0704..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/OtpResponseDTO.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.Arrays; -import java.util.List; - -public class OtpResponseDTO { - private static final String OTP_SUCCESS_CODE = "0"; - private final String indexKey; - private final boolean success; - private final String failCode; - private final String failReason; - - public OtpResponseDTO(String[] strings) { - this(Arrays.asList(strings)); - } - - public OtpResponseDTO(List<String> strings) { - if(strings.size() == 4) { - this.indexKey = strings.get(0); - this.success = OTP_SUCCESS_CODE.equals(strings.get(1)); - this.failCode = strings.get(2); - this.failReason = strings.get(3); - } - else { - throw new IllegalArgumentException("the otp response can't format: " + strings); - } - } - - public String getIndexKey() { - return indexKey; - } - - public boolean isSuccess() { - return success; - } - - public String getFailCode() { - return failCode; - } - - public String getFailReason() { - return failReason; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/PasswordChangeDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/PasswordChangeDTO.java deleted file mode 100644 index 0ad177f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/PasswordChangeDTO.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.pollex.pam.service.dto; - -/** - * A DTO representing a password change required data - current and new password. - */ -public class PasswordChangeDTO { - - private String currentPassword; - private String newPassword; - - public PasswordChangeDTO() { - // Empty constructor needed for Jackson. - } - - public PasswordChangeDTO(String currentPassword, String newPassword) { - this.currentPassword = currentPassword; - this.newPassword = newPassword; - } - - public String getCurrentPassword() { - return currentPassword; - } - - public void setCurrentPassword(String currentPassword) { - this.currentPassword = currentPassword; - } - - public String getNewPassword() { - return newPassword; - } - - public void setNewPassword(String newPassword) { - this.newPassword = newPassword; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SMSDetail.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SMSDetail.java deleted file mode 100644 index 8cbc3da..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SMSDetail.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class SMSDetail { - private String mobile; - private String content; - - @JsonProperty("mobile") - public String getMobile() { - return mobile; - } - - public void setMobile(String mobile) { - this.mobile = mobile; - } - - @JsonProperty("content") - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionCustomerScoreDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionCustomerScoreDTO.java deleted file mode 100644 index 1cbf0e3..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionCustomerScoreDTO.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.enums.SatisfactionTypeEnum; - -public class SatisfactionCustomerScoreDTO { - - private Long appointmentId; - private Float score; - private SatisfactionTypeEnum type; - - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - public Float getScore() { - return score; - } - public void setScore(Float score) { - this.score = score; - } - public SatisfactionTypeEnum getType() { - return type; - } - public void setType(SatisfactionTypeEnum type) { - this.type = type; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionDTO.java deleted file mode 100644 index 152a82d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionDTO.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.time.Instant; - -import com.pollex.pam.enums.SatisfactionStatusEnum; -import com.pollex.pam.enums.SatisfactionTypeEnum; - -public class SatisfactionDTO { - - private Long id; - private Instant createdDate; - private Instant lastModifiedDate; - private Long customerId; - private String agentNo; - private SatisfactionStatusEnum status; - private Float score; - private Long appointmentId; - private String customerName; - private String agentName; - private SatisfactionTypeEnum type; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public Instant getCreatedDate() { - return createdDate; - } - public void setCreatedDate(Instant createdDate) { - this.createdDate = createdDate; - } - public Instant getLastModifiedDate() { - return lastModifiedDate; - } - public void setLastModifiedDate(Instant lastModifiedDate) { - this.lastModifiedDate = lastModifiedDate; - } - public Long getCustomerId() { - return customerId; - } - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - public SatisfactionStatusEnum getStatus() { - return status; - } - public void setStatus(SatisfactionStatusEnum status) { - this.status = status; - } - public Float getScore() { - return score; - } - public void setScore(Float score) { - this.score = score; - } - public Long getAppointmentId() { - return appointmentId; - } - public void setAppointmentId(Long appointmentId) { - this.appointmentId = appointmentId; - } - public String getCustomerName() { - return customerName; - } - public void setCustomerName(String customerName) { - this.customerName = customerName; - } - public String getAgentName() { - return agentName; - } - public void setAgentName(String agentName) { - this.agentName = agentName; - } - public SatisfactionTypeEnum getType() { - return type; - } - public void setType(SatisfactionTypeEnum type) { - this.type = type; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionUpdateDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionUpdateDTO.java deleted file mode 100644 index 1a8435f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SatisfactionUpdateDTO.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.pollex.pam.service.dto; - -public class SatisfactionUpdateDTO { - - private Long id; - private Long customerId; - private String agentNo; - private String status; - private String score; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public Long getCustomerId() { - return customerId; - } - public void setCustomerId(Long customerId) { - this.customerId = customerId; - } - public String getAgentNo() { - return agentNo; - } - public void setAgentNo(String agentNo) { - this.agentNo = agentNo; - } - public String getStatus() { - return status; - } - public void setStatus(String status) { - this.status = status; - } - public String getScore() { - return score; - } - public void setScore(String score) { - this.score = score; - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailRequest.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailRequest.java deleted file mode 100644 index 2470a67..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailRequest.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.pollex.pam.service.dto; - -import java.util.List; - -public class SendMailRequest { - - /** - * �隞嗉�� - */ - private List<String> sendMailAddresses; - /** - * �� - */ - private List<String> sendCCMailAddresses; - /** - * 銝駁�� - */ - private String subject; - /** - * ���� - */ - private String content; - /** - * 撖辣�� - */ - private String from; - /** - * ��辣頝臬�� - */ - private List<String> attachments; - /** - * �� html format - */ - private boolean htmlFormat; - /** - * �摰儔閮���� (������������神甇餃�pos) - */ - private String functionId; - - public List<String> getSendMailAddresses() { - return sendMailAddresses; - } - - public void setSendMailAddresses(List<String> sendMailAddresses) { - this.sendMailAddresses = sendMailAddresses; - } - - public List<String> getSendCCMailAddresses() { - return sendCCMailAddresses; - } - - public void setSendCCMailAddresses(List<String> sendCCMailAddresses) { - this.sendCCMailAddresses = sendCCMailAddresses; - } - - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } - - public String getFrom() { - return from; - } - - public void setFrom(String from) { - this.from = from; - } - - public List<String> getAttachments() { - return attachments; - } - - public void setAttachments(List<String> attachments) { - this.attachments = attachments; - } - - public boolean isHtmlFormat() { - return htmlFormat; - } - - public void setHtmlFormat(boolean htmlFormat) { - this.htmlFormat = htmlFormat; - } - - public String getFunctionId() { - return functionId; - } - - public void setFunctionId(String functionId) { - this.functionId = functionId; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailResponse.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailResponse.java deleted file mode 100644 index aee72f7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SendMailResponse.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; - -@JsonIgnoreProperties(ignoreUnknown = true) -public class SendMailResponse { - private Data data; - - public Data getData() { - return data; - } - - public void setData(Data data) { - this.data = data; - } - - @JsonIgnoreProperties(ignoreUnknown = true) - public static class Data { - private String messageStatus; - - public String getMessageStatus() { - return messageStatus; - } - - public void setMessageStatus(String messageStatus) { - this.messageStatus = messageStatus; - } - - @Override - public String toString() { - return "Data{" + - "messageStatus='" + messageStatus + '\'' + - '}'; - } - } - - @Override - public String toString() { - return "SendMailResponse{" + - "data=" + data + - '}'; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSRequest.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSRequest.java deleted file mode 100644 index de3aa42..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSRequest.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; - -import java.util.List; - -public class SendSMSRequest { - - private String pKey; - private String sourceCode; - private String sender; - private String sendTime; - private String subject; - private String activityId; - private String mmsPath; - private String msgTypeSet; - private List<SMSDetail> detail; - - @JsonProperty("p_key") - public String getpKey() { - return pKey; - } - - public void setpKey(String pKey) { - this.pKey = pKey; - } - - @JsonProperty("source_code") - public String getSourceCode() { - return sourceCode; - } - - public void setSourceCode(String sourceCode) { - this.sourceCode = sourceCode; - } - - @JsonProperty("sender") - public String getSender() { - return sender; - } - - public void setSender(String sender) { - this.sender = sender; - } - - @JsonProperty("send_time") - public String getSendTime() { - return sendTime; - } - - public void setSendTime(String sendTime) { - this.sendTime = sendTime; - } - - @JsonProperty("subject") - public String getSubject() { - return subject; - } - - public void setSubject(String subject) { - this.subject = subject; - } - - @JsonProperty("activity_id") - public String getActivityId() { - return activityId; - } - - public void setActivityId(String activityId) { - this.activityId = activityId; - } - - @JsonProperty("mms_path") - public String getMmsPath() { - return mmsPath; - } - - public void setMmsPath(String mmsPath) { - this.mmsPath = mmsPath; - } - - @JsonProperty("msg_type_set") - public String getMsgTypeSet() { - return msgTypeSet; - } - - public void setMsgTypeSet(String msgTypeSet) { - this.msgTypeSet = msgTypeSet; - } - - @JsonProperty("detail") - public List<SMSDetail> getDetail() { - return detail; - } - - public void setDetail(List<SMSDetail> detail) { - this.detail = detail; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSResponse.java b/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSResponse.java deleted file mode 100644 index 9073766..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/SendSMSResponse.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class SendSMSResponse { - - @JsonProperty("p_key") - private String pKey; - - @JsonProperty("return_code") - private String returnCode; - - @JsonProperty("msg_batchNo") - private String msgBatchNo; - - @JsonProperty("error_msg") - private String errorMsg; - - public String getpKey() { - return pKey; - } - - public void setpKey(String pKey) { - this.pKey = pKey; - } - - public String getReturnCode() { - return returnCode; - } - - public void setReturnCode(String returnCode) { - this.returnCode = returnCode; - } - - public String getMsgBatchNo() { - return msgBatchNo; - } - - public void setMsgBatchNo(String msgBatchNo) { - this.msgBatchNo = msgBatchNo; - } - - public String getErrorMsg() { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) { - this.errorMsg = errorMsg; - } - - @Override - public String toString() { - return "SendSMSResponse{" + - "pKey='" + pKey + '\'' + - ", returnCode='" + returnCode + '\'' + - ", msgBatchNo='" + msgBatchNo + '\'' + - ", errorMsg='" + errorMsg + '\'' + - '}'; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java b/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java deleted file mode 100644 index 7a7afcf..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/StrictQueryConsultantParam.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.enums.GenderEnum; - -import java.util.List; - -public class StrictQueryConsultantParam { - - private GenderEnum gender; - private Float avgScore; - private String status; - private String area; - private List<String> requirements; - private String otherRequirement; - private String seniority; - private List<String> popularTags; - private String otherPopularTags; - - public GenderEnum getGender() { - return gender; - } - - public void setGender(GenderEnum gender) { - this.gender = gender; - } - - public Float getAvgScore() { - return avgScore; - } - - public void setAvgScore(Float avgScore) { - this.avgScore = avgScore; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String getArea() { - return area; - } - - public void setArea(String area) { - this.area = area; - } - - public List<String> getRequirements() { - return requirements; - } - - public void setRequirements(List<String> requirements) { - this.requirements = requirements; - } - - public String getOtherRequirement() { - return otherRequirement; - } - - public void setOtherRequirement(String otherRequirement) { - this.otherRequirement = otherRequirement; - } - - public String getSeniority() { - return seniority; - } - - public void setSeniority(String seniority) { - this.seniority = seniority; - } - - public List<String> getPopularTags() { - return popularTags; - } - - public void setPopularTags(List<String> popularTags) { - this.popularTags = popularTags; - } - - public String getOtherPopularTags() { - return otherPopularTags; - } - - public void setOtherPopularTags(String otherPopularTags) { - this.otherPopularTags = otherPopularTags; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/UserDTO.java b/pamapi/src/main/java/com/pollex/pam/service/dto/UserDTO.java deleted file mode 100644 index dfcfacc..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/UserDTO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.pollex.pam.service.dto; - -import com.pollex.pam.domain.User; - -/** - * A DTO representing a user, with only the public attributes. - */ -public class UserDTO { - - private Long id; - - private String login; - - public UserDTO() { - // Empty constructor needed for Jackson. - } - - public UserDTO(User user) { - this.id = user.getId(); - // Customize it here if you need, or not, firstName/lastName/etc - this.login = user.getLogin(); - } - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public String getLogin() { - return login; - } - - public void setLogin(String login) { - this.login = login; - } - - // prettier-ignore - @Override - public String toString() { - return "UserDTO{" + - "id='" + id + '\'' + - ", login='" + login + '\'' + - "}"; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/dto/package-info.java b/pamapi/src/main/java/com/pollex/pam/service/dto/package-info.java deleted file mode 100644 index 44834d3..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/dto/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Data Transfer Objects. - */ -package com.pollex.pam.service.dto; diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentCustomerViewMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentCustomerViewMapper.java deleted file mode 100644 index 4389195..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentCustomerViewMapper.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.pollex.pam.service.mapper; - -import static java.util.stream.Collectors.toList; - -import java.util.List; -import java.util.Optional; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.pollex.pam.domain.AppointmentClosedInfo; -import com.pollex.pam.domain.AppointmentCustomerView; -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.repository.AppointmentClosedInfoRepository; -import com.pollex.pam.service.AppointmentClosedInfoService; -import com.pollex.pam.service.AppointmentNoticeLogService; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.dto.AppointmentCustomerViewDTO; - -@Service -public class AppointmentCustomerViewMapper { - - @Autowired - AppointmentService appointmentService; - - @Autowired - AppointmentNoticeLogService appointmentNoticeLogService; - - @Autowired - AppointmentClosedInfoRepository appointmentClosedInfoRepository; - - @Transactional - public AppointmentCustomerViewDTO toAppointmentCustomerViewDTO(AppointmentCustomerView source) { - AppointmentCustomerViewDTO target = new AppointmentCustomerViewDTO(); - BeanUtils.copyProperties(source, target); - target.setAppointmentMemoList(source.getAppointmentMemoList()); - appointmentService.setInterviewRecordDTO(target); - List<AppointmentNoticeLog> noticeLogs = appointmentNoticeLogService.findByAppointmentId(source.getId()); - target.setAppointmentNoticeLogs(noticeLogs); - Optional<AppointmentClosedInfo> appointmentClosedInfoOP = appointmentClosedInfoRepository - .findByAppointmentId(source.getId()); - if(appointmentClosedInfoOP.isPresent()) { - target.setAppointmentClosedInfo(appointmentClosedInfoOP.get()); - } - appointmentService.setSatisfactionScore(target, source.getId()); - - return target; - } - - public List<AppointmentCustomerViewDTO> toAppointmentCustomerViewDTO( - List<AppointmentCustomerView> source) { - return source.stream().map(s -> toAppointmentCustomerViewDTO(s)) - .collect(toList()); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java deleted file mode 100644 index 8a1d6de..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentDTOMapper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.pollex.pam.service.mapper; - -import com.pollex.pam.service.dto.AppointmentDTO; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.enums.ContactStatusEnum; -import com.pollex.pam.service.dto.AppointmentCreateDTO; - -@Service -public class AppointmentDTOMapper { - - public Appointment toAppointment(AppointmentCreateDTO source) { - Appointment target = new Appointment(); - BeanUtils.copyProperties(source, target); - return target; - } - - public Appointment toAppointment(AppointmentDTO source) { - Appointment target = new Appointment(); - BeanUtils.copyProperties(source, target); - return target; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMapper.java deleted file mode 100644 index 5526738..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMapper.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.pollex.pam.service.mapper; - -import static java.util.stream.Collectors.toList; - -import java.util.List; - -import com.pollex.pam.enums.SatisfactionTypeEnum; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.enums.SatisfactionStatusEnum; -import com.pollex.pam.repository.AppointmentRepository; -import com.pollex.pam.service.dto.AppointmentDTO; - -@Service -public class AppointmentMapper { - - @Autowired - AppointmentRepository appointmentRepository; - - public AppointmentDTO toAppointmentDTO(Appointment source) { - AppointmentDTO target = new AppointmentDTO(); - BeanUtils.copyProperties(source, target); - return target; - } - - public List<AppointmentDTO> toAppointmentDTO(List<Appointment> source) { - return source.stream() - .map(s -> toAppointmentDTO(s)).collect(toList()); - } - - public Satisfaction toAppointmentSatisfaction(Appointment appointment) { - Satisfaction target = new Satisfaction(); - target.setAppointmentId(appointment.getId()); - target.setAgentNo(appointment.getAgentNo()); - target.setCustomerId(appointment.getCustomerId()); - target.setType(SatisfactionTypeEnum.APPOINTMENT); - target.setStatus(SatisfactionStatusEnum.UNFILLED); - return target; - } - - public Satisfaction toAppointmentSatisfaction(Long appointmentId) { - Appointment appointment = appointmentRepository.findById(appointmentId).get(); - return toAppointmentSatisfaction(appointment); - } - - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMemoMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMemoMapper.java deleted file mode 100644 index aaae2e9..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentMemoMapper.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.pollex.pam.service.mapper; - -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.AppointmentMemo; -import com.pollex.pam.service.dto.AppointmentMemoCreateDTO; -import com.pollex.pam.service.dto.AppointmentMemoUpdateDTO; - -@Service -public class AppointmentMemoMapper { - - public AppointmentMemo toAppointmentMemo(AppointmentMemoCreateDTO source) { - AppointmentMemo target = new AppointmentMemo(); - BeanUtils.copyProperties(source, target); - return target; - } - - public AppointmentMemo copyToAppointmentMemo(AppointmentMemoUpdateDTO source, AppointmentMemo target) { - BeanUtils.copyProperties(source, target); - return target; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentNoticeSendMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentNoticeSendMapper.java deleted file mode 100644 index 69a8cb1..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/AppointmentNoticeSendMapper.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.pollex.pam.service.mapper; - -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; - -@Service -public class AppointmentNoticeSendMapper { - - public AppointmentNoticeLog toAppointmentNoticeLog(AppointmentNoticeSendDTO source) { - AppointmentNoticeLog target = new AppointmentNoticeLog(); - BeanUtils.copyProperties(source, target); -// target.setAppointmentId(source.getAppointmentId()); - target.setContent(source.getMessage()); -// target.setEmail(source.getEmail()); -// target.setPhone(source.getPhone()); - return target; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantDTOMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantDTOMapper.java deleted file mode 100644 index 48987fc..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantDTOMapper.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.pollex.pam.service.mapper; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.service.dto.ConsultantEditDTO; -import com.pollex.pam.service.util.FileUtil; -import com.pollex.pam.service.util.StringUtils; - -@Service -public class ConsultantDTOMapper { - - @Autowired - ApplicationProperties applicationProperty; - - public void copyToConsultant(ConsultantEditDTO source, Consultant target) { - BeanUtils.copyProperties(source, target); - target.setPhotoPath(FileUtil.toPath(source.getPhotoFileName(), applicationProperty.getFileFolderPath())); - String expertise = StringUtils.convertToString(source.getExpertise(), ","); - target.setExpertise(expertise); - target.setAward(source.getAwards()); - target.setExperience(source.getExperiences()); - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java deleted file mode 100644 index a5f8a21..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/ConsultantMapper.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.pollex.pam.service.mapper; - -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.dto.ConsultantDTO; -import com.pollex.pam.service.dto.ConsultantDetailDTO; -import com.pollex.pam.service.dto.CustomerFavoriteConsultantDTO; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.time.Instant; -import java.time.ZonedDateTime; -import java.util.*; -import java.util.stream.Collectors; - -@Service -public class ConsultantMapper { - - @Autowired - AppointmentService appointmentService; - - private static final Character SPLIT_MASK = ','; - - public CustomerFavoriteConsultantDTO toCustomerFavoriteConsultantDto(Consultant source) { - CustomerFavoriteConsultantDTO consultantDTO = new CustomerFavoriteConsultantDTO(); - consultantDTO.setAgentNo(source.getAgentNo()); - consultantDTO.setName(source.getName()); - consultantDTO.setAvgScore(source.getAvgScore()); - consultantDTO.setSeniority(source.getSeniorityDTOString()); - consultantDTO.setExpertise(splitStringWithChar(source.getExpertise())); - consultantDTO.setImg(source.getPhotoPath()); - consultantDTO.setRole(source.getRole()); - - consultantDTO.setContactStatus(null); - consultantDTO.setUpdateTime(null); - - return consultantDTO; - } - - public ConsultantDTO toDto(Consultant source) { - ConsultantDTO consultantDTO = new ConsultantDTO(); - consultantDTO.setAgentNo(source.getAgentNo()); - consultantDTO.setName(source.getName()); - consultantDTO.setAvgScore(source.getAvgScore()); - consultantDTO.setSeniority(source.getSeniorityDTOString()); - consultantDTO.setExpertise(splitStringWithChar(source.getExpertise())); - consultantDTO.setImg(source.getPhotoPath()); - consultantDTO.setRole(source.getRole()); - - consultantDTO.setSuitability(0); - consultantDTO.setContactStatus(null); - consultantDTO.setUpdateTime(null); -// consultantDTO.setLatestAppointmentId(null); - - return consultantDTO; - } - - public ConsultantDetailDTO toDetailDto(Consultant source) { - ConsultantDetailDTO consultantDetailDTO = new ConsultantDetailDTO(); - BeanUtils.copyProperties(source, consultantDetailDTO); - consultantDetailDTO.setName(source.getName()); - consultantDetailDTO.setAgentNo(source.getAgentNo()); - consultantDetailDTO.setRole(source.getRole()); - consultantDetailDTO.setAvgScore(source.getAvgScore()); - consultantDetailDTO.setTitle(source.getTitle()); - consultantDetailDTO.setPhoneNumber(source.getPhoneNumber()); - consultantDetailDTO.setServeArea(source.getServeArea()); - consultantDetailDTO.setCompanyAddress(source.getCompanyAddress()); - consultantDetailDTO.setSeniority(source.getSeniorityDTOString()); - consultantDetailDTO.setConcept(source.getConcept()); - consultantDetailDTO.setAwards(source.getAward()); - consultantDetailDTO.setImg(source.getPhotoPath()); - consultantDetailDTO.setExpertise(splitStringWithChar(source.getExpertise())); - consultantDetailDTO.setExperiences(source.getExperience()); - - List<Appointment> appointments = appointmentService.findByAgentNo(source.getAgentNo()); - long allAppointmentCount = appointments.size(); - long nearlyMonthAppointmentCount = appointments - .stream() - .filter(appointment -> { - Instant oneMonthAgo = ZonedDateTime.now().minusMonths(1).toInstant(); - return appointment.getAppointmentDate().isAfter(oneMonthAgo); - }).count(); - - consultantDetailDTO.setAllAppointmentCount(allAppointmentCount); - consultantDetailDTO.setNearlyMonthAppointmentCount(nearlyMonthAppointmentCount); - - return consultantDetailDTO; - } - - private List<String> splitStringWithChar(String source) { - return Arrays.stream(StringUtils.split(source, SPLIT_MASK)) - .map(String::trim) - .collect(Collectors.toList()); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerDTOMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerDTOMapper.java deleted file mode 100644 index 326eac2..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerDTOMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.pollex.pam.service.mapper; - -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Customer; -import com.pollex.pam.service.dto.CustomerRegisterDTO; - -@Service -public class CustomerDTOMapper { - - public Customer toCustomer(CustomerRegisterDTO source) { - Customer target = new Customer(); - BeanUtils.copyProperties(source, target); - return target; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerMapper.java deleted file mode 100644 index 757d8c9..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/CustomerMapper.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.pollex.pam.service.mapper; - -import com.pollex.pam.domain.Customer; -import com.pollex.pam.service.dto.CustomerDTO; -import org.springframework.stereotype.Service; - -@Service -public class CustomerMapper { - - public CustomerDTO toDto(Customer customer) { - CustomerDTO dto = new CustomerDTO(); - dto.setEmail(customer.getEmail()); - dto.setPhone(customer.getPhone()); - dto.setName(customer.getName()); - - return dto; - } - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/InterviewRecordMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/InterviewRecordMapper.java deleted file mode 100644 index d611c2f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/InterviewRecordMapper.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.pollex.pam.service.mapper; - -import static java.util.stream.Collectors.toList; - -import java.util.List; - -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.InterviewRecord; -import com.pollex.pam.service.dto.InterviewRecordDTO; - -@Service -public class InterviewRecordMapper { - - public InterviewRecord toInterviewRecord(InterviewRecordDTO source) { - InterviewRecord target = new InterviewRecord(); - BeanUtils.copyProperties(source, target); - return target; - } - - public void copyToInterviewRecord(InterviewRecordDTO source, InterviewRecord target) { - BeanUtils.copyProperties(source, target); - } - - public List<InterviewRecordDTO> toInterviewRecordDTO(List<InterviewRecord> records) { - return records.stream() - .map(s-> toInterviewRecordDTO(s)) - .collect(toList()); - } - - public InterviewRecordDTO toInterviewRecordDTO(InterviewRecord source) { - InterviewRecordDTO target = new InterviewRecordDTO(); - BeanUtils.copyProperties(source, target); - return target; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionDTOMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionDTOMapper.java deleted file mode 100644 index fe1eaa2..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionDTOMapper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.pollex.pam.service.mapper; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.enums.SatisfactionStatusEnum; -// import com.pollex.pam.service.dto.SatisfactionCustomerScoreDTO; - -@Service -public class SatisfactionDTOMapper { - - @Autowired - AppointmentMapper appointmentMapper; - -// public Satisfaction toSatisfaction(SatisfactionCustomerScoreDTO source) { -// Satisfaction satisfaction = appointmentMapper.toAppointmentSatisfaction(source.getAppointmentId()); -// satisfaction.setScore(source.getScore()); -// if(satisfaction.getScore()!=null) { -// satisfaction.setStatus(SatisfactionStatusEnum.FILLED); -// }else { -// satisfaction.setStatus(SatisfactionStatusEnum.UNFILLED); -// } -// return satisfaction; -// } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionMapper.java deleted file mode 100644 index 8a757a4..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/SatisfactionMapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.pollex.pam.service.mapper; - -import static java.util.stream.Collectors.toList; - -import java.util.List; -import java.util.Objects; - -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.repository.ConsultantRepository; -import com.pollex.pam.repository.CustomerRepository; -import com.pollex.pam.service.dto.SatisfactionDTO; - -@Service -public class SatisfactionMapper { - - @Autowired - ConsultantRepository consultantRepository; - - @Autowired - CustomerRepository customerRepository; - - public SatisfactionDTO toDTO(Satisfaction source) { - SatisfactionDTO target = new SatisfactionDTO(); - BeanUtils.copyProperties(source, target); - target.setScore(source.getScore()); - Consultant consultant= consultantRepository.findOneByAgentNo(source.getAgentNo()).orElse(null); - target.setAgentName(Objects.isNull(consultant) ? null : consultant.getName()); - Customer customer = customerRepository.findById(source.getCustomerId()).get(); - target.setCustomerName(customer.getName()); - return target; - } - - public List<SatisfactionDTO> toDTO(List<Satisfaction> satisfactionList) { - if(satisfactionList==null) return null; - return satisfactionList.stream() - .map(s -> toDTO(s)) - .collect(toList()); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/UserMapper.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/UserMapper.java deleted file mode 100644 index a5ccf3f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/UserMapper.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.pollex.pam.service.mapper; - -import com.pollex.pam.domain.Authority; -import com.pollex.pam.domain.User; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.dto.UserDTO; -import java.util.*; -import java.util.stream.Collectors; -import org.mapstruct.BeanMapping; -import org.mapstruct.Mapping; -import org.mapstruct.Named; -import org.springframework.stereotype.Service; - -/** - * Mapper for the entity {@link User} and its DTO called {@link UserDTO}. - * - * Normal mappers are generated using MapStruct, this one is hand-coded as MapStruct - * support is still in beta, and requires a manual step with an IDE. - */ -@Service -public class UserMapper { - - public List<UserDTO> usersToUserDTOs(List<User> users) { - return users.stream().filter(Objects::nonNull).map(this::userToUserDTO).collect(Collectors.toList()); - } - - public UserDTO userToUserDTO(User user) { - return new UserDTO(user); - } - - public List<AdminUserDTO> usersToAdminUserDTOs(List<User> users) { - return users.stream().filter(Objects::nonNull).map(this::userToAdminUserDTO).collect(Collectors.toList()); - } - - public AdminUserDTO userToAdminUserDTO(User user) { - return new AdminUserDTO(user); - } - - public List<User> userDTOsToUsers(List<AdminUserDTO> userDTOs) { - return userDTOs.stream().filter(Objects::nonNull).map(this::userDTOToUser).collect(Collectors.toList()); - } - - public User userDTOToUser(AdminUserDTO userDTO) { - if (userDTO == null) { - return null; - } else { - User user = new User(); - user.setId(userDTO.getId()); - user.setLogin(userDTO.getLogin()); - user.setFirstName(userDTO.getFirstName()); - user.setLastName(userDTO.getLastName()); - user.setEmail(userDTO.getEmail()); - user.setImageUrl(userDTO.getImageUrl()); - user.setActivated(userDTO.isActivated()); - user.setLangKey(userDTO.getLangKey()); - Set<Authority> authorities = this.authoritiesFromStrings(userDTO.getAuthorities()); - user.setAuthorities(authorities); - return user; - } - } - - private Set<Authority> authoritiesFromStrings(Set<String> authoritiesAsString) { - Set<Authority> authorities = new HashSet<>(); - - if (authoritiesAsString != null) { - authorities = - authoritiesAsString - .stream() - .map(string -> { - Authority auth = new Authority(); - auth.setName(string); - return auth; - }) - .collect(Collectors.toSet()); - } - - return authorities; - } - - public User userFromId(Long id) { - if (id == null) { - return null; - } - User user = new User(); - user.setId(id); - return user; - } - - @Named("id") - @BeanMapping(ignoreByDefault = true) - @Mapping(target = "id", source = "id") - public UserDTO toDtoId(User user) { - if (user == null) { - return null; - } - UserDTO userDto = new UserDTO(); - userDto.setId(user.getId()); - return userDto; - } - - @Named("idSet") - @BeanMapping(ignoreByDefault = true) - @Mapping(target = "id", source = "id") - public Set<UserDTO> toDtoIdSet(Set<User> users) { - if (users == null) { - return Collections.emptySet(); - } - - Set<UserDTO> userSet = new HashSet<>(); - for (User userEntity : users) { - userSet.add(this.toDtoId(userEntity)); - } - - return userSet; - } - - @Named("login") - @BeanMapping(ignoreByDefault = true) - @Mapping(target = "id", source = "id") - @Mapping(target = "login", source = "login") - public UserDTO toDtoLogin(User user) { - if (user == null) { - return null; - } - UserDTO userDto = new UserDTO(); - userDto.setId(user.getId()); - userDto.setLogin(user.getLogin()); - return userDto; - } - - @Named("loginSet") - @BeanMapping(ignoreByDefault = true) - @Mapping(target = "id", source = "id") - @Mapping(target = "login", source = "login") - public Set<UserDTO> toDtoLoginSet(Set<User> users) { - if (users == null) { - return Collections.emptySet(); - } - - Set<UserDTO> userSet = new HashSet<>(); - for (User userEntity : users) { - userSet.add(this.toDtoLogin(userEntity)); - } - - return userSet; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/mapper/package-info.java b/pamapi/src/main/java/com/pollex/pam/service/mapper/package-info.java deleted file mode 100644 index b91e8ed..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/mapper/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * MapStruct mappers for mapping domain objects and Data Transfer Objects. - */ -package com.pollex.pam.service.mapper; diff --git a/pamapi/src/main/java/com/pollex/pam/service/package-info.java b/pamapi/src/main/java/com/pollex/pam/service/package-info.java deleted file mode 100644 index ee1f6cf..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Service layer beans. - */ -package com.pollex.pam.service; diff --git a/pamapi/src/main/java/com/pollex/pam/service/util/FileUtil.java b/pamapi/src/main/java/com/pollex/pam/service/util/FileUtil.java deleted file mode 100644 index dcfdff7..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/util/FileUtil.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.pollex.pam.service.util; - - -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.Base64; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class FileUtil { - - private static final Logger log = LoggerFactory.getLogger(FileUtil.class); - - public static File base64ToFile(String base64, String fileName, String folderPath) { - if(base64 == null){ - return new File(folderPath); - } - File dir=new File(folderPath); - dir.setWritable(true); - dir.setReadable(true); - if (!dir.exists() && !dir.isDirectory()) { - dir.mkdirs(); - } - return base64ToFile(base64, toPath(fileName, folderPath)); - } - - public static File base64ToFile(String base64, String path) { - if(base64 == null){ - return new File(path); - } - - BufferedOutputStream bos = null; - - try { - byte[] bytes = Base64.getDecoder().decode(base64); - File file=new File(path); - file.setWritable(true); - file.setReadable(true); - bos = new BufferedOutputStream(new FileOutputStream(file)); - bos.write(bytes); - - - return file; - } catch (Exception e) { - log.error("upload file base64 to file error",e); - } finally { - if (bos != null) { - try { - bos.close(); - } catch (IOException e) { - log.error("upload file base64 to file error",e); - } - } - } - - return null; - } - - public static boolean isFileExisted(String fileName, String folderPath) { - return new File(toPath(fileName, folderPath)).isFile(); - } - - public static String toPath(String fileName, String folderPath) { - return folderPath + "/" + fileName; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/util/HttpRequestUtil.java b/pamapi/src/main/java/com/pollex/pam/service/util/HttpRequestUtil.java deleted file mode 100644 index 48cc43b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/util/HttpRequestUtil.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.pollex.pam.service.util; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.http.conn.ssl.NoopHostnameVerifier; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContexts; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.*; -import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; -import org.springframework.web.client.RestTemplate; - -import javax.net.ssl.SSLContext; -import java.security.KeyManagementException; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.X509Certificate; -import java.util.Map; -import java.util.Set; - -public final class HttpRequestUtil { - private static final Logger log = LoggerFactory.getLogger(HttpRequestUtil.class); - - private HttpRequestUtil() {} - - public static <T> ResponseEntity<T> getWithJson(String url, Class<T> responseType) - throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException - { - return getWithJson(url, responseType, null); - } - - public static <T> ResponseEntity<T> getWithJson(String url, Class<T> responseType, Map<String, String> addedHeaders) - throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException - { - RestTemplate restTemplate = getTrustAllRestTemplate(); - HttpHeaders headers = new HttpHeaders(); - setHeaders(headers, addedHeaders); - - HttpEntity<String> httpEntity = new HttpEntity<>(headers); - - log.debug("HttpRequestUtil get url: {}", url); - log.debug("httpEntity = {}", httpEntity); - return restTemplate.exchange(url, HttpMethod.GET, httpEntity, responseType); - } - - public static ResponseEntity<String> postWithJson(String url, Object jsonData, Map<String, String> headers) - throws KeyStoreException, NoSuchAlgorithmException, JsonProcessingException, KeyManagementException - { - return postWithJson(url, jsonData, String.class, headers); - } - - public static ResponseEntity<String> postWithJson(String url, Object jsonData) - throws KeyStoreException, NoSuchAlgorithmException, JsonProcessingException, KeyManagementException - { - return postWithJson(url, jsonData, String.class, null); - } - - public static <T> ResponseEntity<T> postWithJson(String url, Object jsonData, Class<T> responseType) - throws KeyStoreException, NoSuchAlgorithmException, JsonProcessingException, KeyManagementException - { - return postWithJson(url, jsonData, responseType, null); - } - - public static <T> ResponseEntity<T> postWithJson(String url, Object jsonData, Class<T> responseType, Map<String, String> addedHeaders) - throws JsonProcessingException, KeyStoreException, NoSuchAlgorithmException, KeyManagementException { - - String parameters = new ObjectMapper().writeValueAsString(jsonData); - // ���摨阡��脰��log���� - if(parameters.length() < 1000){ - log.debug("parameters : {}",parameters); - } - - RestTemplate restTemplate = getTrustAllRestTemplate(); - - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); - setHeaders(headers, addedHeaders); - - HttpEntity<String> entity = new HttpEntity<>(parameters, headers); - - log.debug("rest post with json, url = {}", url); - return restTemplate.exchange(url, HttpMethod.POST, entity, responseType); - } - - private static void setHeaders(HttpHeaders headers, Map<String, String> addedHeaders) { - if(addedHeaders != null && addedHeaders.size() > 0) { - Set<String> keys = addedHeaders.keySet(); - for (String key : keys) { - String headerValue = addedHeaders.get(key); - headers.set(key, headerValue); - log.info("http cust header key: {}", key); - log.info("http cust header headerValue: {}", headerValue); - } - } - } - - private static RestTemplate getTrustAllRestTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException { - SSLContext sslContext = SSLContexts.custom() - .loadTrustMaterial(null, (X509Certificate[] x509Certs, String s) -> true) - .build(); - SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext, new NoopHostnameVerifier()); - CloseableHttpClient httpClient = HttpClients.custom() - .setSSLSocketFactory(csf) - .build(); - HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); - requestFactory.setHttpClient(httpClient); - requestFactory.setConnectTimeout(300000); - requestFactory.setReadTimeout(300000); - return new RestTemplate(requestFactory); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/util/StringUtils.java b/pamapi/src/main/java/com/pollex/pam/service/util/StringUtils.java deleted file mode 100644 index fd2350a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/util/StringUtils.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.pollex.pam.service.util; - -import java.util.List; - -public class StringUtils { - - public static String convertToString(List<String> source - , String separator) { - StringBuilder result = new StringBuilder(); - for (String sourceString : source) { - result.append(sourceString+separator); - } - result.deleteCharAt(result.length()-1); - return result.toString(); - } - - -} diff --git a/pamapi/src/main/java/com/pollex/pam/service/util/VerifyCodeUtil.java b/pamapi/src/main/java/com/pollex/pam/service/util/VerifyCodeUtil.java deleted file mode 100644 index e42af0b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/service/util/VerifyCodeUtil.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.pollex.pam.service.util; - -import java.awt.Color; -import java.awt.Font; -import java.awt.Graphics; -import java.awt.image.BufferedImage; -import java.util.Random; - -public final class VerifyCodeUtil { - - - public static String createcode() { - String code = ""; - code = ""; - String randomRange = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";// Randomly generated character - // range (0-9, a-z, A-Z) - - // The number of digits for generating the verification code (here 4 digits) - for (int i = 0; i < 4; i++) { - int index = (int) (Math.random() * 62);// Will produce a [0,62) number, excluding decimals - char randomCode = randomRange.charAt(index); - code = code + randomCode; - } - return code; - } - - // 3. Generate pictures - public static BufferedImage createimage(String code) { - // The first 2 parameters are: width, height. The back is the image type - // Create a BufferedImage object without transparent color, TYPE_INT_ARGB is - // with transparent color - BufferedImage bi = new BufferedImage(130, 50, BufferedImage.TYPE_INT_RGB); - - // 1. Get a canvas - Graphics g = bi.getGraphics(); - // 2. Add background color - g.setColor(Color.WHITE); - g.fillRect(0, 0, 130, 50); - - // 3. Add interference lines - for (int i = 0; i < 10; i++) { - Random r = new Random(); - int red = r.nextInt(256); - int green = r.nextInt(256); - int blue = r.nextInt(256); - Color c = new Color(red, green, blue); - g.setColor(c); - int x1 = r.nextInt(131); - int y1 = r.nextInt(51); - int x2 = r.nextInt(131); - int y2 = r.nextInt(51); - g.drawLine(x1, y1, x2, y2);// Draw a line - // g.drawOval(x1, y1, x2, y2);//Draw a curve - } - - // 3. Add text - g.setColor(Color.BLACK); - g.setFont(new Font(" ", Font.BOLD, 40)); - - // 4. Fill the text into the artboard - g.drawString(code, 15, 40); - - // 5. Close the canvas - g.dispose(); - return bi; - } - -} \ No newline at end of file diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java index a4a87ae..a808fcd 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AccountResource.java @@ -1,20 +1,16 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.security.jwt.JWTFilter; -import com.pollex.pam.service.CustomerAuthService; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.security.SecurityUtils; import com.pollex.pam.service.CustomerService; -import com.pollex.pam.service.MailService; -import com.pollex.pam.service.UserService; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.dto.CustomerRegisterDTO; -import com.pollex.pam.service.dto.PasswordChangeDTO; -import com.pollex.pam.web.rest.UserJWTController.JWTToken; -import com.pollex.pam.web.rest.errors.*; -import com.pollex.pam.web.rest.vm.KeyAndPasswordVM; -import com.pollex.pam.web.rest.vm.ManagedUserVM; +import com.pollex.pam.business.service.MailService; +import com.pollex.pam.business.service.UserService; +import com.pollex.pam.business.service.dto.AdminUserDTO; +import com.pollex.pam.business.service.dto.PasswordChangeDTO; +import com.pollex.pam.business.web.errors.*; +import com.pollex.pam.business.web.vm.KeyAndPasswordVM; +import com.pollex.pam.business.web.vm.ManagedUserVM; import java.util.*; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; @@ -22,9 +18,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; /** @@ -48,7 +41,7 @@ private final UserService userService; private final MailService mailService; - + @Autowired CustomerService customerService; @@ -75,8 +68,8 @@ // User user = userService.registerUser(managedUserVM, managedUserVM.getPassword()); // mailService.sendActivationEmail(user); // } - - + + /** * {@code GET /activate} : activate the registered user. diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentMemoResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentMemoResource.java index c7a6afa..5b5ff0f 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentMemoResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentMemoResource.java @@ -10,36 +10,35 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.domain.AppointmentMemo; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.AppointmentMemoService; -import com.pollex.pam.service.dto.AppointmentMemoCreateDTO; -import com.pollex.pam.service.dto.AppointmentMemoUpdateDTO; +import com.pollex.pam.business.domain.AppointmentMemo; +import com.pollex.pam.business.service.AppointmentMemoService; +import com.pollex.pam.business.service.dto.AppointmentMemoCreateDTO; +import com.pollex.pam.business.service.dto.AppointmentMemoUpdateDTO; @RestController @RequestMapping("/api/appointment/memo") public class AppointmentMemoResource { - + @Autowired AppointmentMemoService appointmentMemoService; - + @PostMapping("/create") public ResponseEntity<AppointmentMemo> createMemo(@RequestBody AppointmentMemoCreateDTO memoDTO) { appointmentMemoService.checkPermission(memoDTO.getAppointmentId()); AppointmentMemo memo = appointmentMemoService.create(memoDTO); return new ResponseEntity<>(memo, HttpStatus.OK); } - + @PostMapping("/update") public ResponseEntity<AppointmentMemo> updateMemo(@RequestBody AppointmentMemoUpdateDTO memoDTO) { AppointmentMemo memo = appointmentMemoService.update(memoDTO); return new ResponseEntity<>(memo, HttpStatus.OK); } - + @DeleteMapping("/{memoId}") public void deleteMemo(@PathVariable Long memoId) { appointmentMemoService.delete(memoId); } - - + + } diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java index d1e752e..5164e6a 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/AppointmentResource.java @@ -1,24 +1,24 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.appointment.process.AppointmentProcess; -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.SendMsgService; -import com.pollex.pam.service.dto.*; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingType; +import com.pollex.pam.business.appointment.process.AppointmentProcess; +import com.pollex.pam.business.domain.Appointment; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.SendMsgService; -import com.pollex.pam.service.mapper.AppointmentMapper; +import com.pollex.pam.business.service.dto.*; +import com.pollex.pam.business.service.mapper.AppointmentMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.PersonalNotificationService; -import com.pollex.pam.service.SatisfactionService; +import com.pollex.pam.business.service.AppointmentService; +import com.pollex.pam.business.service.PersonalNotificationService; +import com.pollex.pam.business.service.SatisfactionService; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.*; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.*; @RestController @RequestMapping("/api/appointment") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantLoginValidateResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantLoginValidateResource.java index 47b4ffc..c47276d 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantLoginValidateResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantLoginValidateResource.java @@ -16,12 +16,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.service.util.VerifyCodeUtil; +import com.pollex.pam.business.service.util.VerifyCodeUtil; @RestController @RequestMapping("/api/login/validate") public class ConsultantLoginValidateResource { - + @GetMapping("/get_img_code") public void getVerifyCodeImg(HttpServletResponse response, HttpServletRequest request) { try { @@ -52,11 +52,11 @@ || !StringUtils.hasText(imgCode)) { return false; } - + if (imgCode.equals(sessionImpCode)) { return true; } - + return false; } } diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantResource.java index 75cdc22..5a3cc86 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/ConsultantResource.java @@ -1,32 +1,25 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.ConsultantService; -import com.pollex.pam.service.dto.*; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; +import com.pollex.pam.business.domain.Appointment; +import com.pollex.pam.business.domain.Consultant; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.AppointmentService; +import com.pollex.pam.business.service.ConsultantService; +import com.pollex.pam.business.service.dto.*; import org.apache.commons.compress.utils.IOUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; -import java.nio.charset.StandardCharsets; import java.util.List; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_FILL_SATISFACTION_NOTICE; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.EDIT_CONSULTANT_DATA; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_FILL_SATISFACTION_NOTICE; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.EDIT_CONSULTANT_DATA; @RestController @RequestMapping("/api/consultant") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/CustomerInfoResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/CustomerInfoResource.java index 0e3924a..c02f1d5 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/CustomerInfoResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/CustomerInfoResource.java @@ -1,8 +1,8 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import com.pollex.pam.service.CustomerService; -import com.pollex.pam.service.dto.CustomerDTO; +import com.pollex.pam.business.service.dto.CustomerDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -10,7 +10,7 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.EDIT_CUSTOMER_DATA; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.EDIT_CUSTOMER_DATA; @RestController @RequestMapping("/api/customer/info") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/EServiceResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/EServiceResource.java index e8ac6f1..c25ca03 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/EServiceResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/EServiceResource.java @@ -1,11 +1,10 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import com.pollex.pam.security.jwt.JWTFilter; import com.pollex.pam.security.jwt.TokenProvider; -import com.pollex.pam.security.token.EServiceAuthenticationToken; -import com.pollex.pam.web.rest.vm.EServiceLoginVM; +import com.pollex.pam.business.security.token.EServiceAuthenticationToken; +import com.pollex.pam.business.web.vm.EServiceLoginVM; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -18,7 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_LOGIN; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CONSULTANT_LOGIN; @RestController @RequestMapping("/api/eService") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/InterviewRecordResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/InterviewRecordResource.java index bfb29c3..1aaf45c 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/InterviewRecordResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/InterviewRecordResource.java @@ -1,7 +1,6 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -10,11 +9,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.domain.InterviewRecord; -import com.pollex.pam.service.InterviewRecordService; -import com.pollex.pam.service.dto.InterviewRecordDTO; +import com.pollex.pam.business.domain.InterviewRecord; +import com.pollex.pam.business.service.InterviewRecordService; +import com.pollex.pam.business.service.dto.InterviewRecordDTO; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_CREATE_INTERVIEW; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CONSULTANT_CREATE_INTERVIEW; @RestController @RequestMapping("/api/interview_record") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/NoticeResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/NoticeResource.java index c8421ce..1661af0 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/NoticeResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/NoticeResource.java @@ -1,22 +1,19 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.domain.Appointment; -import com.pollex.pam.domain.AppointmentNoticeLog; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.NoticeService; -import com.pollex.pam.service.dto.AppointmentNoticeSendDTO; +import com.pollex.pam.business.domain.Appointment; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.AppointmentService; +import com.pollex.pam.business.service.NoticeService; +import com.pollex.pam.business.service.dto.AppointmentNoticeSendDTO; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_INTERVIEW_NOTICE; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CONSULTANT_SEND_INTERVIEW_NOTICE; @RestController @RequestMapping("/api/notice") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/OtpResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/OtpResource.java index e0cebb7..3cad8c3 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/OtpResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/OtpResource.java @@ -3,7 +3,7 @@ import java.util.Arrays; import java.util.UUID; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,22 +17,22 @@ import org.springframework.web.bind.annotation.RestController; import com.pollex.pam.config.ApplicationProperties; -import com.pollex.pam.domain.Customer; -import com.pollex.pam.enums.OtpLoginTypeEnum; -import com.pollex.pam.repository.CustomerRepository; +import com.pollex.pam.business.domain.Customer; +import com.pollex.pam.business.enums.OtpLoginTypeEnum; +import com.pollex.pam.business.repository.CustomerRepository; import com.pollex.pam.security.jwt.JWTFilter; import com.pollex.pam.security.jwt.TokenProvider; import com.pollex.pam.service.CustomerAuthService; import com.pollex.pam.service.CustomerService; -import com.pollex.pam.service.OtpTmpService; +import com.pollex.pam.business.service.OtpTmpService; import com.pollex.pam.service.OtpUtilService; import com.pollex.pam.service.OtpWebService; -import com.pollex.pam.service.dto.CustomerRegisterDTO; -import com.pollex.pam.service.dto.OtpResponseDTO; -import com.pollex.pam.web.rest.vm.OtpLoginVM; -import com.pollex.pam.web.rest.vm.VerifyOtpVM; +import com.pollex.pam.business.service.dto.CustomerRegisterDTO; +import com.pollex.pam.business.service.dto.OtpResponseDTO; +import com.pollex.pam.business.web.vm.OtpLoginVM; +import com.pollex.pam.business.web.vm.VerifyOtpVM; -import static com.pollex.pam.aop.logging.audit.AuditLoggingType.CUSTOMER_LOGIN; +import static com.pollex.pam.business.aop.logging.audit.AuditLoggingType.CUSTOMER_LOGIN; @RestController @RequestMapping("/api/otp") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java index ee805b5..9d2b05f 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/PersonalNotificationResource.java @@ -8,34 +8,31 @@ import org.springframework.http.ResponseEntity; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.domain.Consultant; -import com.pollex.pam.domain.PersonalNotification; -import com.pollex.pam.enums.NotificationTypeEnum; -import com.pollex.pam.enums.PersonalNotificationRoleEnum; -import com.pollex.pam.repository.PersonalNotificationRepository; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.ConsultantService; -import com.pollex.pam.service.PersonalNotificationService; +import com.pollex.pam.business.domain.Consultant; +import com.pollex.pam.business.domain.PersonalNotification; +import com.pollex.pam.business.enums.PersonalNotificationRoleEnum; +import com.pollex.pam.business.repository.PersonalNotificationRepository; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.ConsultantService; +import com.pollex.pam.business.service.PersonalNotificationService; @RestController @RequestMapping("/api/personal_notification") public class PersonalNotificationResource { - + @Autowired PersonalNotificationService personalNotificationService; - + @Autowired PersonalNotificationRepository personalNotificationRepository; - + @Autowired ConsultantService consultantService; - + @GetMapping("/getMyPersonalNotification") public ResponseEntity<List<PersonalNotification>> getMyPersonalNotification() { List<PersonalNotification> personalNotificationList = new ArrayList<>(); @@ -47,7 +44,7 @@ } return new ResponseEntity<>(personalNotificationList, HttpStatus.OK); } - + @PostMapping("/readAllMyNotification") public void readAll() { personalNotificationService.readAllMyNotification(); diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/PublicUserResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/PublicUserResource.java index 2b07888..be59f4d 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/PublicUserResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/PublicUserResource.java @@ -1,7 +1,7 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.service.UserService; -import com.pollex.pam.service.dto.UserDTO; +import com.pollex.pam.business.service.UserService; +import com.pollex.pam.business.service.dto.UserDTO; import java.util.*; import java.util.Collections; import org.slf4j.Logger; diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/SatisfactionResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/SatisfactionResource.java index 82c9afe..d1af1d5 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/SatisfactionResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/SatisfactionResource.java @@ -2,9 +2,9 @@ import java.util.List; -import com.pollex.pam.aop.logging.audit.AuditLoggingInject; -import com.pollex.pam.aop.logging.audit.AuditLoggingType; -import com.pollex.pam.enums.SatisfactionTypeEnum; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingInject; +import com.pollex.pam.business.aop.logging.audit.AuditLoggingType; +import com.pollex.pam.business.enums.SatisfactionTypeEnum; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,11 +15,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import com.pollex.pam.domain.Satisfaction; -import com.pollex.pam.security.SecurityUtils; -import com.pollex.pam.service.SatisfactionService; -import com.pollex.pam.service.dto.SatisfactionCustomerScoreDTO; -import com.pollex.pam.service.dto.SatisfactionDTO; +import com.pollex.pam.business.domain.Satisfaction; +import com.pollex.pam.business.security.SecurityUtils; +import com.pollex.pam.business.service.SatisfactionService; +import com.pollex.pam.business.service.dto.SatisfactionCustomerScoreDTO; +import com.pollex.pam.business.service.dto.SatisfactionDTO; @RestController @RequestMapping("/api/satisfaction") diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/TestLoginResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/TestLoginResource.java index 0487285..8c12c37 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/TestLoginResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/TestLoginResource.java @@ -3,8 +3,8 @@ import com.pollex.pam.config.ApplicationProperties; import com.pollex.pam.security.jwt.TokenProvider; import com.pollex.pam.service.OtpWebService; -import com.pollex.pam.service.dto.EServiceResponse; -import com.pollex.pam.service.dto.OtpResponseDTO; +import com.pollex.pam.business.service.dto.EServiceResponse; +import com.pollex.pam.business.service.dto.OtpResponseDTO; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.client.CloseableHttpClient; diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/TestSendMsgResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/TestSendMsgResource.java index 8920b48..f001429 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/TestSendMsgResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/TestSendMsgResource.java @@ -1,12 +1,11 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.service.AppointmentService; -import com.pollex.pam.service.SendMsgService; -import com.pollex.pam.service.dto.SendSMSResponse; +import com.pollex.pam.business.service.AppointmentService; +import com.pollex.pam.business.service.SendMsgService; +import com.pollex.pam.business.service.dto.SendSMSResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; @Deprecated diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/UserJWTController.java b/pamapi/src/main/java/com/pollex/pam/web/rest/UserJWTController.java index 4848e08..90c0be8 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/UserJWTController.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/UserJWTController.java @@ -3,7 +3,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.pollex.pam.security.jwt.JWTFilter; import com.pollex.pam.security.jwt.TokenProvider; -import com.pollex.pam.web.rest.vm.LoginVM; +import com.pollex.pam.business.web.vm.LoginVM; import javax.validation.Valid; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/UserResource.java b/pamapi/src/main/java/com/pollex/pam/web/rest/UserResource.java index f7b7e17..6c1217b 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/UserResource.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/UserResource.java @@ -1,15 +1,15 @@ package com.pollex.pam.web.rest; -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.AuthoritiesConstants; -import com.pollex.pam.service.MailService; -import com.pollex.pam.service.UserService; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.web.rest.errors.BadRequestAlertException; -import com.pollex.pam.web.rest.errors.EmailAlreadyUsedException; -import com.pollex.pam.web.rest.errors.LoginAlreadyUsedException; +import com.pollex.pam.business.config.Constants; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.security.AuthoritiesConstants; +import com.pollex.pam.business.service.MailService; +import com.pollex.pam.business.service.UserService; +import com.pollex.pam.business.service.dto.AdminUserDTO; +import com.pollex.pam.business.web.errors.BadRequestAlertException; +import com.pollex.pam.business.web.errors.EmailAlreadyUsedException; +import com.pollex.pam.business.web.errors.LoginAlreadyUsedException; import java.net.URI; import java.net.URISyntaxException; import java.util.*; diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentClosedInfoNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentClosedInfoNotFoundException.java deleted file mode 100644 index e1e00c8..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentClosedInfoNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Appointment close info not found") -public class AppointmentClosedInfoNotFoundException extends RuntimeException{ - - /** - * - */ - private static final long serialVersionUID = 1L; -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentMemoNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentMemoNotFoundException.java deleted file mode 100644 index b02f14e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentMemoNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Appointment memo not found") -public class AppointmentMemoNotFoundException extends RuntimeException{ - - /** - * - */ - private static final long serialVersionUID = 1L; -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentNotFoundException.java deleted file mode 100644 index be2eb8b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/AppointmentNotFoundException.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Appointment not found") -public class AppointmentNotFoundException extends RuntimeException{ - -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/BadRequestAlertException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/BadRequestAlertException.java deleted file mode 100644 index 5818e55..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/BadRequestAlertException.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import java.net.URI; -import java.util.HashMap; -import java.util.Map; -import org.zalando.problem.AbstractThrowableProblem; -import org.zalando.problem.Status; - -public class BadRequestAlertException extends AbstractThrowableProblem { - - private static final long serialVersionUID = 1L; - - private final String entityName; - - private final String errorKey; - - public BadRequestAlertException(String defaultMessage, String entityName, String errorKey) { - this(ErrorConstants.DEFAULT_TYPE, defaultMessage, entityName, errorKey); - } - - public BadRequestAlertException(URI type, String defaultMessage, String entityName, String errorKey) { - super(type, defaultMessage, Status.BAD_REQUEST, null, null, null, getAlertParameters(entityName, errorKey)); - this.entityName = entityName; - this.errorKey = errorKey; - } - - public String getEntityName() { - return entityName; - } - - public String getErrorKey() { - return errorKey; - } - - private static Map<String, Object> getAlertParameters(String entityName, String errorKey) { - Map<String, Object> parameters = new HashMap<>(); - parameters.put("message", "error." + errorKey); - parameters.put("params", entityName); - return parameters; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantDisableException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantDisableException.java deleted file mode 100644 index 38afe4e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantDisableException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(value = HttpStatus.UNAUTHORIZED) -public class ConsultantDisableException extends RuntimeException { - public ConsultantDisableException() { - super("甇文董����雿輻甇文像�銋���"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantNotFoundException.java deleted file mode 100644 index 517d418..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ConsultantNotFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Consultant not found") -public class ConsultantNotFoundException extends RuntimeException{ -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/CustomerNotRegisteredException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/CustomerNotRegisteredException.java deleted file mode 100644 index 89acfc0..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/CustomerNotRegisteredException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.FORBIDDEN, reason = "CustomerNotRegistered") -public class CustomerNotRegisteredException extends RuntimeException{ -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EServiceErrorException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EServiceErrorException.java deleted file mode 100644 index ceef292..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EServiceErrorException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.UNAUTHORIZED) -public class EServiceErrorException extends RuntimeException{ - public EServiceErrorException(String message) { - super(message); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EmailAlreadyUsedException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EmailAlreadyUsedException.java deleted file mode 100644 index 8d05d20..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/EmailAlreadyUsedException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -public class EmailAlreadyUsedException extends BadRequestAlertException { - - private static final long serialVersionUID = 1L; - - public EmailAlreadyUsedException() { - super(ErrorConstants.EMAIL_ALREADY_USED_TYPE, "Email is already in use!", "userManagement", "emailexists"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ErrorConstants.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ErrorConstants.java deleted file mode 100644 index 49e421c..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ErrorConstants.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import java.net.URI; - -public final class ErrorConstants { - - public static final String ERR_CONCURRENCY_FAILURE = "error.concurrencyFailure"; - public static final String ERR_VALIDATION = "error.validation"; - public static final String PROBLEM_BASE_URL = "https://www.jhipster.tech/problem"; - public static final URI DEFAULT_TYPE = URI.create(PROBLEM_BASE_URL + "/problem-with-message"); - public static final URI CONSTRAINT_VIOLATION_TYPE = URI.create(PROBLEM_BASE_URL + "/constraint-violation"); - public static final URI INVALID_PASSWORD_TYPE = URI.create(PROBLEM_BASE_URL + "/invalid-password"); - public static final URI EMAIL_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/email-already-used"); - public static final URI LOGIN_ALREADY_USED_TYPE = URI.create(PROBLEM_BASE_URL + "/login-already-used"); - - private ErrorConstants() {} -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ExceptionTranslator.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ExceptionTranslator.java index e59e428..5c00cba 100644 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ExceptionTranslator.java +++ b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/ExceptionTranslator.java @@ -9,6 +9,9 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.servlet.http.HttpServletRequest; + +import com.pollex.pam.business.service.UsernameAlreadyUsedException; +import com.pollex.pam.business.web.errors.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; @@ -117,7 +120,7 @@ @ExceptionHandler public ResponseEntity<Problem> handleEmailAlreadyUsedException( - com.pollex.pam.service.EmailAlreadyUsedException ex, + com.pollex.pam.business.service.EmailAlreadyUsedException ex, NativeWebRequest request ) { EmailAlreadyUsedException problem = new EmailAlreadyUsedException(); @@ -130,7 +133,7 @@ @ExceptionHandler public ResponseEntity<Problem> handleUsernameAlreadyUsedException( - com.pollex.pam.service.UsernameAlreadyUsedException ex, + UsernameAlreadyUsedException ex, NativeWebRequest request ) { LoginAlreadyUsedException problem = new LoginAlreadyUsedException(); @@ -143,7 +146,7 @@ @ExceptionHandler public ResponseEntity<Problem> handleInvalidPasswordException( - com.pollex.pam.service.InvalidPasswordException ex, + com.pollex.pam.business.service.InvalidPasswordException ex, NativeWebRequest request ) { return create(new InvalidPasswordException(), request); diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/FieldErrorVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/FieldErrorVM.java deleted file mode 100644 index 4028995..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/FieldErrorVM.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import java.io.Serializable; - -public class FieldErrorVM implements Serializable { - - private static final long serialVersionUID = 1L; - - private final String objectName; - - private final String field; - - private final String message; - - public FieldErrorVM(String dto, String field, String message) { - this.objectName = dto; - this.field = field; - this.message = message; - } - - public String getObjectName() { - return objectName; - } - - public String getField() { - return field; - } - - public String getMessage() { - return message; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InterviewRecordNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InterviewRecordNotFoundException.java deleted file mode 100644 index c3a426d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InterviewRecordNotFoundException.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "InterviewRecord not found") -public class InterviewRecordNotFoundException extends RuntimeException{ - - /** - * - */ - private static final long serialVersionUID = 1L; - -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InvalidPasswordException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InvalidPasswordException.java deleted file mode 100644 index dd3812f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/InvalidPasswordException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.zalando.problem.AbstractThrowableProblem; -import org.zalando.problem.Status; - -public class InvalidPasswordException extends AbstractThrowableProblem { - - private static final long serialVersionUID = 1L; - - public InvalidPasswordException() { - super(ErrorConstants.INVALID_PASSWORD_TYPE, "Incorrect password", Status.BAD_REQUEST); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/LoginAlreadyUsedException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/LoginAlreadyUsedException.java deleted file mode 100644 index aab2f9a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/LoginAlreadyUsedException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -public class LoginAlreadyUsedException extends BadRequestAlertException { - - private static final long serialVersionUID = 1L; - - public LoginAlreadyUsedException() { - super(ErrorConstants.LOGIN_ALREADY_USED_TYPE, "Login name already used!", "userManagement", "userexists"); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotFoundExpiringAppointmentException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotFoundExpiringAppointmentException.java deleted file mode 100644 index a2a02f0..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotFoundExpiringAppointmentException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "not found any expiring appointment") -public class NotFoundExpiringAppointmentException extends RuntimeException { -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotLoginException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotLoginException.java deleted file mode 100644 index 233f1b4..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/NotLoginException.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.UNAUTHORIZED, reason = "Security Context error authentication") -public class NotLoginException extends RuntimeException{ -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/OtpLoginFailException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/OtpLoginFailException.java deleted file mode 100644 index 65ff04f..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/OtpLoginFailException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.UNAUTHORIZED) -public class OtpLoginFailException extends RuntimeException{ - public OtpLoginFailException(String message) { - super(message); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionAlreadyExistException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionAlreadyExistException.java deleted file mode 100644 index 013590a..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionAlreadyExistException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR, reason = "Satisfaction already exist") -public class SatisfactionAlreadyExistException extends RuntimeException{ - - /** - * - */ - private static final long serialVersionUID = 1L; -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionNotFoundException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionNotFoundException.java deleted file mode 100644 index e504c34..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SatisfactionNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.NOT_FOUND, reason = "Satisfaction not found") -public class SatisfactionNotFoundException extends RuntimeException{ - - /** - * - */ - private static final long serialVersionUID = 1L; -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendEmailFailException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendEmailFailException.java deleted file mode 100644 index b43324b..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendEmailFailException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR, reason = "send email failed") -public class SendEmailFailException extends RuntimeException { - public SendEmailFailException() {} - public SendEmailFailException(String message) { - super(message); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendSMSFailException.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendSMSFailException.java deleted file mode 100644 index 0b721ab..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/SendSMSFailException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.ResponseStatus; - -@ResponseStatus(code = HttpStatus.INTERNAL_SERVER_ERROR, reason = "send sms failed") -public class SendSMSFailException extends RuntimeException{ - public SendSMSFailException(){} - public SendSMSFailException(String message) { - super(message); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/package-info.java b/pamapi/src/main/java/com/pollex/pam/web/rest/errors/package-info.java deleted file mode 100644 index b010ea3..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/errors/package-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/** - * Specific errors used with Zalando's "problem-spring-web" library. - * - * More information on https://github.com/zalando/problem-spring-web - */ -package com.pollex.pam.web.rest.errors; diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/EServiceLoginVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/EServiceLoginVM.java deleted file mode 100644 index 2cebe8e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/EServiceLoginVM.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -public class EServiceLoginVM { - private String username; - private String password; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/KeyAndPasswordVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/KeyAndPasswordVM.java deleted file mode 100644 index 7bb8309..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/KeyAndPasswordVM.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -/** - * View Model object for storing the user's key and password. - */ -public class KeyAndPasswordVM { - - private String key; - - private String newPassword; - - public String getKey() { - return key; - } - - public void setKey(String key) { - this.key = key; - } - - public String getNewPassword() { - return newPassword; - } - - public void setNewPassword(String newPassword) { - this.newPassword = newPassword; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/LoginVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/LoginVM.java deleted file mode 100644 index 97efc36..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/LoginVM.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; - -/** - * View Model object for storing a user's credentials. - */ -public class LoginVM { - - @NotNull - @Size(min = 1, max = 50) - private String username; - - @NotNull - @Size(min = 4, max = 100) - private String password; - - private boolean rememberMe; - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public boolean isRememberMe() { - return rememberMe; - } - - public void setRememberMe(boolean rememberMe) { - this.rememberMe = rememberMe; - } - - // prettier-ignore - @Override - public String toString() { - return "LoginVM{" + - "username='" + username + '\'' + - ", rememberMe=" + rememberMe + - '}'; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/ManagedUserVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/ManagedUserVM.java deleted file mode 100644 index 74605b5..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/ManagedUserVM.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -import com.pollex.pam.service.dto.AdminUserDTO; -import javax.validation.constraints.Size; - -/** - * View Model extending the AdminUserDTO, which is meant to be used in the user management UI. - */ -public class ManagedUserVM extends AdminUserDTO { - - public static final int PASSWORD_MIN_LENGTH = 4; - - public static final int PASSWORD_MAX_LENGTH = 100; - - @Size(min = PASSWORD_MIN_LENGTH, max = PASSWORD_MAX_LENGTH) - private String password; - - public ManagedUserVM() { - // Empty constructor needed for Jackson. - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - // prettier-ignore - @Override - public String toString() { - return "ManagedUserVM{" + super.toString() + "} "; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpAccount.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpAccount.java deleted file mode 100644 index e64bdca..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpAccount.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -import java.util.Optional; - -import org.apache.http.util.Asserts; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - -import com.pollex.pam.domain.Customer; - -public class OtpAccount { - private String account; - private String indexKey; - - public OtpAccount(String account, String indexKey) { - this.account = account; - this.indexKey = indexKey; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getIndexKey() { - return indexKey; - } - - public void setIndexKey(String indexKey) { - this.indexKey = indexKey; - } - - public static OtpAccount createOtpAccount(Customer customerAcct, String indexKey) { - String acct = customerAcct.toAccountString(); - - Assert.hasText(acct, "Customer phone or email must not null"); - - return new OtpAccount(acct, indexKey); - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpEmailLoginVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpEmailLoginVM.java deleted file mode 100644 index c7a4ef6..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpEmailLoginVM.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -public class OtpEmailLoginVM { - private String email; - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpLoginVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpLoginVM.java deleted file mode 100644 index e376624..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpLoginVM.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -import com.pollex.pam.enums.OtpLoginTypeEnum; - -public class OtpLoginVM { - private OtpLoginTypeEnum loginType; - private String account; - - public OtpLoginTypeEnum getLoginType() { - return loginType; - } - - public void setLoginType(OtpLoginTypeEnum loginType) { - this.loginType = loginType; - } - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpSMSLoginVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpSMSLoginVM.java deleted file mode 100644 index 830ba8d..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/OtpSMSLoginVM.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -public class OtpSMSLoginVM { - private String phone; - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/VerifyOtpVM.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/VerifyOtpVM.java deleted file mode 100644 index 8465eee..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/VerifyOtpVM.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.pollex.pam.web.rest.vm; - -public class VerifyOtpVM { - private String account; - private String indexKey; - private String otpCode; - - public String getAccount() { - return account; - } - - public void setAccount(String account) { - this.account = account; - } - - public String getIndexKey() { - return indexKey; - } - - public void setIndexKey(String indexKey) { - this.indexKey = indexKey; - } - - public String getOtpCode() { - return otpCode; - } - - public void setOtpCode(String otpCode) { - this.otpCode = otpCode; - } -} diff --git a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/package-info.java b/pamapi/src/main/java/com/pollex/pam/web/rest/vm/package-info.java deleted file mode 100644 index 2a5048e..0000000 --- a/pamapi/src/main/java/com/pollex/pam/web/rest/vm/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * View Models used by Spring MVC REST controllers. - */ -package com.pollex.pam.web.rest.vm; diff --git a/pamapi/src/test/java/com/pollex/pam/ArchTest.java b/pamapi/src/test/java/com/pollex/pam/ArchTest.java index d98c800..47e6326 100644 --- a/pamapi/src/test/java/com/pollex/pam/ArchTest.java +++ b/pamapi/src/test/java/com/pollex/pam/ArchTest.java @@ -17,9 +17,9 @@ noClasses() .that() - .resideInAnyPackage("com.pollex.pam.service..") + .resideInAnyPackage("com.pollex.pam.business.service..") .or() - .resideInAnyPackage("com.pollex.pam.repository..") + .resideInAnyPackage("com.pollex.pam.business.repository..") .should() .dependOnClassesThat() .resideInAnyPackage("..com.pollex.pam.web..") diff --git a/pamapi/src/test/java/com/pollex/pam/config/NoOpMailConfiguration.java b/pamapi/src/test/java/com/pollex/pam/config/NoOpMailConfiguration.java index cd88e1d..4a556b2 100644 --- a/pamapi/src/test/java/com/pollex/pam/config/NoOpMailConfiguration.java +++ b/pamapi/src/test/java/com/pollex/pam/config/NoOpMailConfiguration.java @@ -4,7 +4,7 @@ import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; -import com.pollex.pam.service.MailService; +import com.pollex.pam.business.service.MailService; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/pamapi/src/test/java/com/pollex/pam/config/timezone/HibernateTimeZoneIT.java b/pamapi/src/test/java/com/pollex/pam/config/timezone/HibernateTimeZoneIT.java deleted file mode 100644 index f0db7f2..0000000 --- a/pamapi/src/test/java/com/pollex/pam/config/timezone/HibernateTimeZoneIT.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.pollex.pam.config.timezone; - -import static java.lang.String.format; -import static org.assertj.core.api.Assertions.assertThat; - -import com.pollex.pam.IntegrationTest; -import com.pollex.pam.repository.timezone.DateTimeWrapper; -import com.pollex.pam.repository.timezone.DateTimeWrapperRepository; -import java.time.*; -import java.time.format.DateTimeFormatter; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.jdbc.support.rowset.SqlRowSet; -import org.springframework.transaction.annotation.Transactional; - -/** - * Integration tests for the ZoneId Hibernate configuration. - */ -@IntegrationTest -class HibernateTimeZoneIT { - - @Autowired - private DateTimeWrapperRepository dateTimeWrapperRepository; - - @Autowired - private JdbcTemplate jdbcTemplate; - - @Value("${spring.jpa.properties.hibernate.jdbc.time_zone:UTC}") - private String zoneId; - - private DateTimeWrapper dateTimeWrapper; - private DateTimeFormatter dateTimeFormatter; - private DateTimeFormatter timeFormatter; - private DateTimeFormatter dateFormatter; - - @BeforeEach - public void setup() { - dateTimeWrapper = new DateTimeWrapper(); - dateTimeWrapper.setInstant(Instant.parse("2014-11-12T05:50:00.0Z")); - dateTimeWrapper.setLocalDateTime(LocalDateTime.parse("2014-11-12T07:50:00.0")); - dateTimeWrapper.setOffsetDateTime(OffsetDateTime.parse("2011-12-14T08:30:00.0Z")); - dateTimeWrapper.setZonedDateTime(ZonedDateTime.parse("2011-12-14T08:30:00.0Z")); - dateTimeWrapper.setLocalTime(LocalTime.parse("14:30:00")); - dateTimeWrapper.setOffsetTime(OffsetTime.parse("14:30:00+02:00")); - dateTimeWrapper.setLocalDate(LocalDate.parse("2016-09-10")); - - dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S").withZone(ZoneId.of(zoneId)); - - timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss").withZone(ZoneId.of(zoneId)); - - dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - } - - @Test - @Transactional - void storeInstantWithZoneIdConfigShouldBeStoredOnGMTTimeZone() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("instant", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeFormatter.format(dateTimeWrapper.getInstant()); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeLocalDateTimeWithZoneIdConfigShouldBeStoredOnGMTTimeZone() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("local_date_time", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper.getLocalDateTime().atZone(ZoneId.systemDefault()).format(dateTimeFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeOffsetDateTimeWithZoneIdConfigShouldBeStoredOnGMTTimeZone() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("offset_date_time", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper.getOffsetDateTime().format(dateTimeFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeZoneDateTimeWithZoneIdConfigShouldBeStoredOnGMTTimeZone() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("zoned_date_time", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper.getZonedDateTime().format(dateTimeFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeLocalTimeWithZoneIdConfigShouldBeStoredOnGMTTimeZoneAccordingToHis1stJan1970Value() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("local_time", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper - .getLocalTime() - .atDate(LocalDate.of(1970, Month.JANUARY, 1)) - .atZone(ZoneId.systemDefault()) - .format(timeFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeOffsetTimeWithZoneIdConfigShouldBeStoredOnGMTTimeZoneAccordingToHis1stJan1970Value() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("offset_time", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper - .getOffsetTime() - .toLocalTime() - .atDate(LocalDate.of(1970, Month.JANUARY, 1)) - .atZone(ZoneId.systemDefault()) - .format(timeFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - @Test - @Transactional - void storeLocalDateWithZoneIdConfigShouldBeStoredWithoutTransformation() { - dateTimeWrapperRepository.saveAndFlush(dateTimeWrapper); - - String request = generateSqlRequest("local_date", dateTimeWrapper.getId()); - SqlRowSet resultSet = jdbcTemplate.queryForRowSet(request); - String expectedValue = dateTimeWrapper.getLocalDate().format(dateFormatter); - - assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(resultSet, expectedValue); - } - - private String generateSqlRequest(String fieldName, long id) { - return format("SELECT %s FROM jhi_date_time_wrapper where id=%d", fieldName, id); - } - - private void assertThatDateStoredValueIsEqualToInsertDateValueOnGMTTimeZone(SqlRowSet sqlRowSet, String expectedValue) { - while (sqlRowSet.next()) { - String dbValue = sqlRowSet.getString(1); - - assertThat(dbValue).isNotNull(); - assertThat(dbValue).isEqualTo(expectedValue); - } - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapper.java b/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapper.java deleted file mode 100644 index a6a6684..0000000 --- a/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapper.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.pollex.pam.repository.timezone; - -import java.io.Serializable; -import java.time.*; -import java.util.Objects; -import javax.persistence.*; - -@Entity -@Table(name = "jhi_date_time_wrapper") -public class DateTimeWrapper implements Serializable { - - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "sequenceGenerator") - @SequenceGenerator(name = "sequenceGenerator") - private Long id; - - @Column(name = "instant") - private Instant instant; - - @Column(name = "local_date_time") - private LocalDateTime localDateTime; - - @Column(name = "offset_date_time") - private OffsetDateTime offsetDateTime; - - @Column(name = "zoned_date_time") - private ZonedDateTime zonedDateTime; - - @Column(name = "local_time") - private LocalTime localTime; - - @Column(name = "offset_time") - private OffsetTime offsetTime; - - @Column(name = "local_date") - private LocalDate localDate; - - public Long getId() { - return id; - } - - public void setId(Long id) { - this.id = id; - } - - public Instant getInstant() { - return instant; - } - - public void setInstant(Instant instant) { - this.instant = instant; - } - - public LocalDateTime getLocalDateTime() { - return localDateTime; - } - - public void setLocalDateTime(LocalDateTime localDateTime) { - this.localDateTime = localDateTime; - } - - public OffsetDateTime getOffsetDateTime() { - return offsetDateTime; - } - - public void setOffsetDateTime(OffsetDateTime offsetDateTime) { - this.offsetDateTime = offsetDateTime; - } - - public ZonedDateTime getZonedDateTime() { - return zonedDateTime; - } - - public void setZonedDateTime(ZonedDateTime zonedDateTime) { - this.zonedDateTime = zonedDateTime; - } - - public LocalTime getLocalTime() { - return localTime; - } - - public void setLocalTime(LocalTime localTime) { - this.localTime = localTime; - } - - public OffsetTime getOffsetTime() { - return offsetTime; - } - - public void setOffsetTime(OffsetTime offsetTime) { - this.offsetTime = offsetTime; - } - - public LocalDate getLocalDate() { - return localDate; - } - - public void setLocalDate(LocalDate localDate) { - this.localDate = localDate; - } - - @Override - public boolean equals(Object o) { - if (this == o) { - return true; - } - if (o == null || getClass() != o.getClass()) { - return false; - } - - DateTimeWrapper dateTimeWrapper = (DateTimeWrapper) o; - return !(dateTimeWrapper.getId() == null || getId() == null) && Objects.equals(getId(), dateTimeWrapper.getId()); - } - - @Override - public int hashCode() { - return Objects.hashCode(getId()); - } - - // prettier-ignore - @Override - public String toString() { - return "TimeZoneTest{" + - "id=" + id + - ", instant=" + instant + - ", localDateTime=" + localDateTime + - ", offsetDateTime=" + offsetDateTime + - ", zonedDateTime=" + zonedDateTime + - '}'; - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapperRepository.java b/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapperRepository.java deleted file mode 100644 index 2907925..0000000 --- a/pamapi/src/test/java/com/pollex/pam/repository/timezone/DateTimeWrapperRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.pollex.pam.repository.timezone; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -/** - * Spring Data JPA repository for the {@link DateTimeWrapper} entity. - */ -@Repository -public interface DateTimeWrapperRepository extends JpaRepository<DateTimeWrapper, Long> {} diff --git a/pamapi/src/test/java/com/pollex/pam/security/DomainUserDetailsServiceIT.java b/pamapi/src/test/java/com/pollex/pam/security/DomainUserDetailsServiceIT.java deleted file mode 100644 index bba00aa..0000000 --- a/pamapi/src/test/java/com/pollex/pam/security/DomainUserDetailsServiceIT.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.pollex.pam.security; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatExceptionOfType; - -import com.pollex.pam.IntegrationTest; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import java.util.Locale; -import org.apache.commons.lang3.RandomStringUtils; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.security.core.userdetails.UserDetailsService; -import org.springframework.transaction.annotation.Transactional; - -/** - * Integrations tests for {@link DomainUserDetailsService}. - */ -@Transactional -@IntegrationTest -class DomainUserDetailsServiceIT { - - private static final String USER_ONE_LOGIN = "test-user-one"; - private static final String USER_ONE_EMAIL = "test-user-one@localhost"; - private static final String USER_TWO_LOGIN = "test-user-two"; - private static final String USER_TWO_EMAIL = "test-user-two@localhost"; - private static final String USER_THREE_LOGIN = "test-user-three"; - private static final String USER_THREE_EMAIL = "test-user-three@localhost"; - - @Autowired - private UserRepository userRepository; - - @Autowired - private UserDetailsService domainUserDetailsService; - - @BeforeEach - public void init() { - User userOne = new User(); - userOne.setLogin(USER_ONE_LOGIN); - userOne.setPassword(RandomStringUtils.random(60)); - userOne.setActivated(true); - userOne.setEmail(USER_ONE_EMAIL); - userOne.setFirstName("userOne"); - userOne.setLastName("doe"); - userOne.setLangKey("en"); - userRepository.save(userOne); - - User userTwo = new User(); - userTwo.setLogin(USER_TWO_LOGIN); - userTwo.setPassword(RandomStringUtils.random(60)); - userTwo.setActivated(true); - userTwo.setEmail(USER_TWO_EMAIL); - userTwo.setFirstName("userTwo"); - userTwo.setLastName("doe"); - userTwo.setLangKey("en"); - userRepository.save(userTwo); - - User userThree = new User(); - userThree.setLogin(USER_THREE_LOGIN); - userThree.setPassword(RandomStringUtils.random(60)); - userThree.setActivated(false); - userThree.setEmail(USER_THREE_EMAIL); - userThree.setFirstName("userThree"); - userThree.setLastName("doe"); - userThree.setLangKey("en"); - userRepository.save(userThree); - } - - @Test - void assertThatUserCanBeFoundByLogin() { - UserDetails userDetails = domainUserDetailsService.loadUserByUsername(USER_ONE_LOGIN); - assertThat(userDetails).isNotNull(); - assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); - } - - @Test - void assertThatUserCanBeFoundByLoginIgnoreCase() { - UserDetails userDetails = domainUserDetailsService.loadUserByUsername(USER_ONE_LOGIN.toUpperCase(Locale.ENGLISH)); - assertThat(userDetails).isNotNull(); - assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); - } - - @Test - void assertThatUserCanBeFoundByEmail() { - UserDetails userDetails = domainUserDetailsService.loadUserByUsername(USER_TWO_EMAIL); - assertThat(userDetails).isNotNull(); - assertThat(userDetails.getUsername()).isEqualTo(USER_TWO_LOGIN); - } - - @Test - void assertThatUserCanBeFoundByEmailIgnoreCase() { - UserDetails userDetails = domainUserDetailsService.loadUserByUsername(USER_TWO_EMAIL.toUpperCase(Locale.ENGLISH)); - assertThat(userDetails).isNotNull(); - assertThat(userDetails.getUsername()).isEqualTo(USER_TWO_LOGIN); - } - - @Test - void assertThatEmailIsPrioritizedOverLogin() { - UserDetails userDetails = domainUserDetailsService.loadUserByUsername(USER_ONE_EMAIL); - assertThat(userDetails).isNotNull(); - assertThat(userDetails.getUsername()).isEqualTo(USER_ONE_LOGIN); - } - - @Test - void assertThatUserNotActivatedExceptionIsThrownForNotActivatedUsers() { - assertThatExceptionOfType(UserNotActivatedException.class) - .isThrownBy(() -> domainUserDetailsService.loadUserByUsername(USER_THREE_LOGIN)); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/security/SecurityUtilsUnitTest.java b/pamapi/src/test/java/com/pollex/pam/security/SecurityUtilsUnitTest.java deleted file mode 100644 index 202c393..0000000 --- a/pamapi/src/test/java/com/pollex/pam/security/SecurityUtilsUnitTest.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.pollex.pam.security; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Optional; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContext; -import org.springframework.security.core.context.SecurityContextHolder; - -/** - * Test class for the {@link SecurityUtils} utility class. - */ -class SecurityUtilsUnitTest { - - @BeforeEach - @AfterEach - void cleanup() { - SecurityContextHolder.clearContext(); - } - - @Test - void testGetCurrentUserLogin() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("admin", "admin")); - SecurityContextHolder.setContext(securityContext); - Optional<String> login = SecurityUtils.getCurrentUserLogin(); - assertThat(login).contains("admin"); - } - - @Test - void testGetCurrentUserJWT() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("admin", "token")); - SecurityContextHolder.setContext(securityContext); - Optional<String> jwt = SecurityUtils.getCurrentUserJWT(); - assertThat(jwt).contains("token"); - } - - @Test - void testIsAuthenticated() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("admin", "admin")); - SecurityContextHolder.setContext(securityContext); - boolean isAuthenticated = SecurityUtils.isAuthenticated(); - assertThat(isAuthenticated).isTrue(); - } - - @Test - void testAnonymousIsNotAuthenticated() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - Collection<GrantedAuthority> authorities = new ArrayList<>(); - authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.ANONYMOUS)); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("anonymous", "anonymous", authorities)); - SecurityContextHolder.setContext(securityContext); - boolean isAuthenticated = SecurityUtils.isAuthenticated(); - assertThat(isAuthenticated).isFalse(); - } - - @Test - void testHasCurrentUserThisAuthority() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - Collection<GrantedAuthority> authorities = new ArrayList<>(); - authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.USER)); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("user", "user", authorities)); - SecurityContextHolder.setContext(securityContext); - - assertThat(SecurityUtils.hasCurrentUserThisAuthority(AuthoritiesConstants.USER)).isTrue(); - assertThat(SecurityUtils.hasCurrentUserThisAuthority(AuthoritiesConstants.ADMIN)).isFalse(); - } - - @Test - void testHasCurrentUserAnyOfAuthorities() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - Collection<GrantedAuthority> authorities = new ArrayList<>(); - authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.USER)); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("user", "user", authorities)); - SecurityContextHolder.setContext(securityContext); - - assertThat(SecurityUtils.hasCurrentUserAnyOfAuthorities(AuthoritiesConstants.USER, AuthoritiesConstants.ADMIN)).isTrue(); - assertThat(SecurityUtils.hasCurrentUserAnyOfAuthorities(AuthoritiesConstants.ANONYMOUS, AuthoritiesConstants.ADMIN)).isFalse(); - } - - @Test - void testHasCurrentUserNoneOfAuthorities() { - SecurityContext securityContext = SecurityContextHolder.createEmptyContext(); - Collection<GrantedAuthority> authorities = new ArrayList<>(); - authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.USER)); - securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("user", "user", authorities)); - SecurityContextHolder.setContext(securityContext); - - assertThat(SecurityUtils.hasCurrentUserNoneOfAuthorities(AuthoritiesConstants.USER, AuthoritiesConstants.ADMIN)).isFalse(); - assertThat(SecurityUtils.hasCurrentUserNoneOfAuthorities(AuthoritiesConstants.ANONYMOUS, AuthoritiesConstants.ADMIN)).isTrue(); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/security/jwt/JWTFilterTest.java b/pamapi/src/test/java/com/pollex/pam/security/jwt/JWTFilterTest.java deleted file mode 100644 index d459104..0000000 --- a/pamapi/src/test/java/com/pollex/pam/security/jwt/JWTFilterTest.java +++ /dev/null @@ -1,112 +0,0 @@ -package com.pollex.pam.security.jwt; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.pollex.pam.security.AuthoritiesConstants; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.security.Keys; -import java.util.Collections; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.http.HttpStatus; -import org.springframework.mock.web.MockFilterChain; -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.test.util.ReflectionTestUtils; -import tech.jhipster.config.JHipsterProperties; - -class JWTFilterTest { - - private TokenProvider tokenProvider; - - private JWTFilter jwtFilter; - - @BeforeEach - public void setup() { - JHipsterProperties jHipsterProperties = new JHipsterProperties(); - String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8"; - jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret); - tokenProvider = new TokenProvider(jHipsterProperties); - ReflectionTestUtils.setField(tokenProvider, "key", Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret))); - - ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", 60000); - jwtFilter = new JWTFilter(tokenProvider); - SecurityContextHolder.getContext().setAuthentication(null); - } - - @Test - void testJWTFilter() throws Exception { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken( - "test-user", - "test-password", - Collections.singletonList(new SimpleGrantedAuthority(AuthoritiesConstants.USER)) - ); - String jwt = tokenProvider.createToken(authentication, false); - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt); - request.setRequestURI("/api/test"); - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain filterChain = new MockFilterChain(); - jwtFilter.doFilter(request, response, filterChain); - assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(SecurityContextHolder.getContext().getAuthentication().getName()).isEqualTo("test-user"); - assertThat(SecurityContextHolder.getContext().getAuthentication().getCredentials()).hasToString(jwt); - } - - @Test - void testJWTFilterInvalidToken() throws Exception { - String jwt = "wrong_jwt"; - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer " + jwt); - request.setRequestURI("/api/test"); - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain filterChain = new MockFilterChain(); - jwtFilter.doFilter(request, response, filterChain); - assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); - } - - @Test - void testJWTFilterMissingAuthorization() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(); - request.setRequestURI("/api/test"); - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain filterChain = new MockFilterChain(); - jwtFilter.doFilter(request, response, filterChain); - assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); - } - - @Test - void testJWTFilterMissingToken() throws Exception { - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Bearer "); - request.setRequestURI("/api/test"); - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain filterChain = new MockFilterChain(); - jwtFilter.doFilter(request, response, filterChain); - assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); - } - - @Test - void testJWTFilterWrongScheme() throws Exception { - UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken( - "test-user", - "test-password", - Collections.singletonList(new SimpleGrantedAuthority(AuthoritiesConstants.USER)) - ); - String jwt = tokenProvider.createToken(authentication, false); - MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(JWTFilter.AUTHORIZATION_HEADER, "Basic " + jwt); - request.setRequestURI("/api/test"); - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain filterChain = new MockFilterChain(); - jwtFilter.doFilter(request, response, filterChain); - assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); - assertThat(SecurityContextHolder.getContext().getAuthentication()).isNull(); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/security/jwt/TokenProviderTest.java b/pamapi/src/test/java/com/pollex/pam/security/jwt/TokenProviderTest.java deleted file mode 100644 index 7dc9027..0000000 --- a/pamapi/src/test/java/com/pollex/pam/security/jwt/TokenProviderTest.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.pollex.pam.security.jwt; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.pollex.pam.security.AuthoritiesConstants; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.io.Decoders; -import io.jsonwebtoken.security.Keys; -import java.nio.charset.StandardCharsets; -import java.security.Key; -import java.util.*; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.GrantedAuthority; -import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.test.util.ReflectionTestUtils; -import tech.jhipster.config.JHipsterProperties; - -class TokenProviderTest { - - private static final long ONE_MINUTE = 60000; - - private Key key; - private TokenProvider tokenProvider; - - @BeforeEach - public void setup() { - JHipsterProperties jHipsterProperties = new JHipsterProperties(); - String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8"; - jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret); - tokenProvider = new TokenProvider(jHipsterProperties); - key = Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret)); - - ReflectionTestUtils.setField(tokenProvider, "key", key); - ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", ONE_MINUTE); - } - - @Test - void testReturnFalseWhenJWThasInvalidSignature() { - boolean isTokenValid = tokenProvider.validateToken(createTokenWithDifferentSignature()); - - assertThat(isTokenValid).isFalse(); - } - - @Test - void testReturnFalseWhenJWTisMalformed() { - Authentication authentication = createAuthentication(); - String token = tokenProvider.createToken(authentication, false); - String invalidToken = token.substring(1); - boolean isTokenValid = tokenProvider.validateToken(invalidToken); - - assertThat(isTokenValid).isFalse(); - } - - @Test - void testReturnFalseWhenJWTisExpired() { - ReflectionTestUtils.setField(tokenProvider, "tokenValidityInMilliseconds", -ONE_MINUTE); - - Authentication authentication = createAuthentication(); - String token = tokenProvider.createToken(authentication, false); - - boolean isTokenValid = tokenProvider.validateToken(token); - - assertThat(isTokenValid).isFalse(); - } - - @Test - void testReturnFalseWhenJWTisUnsupported() { - String unsupportedToken = createUnsupportedToken(); - - boolean isTokenValid = tokenProvider.validateToken(unsupportedToken); - - assertThat(isTokenValid).isFalse(); - } - - @Test - void testReturnFalseWhenJWTisInvalid() { - boolean isTokenValid = tokenProvider.validateToken(""); - - assertThat(isTokenValid).isFalse(); - } - - @Test - void testKeyIsSetFromSecretWhenSecretIsNotEmpty() { - final String secret = "NwskoUmKHZtzGRKJKVjsJF7BtQMMxNWi"; - JHipsterProperties jHipsterProperties = new JHipsterProperties(); - jHipsterProperties.getSecurity().getAuthentication().getJwt().setSecret(secret); - - TokenProvider tokenProvider = new TokenProvider(jHipsterProperties); - - Key key = (Key) ReflectionTestUtils.getField(tokenProvider, "key"); - assertThat(key).isNotNull().isEqualTo(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8))); - } - - @Test - void testKeyIsSetFromBase64SecretWhenSecretIsEmpty() { - final String base64Secret = "fd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8"; - JHipsterProperties jHipsterProperties = new JHipsterProperties(); - jHipsterProperties.getSecurity().getAuthentication().getJwt().setBase64Secret(base64Secret); - - TokenProvider tokenProvider = new TokenProvider(jHipsterProperties); - - Key key = (Key) ReflectionTestUtils.getField(tokenProvider, "key"); - assertThat(key).isNotNull().isEqualTo(Keys.hmacShaKeyFor(Decoders.BASE64.decode(base64Secret))); - } - - private Authentication createAuthentication() { - Collection<GrantedAuthority> authorities = new ArrayList<>(); - authorities.add(new SimpleGrantedAuthority(AuthoritiesConstants.ANONYMOUS)); - return new UsernamePasswordAuthenticationToken("anonymous", "anonymous", authorities); - } - - private String createUnsupportedToken() { - return Jwts.builder().setPayload("payload").signWith(key, SignatureAlgorithm.HS512).compact(); - } - - private String createTokenWithDifferentSignature() { - Key otherKey = Keys.hmacShaKeyFor( - Decoders.BASE64.decode("Xfd54a45s65fds737b9aafcb3412e07ed99b267f33413274720ddbb7f6c5e64e9f14075f2d7ed041592f0b7657baf8") - ); - - return Jwts - .builder() - .setSubject("anonymous") - .signWith(otherKey, SignatureAlgorithm.HS512) - .setExpiration(new Date(new Date().getTime() + ONE_MINUTE)) - .compact(); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/service/MailServiceIT.java b/pamapi/src/test/java/com/pollex/pam/service/MailServiceIT.java deleted file mode 100644 index 1b0b967..0000000 --- a/pamapi/src/test/java/com/pollex/pam/service/MailServiceIT.java +++ /dev/null @@ -1,245 +0,0 @@ -package com.pollex.pam.service; - -import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.*; - -import com.pollex.pam.IntegrationTest; -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.User; -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStreamReader; -import java.net.URI; -import java.net.URL; -import java.nio.charset.Charset; -import java.util.Properties; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import javax.mail.Multipart; -import javax.mail.internet.MimeBodyPart; -import javax.mail.internet.MimeMessage; -import javax.mail.internet.MimeMultipart; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.MockitoAnnotations; -import org.mockito.Spy; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.MessageSource; -import org.springframework.mail.MailSendException; -import org.springframework.mail.javamail.JavaMailSenderImpl; -import org.thymeleaf.spring5.SpringTemplateEngine; -import tech.jhipster.config.JHipsterProperties; - -/** - * Integration tests for {@link MailService}. - */ -@IntegrationTest -class MailServiceIT { - - private static final String[] languages = { - "zh-tw", - "en", - // jhipster-needle-i18n-language-constant - JHipster will add/remove languages in this array - }; - private static final Pattern PATTERN_LOCALE_3 = Pattern.compile("([a-z]{2})-([a-zA-Z]{4})-([a-z]{2})"); - private static final Pattern PATTERN_LOCALE_2 = Pattern.compile("([a-z]{2})-([a-z]{2})"); - - @Autowired - private JHipsterProperties jHipsterProperties; - - @Autowired - private MessageSource messageSource; - - @Autowired - private SpringTemplateEngine templateEngine; - - @Spy - private JavaMailSenderImpl javaMailSender; - - @Captor - private ArgumentCaptor<MimeMessage> messageCaptor; - - private MailService mailService; - - @BeforeEach - public void setup() { - MockitoAnnotations.initMocks(this); - doNothing().when(javaMailSender).send(any(MimeMessage.class)); - mailService = new MailService(jHipsterProperties, javaMailSender, messageSource, templateEngine); - } - - @Test - void testSendEmail() throws Exception { - mailService.sendEmail("john.doe@example.com", "testSubject", "testContent", false, false); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getSubject()).isEqualTo("testSubject"); - assertThat(message.getAllRecipients()[0]).hasToString("john.doe@example.com"); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent()).isInstanceOf(String.class); - assertThat(message.getContent()).hasToString("testContent"); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8"); - } - - @Test - void testSendHtmlEmail() throws Exception { - mailService.sendEmail("john.doe@example.com", "testSubject", "testContent", false, true); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getSubject()).isEqualTo("testSubject"); - assertThat(message.getAllRecipients()[0]).hasToString("john.doe@example.com"); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent()).isInstanceOf(String.class); - assertThat(message.getContent()).hasToString("testContent"); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testSendMultipartEmail() throws Exception { - mailService.sendEmail("john.doe@example.com", "testSubject", "testContent", true, false); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - MimeMultipart mp = (MimeMultipart) message.getContent(); - MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0); - ByteArrayOutputStream aos = new ByteArrayOutputStream(); - part.writeTo(aos); - assertThat(message.getSubject()).isEqualTo("testSubject"); - assertThat(message.getAllRecipients()[0]).hasToString("john.doe@example.com"); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent()).isInstanceOf(Multipart.class); - assertThat(aos).hasToString("\r\ntestContent"); - assertThat(part.getDataHandler().getContentType()).isEqualTo("text/plain; charset=UTF-8"); - } - - @Test - void testSendMultipartHtmlEmail() throws Exception { - mailService.sendEmail("john.doe@example.com", "testSubject", "testContent", true, true); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - MimeMultipart mp = (MimeMultipart) message.getContent(); - MimeBodyPart part = (MimeBodyPart) ((MimeMultipart) mp.getBodyPart(0).getContent()).getBodyPart(0); - ByteArrayOutputStream aos = new ByteArrayOutputStream(); - part.writeTo(aos); - assertThat(message.getSubject()).isEqualTo("testSubject"); - assertThat(message.getAllRecipients()[0]).hasToString("john.doe@example.com"); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent()).isInstanceOf(Multipart.class); - assertThat(aos).hasToString("\r\ntestContent"); - assertThat(part.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testSendEmailFromTemplate() throws Exception { - User user = new User(); - user.setLogin("john"); - user.setEmail("john.doe@example.com"); - user.setLangKey("en"); - mailService.sendEmailFromTemplate(user, "mail/testEmail", "email.test.title"); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getSubject()).isEqualTo("test title"); - assertThat(message.getAllRecipients()[0]).hasToString(user.getEmail()); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent().toString()).isEqualToNormalizingNewlines("<html>test title, http://127.0.0.1:8080, john</html>\n"); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testSendActivationEmail() throws Exception { - User user = new User(); - user.setLangKey(Constants.DEFAULT_LANGUAGE); - user.setLogin("john"); - user.setEmail("john.doe@example.com"); - mailService.sendActivationEmail(user); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getAllRecipients()[0]).hasToString(user.getEmail()); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent().toString()).isNotEmpty(); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testCreationEmail() throws Exception { - User user = new User(); - user.setLangKey(Constants.DEFAULT_LANGUAGE); - user.setLogin("john"); - user.setEmail("john.doe@example.com"); - mailService.sendCreationEmail(user); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getAllRecipients()[0]).hasToString(user.getEmail()); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent().toString()).isNotEmpty(); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testSendPasswordResetMail() throws Exception { - User user = new User(); - user.setLangKey(Constants.DEFAULT_LANGUAGE); - user.setLogin("john"); - user.setEmail("john.doe@example.com"); - mailService.sendPasswordResetMail(user); - verify(javaMailSender).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - assertThat(message.getAllRecipients()[0]).hasToString(user.getEmail()); - assertThat(message.getFrom()[0]).hasToString(jHipsterProperties.getMail().getFrom()); - assertThat(message.getContent().toString()).isNotEmpty(); - assertThat(message.getDataHandler().getContentType()).isEqualTo("text/html;charset=UTF-8"); - } - - @Test - void testSendEmailWithException() { - doThrow(MailSendException.class).when(javaMailSender).send(any(MimeMessage.class)); - try { - mailService.sendEmail("john.doe@example.com", "testSubject", "testContent", false, false); - } catch (Exception e) { - fail("Exception shouldn't have been thrown"); - } - } - - @Test - void testSendLocalizedEmailForAllSupportedLanguages() throws Exception { - User user = new User(); - user.setLogin("john"); - user.setEmail("john.doe@example.com"); - for (String langKey : languages) { - user.setLangKey(langKey); - mailService.sendEmailFromTemplate(user, "mail/testEmail", "email.test.title"); - verify(javaMailSender, atLeastOnce()).send(messageCaptor.capture()); - MimeMessage message = messageCaptor.getValue(); - - String propertyFilePath = "i18n/messages_" + getJavaLocale(langKey) + ".properties"; - URL resource = this.getClass().getClassLoader().getResource(propertyFilePath); - File file = new File(new URI(resource.getFile()).getPath()); - Properties properties = new Properties(); - properties.load(new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8"))); - - String emailTitle = (String) properties.get("email.test.title"); - assertThat(message.getSubject()).isEqualTo(emailTitle); - assertThat(message.getContent().toString()) - .isEqualToNormalizingNewlines("<html>" + emailTitle + ", http://127.0.0.1:8080, john</html>\n"); - } - } - - /** - * Convert a lang key to the Java locale. - */ - private String getJavaLocale(String langKey) { - String javaLangKey = langKey; - Matcher matcher2 = PATTERN_LOCALE_2.matcher(langKey); - if (matcher2.matches()) { - javaLangKey = matcher2.group(1) + "_" + matcher2.group(2).toUpperCase(); - } - Matcher matcher3 = PATTERN_LOCALE_3.matcher(langKey); - if (matcher3.matches()) { - javaLangKey = matcher3.group(1) + "_" + matcher3.group(2) + "_" + matcher3.group(3).toUpperCase(); - } - return javaLangKey; - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/service/UserServiceIT.java b/pamapi/src/test/java/com/pollex/pam/service/UserServiceIT.java deleted file mode 100644 index 9aa8c13..0000000 --- a/pamapi/src/test/java/com/pollex/pam/service/UserServiceIT.java +++ /dev/null @@ -1,185 +0,0 @@ -package com.pollex.pam.service; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; - -import com.pollex.pam.IntegrationTest; -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.service.dto.AdminUserDTO; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.temporal.ChronoUnit; -import java.util.List; -import java.util.Optional; -import org.apache.commons.lang3.RandomStringUtils; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.data.auditing.AuditingHandler; -import org.springframework.data.auditing.DateTimeProvider; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.transaction.annotation.Transactional; -import tech.jhipster.security.RandomUtil; - -/** - * Integration tests for {@link UserService}. - */ -@IntegrationTest -@Transactional -class UserServiceIT { - - private static final String DEFAULT_LOGIN = "johndoe"; - - private static final String DEFAULT_EMAIL = "johndoe@localhost"; - - private static final String DEFAULT_FIRSTNAME = "john"; - - private static final String DEFAULT_LASTNAME = "doe"; - - private static final String DEFAULT_IMAGEURL = "http://placehold.it/50x50"; - - private static final String DEFAULT_LANGKEY = "dummy"; - - @Autowired - private UserRepository userRepository; - - @Autowired - private UserService userService; - - @Autowired - private AuditingHandler auditingHandler; - - @MockBean - private DateTimeProvider dateTimeProvider; - - private User user; - - @BeforeEach - public void init() { - user = new User(); - user.setLogin(DEFAULT_LOGIN); - user.setPassword(RandomStringUtils.random(60)); - user.setActivated(true); - user.setEmail(DEFAULT_EMAIL); - user.setFirstName(DEFAULT_FIRSTNAME); - user.setLastName(DEFAULT_LASTNAME); - user.setImageUrl(DEFAULT_IMAGEURL); - user.setLangKey(DEFAULT_LANGKEY); - - when(dateTimeProvider.getNow()).thenReturn(Optional.of(LocalDateTime.now())); - auditingHandler.setDateTimeProvider(dateTimeProvider); - } - - @Test - @Transactional - void assertThatUserMustExistToResetPassword() { - userRepository.saveAndFlush(user); - Optional<User> maybeUser = userService.requestPasswordReset("invalid.login@localhost"); - assertThat(maybeUser).isNotPresent(); - - maybeUser = userService.requestPasswordReset(user.getEmail()); - assertThat(maybeUser).isPresent(); - assertThat(maybeUser.orElse(null).getEmail()).isEqualTo(user.getEmail()); - assertThat(maybeUser.orElse(null).getResetDate()).isNotNull(); - assertThat(maybeUser.orElse(null).getResetKey()).isNotNull(); - } - - @Test - @Transactional - void assertThatOnlyActivatedUserCanRequestPasswordReset() { - user.setActivated(false); - userRepository.saveAndFlush(user); - - Optional<User> maybeUser = userService.requestPasswordReset(user.getLogin()); - assertThat(maybeUser).isNotPresent(); - userRepository.delete(user); - } - - @Test - @Transactional - void assertThatResetKeyMustNotBeOlderThan24Hours() { - Instant daysAgo = Instant.now().minus(25, ChronoUnit.HOURS); - String resetKey = RandomUtil.generateResetKey(); - user.setActivated(true); - user.setResetDate(daysAgo); - user.setResetKey(resetKey); - userRepository.saveAndFlush(user); - - Optional<User> maybeUser = userService.completePasswordReset("johndoe2", user.getResetKey()); - assertThat(maybeUser).isNotPresent(); - userRepository.delete(user); - } - - @Test - @Transactional - void assertThatResetKeyMustBeValid() { - Instant daysAgo = Instant.now().minus(25, ChronoUnit.HOURS); - user.setActivated(true); - user.setResetDate(daysAgo); - user.setResetKey("1234"); - userRepository.saveAndFlush(user); - - Optional<User> maybeUser = userService.completePasswordReset("johndoe2", user.getResetKey()); - assertThat(maybeUser).isNotPresent(); - userRepository.delete(user); - } - - @Test - @Transactional - void assertThatUserCanResetPassword() { - String oldPassword = user.getPassword(); - Instant daysAgo = Instant.now().minus(2, ChronoUnit.HOURS); - String resetKey = RandomUtil.generateResetKey(); - user.setActivated(true); - user.setResetDate(daysAgo); - user.setResetKey(resetKey); - userRepository.saveAndFlush(user); - - Optional<User> maybeUser = userService.completePasswordReset("johndoe2", user.getResetKey()); - assertThat(maybeUser).isPresent(); - assertThat(maybeUser.orElse(null).getResetDate()).isNull(); - assertThat(maybeUser.orElse(null).getResetKey()).isNull(); - assertThat(maybeUser.orElse(null).getPassword()).isNotEqualTo(oldPassword); - - userRepository.delete(user); - } - - @Test - @Transactional - void assertThatNotActivatedUsersWithNotNullActivationKeyCreatedBefore3DaysAreDeleted() { - Instant now = Instant.now(); - when(dateTimeProvider.getNow()).thenReturn(Optional.of(now.minus(4, ChronoUnit.DAYS))); - user.setActivated(false); - user.setActivationKey(RandomStringUtils.random(20)); - User dbUser = userRepository.saveAndFlush(user); - dbUser.setCreatedDate(now.minus(4, ChronoUnit.DAYS)); - userRepository.saveAndFlush(user); - Instant threeDaysAgo = now.minus(3, ChronoUnit.DAYS); - List<User> users = userRepository.findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(threeDaysAgo); - assertThat(users).isNotEmpty(); - userService.removeNotActivatedUsers(); - users = userRepository.findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(threeDaysAgo); - assertThat(users).isEmpty(); - } - - @Test - @Transactional - void assertThatNotActivatedUsersWithNullActivationKeyCreatedBefore3DaysAreNotDeleted() { - Instant now = Instant.now(); - when(dateTimeProvider.getNow()).thenReturn(Optional.of(now.minus(4, ChronoUnit.DAYS))); - user.setActivated(false); - User dbUser = userRepository.saveAndFlush(user); - dbUser.setCreatedDate(now.minus(4, ChronoUnit.DAYS)); - userRepository.saveAndFlush(user); - Instant threeDaysAgo = now.minus(3, ChronoUnit.DAYS); - List<User> users = userRepository.findAllByActivatedIsFalseAndActivationKeyIsNotNullAndCreatedDateBefore(threeDaysAgo); - assertThat(users).isEmpty(); - userService.removeNotActivatedUsers(); - Optional<User> maybeDbUser = userRepository.findById(dbUser.getId()); - assertThat(maybeDbUser).contains(dbUser); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/service/mapper/UserMapperTest.java b/pamapi/src/test/java/com/pollex/pam/service/mapper/UserMapperTest.java deleted file mode 100644 index e4514c7..0000000 --- a/pamapi/src/test/java/com/pollex/pam/service/mapper/UserMapperTest.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.pollex.pam.service.mapper; - -import static org.assertj.core.api.Assertions.assertThat; - -import com.pollex.pam.domain.User; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.dto.UserDTO; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import org.apache.commons.lang3.RandomStringUtils; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -/** - * Unit tests for {@link UserMapper}. - */ -class UserMapperTest { - - private static final String DEFAULT_LOGIN = "johndoe"; - private static final Long DEFAULT_ID = 1L; - - private UserMapper userMapper; - private User user; - private AdminUserDTO userDto; - - @BeforeEach - public void init() { - userMapper = new UserMapper(); - user = new User(); - user.setLogin(DEFAULT_LOGIN); - user.setPassword(RandomStringUtils.random(60)); - user.setActivated(true); - user.setEmail("johndoe@localhost"); - user.setFirstName("john"); - user.setLastName("doe"); - user.setImageUrl("image_url"); - user.setLangKey("en"); - - userDto = new AdminUserDTO(user); - } - - @Test - void usersToUserDTOsShouldMapOnlyNonNullUsers() { - List<User> users = new ArrayList<>(); - users.add(user); - users.add(null); - - List<UserDTO> userDTOS = userMapper.usersToUserDTOs(users); - - assertThat(userDTOS).isNotEmpty().size().isEqualTo(1); - } - - @Test - void userDTOsToUsersShouldMapOnlyNonNullUsers() { - List<AdminUserDTO> usersDto = new ArrayList<>(); - usersDto.add(userDto); - usersDto.add(null); - - List<User> users = userMapper.userDTOsToUsers(usersDto); - - assertThat(users).isNotEmpty().size().isEqualTo(1); - } - - @Test - void userDTOsToUsersWithAuthoritiesStringShouldMapToUsersWithAuthoritiesDomain() { - Set<String> authoritiesAsString = new HashSet<>(); - authoritiesAsString.add("ADMIN"); - userDto.setAuthorities(authoritiesAsString); - - List<AdminUserDTO> usersDto = new ArrayList<>(); - usersDto.add(userDto); - - List<User> users = userMapper.userDTOsToUsers(usersDto); - - assertThat(users).isNotEmpty().size().isEqualTo(1); - assertThat(users.get(0).getAuthorities()).isNotNull(); - assertThat(users.get(0).getAuthorities()).isNotEmpty(); - assertThat(users.get(0).getAuthorities().iterator().next().getName()).isEqualTo("ADMIN"); - } - - @Test - void userDTOsToUsersMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() { - userDto.setAuthorities(null); - - List<AdminUserDTO> usersDto = new ArrayList<>(); - usersDto.add(userDto); - - List<User> users = userMapper.userDTOsToUsers(usersDto); - - assertThat(users).isNotEmpty().size().isEqualTo(1); - assertThat(users.get(0).getAuthorities()).isNotNull(); - assertThat(users.get(0).getAuthorities()).isEmpty(); - } - - @Test - void userDTOToUserMapWithAuthoritiesStringShouldReturnUserWithAuthorities() { - Set<String> authoritiesAsString = new HashSet<>(); - authoritiesAsString.add("ADMIN"); - userDto.setAuthorities(authoritiesAsString); - - User user = userMapper.userDTOToUser(userDto); - - assertThat(user).isNotNull(); - assertThat(user.getAuthorities()).isNotNull(); - assertThat(user.getAuthorities()).isNotEmpty(); - assertThat(user.getAuthorities().iterator().next().getName()).isEqualTo("ADMIN"); - } - - @Test - void userDTOToUserMapWithNullAuthoritiesStringShouldReturnUserWithEmptyAuthorities() { - userDto.setAuthorities(null); - - User user = userMapper.userDTOToUser(userDto); - - assertThat(user).isNotNull(); - assertThat(user.getAuthorities()).isNotNull(); - assertThat(user.getAuthorities()).isEmpty(); - } - - @Test - void userDTOToUserMapWithNullUserShouldReturnNull() { - assertThat(userMapper.userDTOToUser(null)).isNull(); - } - - @Test - void testUserFromId() { - assertThat(userMapper.userFromId(DEFAULT_ID).getId()).isEqualTo(DEFAULT_ID); - assertThat(userMapper.userFromId(null)).isNull(); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/AccountResourceIT.java b/pamapi/src/test/java/com/pollex/pam/web/rest/AccountResourceIT.java index 9ff6565..eace069 100644 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/AccountResourceIT.java +++ b/pamapi/src/test/java/com/pollex/pam/web/rest/AccountResourceIT.java @@ -6,17 +6,16 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import com.pollex.pam.IntegrationTest; -import com.pollex.pam.config.Constants; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.AuthorityRepository; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.AuthoritiesConstants; -import com.pollex.pam.service.UserService; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.dto.PasswordChangeDTO; -import com.pollex.pam.service.dto.UserDTO; -import com.pollex.pam.web.rest.vm.KeyAndPasswordVM; -import com.pollex.pam.web.rest.vm.ManagedUserVM; +import com.pollex.pam.business.config.Constants; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.AuthorityRepository; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.security.AuthoritiesConstants; +import com.pollex.pam.business.service.UserService; +import com.pollex.pam.business.service.dto.AdminUserDTO; +import com.pollex.pam.business.service.dto.PasswordChangeDTO; +import com.pollex.pam.business.web.vm.KeyAndPasswordVM; +import com.pollex.pam.business.web.vm.ManagedUserVM; import java.time.Instant; import java.util.*; import org.apache.commons.lang3.RandomStringUtils; diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/PublicUserResourceIT.java b/pamapi/src/test/java/com/pollex/pam/web/rest/PublicUserResourceIT.java index 72ece3d..092b58b 100644 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/PublicUserResourceIT.java +++ b/pamapi/src/test/java/com/pollex/pam/web/rest/PublicUserResourceIT.java @@ -6,9 +6,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import com.pollex.pam.IntegrationTest; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.AuthoritiesConstants; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.security.AuthoritiesConstants; import javax.persistence.EntityManager; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/UserJWTControllerIT.java b/pamapi/src/test/java/com/pollex/pam/web/rest/UserJWTControllerIT.java index 094e9ce..1eda30e 100644 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/UserJWTControllerIT.java +++ b/pamapi/src/test/java/com/pollex/pam/web/rest/UserJWTControllerIT.java @@ -10,9 +10,9 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import com.pollex.pam.IntegrationTest; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.web.rest.vm.LoginVM; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.web.vm.LoginVM; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/UserResourceIT.java b/pamapi/src/test/java/com/pollex/pam/web/rest/UserResourceIT.java index 9efe6d2..b1357ef 100644 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/UserResourceIT.java +++ b/pamapi/src/test/java/com/pollex/pam/web/rest/UserResourceIT.java @@ -7,13 +7,13 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import com.pollex.pam.IntegrationTest; -import com.pollex.pam.domain.Authority; -import com.pollex.pam.domain.User; -import com.pollex.pam.repository.UserRepository; -import com.pollex.pam.security.AuthoritiesConstants; -import com.pollex.pam.service.dto.AdminUserDTO; -import com.pollex.pam.service.mapper.UserMapper; -import com.pollex.pam.web.rest.vm.ManagedUserVM; +import com.pollex.pam.business.domain.Authority; +import com.pollex.pam.business.domain.User; +import com.pollex.pam.business.repository.UserRepository; +import com.pollex.pam.business.security.AuthoritiesConstants; +import com.pollex.pam.business.service.dto.AdminUserDTO; +import com.pollex.pam.business.service.mapper.UserMapper; +import com.pollex.pam.business.web.vm.ManagedUserVM; import java.time.Instant; import java.util.*; import java.util.function.Consumer; diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorIT.java b/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorIT.java deleted file mode 100644 index 057057c..0000000 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorIT.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import com.pollex.pam.IntegrationTest; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.MediaType; -import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.web.servlet.MockMvc; - -/** - * Integration tests {@link ExceptionTranslator} controller advice. - */ -@WithMockUser -@AutoConfigureMockMvc -@IntegrationTest -class ExceptionTranslatorIT { - - @Autowired - private MockMvc mockMvc; - - @Test - void testConcurrencyFailure() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/concurrency-failure")) - .andExpect(status().isConflict()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value(ErrorConstants.ERR_CONCURRENCY_FAILURE)); - } - - @Test - void testMethodArgumentNotValid() throws Exception { - mockMvc - .perform(post("/api/exception-translator-test/method-argument").content("{}").contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isBadRequest()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value(ErrorConstants.ERR_VALIDATION)) - .andExpect(jsonPath("$.fieldErrors.[0].objectName").value("test")) - .andExpect(jsonPath("$.fieldErrors.[0].field").value("test")) - .andExpect(jsonPath("$.fieldErrors.[0].message").value("must not be null")); - } - - @Test - void testMissingServletRequestPartException() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/missing-servlet-request-part")) - .andExpect(status().isBadRequest()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.400")); - } - - @Test - void testMissingServletRequestParameterException() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/missing-servlet-request-parameter")) - .andExpect(status().isBadRequest()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.400")); - } - - @Test - void testAccessDenied() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/access-denied")) - .andExpect(status().isForbidden()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.403")) - .andExpect(jsonPath("$.detail").value("test access denied!")); - } - - @Test - void testUnauthorized() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/unauthorized")) - .andExpect(status().isUnauthorized()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.401")) - .andExpect(jsonPath("$.path").value("/api/exception-translator-test/unauthorized")) - .andExpect(jsonPath("$.detail").value("test authentication failed!")); - } - - @Test - void testMethodNotSupported() throws Exception { - mockMvc - .perform(post("/api/exception-translator-test/access-denied")) - .andExpect(status().isMethodNotAllowed()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.405")) - .andExpect(jsonPath("$.detail").value("Request method 'POST' not supported")); - } - - @Test - void testExceptionWithResponseStatus() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/response-status")) - .andExpect(status().isBadRequest()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.400")) - .andExpect(jsonPath("$.title").value("test response status")); - } - - @Test - void testInternalServerError() throws Exception { - mockMvc - .perform(get("/api/exception-translator-test/internal-server-error")) - .andExpect(status().isInternalServerError()) - .andExpect(content().contentType(MediaType.APPLICATION_PROBLEM_JSON)) - .andExpect(jsonPath("$.message").value("error.http.500")) - .andExpect(jsonPath("$.title").value("Internal Server Error")); - } -} diff --git a/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorTestController.java b/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorTestController.java deleted file mode 100644 index 131a99d..0000000 --- a/pamapi/src/test/java/com/pollex/pam/web/rest/errors/ExceptionTranslatorTestController.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.pollex.pam.web.rest.errors; - -import javax.validation.Valid; -import javax.validation.constraints.NotNull; -import org.springframework.dao.ConcurrencyFailureException; -import org.springframework.http.HttpStatus; -import org.springframework.security.access.AccessDeniedException; -import org.springframework.security.authentication.BadCredentialsException; -import org.springframework.web.bind.annotation.*; - -@RestController -@RequestMapping("/api/exception-translator-test") -public class ExceptionTranslatorTestController { - - @GetMapping("/concurrency-failure") - public void concurrencyFailure() { - throw new ConcurrencyFailureException("test concurrency failure"); - } - - @PostMapping("/method-argument") - public void methodArgument(@Valid @RequestBody TestDTO testDTO) {} - - @GetMapping("/missing-servlet-request-part") - public void missingServletRequestPartException(@RequestPart String part) {} - - @GetMapping("/missing-servlet-request-parameter") - public void missingServletRequestParameterException(@RequestParam String param) {} - - @GetMapping("/access-denied") - public void accessdenied() { - throw new AccessDeniedException("test access denied!"); - } - - @GetMapping("/unauthorized") - public void unauthorized() { - throw new BadCredentialsException("test authentication failed!"); - } - - @GetMapping("/response-status") - public void exceptionWithResponseStatus() { - throw new TestResponseStatusException(); - } - - @GetMapping("/internal-server-error") - public void internalServerError() { - throw new RuntimeException(); - } - - public static class TestDTO { - - @NotNull - private String test; - - public String getTest() { - return test; - } - - public void setTest(String test) { - this.test = test; - } - } - - @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "test response status") - @SuppressWarnings("serial") - public static class TestResponseStatusException extends RuntimeException {} -} -- Gitblit v1.8.0