|
@@ -1,6 +1,7 @@
|
|
|
package com.yonge.log.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.mongodb.operation.AggregateOperation;
|
|
|
import com.yonge.log.dal.dao.HistoryMessageDao;
|
|
|
import com.yonge.log.dal.model.HistoryMessage;
|
|
|
import com.yonge.log.service.HistoryMessageService;
|
|
@@ -9,8 +10,10 @@ import com.yonge.mongodb.dao.BaseDaoWithMongo;
|
|
|
import com.yonge.mongodb.service.impl.BaseServiceImplWithMongo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
|
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
+import org.springframework.data.mongodb.core.query.Update;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
@@ -25,6 +28,10 @@ import java.util.Date;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Set;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
import java.util.zip.ZipEntry;
|
|
|
import java.util.zip.ZipFile;
|
|
@@ -60,7 +67,14 @@ public class HistoryMessageServiceImpl extends BaseServiceImplWithMongo<String,
|
|
|
|
|
|
// 查询status 为null or 0
|
|
|
// 查询时间大于date
|
|
|
- Criteria criteria = Criteria.where("dateTime").gt(date).orOperator(Criteria.where("status").is(0),Criteria.where("status").is(null));
|
|
|
+
|
|
|
+ // date 转 LocalDateTime
|
|
|
+ LocalDateTime ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
|
|
|
+
|
|
|
+ String dateFormat = ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
|
|
|
+
|
|
|
+
|
|
|
+ Criteria criteria = Criteria.where("dateTime").gt(dateFormat).orOperator(Criteria.where("status").is(0),Criteria.where("status").is(null));
|
|
|
query.addCriteria(criteria);
|
|
|
return mongoTemplate.count(query,HistoryMessage.class);
|
|
|
}
|
|
@@ -69,13 +83,17 @@ public class HistoryMessageServiceImpl extends BaseServiceImplWithMongo<String,
|
|
|
public PageInfo<HistoryMessage> selectPage(int page, int size, int status, Date date) {
|
|
|
PageInfo<HistoryMessage> pageInfo = new PageInfo<HistoryMessage>(page, size);
|
|
|
|
|
|
+ // date 转 LocalDateTime
|
|
|
+ LocalDateTime ldt = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
|
|
|
+
|
|
|
+ String dateFormat = ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
|
|
|
List<HistoryMessage> dataList = null;
|
|
|
long total = this.selectCount(status,date);
|
|
|
if (total > 0) {
|
|
|
pageInfo.setTotal(total);
|
|
|
|
|
|
Query query = new Query();
|
|
|
- Criteria criteria = Criteria.where("dateTime").gt(date).orOperator(Criteria.where("status").is(0),Criteria.where("status").is(null));
|
|
|
+ Criteria criteria = Criteria.where("dateTime").gt(dateFormat).orOperator(Criteria.where("status").is(0),Criteria.where("status").is(null));
|
|
|
query.addCriteria(criteria);
|
|
|
query.skip(pageInfo.getOffset()).limit(pageInfo.getLimit());
|
|
|
dataList = mongoTemplate.find(query, HistoryMessage.class);
|
|
@@ -87,6 +105,28 @@ public class HistoryMessageServiceImpl extends BaseServiceImplWithMongo<String,
|
|
|
return pageInfo;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void updateStatus(String id, Integer status) {
|
|
|
+ Criteria criteria = Criteria.where("_id").is(id);
|
|
|
+ Query query = new Query(criteria);
|
|
|
+
|
|
|
+ Update update = new Update();
|
|
|
+ update.set("status", status); // 设置新的 status 值
|
|
|
+
|
|
|
+ mongoTemplate.updateMulti(query, update, HistoryMessage.class);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateAllStatus(int status) {
|
|
|
+
|
|
|
+ Query query = new Query();
|
|
|
+
|
|
|
+ Update update = new Update();
|
|
|
+ update.set("status", status); // 设置新的 status 值
|
|
|
+
|
|
|
+ mongoTemplate.updateMulti(query, update, HistoryMessage.class);
|
|
|
+ }
|
|
|
+
|
|
|
// public static void main(String[] args) throws Exception {
|
|
|
// doNioReadFile1(new File("/Users/chenxiaoyu/Documents/77fe9ce6-7d91-4568-afe3-9e8ac351e87f.zip"));
|
|
|
// }
|