Merge branch 'dev' into test

yun-zuoyi
wei.peng 6 years ago
commit 4123856456

@ -0,0 +1,42 @@
package cn.estsh.i3plus.core.apiservice.configuration;
import cn.estsh.i3plus.platform.common.util.CommonConstWords;
import cn.estsh.i3plus.pojo.base.jpa.factory.BaseMongoRepositoryFactoryBean;
import cn.estsh.i3plus.pojo.base.jpa.factory.BaseRepositoryFactoryBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
/**
* @Description :
*
* @Reference :
* @Author : alwaysfrin
* @CreateDate : 2018-12-12 20:49
* @Modify:
**/
@Configuration
@Order(0)
//扫描需要单独处理的对象类
@EntityScan(basePackageClasses = {
//需要单独处理的其他模块对象
})
@EnableJpaRepositories(basePackages = {
//需要单独处理的其他模块持久化仓
}, repositoryFactoryBeanClass = BaseRepositoryFactoryBean.class)
@EnableMongoRepositories(basePackageClasses = {
//需要单独处理的其他模块mongo持久化仓
},repositoryFactoryBeanClass = BaseMongoRepositoryFactoryBean.class)
public class ScanPackageConfiguration {
public static final Logger LOGGER = LoggerFactory.getLogger(CommonConstWords.SYSTEM_LOG);
public ScanPackageConfiguration(){
LOGGER.info("【关联模块加载包处理...】");
}
}

@ -0,0 +1,106 @@
package cn.estsh.i3plus.core.apiservice.daoimpl;
import cn.estsh.i3plus.core.apiservice.dao.ISysLogSystemDao;
import cn.estsh.i3plus.platform.common.tool.StringTool;
import cn.estsh.i3plus.pojo.platform.bean.SysLogOperate;
import cn.estsh.i3plus.pojo.platform.bean.SysLogSystem;
import com.alibaba.fastjson.JSONObject;
import com.mongodb.Block;
import com.mongodb.client.AggregateIterable;
import com.mongodb.client.MongoCursor;
import io.swagger.annotations.ApiOperation;
import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.bson.Document;
import org.bson.json.JsonMode;
import org.bson.json.JsonWriterSettings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Description :
* @Reference :
* @Author : yunhao
* @CreateDate : 2018-12-11 13:24
* @Modify:
**/
@Service
public class SysLogSystemDaoImpl implements ISysLogSystemDao {
public static final Logger LOGGER = LoggerFactory.getLogger(SysLogSystemDaoImpl.class);
@Autowired
private MongoDbFactory mongoDbFactory;
@Override
@ApiOperation(value = "查询时间段内平均请求耗时")
public Map<String, Object> querySysLogOperateAvgExecuteTime(String startTime, String endTime) {
List<String> dList = new ArrayList<>();
Block<Document> saveBlock = new Block<Document>() {
@Override
public void apply(final Document document) {
dList.add(document.toJson());
}
};
Document sub_match = new Document();
sub_match.put("leaveTime", new Document("$gte", startTime).append("$lte", endTime));
Document sub_substr = new Document();
sub_substr.put("$substr", new Object[]{"$createDatetime", 0, 16});
Document sub_project = new Document();
sub_project.put("new_time_stamp", sub_substr);
sub_project.put("executeTime", 1);
Document sub_group = new Document();
sub_group.put("_id", "createDatetime");
sub_group.put("avg", new Document("$avg", "$executeTime"));
Document match = new Document("$match", sub_match);
Document project = new Document("$project", sub_project);
Document group = new Document("$group", sub_group);
Document sort = new Document("$sort", new Document("_id", 1));
List<Document> aggregateList = new ArrayList<>();
aggregateList.add(match);
// aggregateList.add(project);
aggregateList.add(group);
aggregateList.add(sort);
AggregateIterable<Document> findIter = mongoDbFactory.getDb()
.getCollection(StringTool.toLowerCaseFirstOne(SysLogSystem.class.getSimpleName()))
.aggregate(aggregateList);
MongoCursor<Document> cursor = findIter.iterator();
while (cursor.hasNext()) {
Document item_doc = cursor.next();
int _id = item_doc.getInteger("_id", 0);
int avg = item_doc.getInteger("avg", 0);
System.out.println("_id" + _id + "abg" + avg);
}
return packObjectListFromDocument(dList);
}
private Map<String, Object> packObjectListFromDocument(List<String> dList) {
//将获取的document转为对象
List<SysLogOperate> resultList = new ArrayList<>();
// 设置为宽松模式
JsonWriterSettings jsonWriterSettings = JsonWriterSettings.builder().outputMode(JsonMode.RELAXED).build();
for (String d : dList) {
resultList.add(JSONObject.parseObject(d, SysLogOperate.class));
}
return null;
}
}

@ -35,12 +35,12 @@ spring.resources.static-locations=/static/**,/**
#app基础包路径
impp.app.base-packages=cn.estsh.i3plus.core
#app对象路径
impp.app.pojo-packages=cn.estsh.i3plus.pojo.platform
impp.app.pojo-packages=cn.estsh.i3plus.pojo
#dao接口包
impp.app.pojo-dao=${impp.app.base-packages}.apiservice.dao
#mongo-dao接口包
impp.app.pojo-mongo-dao=${impp.app.base-packages}.apiservice.daomongo
impp.app.pojo-mongo-dao=${impp.app.base-packages}.**.apiservice.daomongo
#对象持久化包路径,可以多个包,逗号分隔
impp.app.pojo-repository=${impp.app.pojo-packages}.repository
impp.app.pojo-repository=${impp.app.pojo-packages}.**.repository
#mongodb资源仓
impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.repositorymongo
impp.app.pojo-mongo-repository=${impp.app.pojo-packages}.**.repositorymongo
Loading…
Cancel
Save