|
@@ -1,99 +0,0 @@
|
|
|
-package cn.reghao.devops.manager.log.db.mongo;
|
|
|
|
|
-
|
|
|
|
|
-import cn.reghao.devops.manager.log.model.po.AppLog;
|
|
|
|
|
-import cn.reghao.jutil.jdk.db.BaseCrud;
|
|
|
|
|
-import cn.reghao.jutil.jdk.db.BaseQuery;
|
|
|
|
|
-import com.mongodb.MongoBulkWriteException;
|
|
|
|
|
-import com.mongodb.client.model.InsertManyOptions;
|
|
|
|
|
-import com.mongodb.client.result.InsertManyResult;
|
|
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
-import org.bson.Document;
|
|
|
|
|
-import org.springframework.data.domain.Sort;
|
|
|
|
|
-import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
|
|
-import org.springframework.data.mongodb.core.convert.MongoConverter;
|
|
|
|
|
-import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
|
|
-import org.springframework.data.mongodb.core.query.Query;
|
|
|
|
|
-import org.springframework.stereotype.Repository;
|
|
|
|
|
-
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Locale;
|
|
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * @author reghao
|
|
|
|
|
- * @date 2023-10-23 11:31:02
|
|
|
|
|
- */
|
|
|
|
|
-@Slf4j
|
|
|
|
|
-@Repository
|
|
|
|
|
-public class AppLogMongo implements BaseCrud<AppLog>, BaseQuery<AppLog> {
|
|
|
|
|
- private final String colName = "AppLog";
|
|
|
|
|
- private final MongoTemplate mongoTemplate;
|
|
|
|
|
- private final MongoConverter mongoConverter;
|
|
|
|
|
- private final int pageSize = 100;
|
|
|
|
|
-
|
|
|
|
|
- public AppLogMongo(MongoTemplate mongoTemplate, MongoConverter mongoConverter) {
|
|
|
|
|
- this.mongoTemplate = mongoTemplate;
|
|
|
|
|
- this.mongoConverter = mongoConverter;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public AppLog save(AppLog appLog) {
|
|
|
|
|
- Document doc = new Document();
|
|
|
|
|
- mongoConverter.write(appLog, doc);
|
|
|
|
|
- mongoTemplate.getCollection(colName).insertOne(doc);
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void saveAll(List<AppLog> list) {
|
|
|
|
|
- List<Document> documents = list.stream()
|
|
|
|
|
- .map(t -> {
|
|
|
|
|
- Document doc = new Document();
|
|
|
|
|
- mongoConverter.write(t, doc);
|
|
|
|
|
- return doc;
|
|
|
|
|
- })
|
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
|
-
|
|
|
|
|
- InsertManyOptions options = new InsertManyOptions();
|
|
|
|
|
- // 忽略 insert 失败的文档
|
|
|
|
|
- options.ordered(false);
|
|
|
|
|
- try {
|
|
|
|
|
- InsertManyResult result = mongoTemplate.getCollection(colName).insertMany(documents, options);
|
|
|
|
|
- } catch (MongoBulkWriteException ignore) {
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void update(AppLog appLog) {
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void delete(AppLog appLog) {
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public List<AppLog> findByPage(long page) {
|
|
|
|
|
- Query query = new Query();
|
|
|
|
|
- query.skip((page - 1) * pageSize).limit(pageSize);
|
|
|
|
|
- query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "timestamp")));
|
|
|
|
|
- return mongoTemplate.find(query, AppLog.class, colName);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public List<AppLog> findByPage(String app, String host, String level) {
|
|
|
|
|
- Query query = new Query();
|
|
|
|
|
- query.addCriteria(Criteria.where("app").is(app));
|
|
|
|
|
- query.addCriteria(Criteria.where("host").is(host));
|
|
|
|
|
- query.addCriteria(Criteria.where("level").is(level.toUpperCase(Locale.ROOT)));
|
|
|
|
|
-
|
|
|
|
|
- query.skip(0).limit(pageSize);
|
|
|
|
|
- query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "timestamp")));
|
|
|
|
|
- return mongoTemplate.find(query, AppLog.class, colName);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public List<AppLog> findAllByPage(long page, int size, List<Criteria> criteriaList) {
|
|
|
|
|
- Query query = new Query();
|
|
|
|
|
- criteriaList.forEach(query::addCriteria);
|
|
|
|
|
- query.skip((page - 1) * size).limit(size);
|
|
|
|
|
- query.with(Sort.by(new Sort.Order(Sort.Direction.DESC, "createTime")));
|
|
|
|
|
- return mongoTemplate.find(query, AppLog.class, colName);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|