diff --git a/src/main/java/com/ctrip/zeus/service/aop/ReportAspect.java b/src/main/java/com/ctrip/zeus/service/aop/ReportAspect.java index a0121c9a..fa335c99 100644 --- a/src/main/java/com/ctrip/zeus/service/aop/ReportAspect.java +++ b/src/main/java/com/ctrip/zeus/service/aop/ReportAspect.java @@ -5,6 +5,8 @@ import com.ctrip.zeus.service.report.ReportService; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; @@ -17,21 +19,31 @@ import javax.annotation.Resource; @Component public class ReportAspect implements Ordered { + private Logger logger = LoggerFactory.getLogger(this.getClass()); + @Resource private ReportService reportService; @Around("execution(* com.ctrip.zeus.service.model.GroupRepository.*(..))") public Object injectReportAction(ProceedingJoinPoint point) throws Throwable { String methodName = point.getSignature().getName(); + boolean isNew; switch (methodName) { case "add": + isNew = true; + break; case "update": + isNew = false; break; default: return point.proceed(); } Object obj = point.proceed(); - reportService.reportGroup((Group)obj); + try { + reportService.reportGroup((Group) obj, isNew); + } catch (Exception ex) { + logger.error("Fail to report group to queue.", ex); + } return obj; } diff --git a/src/main/java/com/ctrip/zeus/service/report/ReportService.java b/src/main/java/com/ctrip/zeus/service/report/ReportService.java index 29262777..d100b79a 100644 --- a/src/main/java/com/ctrip/zeus/service/report/ReportService.java +++ b/src/main/java/com/ctrip/zeus/service/report/ReportService.java @@ -7,9 +7,5 @@ import com.ctrip.zeus.model.entity.Group; */ public interface ReportService { - void reportGroup(Group group) throws Exception; - - void sync() throws Exception; - - boolean needSync() throws Exception; + void reportGroup(Group group, boolean isNew) throws Exception; } diff --git a/src/main/java/com/ctrip/zeus/service/report/ReportSyncService.java b/src/main/java/com/ctrip/zeus/service/report/ReportSyncService.java new file mode 100644 index 00000000..0f2bf2b7 --- /dev/null +++ b/src/main/java/com/ctrip/zeus/service/report/ReportSyncService.java @@ -0,0 +1,11 @@ +package com.ctrip.zeus.service.report; + +/** + * Created by zhoumy on 2015/7/10. + */ +public interface ReportSyncService { + + void sync() throws Exception; + + boolean needSync() throws Exception; +} diff --git a/src/main/java/com/ctrip/zeus/service/report/impl/MockReportService.java b/src/main/java/com/ctrip/zeus/service/report/impl/MockReportService.java index 2500fe9e..3d3cadac 100644 --- a/src/main/java/com/ctrip/zeus/service/report/impl/MockReportService.java +++ b/src/main/java/com/ctrip/zeus/service/report/impl/MockReportService.java @@ -10,17 +10,7 @@ import org.springframework.stereotype.Component; @Component("mockReportService") public class MockReportService implements ReportService { @Override - public void reportGroup(Group group) throws Exception { + public void reportGroup(Group group, boolean isNew) throws Exception { } - - @Override - public void sync() throws Exception { - - } - - @Override - public boolean needSync() throws Exception { - return false; - } } diff --git a/src/main/java/com/ctrip/zeus/service/report/impl/MockReportSyncService.java b/src/main/java/com/ctrip/zeus/service/report/impl/MockReportSyncService.java new file mode 100644 index 00000000..aed7a442 --- /dev/null +++ b/src/main/java/com/ctrip/zeus/service/report/impl/MockReportSyncService.java @@ -0,0 +1,18 @@ +package com.ctrip.zeus.service.report.impl; + +import com.ctrip.zeus.service.report.ReportSyncService; + +/** + * Created by zhoumy on 2015/7/10. + */ +public class MockReportSyncService implements ReportSyncService { + @Override + public void sync() throws Exception { + + } + + @Override + public boolean needSync() throws Exception { + return false; + } +} diff --git a/src/main/resources/META-INF/dal/jdbc/core-report.xml b/src/main/resources/META-INF/dal/jdbc/core-report.xml index f8824ef6..de1b27ab 100644 --- a/src/main/resources/META-INF/dal/jdbc/core-report.xml +++ b/src/main/resources/META-INF/dal/jdbc/core-report.xml @@ -3,11 +3,12 @@ + FROM - WHERE = + WHERE = ${group-id} ]]> @@ -16,7 +17,7 @@ FROM
- WHERE > + WHERE current_version > reported_version ]]> diff --git a/src/main/resources/META-INF/dal/model/report-model.xml b/src/main/resources/META-INF/dal/model/report-model.xml index 0a875e6f..f4438f4c 100644 --- a/src/main/resources/META-INF/dal/model/report-model.xml +++ b/src/main/resources/META-INF/dal/model/report-model.xml @@ -1,3 +1,4 @@ - +