wangwei 7 years ago
commit
2d48026816
38 changed files with 980 additions and 0 deletions
  1. 11 0
      .gitignore
  2. 11 0
      bin/.gitignore
  3. 20 0
      bin/examcloud-logic-reports-controller/pom.xml
  4. BIN
      bin/examcloud-logic-reports-controller/src/main/java/cn/com/qmth/examcloud/logic/reports/controller/OnLineController.class
  5. 44 0
      bin/examcloud-logic-reports-service/pom.xml
  6. BIN
      bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/OnLineService.class
  7. BIN
      bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/GlobalOnLineData.class
  8. BIN
      bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/SchoolOnLineData.class
  9. BIN
      bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/impl/OnLineServiceImpl.class
  10. 16 0
      bin/examcloud-logic-reports-starter/.springBeans
  11. 43 0
      bin/examcloud-logic-reports-starter/pom.xml
  12. BIN
      bin/examcloud-logic-reports-starter/src/main/java/cn/com/qmth/examcloud/logic/reports/starter/ServiceLogicReportsApplication.class
  13. 16 0
      bin/examcloud-logic-reports-starter/src/main/resources/application-dev.properties
  14. 16 0
      bin/examcloud-logic-reports-starter/src/main/resources/application-prac.properties
  15. 23 0
      bin/examcloud-logic-reports-starter/src/main/resources/application-prod.properties
  16. 19 0
      bin/examcloud-logic-reports-starter/src/main/resources/application-prodvpc.properties
  17. 16 0
      bin/examcloud-logic-reports-starter/src/main/resources/application-test.properties
  18. 42 0
      bin/examcloud-logic-reports-starter/src/main/resources/application.properties
  19. 38 0
      bin/examcloud-logic-reports-starter/src/main/resources/logback-spring.xml
  20. 19 0
      bin/pom.xml
  21. 20 0
      examcloud-logic-reports-controller/pom.xml
  22. 69 0
      examcloud-logic-reports-controller/src/main/java/cn/com/qmth/examcloud/logic/reports/controller/OnLineController.java
  23. 44 0
      examcloud-logic-reports-service/pom.xml
  24. 23 0
      examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/OnLineService.java
  25. 52 0
      examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/GlobalOnLineData.java
  26. 70 0
      examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/SchoolOnLineData.java
  27. 65 0
      examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/impl/OnLineServiceImpl.java
  28. 16 0
      examcloud-logic-reports-starter/.springBeans
  29. 43 0
      examcloud-logic-reports-starter/pom.xml
  30. 55 0
      examcloud-logic-reports-starter/src/main/java/cn/com/qmth/examcloud/logic/reports/starter/ServiceLogicReportsApplication.java
  31. 16 0
      examcloud-logic-reports-starter/src/main/resources/application-dev.properties
  32. 16 0
      examcloud-logic-reports-starter/src/main/resources/application-prac.properties
  33. 23 0
      examcloud-logic-reports-starter/src/main/resources/application-prod.properties
  34. 19 0
      examcloud-logic-reports-starter/src/main/resources/application-prodvpc.properties
  35. 16 0
      examcloud-logic-reports-starter/src/main/resources/application-test.properties
  36. 42 0
      examcloud-logic-reports-starter/src/main/resources/application.properties
  37. 38 0
      examcloud-logic-reports-starter/src/main/resources/logback-spring.xml
  38. 19 0
      pom.xml

+ 11 - 0
.gitignore

@@ -0,0 +1,11 @@
+.project
+.classpath
+.settings
+target/
+.idea/
+*.iml
+*test/
+# Package Files #
+*.jar
+logs/
+

+ 11 - 0
bin/.gitignore

@@ -0,0 +1,11 @@
+.project
+.classpath
+.settings
+target/
+.idea/
+*.iml
+*test/
+# Package Files #
+*.jar
+logs/
+

+ 20 - 0
bin/examcloud-logic-reports-controller/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-controller</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+			<artifactId>examcloud-logic-reports-service</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

BIN
bin/examcloud-logic-reports-controller/src/main/java/cn/com/qmth/examcloud/logic/reports/controller/OnLineController.class


