Commit 3793be10 by wangxin

消息数量接口增加我的信箱

parent 296d7be4
package com.yizhi.application.dashboard.controller; package com.yizhi.application.promptStatistics;
import com.yizhi.application.vo.PromptStatisticsVO; import com.yizhi.application.vo.PromptStatisticsVO;
import com.yizhi.core.application.context.ContextHolder; import com.yizhi.core.application.context.ContextHolder;
...@@ -7,6 +6,8 @@ import com.yizhi.core.application.context.RequestContext; ...@@ -7,6 +6,8 @@ import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.feign.ResearchClient; import com.yizhi.research.application.feign.ResearchClient;
import com.yizhi.research.application.vo.BaseModel; import com.yizhi.research.application.vo.BaseModel;
import com.yizhi.research.application.vo.api.PageVo; import com.yizhi.research.application.vo.api.PageVo;
import com.yizhi.site.application.feign.api.SystemMailboxClients;
import com.yizhi.site.application.vo.domain.SystemMailboxParamVo;
import com.yizhi.training.application.feign.TrainingProjectClient; import com.yizhi.training.application.feign.TrainingProjectClient;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo; import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.util.application.domain.Response; import com.yizhi.util.application.domain.Response;
...@@ -30,62 +31,68 @@ import com.baomidou.mybatisplus.plugins.Page; ...@@ -30,62 +31,68 @@ import com.baomidou.mybatisplus.plugins.Page;
@Api(tags = "提示统计接口") @Api(tags = "提示统计接口")
@RestController @RestController
@RequestMapping("/manage/prompt") @RequestMapping("/api/prompt")
public class PromptStatisticsController { public class PromptStatisticsController {
private static final Logger LOGGER = LoggerFactory.getLogger(PromptStatisticsController.class); private static final Logger LOGGER = LoggerFactory.getLogger(PromptStatisticsController.class);
@Autowired @Autowired
private ResearchClient researchClient; private ResearchClient researchClient;
@Autowired @Autowired
private TrainingProjectClient trainingProjectClient; private TrainingProjectClient trainingProjectClient;
@Autowired @Autowired
private ExamApiClient examApiClient; private ExamApiClient examApiClient;
@Autowired
private SystemMailboxClients systemMailboxClients;
@ApiOperation(value = "获取提示统计信息", notes = "获取总提示数量及各类提示数量统计") @ApiOperation(value = "获取提示统计信息", notes = "获取总提示数量及各类提示数量统计")
@GetMapping("/statistics") @GetMapping("/statistics")
public Response<PromptStatisticsVO> getPromptStatistics() { public Response<PromptStatisticsVO> getPromptStatistics() {
try { try {
LOGGER.error("获取提示统计信息");
PromptStatisticsVO statistics = new PromptStatisticsVO(); PromptStatisticsVO statistics = new PromptStatisticsVO();
RequestContext context = ContextHolder.get(); RequestContext context = ContextHolder.get();
// 1. 获取未参与的工作任务数量(调研表biz_type=1,已上架且处于调研期间) // 1. 获取工作任务数量(调研表biz_type=1,已上架且处于调研期间)
Integer workTaskCount = getUnparticipatedWorkTaskCount(context); Integer workTaskCount = getWorkTaskCount(context);
statistics.setWorkTaskCount(workTaskCount); statistics.setWorkTaskCount(workTaskCount);
// 2. 获取未参与的主题活动数量(培训项目已上架未结束) // 2. 获取主题活动数量(培训项目已上架未结束)
Integer themeActivityCount = getUnparticipatedThemeActivityCount(context); Integer themeActivityCount = getThemeActivityCount(context);
statistics.setThemeActivityCount(themeActivityCount); statistics.setThemeActivityCount(themeActivityCount);
// 3. 获取未参与的投票数量(调研表biz_type=2,已上架) // 3. 获取我要投票数量(调研表biz_type=2,已上架)
Integer voteCount = getUnparticipatedVoteCount(context); Integer voteCount = getVoteCount(context);
statistics.setVoteCount(voteCount); statistics.setVoteCount(voteCount);
// 4. 获取未参与的培训测试数量(考试相关的提示数量) // 4. 获取培训测试数量(考试相关的提示数量)
Integer trainingTestCount = getUnparticipatedTrainingTestCount(context); Integer trainingTestCount = getTrainingTestCount(context);
statistics.setTrainingTestCount(trainingTestCount); statistics.setTrainingTestCount(trainingTestCount);
// 5. 计算总提示数量 // 5. 获取信箱提示数量(未读消息数量)
int totalPromptCount = workTaskCount + themeActivityCount + voteCount + trainingTestCount; Integer mailboxCount = getMailboxCount(context);
statistics.setMailboxCount(mailboxCount);
// 6. 计算总提示数量
int totalPromptCount = workTaskCount + themeActivityCount + voteCount + trainingTestCount + mailboxCount;
statistics.setTotalPromptCount(totalPromptCount); statistics.setTotalPromptCount(totalPromptCount);
return Response.ok(statistics); return Response.ok(statistics);
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取提示统计信息失败", e); LOGGER.error("获取提示统计信息失败", e);
return Response.fail("500", "获取提示统计信息失败"); return Response.fail("500", "获取提示统计信息失败");
} }
} }
/** /**
* 获取未参与的工作任务数量(调研表biz_type=1,已上架且处于调研期间) * 获取工作任务数量
* @param context * @param context
* @return * @return
*/ */
private Integer getUnparticipatedWorkTaskCount(RequestContext context) { private Integer getWorkTaskCount(RequestContext context) {
try { try {
PageVo pageVo = new PageVo(); PageVo pageVo = new PageVo();
pageVo.setAccountId(context.getAccountId()); pageVo.setAccountId(context.getAccountId());
...@@ -93,14 +100,14 @@ public class PromptStatisticsController { ...@@ -93,14 +100,14 @@ public class PromptStatisticsController {
pageVo.setPageNo(1); pageVo.setPageNo(1);
pageVo.setPageSize(1); pageVo.setPageSize(1);
pageVo.setBizType(1); // 调研类型 pageVo.setBizType(1); // 调研类型
pageVo.setState(2); // 进行中的任务(未完成,未参与) pageVo.setState(2); // 进行中的任务
BaseModel<PageVo> model = new BaseModel<>(); BaseModel<PageVo> model = new BaseModel<>();
model.setDate(new Date()); model.setDate(new Date());
model.setObj(pageVo); model.setObj(pageVo);
model.setContext(context); model.setContext(context);
// 获取未参与的调研列表,只取数量 // 获取调研列表,只取数量
Page<ResearchVo> response = researchClient.apiListPage(model); Page<ResearchVo> response = researchClient.apiListPage(model);
if (response != null ) { if (response != null ) {
...@@ -108,47 +115,47 @@ public class PromptStatisticsController { ...@@ -108,47 +115,47 @@ public class PromptStatisticsController {
} }
return 0; return 0;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取未参与的工作任务数量失败", e); LOGGER.error("获取工作任务数量失败", e);
return 0; return 0;
} }
} }
/** /**
* 获取未参与的主题活动数量(培训项目已上架未结束) * 获取主题活动数量
* @param context * @param context
* @return * @return
*/ */
private Integer getUnparticipatedThemeActivityCount(RequestContext context) { private Integer getThemeActivityCount(RequestContext context) {
try { try {
TrainingProjectMyParamVo paramVo = new TrainingProjectMyParamVo(); TrainingProjectMyParamVo paramVo = new TrainingProjectMyParamVo();
paramVo.setPageNo(1); paramVo.setPageNo(1);
paramVo.setPageSize(1); paramVo.setPageSize(1);
paramVo.setType(2); // 进行中的活动 paramVo.setType(2); // 进行中的活动
com.yizhi.training.application.model.BaseModel<TrainingProjectMyParamVo> model = com.yizhi.training.application.model.BaseModel<TrainingProjectMyParamVo> model =
new com.yizhi.training.application.model.BaseModel<>(); new com.yizhi.training.application.model.BaseModel<>();
model.setContext(context); model.setContext(context);
model.setDate(new Date()); model.setDate(new Date());
model.setObj(paramVo); model.setObj(paramVo);
// 获取未参与的培训项目列表,只取数量 // 获取培训项目列表,只取数量
Page<TrainingProjectListVo> response = trainingProjectClient.apiMyPageList(model); Page<TrainingProjectListVo> response = trainingProjectClient.apiMyPageList(model);
if (response != null ) { if (response != null ) {
return response.getTotal(); return response.getTotal();
} }
return 0; return 0;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取未参与的主题活动数量失败", e); LOGGER.error("获取主题活动数量失败", e);
return 0; return 0;
} }
} }
/** /**
* 获取未参与的投票数量(调研表biz_type=2,已上架) * 获取投票数量
* @param context * @param context
* @return * @return
*/ */
private Integer getUnparticipatedVoteCount(RequestContext context) { private Integer getVoteCount(RequestContext context) {
try { try {
PageVo pageVo = new PageVo(); PageVo pageVo = new PageVo();
pageVo.setAccountId(context.getAccountId()); pageVo.setAccountId(context.getAccountId());
...@@ -156,31 +163,31 @@ public class PromptStatisticsController { ...@@ -156,31 +163,31 @@ public class PromptStatisticsController {
pageVo.setPageNo(1); pageVo.setPageNo(1);
pageVo.setPageSize(1); pageVo.setPageSize(1);
pageVo.setBizType(2); // 投票类型 pageVo.setBizType(2); // 投票类型
pageVo.setState(2); // 进行中的投票(未完成,未参与) pageVo.setState(2); // 进行中的投票
BaseModel<PageVo> model = new BaseModel<>(); BaseModel<PageVo> model = new BaseModel<>();
model.setDate(new Date()); model.setDate(new Date());
model.setObj(pageVo); model.setObj(pageVo);
model.setContext(context); model.setContext(context);
// 获取未参与的投票列表,只取数量 // 获取投票列表,只取数量
Page<ResearchVo> response = researchClient.apiListPage(model); Page<ResearchVo> response = researchClient.apiListPage(model);
if (response != null ) { if (response != null ) {
return response.getTotal(); return response.getTotal();
} }
return 0; return 0;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取未参与的投票数量失败", e); LOGGER.error("获取投票数量失败", e);
return 0; return 0;
} }
} }
/** /**
* 获取未参与的培训测试数量(考试相关的提示数量) * 获取培训测试数量
* @param context * @param context
* @return * @return
*/ */
private Integer getUnparticipatedTrainingTestCount(RequestContext context) { private Integer getTrainingTestCount(RequestContext context) {
try { try {
// 使用考试dashboard接口获取考试统计信息 // 使用考试dashboard接口获取考试统计信息
ExamDashboardQueryVO query = new ExamDashboardQueryVO(); ExamDashboardQueryVO query = new ExamDashboardQueryVO();
...@@ -190,12 +197,31 @@ public class PromptStatisticsController { ...@@ -190,12 +197,31 @@ public class PromptStatisticsController {
Date startDate = new Date(endDate.getTime() - 7 * 24 * 60 * 60 * 1000L); Date startDate = new Date(endDate.getTime() - 7 * 24 * 60 * 60 * 1000L);
query.setStartDate(startDate); query.setStartDate(startDate);
query.setEndDate(endDate); query.setEndDate(endDate);
Map<Long, Integer> examData = examApiClient.getExamDashboardData(query); Map<Long, Integer> examData = examApiClient.getExamDashboardData(query);
// 返回考试数量 // 返回考试数量
return examData != null ? examData.size() : 0; return examData != null ? examData.size() : 0;
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("获取未参与的培训测试数量失败", e); LOGGER.error("获取培训测试数量失败", e);
return 0;
}
}
/**
* 获取信箱提示数量(未读消息数量)
* @param context
* @return
*/
private Integer getMailboxCount(RequestContext context) {
try {
// 获取未读消息数量
Page<SystemMailboxParamVo> response = systemMailboxClients.selectMyPage(1,1, 2);
if (response != null ) {
return response.getTotal();
}
return 0;
} catch (Exception e) {
LOGGER.error("获取信箱提示数量失败", e);
return 0; return 0;
} }
} }
......
...@@ -22,4 +22,7 @@ public class PromptStatisticsVO { ...@@ -22,4 +22,7 @@ public class PromptStatisticsVO {
@ApiModelProperty(value = "培训测试提示数量") @ApiModelProperty(value = "培训测试提示数量")
private Integer trainingTestCount; private Integer trainingTestCount;
@ApiModelProperty(value = "信箱提示数量")
private Integer mailboxCount;
} }
\ No newline at end of file
...@@ -6,6 +6,8 @@ import com.yizhi.core.application.context.RequestContext; ...@@ -6,6 +6,8 @@ import com.yizhi.core.application.context.RequestContext;
import com.yizhi.research.application.feign.ResearchClient; import com.yizhi.research.application.feign.ResearchClient;
import com.yizhi.research.application.vo.BaseModel; import com.yizhi.research.application.vo.BaseModel;
import com.yizhi.research.application.vo.api.PageVo; import com.yizhi.research.application.vo.api.PageVo;
import com.yizhi.site.application.feign.api.SystemMailboxClients;
import com.yizhi.site.application.vo.domain.SystemMailboxParamVo;
import com.yizhi.training.application.feign.TrainingProjectClient; import com.yizhi.training.application.feign.TrainingProjectClient;
import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo; import com.yizhi.training.application.vo.api.TrainingProjectMyParamVo;
import com.yizhi.util.application.domain.Response; import com.yizhi.util.application.domain.Response;
...@@ -43,6 +45,9 @@ public class PromptStatisticsController { ...@@ -43,6 +45,9 @@ public class PromptStatisticsController {
@Autowired @Autowired
private ExamApiClient examApiClient; private ExamApiClient examApiClient;
@Autowired
private SystemMailboxClients systemMailboxClients;
@ApiOperation(value = "获取提示统计信息", notes = "获取总提示数量及各类提示数量统计") @ApiOperation(value = "获取提示统计信息", notes = "获取总提示数量及各类提示数量统计")
@GetMapping("/statistics") @GetMapping("/statistics")
public Response<PromptStatisticsVO> getPromptStatistics() { public Response<PromptStatisticsVO> getPromptStatistics() {
...@@ -66,9 +71,13 @@ public class PromptStatisticsController { ...@@ -66,9 +71,13 @@ public class PromptStatisticsController {
// 4. 获取培训测试数量(考试相关的提示数量) // 4. 获取培训测试数量(考试相关的提示数量)
Integer trainingTestCount = getTrainingTestCount(context); Integer trainingTestCount = getTrainingTestCount(context);
statistics.setTrainingTestCount(trainingTestCount); statistics.setTrainingTestCount(trainingTestCount);
// 5. 获取信箱提示数量(未读消息数量)
Integer mailboxCount = getMailboxCount(context);
statistics.setMailboxCount(mailboxCount);
// 5. 计算总提示数量 // 6. 计算总提示数量
int totalPromptCount = workTaskCount + themeActivityCount + voteCount + trainingTestCount; int totalPromptCount = workTaskCount + themeActivityCount + voteCount + trainingTestCount + mailboxCount;
statistics.setTotalPromptCount(totalPromptCount); statistics.setTotalPromptCount(totalPromptCount);
return Response.ok(statistics); return Response.ok(statistics);
...@@ -197,4 +206,23 @@ public class PromptStatisticsController { ...@@ -197,4 +206,23 @@ public class PromptStatisticsController {
return 0; return 0;
} }
} }
/**
* 获取信箱提示数量(未读消息数量)
* @param context
* @return
*/
private Integer getMailboxCount(RequestContext context) {
try {
// 获取未读消息数量
Page<SystemMailboxParamVo> response = systemMailboxClients.selectMyPage(1,1, 2);
if (response != null ) {
return response.getTotal();
}
return 0;
} catch (Exception e) {
LOGGER.error("获取信箱提示数量失败", e);
return 0;
}
}
} }
\ No newline at end of file
...@@ -22,4 +22,7 @@ public class PromptStatisticsVO { ...@@ -22,4 +22,7 @@ public class PromptStatisticsVO {
@ApiModelProperty(value = "培训测试提示数量") @ApiModelProperty(value = "培训测试提示数量")
private Integer trainingTestCount; private Integer trainingTestCount;
@ApiModelProperty(value = "信箱提示数量")
private Integer mailboxCount;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment