1.依赖
<!-- SpringBoot MongoDB -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2.mongoDB分页
@ApiOperation(value = "分页查询预警记录分析照片信息", notes = "", httpMethod = "GET")
@RequestMapping(method = RequestMethod.GET, value = "/analysisSearchAll")
public Response<Page<AnalysisAlarm>> analysisSearchAll(@ApiIgnore Pager<AnalysisAlarm> pager, String deviceType, String startTime,
String endTime, String deviceId) {
Page<AnalysisAlarm> analysisAlarms = service.analysisSearchAll(pager, deviceType, startTime, endTime, deviceId);
return Response.put(analysisAlarms);
}
3.分页impl实现
@Override
public Page<AnalysisAlarm> analysisSearchAll(Pager<AnalysisAlarm> pager, String deviceType, String startTime, String endTime,
String deviceId) {
Query query = new Query();
Sort sort = Sort.by(Direction.DESC, "create_time");
PageRequest pageable = PageRequest.of(pager.getPageNum() - 1, pager.getPageSize(), sort);
// 分页条件查询 :时间,设备id,预警类型
if(StringUtil.isNotEmpty(startTime) && StringUtil.isNotEmpty(endTime)){
query.addCriteria(Criteria.where("create_time").gte(DateUtils.parseDate(startTime)).lte(DateUtils.parseDate(endTime)));
}
if (StringUtils.isNotBlank(deviceId)) {
query.addCriteria(Criteria.where("deviceID").is(deviceId));
}
if (StringUtils.isNotBlank(deviceType)) {
query.addCriteria(Criteria.where("warningType").is(deviceType));
}
query.addCriteria(Criteria.where("data_status").is(1));
// 查询总数
long total = mongoTemplate.count(query, AnalysisAlarm.class);
// 分页查询
List<AnalysisAlarm> analysisAlarmList = mongoTemplate.find(query.with(pageable), AnalysisAlarm.class);
// 设置结果集,总数
Page<AnalysisAlarm> analysisAlarmPage = new PageImpl(analysisAlarmList, pageable, total);
return analysisAlarmPage;
}
4.删除
@Override
public int deleteBatch(List<String> ids) {
ids.forEach(d->{
Query query = new Query(Criteria.where("_id").is(d));
AnalysisAlarm one = mongoTemplate.findOne(query, AnalysisAlarm.class);
if (ObjectUtils.isEmpty(one)){
throw new BusinessException("此集合已被删除");
}
Update update = new Update();
update.set("data_status",0);
mongoTemplate.updateFirst(query, update, AnalysisAlarm.class);
});
return 1;
}
5.详情
@Override
public List<AnalysisAlarm> elavatorAction(String deviceId) {
Query query = new Query();
// 分页条件查询 :时间,设备id,预警类型
if (StringUtils.isNotBlank(deviceId)) {
query.addCriteria(Criteria.where("deviceID").is(deviceId));
}
query.addCriteria(Criteria.where("data_status").is(1));
// 通过deviceId查询
// find 返回的是数组
List<AnalysisAlarm> analysisAlarms = mongoTemplate.find(query, AnalysisAlarm.class);
return analysisAlarms;
}