+ 44 - 0
bin/examcloud-logic-reports-service/pom.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-service</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-feign</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-eureka</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-redis</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-support</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.core.basic</groupId>
+			<artifactId>examcloud-core-basic-api-client</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+
+
+	</dependencies>
+</project>

BIN
bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/OnLineService.class


BIN
bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/GlobalOnLineData.class


BIN
bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/SchoolOnLineData.class


BIN
bin/examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/impl/OnLineServiceImpl.class


+ 16 - 0
bin/examcloud-logic-reports-starter/.springBeans

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+	<version>1</version>
+	<pluginVersion><![CDATA[3.9.4.201804120850-RELEASE]]></pluginVersion>
+	<configSuffixes>
+		<configSuffix><![CDATA[xml]]></configSuffix>
+	</configSuffixes>
+	<enableImports><![CDATA[false]]></enableImports>
+	<configs>
+		<config>java:cn.com.qmth.examcloud.logic.reports.starter.ServiceLogicReportsApplication</config>
+	</configs>
+	<autoconfigs>
+	</autoconfigs>
+	<configSets>
+	</configSets>
+</beansProjectDescription>

+ 43 - 0
bin/examcloud-logic-reports-starter/pom.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-starter</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+			<artifactId>examcloud-logic-reports-controller</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+					<mainClass>org.examcloud.logic.reports.starter.ServiceLogicReportsApplication</mainClass>
+					<layout>ZIP</layout>
+					<includeSystemScope>true</includeSystemScope>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>

BIN
bin/examcloud-logic-reports-starter/src/main/java/cn/com/qmth/examcloud/logic/reports/starter/ServiceLogicReportsApplication.class


+ 16 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application-dev.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://192.168.10.30:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=192.168.10.30
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://192.168.10.30:1111/eureka/
+
+spring.rabbitmq.host=192.168.10.30
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 16 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application-prac.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+
+spring.rabbitmq.host=127.0.0.1
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 23 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application-prod.properties

@@ -0,0 +1,23 @@
+spring.datasource.url=jdbc:mysql://qmthmysql.mysql.rds.aliyuncs.com:3306/exam_cloud?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=exam_cloud
+spring.datasource.password=examcloud123!@#
+
+
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+hystrix.threadpool.default.coreSize = 500
+
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud123
+spring.rabbitmq.listener.acknowledgeMode=MANUAL
+
+spring.redis.host=r-wz97e520d2701e54.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qmth87863577

+ 19 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application-prodvpc.properties

@@ -0,0 +1,19 @@
+spring.datasource.url=jdbc:mysql://rds7b2sll8un5kz99s0i122.mysql.rds.aliyuncs.com:3306/exam_cloud?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=exam_cloud
+spring.datasource.password=examcloud123!@#
+
+
+eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+hystrix.threadpool.default.coreSize = 500
+
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud123
+spring.rabbitmq.listener.acknowledgeMode=MANUAL
+
+spring.redis.host=r-wz97e520d2701e54555.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qmth87863577

+ 16 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application-test.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://localhost:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=localhost
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 42 - 0
bin/examcloud-logic-reports-starter/src/main/resources/application.properties

@@ -0,0 +1,42 @@
+spring.profiles.active=dev
+spring.datasource.validation-query=SELECT 1 FROM DUAL
+spring.datasource.test-on-borrow=true
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+#\u7981\u7528\u670d\u52a1\u6ce8\u518c
+eureka.client.register-with-eureka=false
+eureka.client.fetch-registry=false
+
+#redis
+#spring.redis.host=192.168.199.102
+#spring.redis.port=32768
+
+#server.port=8080
+
+
+#logging.file=d:/gkwb/logs/gkwb.log
+logging.level.org.springframework=ERROR
+logging.level.org.hibernate=ERROR
+
+spring.jpa.show-sql=false
+spring.jpa.hibernate.ddl-auto=update
+
+
+spring.http.multipart.max-file-size=10Mb
+
+spring.application.name=examcloud-logic-reports
+server.port=8008
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+# Increase the Hystrix timeout to 600s (globally)
+hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 600000
+ribbon.ReadTimeout=800000
+ribbon.ConnectTimeout=800000
+
+app.api.root=/api/logic/reports
+app.api.core=/api/ecs_core
+app.api.oe=/api/ecs_oe
+#\u5b66\u751f\u7167\u7247\u4e0a\u4f20\u5730\u5740
+app.em.photo.path=/Users/ting.yin/Downloads
+app.em.facepp.key=e94d4a6a1ea8749144328be96a40e388
+app.em.facepp.secret=H65RT9miQqCal00jpxdUAreAufxxusUv

