diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java index 72f23c7c..d09d6079 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCloseEvent.java @@ -11,9 +11,10 @@ import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; @@ -21,24 +22,18 @@ import java.util.List; import java.util.stream.Collectors; @Slf4j -public class TicketCloseEvent extends ApplicationEvent { +public class TicketCloseEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource - private IAppMessageService appMessageService; - @Resource private EmailService emailService; + private ITBaseDeviceTypeService deviceTypeService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; public TicketCloseEvent(Object source,Ticket ticket, String language, String zone) { super(source); @@ -47,6 +42,16 @@ public class TicketCloseEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + this.deviceTypeService = applicationContext.getBean(ITBaseDeviceTypeService.class); + } + public void send(){ sendUserMessage(); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java index 41b555ba..7bf90e89 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketCompleteEvent.java @@ -10,31 +10,27 @@ import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Slf4j -public class TicketCompleteEvent extends ApplicationEvent { +public class TicketCompleteEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource - private IAppMessageService appMessageService; - @Resource private EmailService emailService; + private ITBaseDeviceTypeService deviceTypeService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; + private IAppMessageService appMessageService; public TicketCompleteEvent(Object source,Ticket ticket, String language, String zone) { super(source); @@ -43,6 +39,17 @@ public class TicketCompleteEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + this.deviceTypeService = applicationContext.getBean(ITBaseDeviceTypeService.class); + this.appMessageService = applicationContext.getBean(IAppMessageService.class); + } + public void send(){ sendUserMessage(); } diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java index b2e309af..682a1be0 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/event/TicketReplyEvent.java @@ -12,9 +12,10 @@ import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import javax.mail.MessagingException; import java.time.LocalDateTime; import java.time.ZoneId; @@ -25,24 +26,19 @@ import java.util.List; import java.util.stream.Collectors; @Slf4j -public class TicketReplyEvent extends ApplicationEvent { +public class TicketReplyEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource - private IAppMessageService appMessageService; - @Resource private EmailService emailService; + private ITBaseDeviceTypeService deviceTypeService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; + private IAppMessageService appMessageService; public TicketReplyEvent(Object source,Ticket ticket, String language, String zone) { super(source); @@ -51,6 +47,17 @@ public class TicketReplyEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + this.deviceTypeService = applicationContext.getBean(ITBaseDeviceTypeService.class); + this.appMessageService = applicationContext.getBean(IAppMessageService.class); + } + public void send(){ sendUserMessage(); sendEmail(); diff --git a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/publisher/TicketEventPublisher.java b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/publisher/TicketEventPublisher.java index ed197885..646806ac 100644 --- a/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/publisher/TicketEventPublisher.java +++ b/nflg-mobilebroken-admin/src/main/java/com/nflg/mobilebroken/admin/publisher/TicketEventPublisher.java @@ -4,6 +4,7 @@ import com.nflg.mobilebroken.admin.event.TicketCloseEvent; import com.nflg.mobilebroken.admin.event.TicketCompleteEvent; import com.nflg.mobilebroken.admin.event.TicketReplyEvent; import com.nflg.mobilebroken.repository.entity.Ticket; +import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; @@ -15,15 +16,24 @@ public class TicketEventPublisher { @Resource private ApplicationEventPublisher eventPublisher; + @Resource + private ApplicationContext applicationContext; + public void publishTicketReplyEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketReplyEvent(this, ticket, language, zone)); + TicketReplyEvent event = new TicketReplyEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } public void publishTicketCompleteEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketCompleteEvent(this, ticket, language, zone)); + TicketCompleteEvent event = new TicketCompleteEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } public void publishTicketCloseEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketCloseEvent(this, ticket, language, zone)); + TicketCloseEvent event = new TicketCloseEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java index 07d7f9c9..bc223b24 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/controller/TiketController.java @@ -332,7 +332,8 @@ public class TiketController extends ControllerBase { **/ @GetMapping public ApiResult reopenTicket(@Valid @RequestParam @NotNull Integer id) { - ticketService.reopen(id); + Ticket ticket=ticketService.reopen(id); + ticketEventPublisher.publishTicketReopenEvent(ticket, MultilingualUtil.getLanguage(), MultilingualUtil.getZone()); return ApiResult.success(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketAssignedEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketAssignedEvent.java index 973f2f62..890c22b5 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketAssignedEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketAssignedEvent.java @@ -16,9 +16,10 @@ import com.nflg.mobilebroken.repository.service.IAppUserService; import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import javax.mail.MessagingException; import java.time.LocalDateTime; import java.time.ZoneId; @@ -29,22 +30,17 @@ import java.util.List; import java.util.stream.Collectors; @Slf4j -public class TicketAssignedEvent extends ApplicationEvent { +public class TicketAssignedEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource private EmailService emailService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; public TicketAssignedEvent(Object source, Ticket ticket, String language, String zone) { super(source); @@ -53,6 +49,15 @@ public class TicketAssignedEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + } + public void send(){ sendUserMessage(); sendEmail(); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java index 66d3ac88..e58721f5 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketCreateEvent.java @@ -12,9 +12,10 @@ import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.*; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import javax.mail.MessagingException; import java.time.LocalDateTime; import java.time.ZoneId; @@ -23,24 +24,18 @@ import java.time.format.DateTimeFormatter; import java.util.List; @Slf4j -public class TicketCreateEvent extends ApplicationEvent { +public class TicketCreateEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource private EmailService emailService; - @Resource private ITBaseDeviceTypeService deviceTypeService; - @Resource private IAdminUserService adminUserService; - @Resource private IAdminMessageService adminMessageService; public TicketCreateEvent(Object source, Ticket ticket,String language,String zone) { @@ -50,6 +45,16 @@ public class TicketCreateEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + this.deviceTypeService = applicationContext.getBean(ITBaseDeviceTypeService.class); + } + public void send(){ sendUserMessage(); sendEmail(); @@ -58,7 +63,7 @@ public class TicketCreateEvent extends ApplicationEvent { private void sendUserMessage(){ //我的待办 List cqms=deviceTypeService.getCqmsByDeviceType(ticket.getDeviceNo()); - if (CollectionUtil.isNotEmpty(cqms)){ + if (CollectionUtil.isEmpty(cqms)){ log.warn("该设备尚未设置CQM负责人:{}", ticket.getDeviceNo()); }else { List cqmUsers = adminUserService.listByIds(cqms); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java index 63829375..43eaba8c 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReopenEvent.java @@ -8,27 +8,29 @@ import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.IAdminMessageService; import com.nflg.mobilebroken.repository.service.IAdminUserService; +import com.nflg.mobilebroken.repository.service.IAppUserService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @Slf4j -public class TicketReopenEvent extends ApplicationEvent { +public class TicketReopenEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource + private IDictionaryItemTranslateService dictionaryItemTranslateService; + private IAppUserService appUserService; private EmailService emailService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; public TicketReopenEvent(Object source,Ticket ticket, String language, String zone) { super(source); @@ -37,6 +39,15 @@ public class TicketReopenEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + } + public void send(){ sendUserMessage(); } diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java index 030272f2..dd8445f1 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketReplyEvent.java @@ -10,12 +10,16 @@ import com.nflg.mobilebroken.repository.entity.AdminMessage; import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.AppUser; import com.nflg.mobilebroken.repository.entity.Ticket; -import com.nflg.mobilebroken.repository.service.*; +import com.nflg.mobilebroken.repository.service.IAdminMessageService; +import com.nflg.mobilebroken.repository.service.IAdminUserService; +import com.nflg.mobilebroken.repository.service.IAppUserService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import javax.mail.MessagingException; import java.time.LocalDateTime; import java.time.ZoneId; @@ -26,24 +30,17 @@ import java.util.List; import java.util.stream.Collectors; @Slf4j -public class TicketReplyEvent extends ApplicationEvent { +public class TicketReplyEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource private IDictionaryItemTranslateService dictionaryItemTranslateService; - @Resource private IAppUserService appUserService; - @Resource - private IAppMessageService appMessageService; - @Resource private EmailService emailService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; public TicketReplyEvent(Object source, Ticket ticket, String language, String zone) { super(source); @@ -52,6 +49,15 @@ public class TicketReplyEvent extends ApplicationEvent { this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + } + public void send(){ sendUserMessage(); sendEmail(); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java index 53caf315..77a3c219 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/event/TicketRevokeEvent.java @@ -10,11 +10,14 @@ import com.nflg.mobilebroken.repository.entity.AdminUser; import com.nflg.mobilebroken.repository.entity.Ticket; import com.nflg.mobilebroken.repository.service.IAdminMessageService; import com.nflg.mobilebroken.repository.service.IAdminUserService; +import com.nflg.mobilebroken.repository.service.IAppUserService; +import com.nflg.mobilebroken.repository.service.IDictionaryItemTranslateService; import com.nflg.mobilebroken.starter.service.EmailService; import lombok.extern.slf4j.Slf4j; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.context.ApplicationEvent; -import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.Arrays; @@ -22,18 +25,17 @@ import java.util.List; import java.util.stream.Collectors; @Slf4j -public class TicketRevokeEvent extends ApplicationEvent { +public class TicketRevokeEvent extends ApplicationEvent implements ApplicationContextAware { private static final DateTimeFormatter FORMATTER= DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN); private final Ticket ticket; private final String language; private final String zone; - @Resource - private IAdminUserService adminUserService; - @Resource - private IAdminMessageService adminMessageService; - @Resource + private IDictionaryItemTranslateService dictionaryItemTranslateService; + private IAppUserService appUserService; private EmailService emailService; + private IAdminUserService adminUserService; + private IAdminMessageService adminMessageService; public TicketRevokeEvent(Object source,Ticket ticket, String language, String zone) { super(source); @@ -41,6 +43,15 @@ public class TicketRevokeEvent extends ApplicationEvent { this.language = language; this.zone = zone; } + @Override + public void setApplicationContext(ApplicationContext applicationContext) { + this.dictionaryItemTranslateService = applicationContext.getBean(IDictionaryItemTranslateService.class); + this.appUserService = applicationContext.getBean(IAppUserService.class); + this.emailService = applicationContext.getBean(EmailService.class); + this.adminUserService = applicationContext.getBean(IAdminUserService.class); + this.adminMessageService = applicationContext.getBean(IAdminMessageService.class); + } + public void send(){ sendUserMessage(); diff --git a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/publisher/TicketEventPublisher.java b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/publisher/TicketEventPublisher.java index 8c0bbb7e..cd722917 100644 --- a/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/publisher/TicketEventPublisher.java +++ b/nflg-mobilebroken-cfs-app/src/main/java/com/nflg/mobilebroken/cfs/publisher/TicketEventPublisher.java @@ -1,10 +1,8 @@ package com.nflg.mobilebroken.cfs.publisher; -import com.nflg.mobilebroken.cfs.event.TicketAssignedEvent; -import com.nflg.mobilebroken.cfs.event.TicketCreateEvent; -import com.nflg.mobilebroken.cfs.event.TicketReplyEvent; -import com.nflg.mobilebroken.cfs.event.TicketRevokeEvent; +import com.nflg.mobilebroken.cfs.event.*; import com.nflg.mobilebroken.repository.entity.Ticket; +import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; @@ -16,19 +14,36 @@ public class TicketEventPublisher { @Resource private ApplicationEventPublisher eventPublisher; + @Resource + private ApplicationContext applicationContext; + public void publishTicketCreateEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketCreateEvent(this, ticket, language, zone)); + TicketCreateEvent event = new TicketCreateEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } public void publishTicketAssignedEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketAssignedEvent(this, ticket, language, zone)); + TicketAssignedEvent event = new TicketAssignedEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } public void publishTicketReplyEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketReplyEvent(this, ticket, language, zone)); + TicketReplyEvent event = new TicketReplyEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } public void publishTicketRevokeEvent(Ticket ticket, String language, String zone) { - eventPublisher.publishEvent(new TicketRevokeEvent(this, ticket, language, zone)); + TicketRevokeEvent event = new TicketRevokeEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); + } + + public void publishTicketReopenEvent(Ticket ticket, String language, String zone) { + TicketReopenEvent event = new TicketReopenEvent(this, ticket, language, zone); + event.setApplicationContext(applicationContext); + eventPublisher.publishEvent(event); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java index 0b6f2f82..676010c0 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/ITicketService.java @@ -44,5 +44,5 @@ public interface ITicketService extends IService { Ticket revoked(Integer id); - void reopen(Integer id); + Ticket reopen(Integer id); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java index 4463d0bd..a6738c14 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/AppUserServiceImpl.java @@ -336,7 +336,7 @@ public class AppUserServiceImpl extends ServiceImpl impl .setLoginName(d.getLoginName()) .setUserName(d.getName()) .setCompanyName(d.getCompanyId()) - .setName(d.getSalesUserName()) + .setName(d.getName()) .setEmail(d.getEmail()) .setLanguageCode(d.getLanguageCode()) .setSalesUserName(d.getSalesUserName()) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java index 3395dc60..e5d75575 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/DictionaryItemServiceImpl.java @@ -100,14 +100,11 @@ public class DictionaryItemServiceImpl extends ServiceImpl() - .eq(DictionaryItemTranslate::getDictionaryItemId, id)); +// dictionaryItemTranslateService.remove(new LambdaQueryWrapper() +// .eq(DictionaryItemTranslate::getDictionaryItemId, id)); List forAdd = new ArrayList<>(); List forUpdate = new ArrayList<>(); for (TranslateMap translate : request.getLanguages()) { - if(StrUtil.isBlank(translate.getValue())){ - continue; - } DictionaryItemTranslate t = new DictionaryItemTranslate() .setDictionaryItemId(id) .setLanguageCode(translate.getCode()) diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java index 5c801ec1..9f027cdf 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/TicketServiceImpl.java @@ -11,6 +11,7 @@ import com.nflg.mobilebroken.common.pojo.request.*; import com.nflg.mobilebroken.common.pojo.vo.AdminTicketVO; import com.nflg.mobilebroken.common.pojo.vo.TicketVO; import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.AppUserUtil; import com.nflg.mobilebroken.common.util.TicketUtl; import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.repository.entity.Ticket; @@ -215,6 +216,8 @@ public class TicketServiceImpl extends ServiceImpl impleme @Override public Ticket revoked(Integer id) { Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); + VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId())) + .throwMessage("无权操作该工单"); VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) .throwMessage("当前工单状态不允许撤销"); VUtils.trueThrowBusinessError(ticketEvaluateService.lambdaQuery().eq(TicketEvaluate::getTicketId, id).exists()) @@ -226,12 +229,15 @@ public class TicketServiceImpl extends ServiceImpl impleme } @Override - public void reopen(Integer id) { - lambdaUpdate() - .set(Ticket::getState, TicketState.Processing.getState()) - .set(Ticket::getUpdateTime, LocalDateTime.now()) - .eq(Ticket::getId, id) - .eq(Ticket::getState, TicketState.ProcessingCompleted.getState()) - .update(); + public Ticket reopen(Integer id) { + Ticket ticket=lambdaQuery().eq(Ticket::getId, id).one(); + VUtils.trueThrowBusinessError(!Objects.equals(ticket.getUserId(), AppUserUtil.getUserId())) + .throwMessage("无权操作该工单"); + VUtils.trueThrowBusinessError(Byte.compare(ticket.getState(), TicketState.ProcessingCompleted.getState())>0) + .throwMessage("当前工单状态不允许重新打开"); + ticket.setState(TicketState.Processing.getState()); + ticket.setUpdateTime(LocalDateTime.now()); + updateById(ticket); + return ticket; } }