提交 950aa85d 编写于 作者: Hello 码上秃's avatar Hello 码上秃

功能优化__首页基本数据展示优化

上级 6ad41bbc
......@@ -19,9 +19,25 @@ huike-framework/src/main/java/com/huike/framework/config/SecurityConfig.java
huike-framework/src/main/java/com/huike/framework/web/service/SysPermissionService.java
自定义权限实现(权限校验):
huike-framework/src/main/java/com/huike/framework/web/service/PermissionService.java
记录日志切面类:
自定义数据权限注解:
huike-common/src/main/java/com/huike/common/annotation/DataScope.java
利用aop实现自定义数据权限注解(切面类):
huike-framework/src/main/java/com/huike/framework/aspectj/DataScopeAspect.java
日志实体类:
huike-system/src/main/java/com/huike/clues/domain/SysOperLog.java
日志业务逻辑层:
huike-system/src/main/java/com/huike/clues/service/ISysOperLogService.java
huike-system/src/main/java/com/huike/clues/service/impl/SysOperLogServiceImpl.java
日志自定义注解:
huike-common/src/main/java/com/huike/common/annotation/Log.java
编写日志处理类(切面类):
huike-framework/src/main/java/com/huike/framework/aspectj/LogAspect.java
异步方式存储日志:
异步工厂(产生任务用):
huike-framework/src/main/java/com/huike/framework/manager/factory/AsyncFactory.java
异步任务管理器:
huike-framework/src/main/java/com/huike/framework/manager/AsyncManager.java
防止重复提交拦截器:
huike-framework/src/main/java/com/huike/framework/interceptor/RepeatSubmitInterceptor.java
......
......@@ -465,10 +465,29 @@ public class ReportServiceImpl implements IReportService {
String username = SecurityUtils.getUsername();
try {
//3 封装结果集对象
result.setCluesNum(reportMpper.getCluesNum(beginCreateTime, endCreateTime, username));
result.setBusinessNum(reportMpper.getBusinessNum(beginCreateTime, endCreateTime, username));
result.setContractNum(reportMpper.getContractNum(beginCreateTime, endCreateTime, username));
result.setSalesAmount(reportMpper.getSalesAmount(beginCreateTime, endCreateTime, username));
CompletableFuture<Integer> clueNums = CompletableFuture.supplyAsync(()->{
// 2.2 开始查询第一个属性 线索数量
return reportMpper.getCluesNum(beginCreateTime, endCreateTime, username);
});
CompletableFuture<Integer> businessNum = CompletableFuture.supplyAsync(()->{
// 2.3 开始查询第一个属性 商机数量
return reportMpper.getBusinessNum(beginCreateTime, endCreateTime, username);
});
CompletableFuture<Integer> contractNum = CompletableFuture.supplyAsync(()->{
// 2.4 开始查询第一个属性 合同数量
return reportMpper.getContractNum(beginCreateTime, endCreateTime, username);
});
CompletableFuture<Double> saleAmount = CompletableFuture.supplyAsync(()->{
// 2.5 开始查询第一个属性 销售金额数量
return reportMpper.getSalesAmount(beginCreateTime, endCreateTime, username);
});
//3 join等待所有线程全部执行完成
CompletableFuture.allOf(clueNums, businessNum, contractNum, saleAmount).join();
//4 封装结果集对象
result.setCluesNum(clueNums.get());
result.setBusinessNum(businessNum.get());
result.setContractNum(contractNum.get());
result.setSalesAmount(saleAmount.get());
}catch (Exception e) {
e.printStackTrace();
return null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册