+ 38 - 0
bin/examcloud-logic-reports-starter/src/main/resources/logback-spring.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="true" scan="true" scanPeriod="30 seconds">
+
+	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="FILE-STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>./logs/console/console.log</file>
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
+		</encoder>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>./logs/console/console.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+			<maxHistory>30</maxHistory>
+		</rollingPolicy>
+	</appender>
+
+	<logger name="cn.com.qmth.examcloud" level="DEBUG" additivity="false">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="FILE-STDOUT" />
+	</logger>
+
+	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
+	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
+	<logger name="org.hibernate.SQL" level="ERROR" />
+	<logger name="org.hibernate.type" level="ERROR" />
+	<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
+	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
+
+	<root level="INFO">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="FILE-STDOUT" />
+	</root>
+
+</configuration>

+ 19 - 0
bin/pom.xml

@@ -0,0 +1,19 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud</groupId>
+		<artifactId>examcloud-parent</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+	<artifactId>examcloud-logic-reports</artifactId>
+	<packaging>pom</packaging>
+
+
+	<modules>
+		<module>examcloud-logic-reports-controller</module>
+		<module>examcloud-logic-reports-service</module>
+		<module>examcloud-logic-reports-starter</module>
+	</modules>
+</project>

+ 20 - 0
examcloud-logic-reports-controller/pom.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-controller</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+			<artifactId>examcloud-logic-reports-service</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+</project>

+ 69 - 0
examcloud-logic-reports-controller/src/main/java/cn/com/qmth/examcloud/logic/reports/controller/OnLineController.java

@@ -0,0 +1,69 @@
+package cn.com.qmth.examcloud.logic.reports.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import org.examcloud.core.basic.api.DemoCloudService;
+import org.examcloud.core.basic.api.request.GetXxxReq;
+import org.examcloud.core.basic.api.response.GetXxxResp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+import cn.com.qmth.examcloud.common.support.ControllerSupport;
+import cn.com.qmth.examcloud.common.support.helpers.KeyValuePair;
+import cn.com.qmth.examcloud.logic.reports.service.OnLineService;
+import cn.com.qmth.examcloud.logic.reports.service.bean.GlobalOnLineData;
+import cn.com.qmth.examcloud.logic.reports.service.bean.SchoolOnLineData;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@RequestMapping("${app.api.root}/online")
+public class OnLineController extends ControllerSupport {
+
+	@Autowired
+	private OnLineService onLineService;
+	
+	@Autowired
+	private DemoCloudService demoCloudService;
+
+	@ApiOperation(value = "查询在线数据", notes = "查询在线数据")
+	@GetMapping
+	public ResponseEntity<Map<String, Object>> getOnLineData() {
+
+		GetXxxResp resp = demoCloudService.getXxx(new GetXxxReq());
+		System.out.println(resp);
+
+		GlobalOnLineData globalDataInfo = onLineService.getGlobalOnLineData();
+		List<SchoolOnLineData> schoolDataList = onLineService.getAllSchoolOnLineDataList();
+		List<KeyValuePair<String, Long>> latestGlobalOnLineDataList = onLineService.getLatestGlobalOnLineDataList();
+
+		List<Object> globalData = Lists.newArrayList();
+		globalData.add(new KeyValuePair<String, Long>("注册用户", globalDataInfo.getRegisterCount()).toJsonObject("type",
+				"count"));
+		globalData.add(
+				new KeyValuePair<String, Long>("在线用户", globalDataInfo.getOnlineCount()).toJsonObject("type", "count"));
+		globalData.add(
+				new KeyValuePair<String, Long>("在线考试", globalDataInfo.getExamCount()).toJsonObject("type", "count"));
+		globalData.add(new KeyValuePair<String, Long>("在线练习", globalDataInfo.getExercisesCount()).toJsonObject("type",
+				"count"));
+
+		List<Object> latestDataList = Lists.newArrayList();
+		for (KeyValuePair<String, Long> keyValuePair : latestGlobalOnLineDataList) {
+			latestDataList.add(keyValuePair.toJsonObject("name", "value"));
+		}
+
+		Map<String, Object> ret = Maps.newHashMap();
+		ret.put("globalData", globalData);
+		ret.put("schoolDataList", schoolDataList);
+		ret.put("latestDataList", latestDataList);
+
+		return new ResponseEntity<Map<String, Object>>(ret, HttpStatus.OK);
+	}
+}

+ 44 - 0
examcloud-logic-reports-service/pom.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-service</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-feign</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.cloud</groupId>
+			<artifactId>spring-cloud-starter-eureka</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-data-redis</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.commons</groupId>
+			<artifactId>examcloud-commons-support</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.core.basic</groupId>
+			<artifactId>examcloud-core-basic-api-client</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+
+
+	</dependencies>
+</project>

+ 23 - 0
examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/OnLineService.java

@@ -0,0 +1,23 @@
+package cn.com.qmth.examcloud.logic.reports.service;
+
+import java.util.List;
+
+import cn.com.qmth.examcloud.common.support.helpers.KeyValuePair;
+import cn.com.qmth.examcloud.logic.reports.service.bean.GlobalOnLineData;
+import cn.com.qmth.examcloud.logic.reports.service.bean.SchoolOnLineData;
+
+/**
+ * 在线数据服务
+ * 
+ * @author WANGWEI
+ *
+ */
+public interface OnLineService {
+
+	GlobalOnLineData getGlobalOnLineData();
+
+	List<SchoolOnLineData> getAllSchoolOnLineDataList();
+
+	List<KeyValuePair<String, Long>> getLatestGlobalOnLineDataList();
+
+}

+ 52 - 0
examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/GlobalOnLineData.java

@@ -0,0 +1,52 @@
+package cn.com.qmth.examcloud.logic.reports.service.bean;
+
+import java.io.Serializable;
+
+/**
+ * 全局在线数据
+ * 
+ * @author WANGWEI
+ *
+ */
+public class GlobalOnLineData implements Serializable {
+
+	private static final long serialVersionUID = -204005942034689176L;
+
+	private long registerCount;
+	private long onlineCount;
+	private long examCount;
+	private long exercisesCount;
+
+	public long getRegisterCount() {
+		return registerCount;
+	}
+
+	public void setRegisterCount(long registerCount) {
+		this.registerCount = registerCount;
+	}
+
+	public long getOnlineCount() {
+		return onlineCount;
+	}
+
+	public void setOnlineCount(long onlineCount) {
+		this.onlineCount = onlineCount;
+	}
+
+	public long getExamCount() {
+		return examCount;
+	}
+
+	public void setExamCount(long examCount) {
+		this.examCount = examCount;
+	}
+
+	public long getExercisesCount() {
+		return exercisesCount;
+	}
+
+	public void setExercisesCount(long exercisesCount) {
+		this.exercisesCount = exercisesCount;
+	}
+
+}

+ 70 - 0
examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/bean/SchoolOnLineData.java

@@ -0,0 +1,70 @@
+package cn.com.qmth.examcloud.logic.reports.service.bean;
+
+import java.io.Serializable;
+
+/**
+ * 学校在线数据
+ * 
+ * @author WANGWEI
+ *
+ */
+public class SchoolOnLineData implements Serializable {
+
+	private static final long serialVersionUID = -204005942034689176L;
+
+	private String schoolName;
+	private String schoolDomain;
+	private long registerCount;
+	private long onlineCount;
+	private long examCount;
+	private long exercisesCount;
+
+	public String getSchoolName() {
+		return schoolName;
+	}
+
+	public void setSchoolName(String schoolName) {
+		this.schoolName = schoolName;
+	}
+
+	public String getSchoolDomain() {
+		return schoolDomain;
+	}
+
+	public void setSchoolDomain(String schoolDomain) {
+		this.schoolDomain = schoolDomain;
+	}
+
+	public long getRegisterCount() {
+		return registerCount;
+	}
+
+	public void setRegisterCount(long registerCount) {
+		this.registerCount = registerCount;
+	}
+
+	public long getOnlineCount() {
+		return onlineCount;
+	}
+
+	public void setOnlineCount(long onlineCount) {
+		this.onlineCount = onlineCount;
+	}
+
+	public long getExamCount() {
+		return examCount;
+	}
+
+	public void setExamCount(long examCount) {
+		this.examCount = examCount;
+	}
+
+	public long getExercisesCount() {
+		return exercisesCount;
+	}
+
+	public void setExercisesCount(long exercisesCount) {
+		this.exercisesCount = exercisesCount;
+	}
+
+}

+ 65 - 0
examcloud-logic-reports-service/src/main/java/cn/com/qmth/examcloud/logic/reports/service/impl/OnLineServiceImpl.java

@@ -0,0 +1,65 @@
+package cn.com.qmth.examcloud.logic.reports.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.commons.lang.math.RandomUtils;
+import org.apache.xmlbeans.GDate;
+import org.springframework.stereotype.Service;
+
+import com.google.common.collect.Lists;
+
+import cn.com.qmth.examcloud.common.support.helpers.KeyValuePair;
+import cn.com.qmth.examcloud.logic.reports.service.OnLineService;
+import cn.com.qmth.examcloud.logic.reports.service.bean.GlobalOnLineData;
+import cn.com.qmth.examcloud.logic.reports.service.bean.SchoolOnLineData;
+
+@Service
+public class OnLineServiceImpl implements OnLineService {
+
+	@Override
+	public GlobalOnLineData getGlobalOnLineData() {
+		GlobalOnLineData globalOnLineData = new GlobalOnLineData();
+		globalOnLineData.setExamCount(100);
+		globalOnLineData.setExercisesCount(20);
+		globalOnLineData.setOnlineCount(4000);
+		globalOnLineData.setRegisterCount(500);
+		return globalOnLineData;
+	}
+
+	@Override
+	public List<SchoolOnLineData> getAllSchoolOnLineDataList() {
+		SchoolOnLineData aSchool = new SchoolOnLineData();
+		aSchool.setSchoolName("A大学");
+		aSchool.setSchoolDomain("www.a.com");
+		aSchool.setExamCount(100);
+		aSchool.setExercisesCount(20);
+		aSchool.setOnlineCount(4000);
+		aSchool.setRegisterCount(500);
+
+		SchoolOnLineData bSchool = new SchoolOnLineData();
+		bSchool.setSchoolName("B大学");
+		bSchool.setSchoolDomain("www.b.com");
+		bSchool.setExamCount(600);
+		bSchool.setExercisesCount(40);
+		bSchool.setOnlineCount(6000);
+		bSchool.setRegisterCount(400);
+
+		ArrayList<SchoolOnLineData> list = Lists.newArrayList();
+		list.add(aSchool);
+		list.add(bSchool);
+
+		return list;
+	}
+
+	@Override
+	public List<KeyValuePair<String, Long>> getLatestGlobalOnLineDataList() {
+
+		ArrayList<KeyValuePair<String, Long>> list = Lists.newArrayList();
+		for (int i = 1; i < 6; i++) {
+			list.add(new KeyValuePair<String, Long>(String.valueOf(i), 1000L * RandomUtils.nextInt(10)));
+		}
+		return list;
+	}
+
+}

+ 16 - 0
examcloud-logic-reports-starter/.springBeans

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beansProjectDescription>
+	<version>1</version>
+	<pluginVersion><![CDATA[3.9.4.201804120850-RELEASE]]></pluginVersion>
+	<configSuffixes>
+		<configSuffix><![CDATA[xml]]></configSuffix>
+	</configSuffixes>
+	<enableImports><![CDATA[false]]></enableImports>
+	<configs>
+		<config>java:cn.com.qmth.examcloud.logic.reports.starter.ServiceLogicReportsApplication</config>
+	</configs>
+	<autoconfigs>
+	</autoconfigs>
+	<configSets>
+	</configSets>
+</beansProjectDescription>

+ 43 - 0
examcloud-logic-reports-starter/pom.xml

@@ -0,0 +1,43 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+		<artifactId>examcloud-logic-reports</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<artifactId>examcloud-logic-reports-starter</artifactId>
+
+	<dependencies>
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+			<artifactId>examcloud-logic-reports-controller</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
+	</dependencies>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+					<mainClass>org.examcloud.logic.reports.starter.ServiceLogicReportsApplication</mainClass>
+					<layout>ZIP</layout>
+					<includeSystemScope>true</includeSystemScope>
+				</configuration>
+			</plugin>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+</project>

+ 55 - 0
examcloud-logic-reports-starter/src/main/java/cn/com/qmth/examcloud/logic/reports/starter/ServiceLogicReportsApplication.java

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.logic.reports.starter;
+
+import org.slf4j.MDC;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartResolver;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+import cn.com.qmth.examcloud.common.support.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.common.support.logging.ExamCloudLogFactory;
+import cn.com.qmth.examcloud.common.support.logging.SLF4JImpl;
+
+@ComponentScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
+@EntityScan(basePackages = { "com.qmth.commons", "cn.com.qmth" })
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
+@EnableAutoConfiguration(exclude = { MultipartAutoConfiguration.class })
+public class ServiceLogicReportsApplication {
+
+	private static final ExamCloudLog LOG = ExamCloudLogFactory.getLog(ServiceLogicReportsApplication.class);
+
+	public static void main(String[] args) throws Exception {
+
+		if (LOG instanceof SLF4JImpl) {
+			MDC.put("TRACE_ID", Thread.currentThread().getName());
+		}
+		SpringApplication.run(ServiceLogicReportsApplication.class, args);
+	}
+
+	@Bean
+	@LoadBalanced
+	public RestTemplate restTemplate() {
+		return new RestTemplate();
+	}
+
+	@Bean(name = "multipartResolver")
+	public MultipartResolver multipartResolver() {
+		CommonsMultipartResolver resolver = new CommonsMultipartResolver();
+		resolver.setDefaultEncoding("UTF-8");
+		resolver.setResolveLazily(true);
+		resolver.setMaxInMemorySize(40960);
+		resolver.setMaxUploadSize(200 * 1024 * 1024);
+		return resolver;
+	}
+}

+ 16 - 0
examcloud-logic-reports-starter/src/main/resources/application-dev.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://192.168.10.30:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=192.168.10.30
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
+
+spring.rabbitmq.host=192.168.10.30
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 16 - 0
examcloud-logic-reports-starter/src/main/resources/application-prac.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://127.0.0.1:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+
+spring.rabbitmq.host=127.0.0.1
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 23 - 0
examcloud-logic-reports-starter/src/main/resources/application-prod.properties

@@ -0,0 +1,23 @@
+spring.datasource.url=jdbc:mysql://qmthmysql.mysql.rds.aliyuncs.com:3306/exam_cloud?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=exam_cloud
+spring.datasource.password=examcloud123!@#
+
+
+spring.redis.host=127.0.0.1
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+hystrix.threadpool.default.coreSize = 500
+
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud123
+spring.rabbitmq.listener.acknowledgeMode=MANUAL
+
+spring.redis.host=r-wz97e520d2701e54.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qmth87863577

+ 19 - 0
examcloud-logic-reports-starter/src/main/resources/application-prodvpc.properties

@@ -0,0 +1,19 @@
+spring.datasource.url=jdbc:mysql://rds7b2sll8un5kz99s0i122.mysql.rds.aliyuncs.com:3306/exam_cloud?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=exam_cloud
+spring.datasource.password=examcloud123!@#
+
+
+eureka.client.serviceUrl.defaultZone=http://127.0.0.1:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+hystrix.threadpool.default.coreSize = 500
+
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud123
+spring.rabbitmq.listener.acknowledgeMode=MANUAL
+
+spring.redis.host=r-wz97e520d2701e54555.redis.rds.aliyuncs.com
+spring.redis.port=6379
+spring.redis.password=Qmth87863577

+ 16 - 0
examcloud-logic-reports-starter/src/main/resources/application-test.properties

@@ -0,0 +1,16 @@
+spring.datasource.url=jdbc:mysql://localhost:3306/exam_cloud_test?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=root
+
+
+spring.redis.host=localhost
+spring.redis.port=6379
+
+
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+
+spring.rabbitmq.host=localhost
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=examcloud
+spring.rabbitmq.password=examcloud
+spring.rabbitmq.listener.acknowledgeMode=MANUAL

+ 42 - 0
examcloud-logic-reports-starter/src/main/resources/application.properties

@@ -0,0 +1,42 @@
+spring.profiles.active=dev
+spring.datasource.validation-query=SELECT 1 FROM DUAL
+spring.datasource.test-on-borrow=true
+spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+
+#\u7981\u7528\u670d\u52a1\u6ce8\u518c
+eureka.client.register-with-eureka=false
+eureka.client.fetch-registry=true
+
+#redis
+#spring.redis.host=192.168.199.102
+#spring.redis.port=32768
+
+#server.port=8080
+
+
+#logging.file=d:/gkwb/logs/gkwb.log
+logging.level.org.springframework=ERROR
+logging.level.org.hibernate=ERROR
+
+spring.jpa.show-sql=false
+spring.jpa.hibernate.ddl-auto=update
+
+
+spring.http.multipart.max-file-size=10Mb
+
+spring.application.name=examcloud-logic-reports
+server.port=8008
+eureka.client.serviceUrl.defaultZone=http://localhost:1111/eureka/
+hystrix.command.default.execution.timeout.enabled=false
+# Increase the Hystrix timeout to 600s (globally)
+hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 600000
+ribbon.ReadTimeout=800000
+ribbon.ConnectTimeout=800000
+
+app.api.root=/api/logic/reports
+app.api.core=/api/ecs_core
+app.api.oe=/api/ecs_oe
+#\u5b66\u751f\u7167\u7247\u4e0a\u4f20\u5730\u5740
+app.em.photo.path=/Users/ting.yin/Downloads
+app.em.facepp.key=e94d4a6a1ea8749144328be96a40e388
+app.em.facepp.secret=H65RT9miQqCal00jpxdUAreAufxxusUv

+ 38 - 0
examcloud-logic-reports-starter/src/main/resources/logback-spring.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="true" scan="true" scanPeriod="30 seconds">
+
+	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="FILE-STDOUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+		<file>./logs/console/console.log</file>
+		<encoder>
+			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} - %X{LOGIN_NAME} | %m | [%class:%line]%n</pattern>
+		</encoder>
+		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+			<fileNamePattern>./logs/console/console.%d{yyyy-MM-dd}.log.zip</fileNamePattern>
+			<maxHistory>30</maxHistory>
+		</rollingPolicy>
+	</appender>
+
+	<logger name="cn.com.qmth.examcloud" level="DEBUG" additivity="false">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="FILE-STDOUT" />
+	</logger>
+
+	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
+	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
+	<logger name="org.hibernate.SQL" level="ERROR" />
+	<logger name="org.hibernate.type" level="ERROR" />
+	<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
+	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
+
+	<root level="INFO">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="FILE-STDOUT" />
+	</root>
+
+</configuration>

+ 19 - 0
pom.xml

@@ -0,0 +1,19 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>cn.com.qmth.examcloud</groupId>
+		<artifactId>examcloud-parent</artifactId>
+		<version>0.1.0</version>
+	</parent>
+	<groupId>cn.com.qmth.examcloud.logic.reports</groupId>
+	<artifactId>examcloud-logic-reports</artifactId>
+	<packaging>pom</packaging>
+
+
+	<modules>
+		<module>examcloud-logic-reports-controller</module>
+		<module>examcloud-logic-reports-service</module>
+		<module>examcloud-logic-reports-starter</module>
+	</modules>
+</project>