Commit ddcd0fc0 by shenjinzhu

修复提交文件冗余

parent 01c8b6db
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v7.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
/target/
/.settings/
/logs/
.classpath
.project
.svn
.settings/
target/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>datamanage</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.zeroturnaround.eclipse.rebelXmlBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
<nature>org.zeroturnaround.eclipse.jrebelNature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/>
<classpathentry kind="src" path="target/m2e-wtp/web-resources"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8
activeProfiles=
eclipse.preferences.version=1
resolveWorkspaceProjects=true
version=1
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="datamanage">
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
<property name="context-root" value="datamanage"/>
<property name="java-output-path" value="/datamanage/target/classes"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v7.0"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="2.5"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
DELEGATES_PREFERENCE=delegateValidatorList
USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyValidator;
USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.2.700.v201508251749
disabled=06target
eclipse.preferences.version=1
override=true
suspend=false
vals/org.eclipse.jst.jsf.ui.JSFAppConfigValidator/global=FF01
vals/org.eclipse.jst.jsp.core.JSPBatchValidator/global=FF01
vals/org.eclipse.jst.jsp.core.JSPContentValidator/global=FF01
vals/org.eclipse.jst.jsp.core.TLDValidator/global=FF01
vals/org.eclipse.wst.dtd.core.dtdDTDValidator/global=FF01
vals/org.eclipse.wst.html.core.HTMLValidator/global=FF01
vals/org.eclipse.wst.wsdl.validation.wsdl/global=FF02158org.eclipse.wst.wsdl.validation.internal.eclipse.Validator
vals/org.eclipse.wst.xml.core.xml/global=FT03
vals/org.eclipse.wst.xsd.core.xsd/global=FF02162org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator
vals/org.eclipse.wst.xsl.core.xsl/global=FT02
vf.version=3
package com.zhiwei.manage.handle;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.RunMsg;
import com.zhiwei.manage.util.Tools;
@Component
public class DelayedThread extends Thread {
private static boolean isrun = true;
public static Map<String, RunMsg> runMap = new ConcurrentHashMap<String, RunMsg>();
public static Queue<RunMsg> queue=new LinkedBlockingQueue<RunMsg>(500);
public void stopMe() {
isrun = false;
}
@Override
public void run() {
while (isrun) {
Set<String> keys = runMap.keySet();
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
String key = it.next();
RunMsg run = runMap.get(key);
Calendar cal = Calendar.getInstance();
if (run.getNextRun().before(cal.getTime())&&!run.isRunNow()) {
run.setRunNow(true);
runMap.put(run.getTemplateName(), run);
queue.offer(run);
}
}
Tools.sleep(1000*120);
}
}
}
require('babel-register')
var config = require('../../config')
// http://nightwatchjs.org/gettingstarted#settings-file
module.exports = {
src_folders: ['test/e2e/specs'],
output_folder: 'test/e2e/reports',
custom_assertions_path: ['test/e2e/custom-assertions'],
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path
}
},
test_settings: {
default: {
selenium_port: 4444,
selenium_host: 'localhost',
silent: true,
globals: {
devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
}
package com.zhiwei.manage.servlet;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.zhiwei.manage.bean.FieldBean;
import com.zhiwei.manage.bean.JsonResult;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.service.FieldBeanService;
@Controller
public class FieldController {
@Autowired
private FieldBeanService fs;
/**
* 获取所有的信息
*
* @return
*/
@RequestMapping(value = "/getFields", produces = "application/json;charset=utf-8")
@ResponseBody
public String getField(@RequestParam(value = "pageNo", defaultValue = "0") int pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") int pageSize, String pt) {
PageEty page = fs.findAllFields(pageNo, pageSize, pt);
JsonResult result = new JsonResult(true, 200, "获取成功", page);
return JSON.toJSONString(result);
}
@RequestMapping(value = "/updateFields", produces = "application/json;charset=utf-8")
@ResponseBody
public String updateField(FieldBean fieldBean) {
boolean b = fs.update(fieldBean);
JsonResult result = new JsonResult(true, 200, b ? "修改成功" : "修改失败");
return JSON.toJSONString(result);
}
@RequestMapping(value = "/deleteFields", produces = "application/json;charset=utf-8")
@ResponseBody
public String deleteFields(@RequestParam(value = "id[]") List<String> id) {
System.out.println(id);
boolean b = fs.delete(id);
JsonResult result = new JsonResult(b, 200, b ? "删除成功" : "删除失败");
return JSON.toJSONString(result);
}
@RequestMapping(value = "/insertFields", produces = "application/json;charset=utf-8")
@ResponseBody
public String insertField(FieldBean fieldbean) {
System.out.println(fieldbean);
fs.insert(fieldbean);
JsonResult result = new JsonResult(true, 200, "添加成功");
return JSON.toJSONString(result);
}
@RequestMapping(value = "/getAllFields", produces = "application/json;charset=utf-8")
@ResponseBody
public String getAllFields(String pt) {
FieldBean field = fs.getFieldsByPt(pt);
String fields[] = null;
if (field != null) {
fields = field.getField().split(",");
}
JsonResult result = new JsonResult(true, 200, "获取成功", fields);
return JSON.toJSONString(result);
}
}
package com.zhiwei.manage.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.Person;
import com.zhiwei.manage.dao.PersonDao;
@Service
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonDao personDao;
@Override
public boolean insert(Person person) {
if(person==null||person.getUsername().trim()==null||person.getPassword().trim()==null){
return false;
}
Person p=personDao.findByUsername(person.getUsername());
if(p!=null){
return false;
}
personDao.insert(person);
return true;
}
@Override
public boolean update(Person person) {
if(person==null||person.getUsername().trim()==null||person.getPassword().trim()==null){
return false;
}
return personDao.update(person);//false 找不到该id或者id没传进来
}
@Override
public PageEty findAll(int pageNo,int pageSize) {
PageEty page=new PageEty();
int count=personDao.findAllCount();
List<Person> data=personDao.findAll(pageNo, pageSize);
page.setData(data);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
return page;
}
@Override
public Person findById(String personId) {
return personDao.findById(personId);
}
@Override
public boolean delete(String personId) {
return personDao.delete(personId);
}
@Override
public Person login(String username, String password) {
if(username.trim()!=null&&password.trim()!=null){
Person p=personDao.findByUsername(username);
if(p!=null){
if(p.getPassword().equals(password)){
return p;
}
}
}
return null;
}
@Override
public PageEty findByUserName(String username,int pageNo,int pageSize) {
PageEty page=new PageEty();
int count=personDao.findUserCount(username);
List<Person> data=personDao.findAllByUsername(username, pageNo, pageSize);
page.setData(data);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
return page;
}
}
package com.zhiwei.manage.servlet;
import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.service.PersonService;
import com.zhiwei.manage.util.MD5Util;
@Controller
public class PersonController {
@Resource
private PersonService personService;
@RequestMapping(value="/login",produces = "application/json;charset=utf-8")
@ResponseBody
public String login(HttpServletRequest req,HttpServletResponse res,String username,String password){
boolean isTrue=true;//personService.login(username, password);
if(isTrue){
String ck=MD5Util.changeToMd5(username);
Cookie cookie=new Cookie(username, ck);
cookie.setValue(ck);
res.addCookie(cookie);
cookie.setMaxAge(1000*60*60);
cookie.setPath("/");
req.setAttribute("user", username);
return JSON.toJSONString("登录成功");
}else{
return JSON.toJSONString("登录失败");
}
}
@RequestMapping(value="/leave",produces = "application/json;charset=utf-8")
@ResponseBody
public String leave(HttpServletRequest req,HttpServletResponse res,String username){
Cookie[] cookies=req.getCookies();
for(Cookie cookie:cookies){
if(cookie.getName().equals(username)){
Cookie ck = new Cookie(username, null);
ck.setMaxAge(0);
}
}
return "";
}
@RequestMapping(value="/getcookie",produces = "application/json;charset=utf-8")
@ResponseBody
public String getCookie(HttpServletRequest req,HttpServletResponse res){
Cookie[] cookies=req.getCookies();
String result="";
for(Cookie cookie:cookies){
System.out.println(cookie.getName()+":"+cookie.getValue());
result+=cookie.getName()+":"+cookie.getValue()+"\n";
}
return JSON.toJSONString(result);
}
@RequestMapping(value="/getPersons",produces="application/json;charset=utf-8")
@ResponseBody
public String getPerson(HttpServletResponse res,HttpServletRequest req,int pageNo,int pageSize){
PageEty page=personService.findAll(pageNo, pageSize);
return JSON.toJSONString(page);
}
@RequestMapping(value="/getPersonByUserName",produces="application/json;charset=utf-8")
@ResponseBody
public String getPersonByUser(HttpServletResponse res,HttpServletRequest req,String username,int pageNo,int pageSize){
PageEty page=personService.findByUserName(username, pageNo, pageSize);
return JSON.toJSONString(page);
}
}
package com.zhiwei.manage.dao;
import java.lang.reflect.Field;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.Channel;
import com.zhiwei.manage.bean.ServerBean;
import com.zhiwei.manage.handle.DbDepot;
import com.zhiwei.manage.util.MongoConnect;
@Component
public class ServerDaoImpl implements ServerDao {
@Resource(name = "mongoTemplate")
private MongoTemplate mongo;
@Autowired
private DbDepot dbDepot;
@Override
public void insert(ServerBean serverBean) {
mongo.insert(serverBean);
}
@Override
public List<ServerBean> findDb(int pageNo, int pageSize, String dBName) {
if (dBName == null || dBName.equals("")) {
Query query = new Query();
query.skip((pageNo - 1) * pageSize).limit(pageSize);
return mongo.find(query, ServerBean.class);
} else {
return mongo.find(
Query.query(Criteria.where("dbName").regex(dBName)).skip((pageNo - 1) * pageSize).limit(pageSize),
ServerBean.class);
}
}
@Override
public boolean update(ServerBean serverBean) {
Update update = new Update();
Field[] fields = serverBean.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
try {
if (fields[j].getName().equals("id")) {
continue;
}
if (fields[j].get(serverBean) != null)
// 字段名,字段值
update.set(fields[j].getName(), fields[j].get(serverBean));
} catch (Exception e) {
e.printStackTrace();
}
}
WriteResult result = mongo.updateFirst(Query.query(Criteria.where("_id").is(serverBean.getId())), update,
ServerBean.class);
return result.getN() == 1 ? true : false;
}
@Override
public boolean delete(List<String> id) {
System.out.println(id);
WriteResult result = mongo.remove(Query.query(Criteria.where("_id").in(id)), ServerBean.class);
return result.getN() > 0 ? true : false;
}
@Override
public void findPt(String pt) {
List<ServerBean> list = mongo.find(Query.query(Criteria.where("pt").is(pt)), ServerBean.class);
// DbDepot.dbCons = new ConcurrentHashMap<String, Object>();
for (ServerBean sb : list) {
System.out.println(sb);
if (sb.getDbType().equals("mongo")) {
if (sb.getDbUsername() != null && !sb.getDbUsername().equals("")) {
DBCollection con = new MongoConnect(sb.getDbHost(), sb.getDbPort(), sb.getDbUsername(),
sb.getDbPassword(), sb.getDbName()).getCollection(sb.getCollection());
DbDepot.dbCons.put(sb.getOther(), con);
} else {
DBCollection con = new MongoConnect(sb.getDbHost(), sb.getDbPort(), sb.getDbName())
.getCollection(sb.getCollection());
DbDepot.dbCons.put(sb.getOther(), con);
}
}
}
DbDepot.nowPt = pt;
}
@Override
public List<Channel> findAllChannels(int pageNo,int pageSize) {
Query query=new Query();
query.skip((pageNo-1)*pageSize).limit(pageSize);
List<Channel> list = mongo.find(query, Channel.class);
return list;
}
@Override
public void insertChannels(Channel channel) {
mongo.insert(channel);
}
@Override
public boolean updateChannel(Channel channel) {
Update update = new Update();
Field[] fields = channel.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
try {
if (fields[j].getName().equals("id")) {
continue;
}
if (fields[j].get(channel) != null)
// 字段名,字段值
update.set(fields[j].getName(), fields[j].get(channel));
} catch (Exception e) {
e.printStackTrace();
}
}
WriteResult result = mongo.updateFirst(Query.query(Criteria.where("_id").is(channel.getId())), update,
Channel.class);
return result.getN() == 1 ? true : false;
}
@Override
public boolean deleteChannel(List<String> id) {
WriteResult result = mongo.remove(Query.query(Criteria.where("_id").in(id)), Channel.class);
return result.getN() >0 ? true : false;
}
@Override
public int findServerCount(String dbName) {
if (dbName.equals("") || dbName == null) {
System.out.println("this");
return (int) mongo.count(null, ServerBean.class);
} else {
return (int) mongo.count(Query.query(Criteria.where("dbName").regex(dbName)), ServerBean.class);
}
}
@Override
public int findChannelsCount() {
return (int) mongo.count(null, Channel.class);
}
@Override
public List<Channel> findDisChannels() {
return mongo.findAll(Channel.class);
}
@Override
public List<String> findDisChan() {
return mongo.getCollection("Channel").distinct("pt");
}
}
package com.zhiwei.manage.dao;
import java.util.List;
import com.zhiwei.manage.bean.Channel;
import com.zhiwei.manage.bean.ServerBean;
public interface ServerDao {
public void insert(ServerBean serverBean);
public List<ServerBean> findDb(int pageNo,int pageSize,String dbName);
public boolean update(ServerBean serverBean);
public boolean delete(List<String> id);
public void findPt(String pt);
public List<Channel> findAllChannels(int pageNo,int pageSize);
public void insertChannels(Channel channels);
public boolean updateChannel(Channel channel);
public boolean deleteChannel(List<String> id);
public int findServerCount(String dbName);
public int findChannelsCount();
public List<Channel> findDisChannels();
public List<String> findDisChan();
}
package com.zhiwei.manage.servlet;
import org.springframework.stereotype.Controller;
@Controller("/tmp")
public class TemplateController {
}
package com.zhiwei.manage.service;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.Person;
@Component
public interface PersonService {
public boolean insert(Person person);
public boolean update(Person person);
public PageEty findAll(int pageNo,int pageSize);
public Person findById(String personId);
public boolean delete(String personId);
public boolean login(String username,String password);
public PageEty findByUserName(String username,int pageNo,int pageSize);
}
package com.zhiwei.manage.bean;
import java.io.Serializable;
import java.util.Date;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Document(collection = "Template")
public class Template implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Indexed
@Id
private String templateId;
@Indexed(background=true)
@Field("templateName")
private String tempName;// 模板名
@Field("mail")
private String mail;// 错误信息邮箱
private boolean isNeedPing;// 是否需要检测连通性
@Field("pingInterval")
private int pingInterval;// 连通性测试间隔
@Field("newsNumber")
private int newsNumber;// 新闻数量,每晚12点入库当日数量
private boolean isNeedDelayed;// 是否需要检测延时
@Field("newsDelayed")
private double newsDelayed;// 平均,每天12点和16点测试
private int delayedInterval;// 延时间隔
private int delayedCount;// 延时统计时多少条做统计
private boolean isNeedField;// 是否需要检测字段缺失
@Field("fieldIntegrityRate")
private double fieldIntegrityRate;// 字段缺失率
private int filedCount;
@Field("fieldIntegrityRateInterval")
private int fieldIntegrityRateInterval;// 字段缺失率统计间隔
@Field("creator")
private String creator;// 创建者
@Field("createDate")
private Date createDate;// 创建日期
@Field("templateLv")
private int templateLv;// 模板等级
private String pingUrl;
private String type;
private String source;
private String pt;
private boolean open;
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getTempName() {
return tempName;
}
public void setTempName(String tempName) {
this.tempName = tempName;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public boolean isNeedPing() {
return isNeedPing;
}
public void setNeedPing(boolean isNeedPing) {
this.isNeedPing = isNeedPing;
}
public int getPingInterval() {
return pingInterval;
}
public void setPingInterval(int pingInterval) {
this.pingInterval = pingInterval;
}
public int getNewsNumber() {
return newsNumber;
}
public void setNewsNumber(int newsNumber) {
this.newsNumber = newsNumber;
}
public boolean isNeedDelayed() {
return isNeedDelayed;
}
public void setNeedDelayed(boolean isNeedDelayed) {
this.isNeedDelayed = isNeedDelayed;
}
public double getNewsDelayed() {
return newsDelayed;
}
public void setNewsDelayed(double newsDelayed) {
this.newsDelayed = newsDelayed;
}
public int getDelayedInterval() {
return delayedInterval;
}
public void setDelayedInterval(int delayedInterval) {
this.delayedInterval = delayedInterval;
}
public int getDelayedCount() {
return delayedCount;
}
public void setDelayedCount(int delayedCount) {
this.delayedCount = delayedCount;
}
public boolean isNeedField() {
return isNeedField;
}
public void setNeedField(boolean isNeedField) {
this.isNeedField = isNeedField;
}
public double getFieldIntegrityRate() {
return fieldIntegrityRate;
}
public void setFieldIntegrityRate(double fieldIntegrityRate) {
this.fieldIntegrityRate = fieldIntegrityRate;
}
public int getFiledCount() {
return filedCount;
}
public void setFiledCount(int filedCount) {
this.filedCount = filedCount;
}
public int getFieldIntegrityRateInterval() {
return fieldIntegrityRateInterval;
}
public void setFieldIntegrityRateInterval(int fieldIntegrityRateInterval) {
this.fieldIntegrityRateInterval = fieldIntegrityRateInterval;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public int getTemplateLv() {
return templateLv;
}
public void setTemplateLv(int templateLv) {
this.templateLv = templateLv;
}
public String getPingUrl() {
return pingUrl;
}
public void setPingUrl(String pingUrl) {
this.pingUrl = pingUrl;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
public boolean isOpen() {
return open;
}
public void setOpen(boolean open) {
this.open = open;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public String toString() {
return "Template [templateId=" + templateId + ", tempName=" + tempName + ", mail=" + mail + ", isNeedPing="
+ isNeedPing + ", pingInterval=" + pingInterval + ", newsNumber=" + newsNumber + ", isNeedDelayed="
+ isNeedDelayed + ", newsDelayed=" + newsDelayed + ", delayedInterval=" + delayedInterval
+ ", delayedCount=" + delayedCount + ", isNeedField=" + isNeedField + ", fieldIntegrityRate="
+ fieldIntegrityRate + ", filedCount=" + filedCount + ", fieldIntegrityRateInterval="
+ fieldIntegrityRateInterval + ", creator=" + creator + ", createDate=" + createDate + ", templateLv="
+ templateLv + ", pingUrl=" + pingUrl + ", type=" + type + ", source=" + source + ", pt=" + pt
+ ", open=" + open + "]";
}
}
package com.zhiwei.manage.service;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.dao.TemplateDao;
@Service
public class TemplateServiceImpl implements TemplateService {
private static final Log log = LogFactory.getLog(TemplateServiceImpl.class);
@Autowired
private TemplateDao tempDao;
@Override
public void insert(Template template) {
tempDao.insert(template);
}
@Override
public boolean update(Template template) {
try {
tempDao.update(template);
return true;
} catch (Exception e) {
log.info("模板更新出错,错误信息{}", e);
return false;
}
}
@Override
public List<Template> findAll() {
return tempDao.findAll();
}
@Override
public Template findById(String templateId) {
return tempDao.findById(templateId);
}
@Override
public Template findByUsername(String templateName) {
return tempDao.findByUsername(templateName);
}
@Override
public boolean delete(String templateId) {
return tempDao.delete(templateId);
}
}
package com.zhiwei.manage.service;
import java.util.Date;
import java.util.List;
import com.zhiwei.manage.bean.News;
public interface NewsService {
public List<News> findByNew(int delayedCount, String type, String source);
public List<News> findByFiled(int filedCount, String type, String source);
public int findCount(String spyId,Date start,Date end);
public List<Object> findAllSource();
public int findCountBySource(String source,Date start,Date end);
}
package com.zhiwei.manage.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.EasyNews;
import com.zhiwei.manage.bean.News;
import com.zhiwei.manage.dao.NewsDao;
@Service
public class NewsServiceImpl implements NewsService{
@Autowired
private NewsDao newsDao;
@Override
public List<News> findByNew(int delayedCount, String type, String source) {
return newsDao.findByNew(delayedCount, type, source);
}
@Override
public List<News> findByFiled(int filedCount, String type, String source) {
return newsDao.findByFiled(filedCount, type, source);
}
@Override
public int findCount(String spyId,Date start,Date end) {
return (int) newsDao.findCount(spyId, start, end);
}
@Override
public List<Object> findAllSource() {
return newsDao.findSource();
}
@Override
public int findCountBySource(String source, Date start, Date end) {
return newsDao.findBySource(source, start, end);
}
@Override
public List<EasyNews> findAllNews(Date start, Date end) {
return newsDao.finAllNews(start, end);
}
}
package com.zhiwei.manage.service;
import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.Message;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.dao.MessageDao;
@Service
public class MessageServiceImpl implements MessageService {
@Autowired
private MessageDao messageDao;
@Override
public void insert(Message message) {
messageDao.insert(message);
}
@Override
public String update(Message message) {
try {
String str=messageDao.update(message);
return str;
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
@Override
public PageEty findAll(int pageNo, int pageSize,String pt) {
PageEty page = new PageEty();
List<Message> data = messageDao.findAll(pageNo, pageSize,pt);
int count = messageDao.allCount();
if (count % pageSize == 0) {
page.setPageCount(count / pageSize);
} else
page.setPageCount(count / pageSize + 1);
page.setData(data);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
return page;
}
@Override
public PageEty findByTmpName(String templateName, int pageNo, int pageSize,String pt) {
PageEty page = new PageEty();
List<Message> data = messageDao.findByTmpName(templateName, pageNo, pageSize,pt);
int count = messageDao.findByTmpCount(templateName);
if(data.size()==0){
page.setData(new ArrayList<>());
page.setDataCount(1);
}else{
page.setData(data);
page.setDataCount(count);
}
page.setPageNo(pageNo);
page.setPageSize(pageSize);
if (count % pageSize == 0) {
page.setPageCount(count / pageSize);
} else
page.setPageCount(count / pageSize + 1);
return page;
}
@Override
public boolean delete(List<String> MessageId) {
return messageDao.delete(MessageId);
}
@Override
public PageEty findByHandle(int pageNo, int pageSize, boolean handle, String tempName,String pt) {
PageEty page = new PageEty();
int count = messageDao.findByHandleCount(pageNo, pageSize, handle, tempName,pt);
List<Message> list=messageDao.findByHandle(pageNo, pageSize, handle, tempName,pt);
page.setData(list);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
if (count % pageSize == 0) {
page.setPageCount(count / pageSize);
} else
page.setPageCount(count / pageSize + 1);
return page;
}
}
package com.zhiwei.manage.handle;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.RunMsg;
import com.zhiwei.manage.util.Tools;
@Component
public class PingThread extends Thread {
private static boolean isrun = true;
public static Map<String, RunMsg> runMap = new ConcurrentHashMap<String, RunMsg>();
public static Queue<RunMsg> queue = new LinkedBlockingQueue<RunMsg>(500);
private static Lock pingLock = new ReentrantLock();
private static final Log log = LogFactory.getLog(PingThread.class);
public PingThread() {
this.start();
}
public void stopMe() {
isrun = false;
}
@Override
public void run() {
log.info("ping线程启动");
while (isrun) {
try {
pingLock.lock();
Set<String> keys = runMap.keySet();
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
String key = it.next();
RunMsg run = runMap.get(key);
Calendar cal = Calendar.getInstance();
if (run.getNextRun().before(cal.getTime()) && !run.isRunNow()) {
run.setRunNow(true);
runMap.put(run.getTemplateName(), run);
queue.offer(run);
}
}
} catch (Exception e) {
log.info("ping线程错误信息{}", e);
} finally {
pingLock.unlock();
}
Tools.sleep(1000 * 120);
}
}
}
package com.zhiwei.manage.util;
import java.util.Date;
import java.util.List;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
/**
* 转换工具类
* @author Administrator
*
*/
public class Change {
public static Data changeNewsToDate(List<EasyNews> list,Date date){
Data d=new Data();
d.setTime(date);
for(EasyNews n:list){
d.setSource(n.getSource());
d.setCount(d.getCount()+1);
}
return d;
}
}
package com.zhiwei.manage.service;
import java.util.List;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Template;
public interface TemplateService {
public void insert(Template template);
public boolean update(Template template);
public List<Template> findAll();
public Template findById(String templateId);
public Template findByUsername(String templateName);
public boolean delete(String templateId);
}
package com.zhiwei.manage.servlet;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.service.DataService;
import com.zhiwei.manage.util.TimeUtil;
@Controller
public class DataController {
@Autowired
private DataService dataService;
@RequestMapping(value = "/getData", produces = "application/json;charset=utf-8")
@ResponseBody
public String getData(){
Calendar c=Calendar.getInstance();
c.add(Calendar.DATE, -75);
List<Data> list=dataService.findBytempName(TimeUtil.yearToDay(c.getTime()), TimeUtil.yearToDay(new Date()), "uc");
return JSON.toJSONString(list);
}
}
package com.zhiwei.manage.bean;
import java.io.Serializable;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.stereotype.Component;
@Component
public class News implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
private String id;
private String url;
private String title;
private String content;
private String time;
private String source;
private String type;
private String pt;
private String savetime;
private String spyderInfoId;
private String rsid;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
public String getSavetime() {
return savetime;
}
public void setSavetime(String savetime) {
this.savetime = savetime;
}
public String getSpyderInfoId() {
return spyderInfoId;
}
public void setSpyderInfoId(String spyderInfoId) {
this.spyderInfoId = spyderInfoId;
}
public String getRsid() {
return rsid;
}
public void setRsid(String rsid) {
this.rsid = rsid;
}
@Override
public String toString() {
return "News [id=" + id + ", url=" + url + ", title=" + title + ", content=" + content + ", time=" + time
+ ", source=" + source + ", type=" + type + ", pt=" + pt + ", savetime=" + savetime + ", spyderInfoId="
+ spyderInfoId + ", rsid=" + rsid + "]";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
">
<!-- 开启注解处理器 -->
<context:annotation-config />
<!-- 开启组件自动扫描,扫描路径由base-package属性指定 -->
<context:component-scan base-package="com.zhiwei">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- 开启Aspect -->
<aop:aspectj-autoproxy />
<!-- 加载配置文件 -->
<!-- <context:property-placeholder
ignore-unresolvable="true" location="classpath:datasource.properties" /> -->
<context:property-placeholder
ignore-unresolvable="true" location="classpath:mongo.properties" />
<!-- 默认配置文件 -->
<bean id="mappingContext"
class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />
<!-- 默认Mongodb类型映射 -->
<bean id="defaultMongoTypeMapper"
class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
<constructor-arg name="typeKey">
<!-- 这里设置为空,可以把 spring data mongodb 多余保存的_class字段去掉 -->
<null />
</constructor-arg>
</bean>
<!-- <mongo:mongo-client id="mongoYesMongo" host="${mongo.serverMongoIp}" port="${mongo.serverMongoPort}"
credentials="${mongo.username}:${mongo.password}@${mongo.spyPlatData.dbName1}" >
<mongo:client-options write-concern="SAFE"/>
</mongo:mongo-client> -->
<mongo:mongo id="mongoMongo" host="${mongo.serverMongoIp}" port="${mongo.serverMongoPort}"
write-concern="SAFE"
/>
<mongo:db-factory id="mongoFactory" dbname="${mongo.spyPlatData.dbName1}"
mongo-ref="mongoMongo" />
<mongo:template id="mongoTemplate" db-factory-ref="mongoFactory" />
</beans>
\ No newline at end of file
package com.zhiwei.manage.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.News;
import com.zhiwei.manage.dao.NewsDao;
@Service
public class NewsServiceImpl implements NewsService{
@Autowired
private NewsDao newsDao;
@Override
public List<News> findByNew(int delayedCount, String type, String source) {
return newsDao.findByNew(delayedCount, type, source);
}
@Override
public List<News> findByFiled(int filedCount, String type, String source) {
return newsDao.findByFiled(filedCount, type, source);
}
@Override
public int findCount(String spyId,Date start,Date end) {
return (int) newsDao.findCount(spyId, start, end);
}
@Override
public List<Object> findAllSource() {
return newsDao.findSource();
}
@Override
public int findCountBySource(String source, Date start, Date end) {
return newsDao.findBySource(source, start, end);
}
}
package com.zhiwei.manage.bean;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.stereotype.Component;
@Component
public class Template implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Indexed
@Id
private String templateId;
private String tempName;// 模板名
private String mail;// 错误信息邮箱
private boolean needPing;// 是否需要检测连通性
private int pingInterval;// 连通性测试间隔
private String pingUrlOne;// 网站1
private String pingUrlTwo;// 网站2
private int newsNumber;// 新闻数量,每晚12点入库当日数量
private boolean needDelayed;// 是否需要检测延时
private double newsDelayed;// 平均延时达标时间
private int delayedInterval;// 延时间隔
private int testCount;// 测试需要多少条数据
private boolean needField;// 是否需要检测字段缺失
private String field;// 检测的字段
private double fieldIntegrityRate;// 字段缺失率
private int fieldInterval;// 字段缺失率统计间隔
private String creator;// 创建者
private Date createDate;// 创建日期
private int templateLv;// 模板等级
private String type;
private String source;
private String pt;// 渠道
private boolean open;// 开启关闭
private String host;// 地址
private int port;// 端口
private String collection;// 表名
private String dBName;// 数据库名
private String time;
private String savetime;
private String spyderInfoId;
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getTempName() {
return tempName;
}
public void setTempName(String tempName) {
this.tempName = tempName;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public boolean isNeedPing() {
return needPing;
}
public void setNeedPing(boolean needPing) {
this.needPing = needPing;
}
public int getPingInterval() {
return pingInterval;
}
public void setPingInterval(int pingInterval) {
this.pingInterval = pingInterval;
}
public String getPingUrlOne() {
return pingUrlOne;
}
public void setPingUrlOne(String pingUrlOne) {
this.pingUrlOne = pingUrlOne;
}
public String getPingUrlTwo() {
return pingUrlTwo;
}
public void setPingUrlTwo(String pingUrlTwo) {
this.pingUrlTwo = pingUrlTwo;
}
public int getNewsNumber() {
return newsNumber;
}
public void setNewsNumber(int newsNumber) {
this.newsNumber = newsNumber;
}
public boolean isNeedDelayed() {
return needDelayed;
}
public void setNeedDelayed(boolean needDelayed) {
this.needDelayed = needDelayed;
}
public double getNewsDelayed() {
return newsDelayed;
}
public void setNewsDelayed(double newsDelayed) {
this.newsDelayed = newsDelayed;
}
public int getDelayedInterval() {
return delayedInterval;
}
public void setDelayedInterval(int delayedInterval) {
this.delayedInterval = delayedInterval;
}
public int getTestCount() {
return testCount;
}
public void setTestCount(int testCount) {
this.testCount = testCount;
}
public boolean isNeedField() {
return needField;
}
public void setNeedField(boolean needField) {
this.needField = needField;
}
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public double getFieldIntegrityRate() {
return fieldIntegrityRate;
}
public void setFieldIntegrityRate(double fieldIntegrityRate) {
this.fieldIntegrityRate = fieldIntegrityRate;
}
public int getFieldInterval() {
return fieldInterval;
}
public void setFieldInterval(int fieldInterval) {
this.fieldInterval = fieldInterval;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public int getTemplateLv() {
return templateLv;
}
public void setTemplateLv(int templateLv) {
this.templateLv = templateLv;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
public boolean isOpen() {
return open;
}
public void setOpen(boolean open) {
this.open = open;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getCollection() {
return collection;
}
public void setCollection(String collection) {
this.collection = collection;
}
public String getdBName() {
return dBName;
}
public void setdBName(String dBName) {
this.dBName = dBName;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getSavetime() {
return savetime;
}
public void setSavetime(String savetime) {
this.savetime = savetime;
}
public String getSpyderInfoId() {
return spyderInfoId;
}
public void setSpyderInfoId(String spyderInfoId) {
this.spyderInfoId = spyderInfoId;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
@Override
public String toString() {
return "Template [templateId=" + templateId + ", tempName=" + tempName + ", mail=" + mail + ", needPing="
+ needPing + ", pingInterval=" + pingInterval + ", pingUrlOne=" + pingUrlOne + ", pingUrlTwo="
+ pingUrlTwo + ", newsNumber=" + newsNumber + ", needDelayed=" + needDelayed + ", newsDelayed="
+ newsDelayed + ", delayedInterval=" + delayedInterval + ", testCount=" + testCount + ", needField="
+ needField + ", field=" + field + ", fieldIntegrityRate=" + fieldIntegrityRate + ", fieldInterval="
+ fieldInterval + ", creator=" + creator + ", createDate=" + createDate + ", templateLv=" + templateLv
+ ", type=" + type + ", source=" + source + ", pt=" + pt + ", open=" + open + ", host=" + host
+ ", port=" + port + ", collection=" + collection + ", dBName=" + dBName + ", time=" + time
+ ", savetime=" + savetime + ", spyderInfoId=" + spyderInfoId + "]";
}
}
package com.zhiwei.manage.dao;
import java.util.List;
import com.zhiwei.manage.bean.Person;
public interface PersonDao {
public void insert(Person person);
public boolean update(Person person);
public List<Person> findAll(int pageNo,int pageSize);
public Person findById(String personId);
public Person findByUsername(String username);
public boolean delete(String personId);
public List<Person> findAllByUsername(String username,int pageNo,int pageSize);
public int findAllCount();
public int findUserCount(String username);
}
package com.zhiwei.manage.bean;
import java.io.Serializable;
import java.util.Date;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Document(collection = "Template")
public class Template implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Indexed
@Id
private String tenplateId;
@Indexed(background=true)
@Field("templateName")
private String templateName;// 模板名
@Field("mail")
private String mail;// 错误信息邮箱
private boolean isNeedPing;// 是否需要检测连通性
@Field("ping")
private boolean ping;// 连通性
@Field("pingInterval")
private int pingInterval;// 连通性测试间隔
@Field("newsNumber")
private int newsNumber;// 新闻数量,每晚12点入库当日数量
private boolean isNeedDelayed;// 是否需要检测延时
@Field("newsDelayed")
private double newsDelayed;// 平均,每天12点和16点测试
private int delayedInterval;// 延时间隔
private int delayedCount;// 延时统计时多少条做统计
private boolean isNeedField;// 是否需要检测字段缺失
@Field("fieldIntegrityRate")
private double fieldIntegrityRate;// 字段缺失率
private int filedCount;
@Field("fieldIntegrityRateInterval")
private int fieldIntegrityRateInterval;// 字段缺失率统计间隔
@Field("creator")
private String creator;// 创建者
@Field("createDate")
private Date createDate;// 创建日期
@Field("templateLv")
private int templateLv;// 模板等级
private String pingUrl;
private String type;
private String source;
private String pt;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public int getDelayedCount() {
return delayedCount;
}
public void setDelayedCount(int delayedCount) {
this.delayedCount = delayedCount;
}
public int getFiledCount() {
return filedCount;
}
public void setFiledCount(int filedCount) {
this.filedCount = filedCount;
}
public String getPingUrl() {
return pingUrl;
}
public void setPingUrl(String pingUrl) {
this.pingUrl = pingUrl;
}
public int getDelayedInterval() {
return delayedInterval;
}
public void setDelayedInterval(int delayedInterval) {
this.delayedInterval = delayedInterval;
}
public String getTenplateId() {
return tenplateId;
}
public void setTenplateId(String tenplateId) {
this.tenplateId = tenplateId;
}
public String getTemplateName() {
return templateName;
}
public void setTemplateName(String templateName) {
this.templateName = templateName;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public boolean isNeedPing() {
return isNeedPing;
}
public boolean isNeedField() {
return isNeedField;
}
public void setNeedField(boolean isNeedField) {
this.isNeedField = isNeedField;
}
public void setNeedPing(boolean isNeedPing) {
this.isNeedPing = isNeedPing;
}
public boolean isPing() {
return ping;
}
public void setPing(boolean ping) {
this.ping = ping;
}
public int getPingInterval() {
return pingInterval;
}
public void setPingInterval(int pingInterval) {
this.pingInterval = pingInterval;
}
public int getNewsNumber() {
return newsNumber;
}
public void setNewsNumber(int newsNumber) {
this.newsNumber = newsNumber;
}
public boolean isNeedDelayed() {
return isNeedDelayed;
}
public void setNeedDelayed(boolean isNeedDelayed) {
this.isNeedDelayed = isNeedDelayed;
}
public double getNewsDelayed() {
return newsDelayed;
}
public void setNewsDelayed(double newsDelayed) {
this.newsDelayed = newsDelayed;
}
public double getFieldIntegrityRate() {
return fieldIntegrityRate;
}
public void setFieldIntegrityRate(double fieldIntegrityRate) {
this.fieldIntegrityRate = fieldIntegrityRate;
}
public int getFieldIntegrityRateInterval() {
return fieldIntegrityRateInterval;
}
public void setFieldIntegrityRateInterval(int fieldIntegrityRateInterval) {
this.fieldIntegrityRateInterval = fieldIntegrityRateInterval;
}
public String getCreator() {
return creator;
}
public void setCreator(String creator) {
this.creator = creator;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public int getTemplateLv() {
return templateLv;
}
public void setTemplateLv(int templateLv) {
this.templateLv = templateLv;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
@Override
public String toString() {
return "Template [tenplateId=" + tenplateId + ", templateName=" + templateName + ", mail=" + mail
+ ", isNeedPing=" + isNeedPing + ", ping=" + ping + ", pingInterval=" + pingInterval + ", newsNumber="
+ newsNumber + ", isNeedDelayed=" + isNeedDelayed + ", newsDelayed=" + newsDelayed
+ ", delayedInterval=" + delayedInterval + ", delayedCount=" + delayedCount + ", isNeedField="
+ isNeedField + ", fieldIntegrityRate=" + fieldIntegrityRate + ", filedCount=" + filedCount
+ ", fieldIntegrityRateInterval=" + fieldIntegrityRateInterval + ", creator=" + creator
+ ", createDate=" + createDate + ", templateLv=" + templateLv + ", pingUrl=" + pingUrl + ", type="
+ type + ", source=" + source + "]";
}
}
package com.zhiwei.manage.dao;
import javax.annotation.Resource;
import java.lang.reflect.Field;
import java.util.List;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
import com.mongodb.DBCollection;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.FieldBean;
import com.zhiwei.manage.handle.DbDepot;
@Component
public class FieldBeanDaoImpl implements FieldBeanDao {
@Resource(name = "mongoTemplate")
private MongoTemplate mongo;
@Override
public void insert(FieldBean fieldBean) {
mongo.insert(fieldBean);
}
@Override
public boolean update(FieldBean fieldBean) {
Update update = new Update();
Field[] fields = fieldBean.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
try {
if (fields[j].getName().equals("id")) {
continue;
}
if (fields[j].get(fieldBean) != null)
update.set(fields[j].getName(), fields[j].get(fieldBean));
} catch (Exception e) {
e.printStackTrace();
}
}
WriteResult result = mongo.updateFirst(Query.query(Criteria.where("_id").is(fieldBean.getId())), update,
FieldBean.class);
return result.getN() == 1 ? true : false;
}
@Override
public boolean delete(List<String> id) {
WriteResult result = mongo.remove(Query.query(Criteria.where("_id").in(id)), FieldBean.class);
System.out.println(result.getN());
return result.getN() > 0 ? true : false;
}
@Override
public FieldBean getFieldsByPt(String pt) {
return mongo.findOne(Query.query(Criteria.where("pt").regex(pt)), FieldBean.class);
}
@Override
public int findFieldCount(String pt) {
if(pt==null||pt.equals("")){
return (int) mongo.count(null, FieldBean.class);
}else{
return (int) mongo.count(Query.query(Criteria.where("pt").regex(pt)), FieldBean.class);
}
}
@Override
public List<FieldBean> findAllFields(int pageNo,int pageSize,String pt) {
if(pt==null||pt.equals("")){
return mongo.find(Query.query(Criteria.where("_id").exists(true)).skip((pageNo-1)*pageSize).limit(pageSize),FieldBean.class);
}else{
return mongo.find(Query.query(Criteria.where("pt").regex(pt)).skip((pageNo-1)*pageSize).limit(pageSize),FieldBean.class);
}
}
}
package com.zhiwei;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.annotation.AccessType;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
import com.zhiwei.manage.bean.Weibo;
import com.zhiwei.manage.dao.DataDao;
import com.zhiwei.manage.service.DataService;
import com.zhiwei.manage.util.TimeUtil;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:applicationContext.xml" })
@Component
public class DataTest {
@Resource(name = "newmongoTemplate")
private MongoTemplate mongoTemplate;
@Resource(name = "weibomongoTemplate")
private MongoTemplate weibo;
@Resource
private DataDao dataDao;
@Autowired
private DataService ds;
public void insert() {
Date d = new Date();
for (int i = 0; i < 70; i++) {
d.setDate(d.getDate()-1);
Data data = new Data();
data.setCount((int) (Math.random() * 190));
data.setPt("网媒");
data.setSource("uc");
data.setTime(d);
// data.setSpyderInfoId(cr.getId());
dataDao.insert(data);
}
}
public void getDatas(){
long count =weibo.count(Query.query(Criteria.where("time").gt("2017-11-25 00:00")), Weibo.class,"status_201711");
System.out.println(count);
}
@org.junit.Test
public void getcount(){
Date d=new Date();
d.setDate(25);
Date d2=new Date();
d2.setDate(26);
Calendar c = Calendar.getInstance();
c.setTime(d);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
List<EasyNews> list= ds.findBySourceFromLibrary(d, d2, "东方财富网");//mongoTemplate.find(Query.query(Criteria.where("time").gte(d).lt(d2).and("source").is("东方财富网")),
// EasyNews.class, "net_media_" + year + month);
System.out.println(list.size());
}
public void getLike(){
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
List<String> list=dataDao.findTmpNameByLikeParam("东方");
for(String l:list){
System.out.println(l);
}
}
}
package com.zhiwei.manage.util;
import java.util.List;
import com.zhiwei.manage.bean.Channels;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.JsonResult;
/**
* Copyright © 2017宁波知微瑞驰信息科技有限公司. All rights reserved.
* @Title: Tools.java
* @Package
* @author 0xFF
* @date 201747 上午11:11:59
*/
/**
* @ClassName: Tools
* @Description: 工具方法封装
* @author 0xFF
* @date 201747 上午11:11:59
*/
public class Tools {
/**
* 线程等待,忽略异常
* @Title: sleep
* @param millis
* @return void
*/
public static void sleep(long millis) {
try {
Thread.sleep(millis);
} catch (InterruptedException e) {}
}
public static JsonResult beResult(List<Data> list,String source){
Channels channel = new Channels();
channel.setValue(source);
channel.setList(list);
JsonResult result = new JsonResult(true, 200, "返回成功", channel);
return result;
}
}
package com.zhiwei.manage.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.FieldBean;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.dao.FieldBeanDao;
@Service
public class FieldBeanServiceImpl implements FieldBeanService {
@Autowired
private FieldBeanDao fd;
@Override
public FieldBean getFieldsByPt(String pt) {
return fd.getFieldsByPt(pt);
}
@Override
public void insert(FieldBean fieldBean) {
fd.insert(fieldBean);
}
@Override
public boolean update(FieldBean fieldBean) {
return fd.update(fieldBean);
}
@Override
public boolean delete(List<String> id) {
return fd.delete(id);
}
@Override
public PageEty findAllFields(int pageNo,int pageSize,String pt) {
PageEty page=new PageEty();
List<FieldBean> list=fd.findAllFields(pageNo,pageSize,pt);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
int count=fd.findFieldCount(pt);
page.setDataCount(count);
if(count%pageSize==0){
page.setPageCount(count/pageSize);
}else{
page.setPageCount(count/pageSize+1);
}
page.setData(list);
return page;
}
}
package com.zhiwei.manage.handle;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.RunMsg;
import com.zhiwei.manage.util.Tools;
@Component
public class FieldThread extends Thread{
private static boolean isrun=true;
public static Map<String,RunMsg> runMap=new ConcurrentHashMap<String, RunMsg>();
public static Queue<RunMsg> queue=new LinkedBlockingQueue<RunMsg>(500);
public void stopMe(){
isrun=false;
}
@Override
public void run(){
while (isrun) {
Set<String> keys = runMap.keySet();
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
String key = it.next();
RunMsg run = runMap.get(key);
Calendar cal = Calendar.getInstance();
if (run.getNextRun().before(cal.getTime())&&!run.isRunNow()) {
run.setRunNow(true);
runMap.put(run.getTemplateName(), run);
queue.offer(run);
}
}
Tools.sleep(1000*120);
}
}
}
# datamanage
> A Vue.js project
## Build Setup
``` bash
# install dependencies
npm install
# serve with hot reload at localhost:8080
npm run dev
# build for production with minification
npm run build
# build for production and view the bundle analyzer report
npm run build --report
# run unit tests
npm run unit
# run e2e tests
npm run e2e
# run all tests
npm test
```
For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader).
package com.zhiwei.manage.service;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
import com.zhiwei.manage.dao.DataDao;
@Service
public class DataServiceImpl implements DataService{
@Autowired
private DataDao dataDao;
@Override
public void insert(Data data) {
dataDao.insert(data);
}
@Override
public List<Data> findByPt(Date startTime, Date endTime, String pt) {
return dataDao.findByPt(startTime, endTime, pt);
}
@Override
public List<Data> findBySource(Date startTime, Date endTime, String source) {
return dataDao.findBySource(startTime, endTime, source);
}
@Override
public List<Data> findBytempName(Date startTime, Date endTime, String tempName) {
return dataDao.findBytempName(startTime, endTime, tempName);
}
@Override
public List<EasyNews> findByAccurateSource(String startTime, String endTime, String source) {
return dataDao.findByAccurateSource(startTime, endTime, source);
}
@Override
public List<EasyNews> findByAccurateSpId(String startTime, String endTime, String SpId) {
return dataDao.findByAccurateSpId(startTime, endTime, SpId);
}
@Override
public long findWeiboCount(Date start, Date end) {
return dataDao.findWeiboCount(start, end);
}
@Override
public long findWeixinCount(Date start, Date end,String pt) {
return dataDao.findWeixinCount(start, end,pt);
}
@Override
public List<EasyNews> findBySourceFromLibrary(Date startTime, Date endTime, String source) {
return dataDao.findBySourceFromLibrary(startTime, endTime, source);
}
@Override
public List<String> findSourceByLikeParam(String param) {
return dataDao.findSourceByLikeParam(param);
}
@Override
public List<String> findTmpNameByLikeParam(String param) {
return dataDao.findTmpNameByLikeParam(param);
}
@Override
public List<EasyNews> findByAccurateType(Date startTime, Date endTime, String type) {
return dataDao.findByAccurateType(startTime, endTime, type);
}
@Override
public List<String> findTypeByLikeParam(String param) {
return dataDao.findTypeByLikeParam(param);
}
@Override
public List<Data> findByMethod(Date startTime, Date endTime, String method, Object value) {
return dataDao.findByMethod(startTime, endTime, method, value);
}
@Override
public long finCountByDayData(Date startTime, Date endTime, String pt, String id) {
return dataDao.finCountByDayData(startTime, endTime, pt, id);
}
}
package com.zhiwei.manage.service;
import java.util.List;
import com.zhiwei.manage.bean.Channel;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.ServerBean;
public interface ServerService {
public void insert(ServerBean serverBean);
public PageEty findDb(int pageNo, int pageSize, String dbName);
public boolean update(ServerBean serverBean);
public boolean delete(List<String> id);
public void insertChannels(Channel channels);
public void findPt(String pt);
public boolean updateChannel(Channel channel);
public boolean deleteChannel(List<String> id);
public PageEty findChannel(int pageNo,int pageSize);
public List<Channel> findDisChannel();
public List<String> findDisChan();
}
package com.zhiwei.manage.service;
import java.util.List;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
public interface DataService {
public void insert(Data data);
public List<Data> findByPt(String startTime, String endTime, String pt);
public List<Data> findBySource(String startTime, String endTime, String source);
public List<Data> findBytempName(String startTime, String endTime, String tempName);
public List<EasyNews> findByAccurateSource(String startTime, String endTime, String source);
public List<EasyNews> findByAccurateSpId(String startTime, String endTime, String SpId);
}
package com.zhiwei.manage.servlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.zhiwei.manage.bean.JsonResult;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.handle.MainThread;
import com.zhiwei.manage.service.TemplateService;
@Controller("/tmp")
public class TemplateController {
@Autowired
private TemplateService ts;
@RequestMapping(value = "/saveTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String saveTmp(Template template) {
if (template != null) {
if (ts.insert(template)) {
JsonResult result = new JsonResult(false, 200, "存储成功");
return JSON.toJSONString(result);
}
}
JsonResult result = new JsonResult(false, 200, "保存失败");
return JSON.toJSONString(result);
}
@RequestMapping(value = "/updateTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String updateTmp(Template template, String username, HttpServletRequest request) {
if (template != null) {
if (ts.update(template)) {
JsonResult result = new JsonResult(true, 200, "修改成功");
return JSON.toJSONString(result);
}
}
JsonResult result = new JsonResult(true, 200, "修改失败");
return JSON.toJSONString(result);
}
@RequestMapping(value = "/deleteTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String deleteTmp(String templateId) {
boolean isDelete = false;
isDelete = ts.delete(templateId);
JsonResult result = new JsonResult(true, 200, templateId + "删除" + (isDelete == false ? "成功" : "失败"));
return JSON.toJSONString(result);
}
@RequestMapping(value = "/findAllTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String findAll(@RequestParam(value = "pageNo", defaultValue = "1")int pageNo
, @RequestParam(value = "pageSize", defaultValue = "10")int pageSize, String tempName) {
if (tempName == null||tempName.equals("")) {
PageEty page = ts.findAll(pageNo, pageSize);
JsonResult result = new JsonResult(true, 200, "返回成功", page);
return JSON.toJSONString(result);
} else {
PageEty page = ts.findByTmpName(tempName, pageNo, pageSize);
if (page != null) {
JsonResult result = new JsonResult(true, 200, "返回成功", page);
return JSON.toJSONString(result);
} else {
JsonResult result = new JsonResult(true, 200, "没有改模板", new PageEty());
return JSON.toJSONString(result);
}
}
}
@RequestMapping(value = "/startTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String startTmp(String tenplateId) {
boolean b = MainThread.pushMap(tenplateId);
if (b) {
JsonResult result = new JsonResult(true, 200, "启动成功");
return JSON.toJSONString(result);
} else {
JsonResult result = new JsonResult(false, 200, "启动失败,已经存在");
return JSON.toJSONString(result);
}
}
@RequestMapping(value = "/stopTmp", produces = "application/json;charset=utf-8")
@ResponseBody
public String stopTmp(String tenplateId) {
boolean b = MainThread.removeMap(tenplateId);
if (b) {
JsonResult result = new JsonResult(true, 200, "关闭成功");
return JSON.toJSONString(result);
} else {
JsonResult result = new JsonResult(false, 200, "停止失败");
return JSON.toJSONString(result);
}
}
}
package com.zhiwei.manage.dao;
import java.util.List;
import com.zhiwei.manage.bean.Message;
public interface MessageDao {
public void insert(Message message);
public void update(Message message);
public List<Message> findAll(int pageNo,int pageSize);
public List<Message> findByTmpName(String templateName,int pageNo,int pageSize);
public boolean delete(String MessageId);
public int allCount();
public int findByTmpCount(String templateName);
}
package com.zhiwei.manage.service;
import java.util.List;
import com.zhiwei.manage.bean.CrawTemplate;
public interface CrawTemplateService {
public List<CrawTemplate> findAll();
}
package com.zhiwei;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.Person;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.dao.PersonDao;
import com.zhiwei.manage.dao.TemplateDao;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:applicationContext.xml" })
@Component
public class Test {
@Resource(name="mongoTemplate")
private MongoTemplate mongo;
@Autowired
private PersonDao dao;
@Autowired
private TemplateDao ts;
public void insert() {
Person p = new Person();
p.setLv(2);
p.setPassword("123456");
p.setUsername("user");
mongo.insert(p);
}
public void find(){
Person p=mongo.findById(0, Person.class);
System.out.println(p.getUsername());
}
public void update(){
Query query=Query.query(Criteria.where("_id").is(0));
Update update=new Update();
update.set("username","us");
update.set("password", "pd");
update.set("lv","1");
WriteResult wr=mongo.updateFirst(query,update, Person.class);
int result=wr.getN();
System.out.println(result);
}
public void delete(){
WriteResult wr=mongo.remove(Query.query(Criteria.where("_id").is(0)),Person.class);
int result=wr.getN();
System.out.println(result);
}
public void findAll(){
List<Person> list=mongo.findAll(Person.class);
for(Person p:list){
System.out.println(p.getUsername());
}
}
public void findUserName(){
Person p=dao.findByUsername("users");
if(p!=null)
System.out.println(p.getUsername());
}
@org.junit.Test
public void insertTemp(){
Template t=new Template();
t.setCreateDate(new Date());
t.setCreator("sjz");
t.setFieldIntegrityRate(0.66);
t.setFieldIntegrityRateInterval(4);
t.setMail("949131080@qq.com");
t.setNewsDelayed(4);
t.setNewsNumber(40);
t.setPing(false);
t.setPingInterval(4);
t.setTemplateLv(1);
t.setTemplateName("mi");
ts.insert(t);
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhiwei</groupId>
<artifactId>datamanage</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>数据管理系统</name>
<description>负责监控采集数据和数据显示</description>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.29</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.28</version>
</dependency>
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.24</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.24</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.8.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-expression -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/net.sourceforge.jexcelapi/jxl -->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/activation/activation -->
<dependency>
<groupId>activation</groupId>
<artifactId>activation</artifactId>
<version>1.0.2</version>
</dependency>
<!-- mongodb -->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<!-- mongodb -->
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.10.6.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-mongodb-cross-store -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-cross-store</artifactId>
<version>1.10.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-log4j</artifactId>
<version>1.7.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<webXml>WebContent\WEB-INF\web.xml</webXml>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<exclude>META-INF/*.XSD</exclude>
</excludes>
</filter>
</filters>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.defonds.RsaEncryptor</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>datamanage</display-name>
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.zhiwei.manage.listener.SpringContextListener</listener-class>
</listener>
<!-- spring MVC -->
<servlet>
<servlet-name>datemanage-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:servletContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 中文编码 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet-mapping>
<servlet-name>datemanage-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
\ No newline at end of file
package com.zhiwei.manage.dao;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.Person;
@Component
public class PersonDaoImpl implements PersonDao {
@Resource(name="mongoTemplate")
private MongoTemplate mongo;
@Override
public void insert(Person person) {
mongo.insert(person);
}
@Override
public boolean update(Person person) {
Query query = Query.query(Criteria.where("_id").is(person.getPersonId()));
Update update = new Update();
update.set("username", person.getUsername());
update.set("password", person.getPassword());
update.set("lv", person.getLv());
WriteResult wr = mongo.updateFirst(query, update, Person.class);
int result = wr.getN();
return result == 1 ? true : false;
}
@Override
public List<Person> findAll() {
return mongo.findAll(Person.class);
}
@Override
public Person findById(String personId) {
return mongo.findById(personId, Person.class);
}
@Override
public boolean delete(String personId) {
WriteResult wr=mongo.remove(Query.query(Criteria.where("_id").is(personId)),Person.class);
int result=wr.getN();
return result == 1 ? true : false;
}
@Override
public Person findByUsername(String username) {
return mongo.findOne(Query.query(Criteria.where("username").is(username)), Person.class);
}
}
package com.zhiwei.manage.handle;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import java.util.List;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Message;
import com.zhiwei.manage.bean.News;
import com.zhiwei.manage.bean.RunMsg;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.service.MessageService;
import com.zhiwei.manage.service.NewsService;
@Component
public class Task implements Runnable {
@Autowired
private MessageService messageService;
@Autowired
private NewsService newsService;
private RunMsg runMsg;
public Task(RunMsg runMsg) {
this.runMsg = runMsg;
}
@Override
public void run() {
if (runMsg != null) {
if (("delayed").equals(runMsg.getType())) {
List<News> list=newsService.findByNew(runMsg.getInterval(), runMsg.getTypes(), runMsg.getSource());
int sum=0;
for(News ne:list){
sum+=ne.getSavetime()-ne.getTime().getTime();
}
if(runMsg.getNewsDelayed()>sum/10.0/1000/60/60){
Template tp = MainThread.mainMap.get(runMsg.getTemplateId());
Message msg=new Message();
msg.setCreateDate(new Date());
msg.setErrorMsg("延时过高,延时检测为"+sum/10.0/1000/60/60+"小时");
msg.setHandle(false);
msg.setTemplateCreator(tp.getCreator());
msg.setTemplateLv(tp.getTemplateLv());
msg.setTemplateName(runMsg.getTemplateName());
messageService.insert(msg);
}
}
if (("ping").equals(runMsg.getType())) {
URL url;
try {
url = new URL(runMsg.getUrl());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(1000*10);
int code = conn.getResponseCode();
if (code != 200) {
Template tp = MainThread.mainMap.get(runMsg.getTemplateId());
Message msg = new Message();
msg.setCreateDate(new Date());
msg.setErrorMsg(code == 0 ? "访问失败,错误代码" + code : "访问超时");
msg.setHandle(false);
msg.setTemplateCreator(tp.getCreator());
msg.setTemplateName(runMsg.getTemplateName());
msg.setTemplateLv(tp.getTemplateLv());
messageService.insert(msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (("field").equals(runMsg.getType())) {
List<News> list=newsService.findByFiled(runMsg.getInterval(), runMsg.getTypes(), runMsg.getSource());
double sum=0;
for(News ne:list){
if(ne.getContent()==null||ne.getContent().trim().equals("")){
sum+=1;
continue;
}
if(ne.getSource()==null||ne.getSource().trim().equals("")){
sum+=1;
continue;
}
if(ne.getPt()==null||ne.getRsid()==null||ne.getTime()==null||ne.getType()==null){
sum+=1;
continue;
}
}
if(sum>0&&sum/1.0/runMsg.getInterval()>runMsg.getFieldIntegrityRate()){
Template tp = MainThread.mainMap.get(runMsg.getTemplateId());
Message msg=new Message();
msg.setCreateDate(new Date());
msg.setErrorMsg("字段存在大量缺失");
msg.setHandle(false);
msg.setTemplateCreator(tp.getCreator());
msg.setTemplateLv(tp.getTemplateLv());
msg.setTemplateName(runMsg.getTemplateName());
messageService.insert(msg);
}
}
}
}
}
/**
* Copyright © 2017宁波知微瑞驰信息科技有限公司. All rights reserved.
* @Title: BeanFactory.java
* @Package com.zhiwei.stock.orm
* @author 0xFF
* @date 2017318 上午10:01:17
*/
package com.zhiwei.manage.orm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.context.WebApplicationContext;
import com.zhiwei.manage.util.Tools;
/**
* @ClassName: BeanFactory
* @Description: Spring托管的Bean对象的创建工厂
* @author 0xFF
* @date 2017318 上午10:01:17
*/
public class BeanFactory {
private static final Logger log = LoggerFactory.getLogger(BeanFactory.class);
private static WebApplicationContext springContext;
/**
* 设置Spring上下文
* @param content
* @return void
*/
public static void setSpringContent(WebApplicationContext content) {
springContext = content;
}
/**
* 根据类获取Bean对象
* @param clazz
* @return T
*/
public static <T> T getBean(Class<T> clazz) {
T result = null;
if(clazz != null) {
waitUntilInitialized();
result = springContext.getBean(clazz);
}
return result;
}
/**
* 根据bean名字获取Bean对象
* @param beanName
* @return Object
*/
public static Object getBean(String beanName) {
Object result = null;
if(beanName != null) {
waitUntilInitialized();
result = springContext.getBean(beanName);
}
return result;
}
/**
* 等待Spring上下文初始化
* @Title waitUntilInitialized
* @return void
*/
private static void waitUntilInitialized() {
if(springContext == null) {
boolean print = false;
while(springContext == null) {
if(!print) {
log.info("等待BeanFactory初始化...");
print = true;
}
Tools.sleep(1);
}
if(print) {
log.info("BeanFactory初始化完毕,退出等待");
}
}
}
}
package com.zhiwei.manage.dao;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Resource;
import org.bson.BSON;
import org.bson.BSONObject;
import org.bson.BasicBSONObject;
import org.bson.Document;
import org.bson.conversions.Bson;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.zhiwei.manage.bean.EasyNews;
import com.zhiwei.manage.bean.News;
import com.zhiwei.manage.handle.DbDepot;
import com.zhiwei.manage.util.MongoConnect;
@Component
public class NewsDaoImpl implements NewsDao {
@Resource(name = "newmongoTemplate")
private MongoTemplate mongo;
@Override
public List<News> findByNew(int delayedCount, String type, String source) {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
if (source != null) {
Query query = new Query();
query.addCriteria(Criteria.where("source").is(source));
query.with(new Sort(new Order(Direction.DESC, "time")));
query.limit(delayedCount);
return mongo.find(query, News.class, "net_media_" + year + month);
} else {
Query query = new Query();
query.addCriteria(Criteria.where("type").is(type));
query.with(new Sort(new Order(Direction.DESC, "time")));
query.limit(delayedCount);
return mongo.find(query, News.class, "net_media_" + year + month);
}
}
@Override
public List<News> findByFiled(int filedCount, String type, String source) {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
if (source != null) {
Query query = new Query();
query.addCriteria(Criteria.where("source").is(source));
query.with(new Sort(new Order(Direction.DESC, "time")));
query.limit(filedCount);
return mongo.find(query, News.class, "net_media_" + year + month);
} else {
Query query = new Query();
query.addCriteria(Criteria.where("type").is(type));
query.with(new Sort(new Order(Direction.DESC, "time")));
query.limit(filedCount);
return mongo.find(query, News.class, "net_media_" + year + month);
}
}
@Override
public long findCount(String spyId, Date start, Date end) {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
Criteria criteria = new Criteria();
criteria.and("spyderInfoId").is(spyId);
criteria.and("time").gte(start).lt(end);
return mongo.count(Query.query(criteria), News.class, "net_media_" + year + month);
}
@Override
public List<Object> findSource() {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
return mongo.getCollection("net_media_" + year + month).distinct("source", new BasicDBObject("pt", "网媒"));
}
@Override
public int findBySource(String source, Date start, Date end) {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
Criteria criteria = new Criteria();
criteria.and("source").is(source);
criteria.and("time").gte(start).lt(end);
return (int) mongo.count(Query.query(criteria), News.class, "net_media_" + year + month);
}
@Override
public List<EasyNews> finAllNews(Date start, Date end) {
Calendar c = Calendar.getInstance();
int month = c.get(Calendar.MONTH) + 1;
int year = c.get(Calendar.YEAR);
return mongo.find(Query.query(Criteria.where("time").gte(start).lt(end)), EasyNews.class,
"net_media_" + year + month);
}
/**
* 获取新闻检测
*/
@SuppressWarnings({ "resource", "unchecked" })
@Override
public List<Map<String, Object>> findNews(String host, int port, String dbNamel, String collection, int count,
String id, String pt) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
MongoCollection<Document> col = null;
if (DbDepot.newsCol != null) {
if (DbDepot.newsCol.get(pt) != null) {
System.out.println("已经有,不重新创建");
col = (MongoCollection<Document>) DbDepot.newsCol.get(pt);
} else {
MongoClient mongoClient = new MongoClient(host, port);
// 连接到数据库
MongoDatabase mongo = mongoClient.getDatabase(dbNamel);
col = mongo.getCollection(collection);
DbDepot.newsCol.put(pt, col);
}
} else {
DbDepot.newsCol = new ConcurrentHashMap<String, Object>();
MongoClient mongoClient = new MongoClient(host, port);
MongoDatabase mongo = mongoClient.getDatabase(dbNamel);
col = mongo.getCollection(collection);
DbDepot.newsCol.put(pt, col);
}
if (id != null & id.length() > 5) {
Bson sort = new BasicDBObject("rsid", -1);
FindIterable<Document> doc = col.find(new BasicDBObject("spyderInfoId", id)).sort(sort).limit(count);
MongoCursor<Document> mongoCursor = doc.iterator();
while (mongoCursor.hasNext()) {
Map<String, Object> map = mongoCursor.next();
list.add(map);
}
}else{
Bson sort = new BasicDBObject("rsid", -1);
FindIterable<Document> doc = col.find().sort(sort).limit(count);
MongoCursor<Document> mongoCursor = doc.iterator();
while (mongoCursor.hasNext()) {
Map<String, Object> map = mongoCursor.next();
list.add(map);
}
}
return list;
}
}
package com.zhiwei.manage.bean;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import org.springframework.stereotype.Component;
@Component
public class FieldIntegerity implements Serializable{
private String templateId;
private String tempName;// 模板名
private String field;//检测的字段
private double fieldIntegrityRate;// 字段缺失率
private int fieldInterval;// 字段缺失率统计间隔
private int testCount;// 测试需要多少条数据
private String pt;//渠道
private String host;//地址
private int port;//端口
private String collection;//表名
private String dBName;//数据库名
private boolean startNow;
private Date nextRun;
private String spyderInfoId;
public String getSpyderInfoId() {
return spyderInfoId;
}
public void setSpyderInfoId(String spyderInfoId) {
this.spyderInfoId = spyderInfoId;
}
public String getTemplateId() {
return templateId;
}
public void setTemplateId(String templateId) {
this.templateId = templateId;
}
public String getTempName() {
return tempName;
}
public void setTempName(String tempName) {
this.tempName = tempName;
}
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public double getFieldIntegrityRate() {
return fieldIntegrityRate;
}
public void setFieldIntegrityRate(double fieldIntegrityRate) {
this.fieldIntegrityRate = fieldIntegrityRate;
}
public int getFieldInterval() {
return fieldInterval;
}
public void setFieldInterval(int fieldInterval) {
this.fieldInterval = fieldInterval;
}
public String getPt() {
return pt;
}
public void setPt(String pt) {
this.pt = pt;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getCollection() {
return collection;
}
public void setCollection(String collection) {
this.collection = collection;
}
public String getdBName() {
return dBName;
}
public void setdBName(String dBName) {
this.dBName = dBName;
}
public boolean isStartNow() {
return startNow;
}
public void setStartNow(boolean startNow) {
this.startNow = startNow;
}
public Date getNextRun() {
return nextRun;
}
public void setNextRun(Date nextRun) {
this.nextRun = nextRun;
}
public int getTestCount() {
return testCount;
}
public void setTestCount(int testCount) {
this.testCount = testCount;
}
@Override
public String toString() {
return "FieldIntegerity [templateId=" + templateId + ", tempName=" + tempName + ", field=" + field
+ ", fieldIntegrityRate=" + fieldIntegrityRate + ", fieldInterval=" + fieldInterval + ", testCount="
+ testCount + ", pt=" + pt + ", host=" + host + ", port=" + port + ", collection=" + collection
+ ", dBName=" + dBName + ", startNow=" + startNow + ", nextRun=" + nextRun + "]";
}
}
package com.zhiwei.manage.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Person;
@Component
public class PersonDaoImpl implements PersonDao{
@Autowired
private MongoTemplate mongo;
@Override
public void insert(Person person) {
mongo.insert(person);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
">
<context:annotation-config />
<context:component-scan base-package="com.zhiwei.manage.servlet" />
<mvc:default-servlet-handler />
<mvc:annotation-driven />
<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
\ No newline at end of file
package com.zhiwei.manage.dao;
import java.util.List;
import com.zhiwei.manage.bean.CrawTemplate;
public interface CrawTemplateDao {
public List<CrawTemplate> findAll();
}
package com.zhiwei.manage.dao;
import java.util.List;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Template;
@Component
public interface TemplateDao {
public void insert(Template template);
public void update(Template template);
public List<Template> findAll();
public Template findById(String templateId);
public Template findByUsername(String templateName);
public boolean delete(String templateId);
}
package com.zhiwei.manage.handle;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.util.ThreadPool;
import com.zhiwei.manage.util.Tools;
@Component
public class QueueTask extends Thread {
private static final Log log=LogFactory.getLog(QueueTask.class);
private ThreadPool t = ThreadPool.getThreadPool(30);
private static boolean isRun = true;
public QueueTask() {
this.start();
}
public void stopMe() {
isRun = false;
}
@Override
public void run() {
log.info("队列线程启动");
while (isRun) {
if (FieldThread.queue.size() > 0 ) {
t.execute(new Task(FieldThread.queue.poll()));
} else {
Tools.sleep(1000);
}
if (PingThread.queue.size() > 0 ) {
t.execute(new Task(PingThread.queue.poll()));
} else {
Tools.sleep(1000);
}
if (DelayedThread.queue.size() > 0 ) {
t.execute(new Task(DelayedThread.queue.poll()));
} else {
Tools.sleep(1000);
}
if (FieldThread.queue.size() == 0 && PingThread.queue.size() == 0 && DelayedThread.queue.size() == 0) {
Tools.sleep(1000 * 10);
}
}
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
package com.zhiwei;
import java.util.Date;
import java.util.List;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.zhiwei.manage.bean.Message;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.dao.MessageDao;
import com.zhiwei.manage.dao.TemplateDao;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:applicationContext.xml" })
@Component
public class TestMessage {
@Autowired
private MessageDao md;
@Autowired
private TemplateDao td;
@org.junit.Test
public void insert() {
List<Template> list = td.findAll(1,5);
for (Template t : list) {
String[] arr = { "不通", "字段缺失", "延时性高" };
Message m = new Message();
m.setCreateDate(new Date());
m.setErrorMsg(arr[(int)(Math.random()*3)]);
m.setHandle(true);
m.setHandleDate(new Date());
m.setHandler("kk");
m.setTemplateCreator("栋宝宝");
m.setTemplateLv(2);
m.setTemplateName(t.getTempName());
m.setPt("网媒");
md.insert(m);
}
}
// @org.junit.Test
public void find() {
List<Message> list = md.findAll(1,10);
for (Message m : list) {
System.out.println(m);
}
}
public void findByuser() {
List<Message> list = md.findByTmpName("uc",1,10);
for (Message m : list) {
System.out.println(m);
}
}
}
package com.zhiwei.manage.handle;
import java.util.Calendar;
import java.util.Iterator;
import java.util.Map;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.RunMsg;
import com.zhiwei.manage.util.Tools;
@Component
public class FieldThread extends Thread {
private static boolean isrun = true;
public static Map<String, RunMsg> runMap = new ConcurrentHashMap<String, RunMsg>();
public static Queue<RunMsg> queue = new LinkedBlockingQueue<RunMsg>(500);
private static final Log log = LogFactory.getLog(FieldThread.class);
private static Lock fieldLock = new ReentrantLock();
public FieldThread(){
this.start();
}
public void stopMe() {
isrun = false;
}
@Override
public void run() {
log.info("字段检测线程启动");
while (isrun) {
try {
fieldLock.lock();
Set<String> keys = runMap.keySet();
for (Iterator<String> it = keys.iterator(); it.hasNext();) {
String key = it.next();
RunMsg run = runMap.get(key);
Calendar cal = Calendar.getInstance();
if (run.getNextRun().before(cal.getTime()) && !run.isRunNow()) {
run.setRunNow(true);
runMap.put(run.getTemplateName(), run);
queue.offer(run);
}
}
} catch (Exception e) {
log.info("字段线程异常,错误信息{}", e);
} finally {
fieldLock.unlock();
}
Tools.sleep(1000 * 120);
}
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
">
<!-- 开启注解处理器 -->
<context:annotation-config />
<!-- 开启组件自动扫描,扫描路径由base-package属性指定 -->
<context:component-scan base-package="com.zhiwei">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- 开启Aspect -->
<aop:aspectj-autoproxy />
<!-- 加载配置文件 -->
<context:property-placeholder
ignore-unresolvable="true" location="classpath:datasource.properties" />
<context:property-placeholder
ignore-unresolvable="true" location="classpath:redis.properties" />
<mongo:mongo host="127.0.0.1" port="27017" />
<bean id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">
<constructor-arg ref="mongo" />
<constructor-arg name="databaseName" value="sjz" />
<constructor-arg name="defaultCollectionName" value="test" />
</bean>
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.pool.maxTotal}" />
<property name="maxIdle" value="${redis.pool.maxIdle}" />
<property name="maxWaitMillis" value="${redis.pool.maxWaitMillis}" />
<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
<property name="testOnReturn" value="${redis.pool.testOnReturn}" />
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool"
destroy-method="close">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1" value="${redis.pool.ip}"
type="java.lang.String" />
<constructor-arg index="2" value="${redis.pool.port}"
type="int" />
</bean>
</beans>
\ No newline at end of file
import axios from 'axios'
import Vue from 'Vue'
// 非父子组件之间通信
export const bus = new Vue()
// http://192.168.0.239:8080/api/
export const dataUrl = '/api/'
// -------------------- 危机案例可视化后台 - 修改token ------------------
// export let token = ''
// export let reToken = (tok) => {
// token = tok
// }
// -------------------- 危机案例可视化后台 - 管理员登录 ------------------ login
// export let requestLogin = (params, data, callback) => {
// axios({
// url: dataUrl + 'login',
// method: 'post',
// params: params,
// data: data,
// headers: {'Content-type': 'application/json;charset=utf8', 'token': token}
// }).then((response) => {
// callback(response)
// }).catch((response) => {
// callback(response)
// })
// }
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
">
<context:annotation-config />
<context:component-scan base-package="com.zhiwei.finance.servlet" />
<mvc:default-servlet-handler />
<mvc:annotation-driven />
<!-- ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
\ No newline at end of file
package com.zhiwei.manage.dao;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.mongodb.core.MongoTemplate;
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.Component;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.Person;
@Component
public class PersonDaoImpl implements PersonDao {
@Resource(name="mongoTemplate")
private MongoTemplate mongo;
@Override
public void insert(Person person) {
mongo.insert(person);
}
@Override
public boolean update(Person person) {
Query query = Query.query(Criteria.where("_id").is(person.getPersonId()));
Update update = new Update();
update.set("username", person.getUsername());
update.set("password", person.getPassword());
update.set("lv", person.getLv());
WriteResult wr = mongo.updateFirst(query, update, Person.class);
int result = wr.getN();
return result == 1 ? true : false;
}
@Override
public List<Person> findAll(int pageNo,int pageSize) {
return mongo.find(Query.query(Criteria.where("username").exists(true)).skip(pageNo).limit(pageSize), Person.class);
}
@Override
public Person findById(String personId) {
return mongo.findById(personId, Person.class);
}
@Override
public boolean delete(String personId) {
WriteResult wr=mongo.remove(Query.query(Criteria.where("_id").is(personId)),Person.class);
int result=wr.getN();
return result == 1 ? true : false;
}
@Override
public Person findByUsername(String username) {
return mongo.findOne(Query.query(Criteria.where("username").is(username)), Person.class);
}
@Override
public List<Person> findAllByUsername(String username, int pageNo, int pageSize) {
return mongo.find(Query.query(Criteria.where("username").is(username)).skip(pageNo).limit(pageNo), Person.class);
}
@Override
public int findAllCount() {
return (int) mongo.count(Query.query(Criteria.where("username").exists(true)), Person.class);
}
@Override
public int findUserCount(String username) {
return (int) mongo.count(Query.query(Criteria.where("username").exists(true)), Person.class);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/data/mongo
http://www.springframework.org/schema/data/mongo/spring-mongo-1.8.xsd
">
<!-- 开启注解处理器 -->
<context:annotation-config />
<!-- 开启组件自动扫描,扫描路径由base-package属性指定 -->
<context:component-scan base-package="com.zhiwei">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- 开启Aspect -->
<aop:aspectj-autoproxy />
<context:property-placeholder
ignore-unresolvable="true" location="classpath:mongo.properties" />
<bean id="firstRun" class="com.zhiwei.manage.handle.DbDepot" scope="singleton"
init-method="init"></bean>
<!-- 默认配置文件 -->
<bean id="mappingContext"
class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />
<!-- 默认Mongodb类型映射 -->
<bean id="defaultMongoTypeMapper"
class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
<constructor-arg name="typeKey">
<!-- 这里设置为空,可以把 spring data mongodb 多余保存的_class字段去掉 -->
<null />
</constructor-arg>
</bean>
<mongo:mongo id="mongoMongo" host="${mongo.serverMongoIp}"
port="${mongo.serverMongoPort}" write-concern="SAFE" />
<mongo:db-factory id="mongoFactory" dbname="${mongo.spyPlatData.dbName1}"
mongo-ref="mongoMongo" />
<mongo:template id="mongoTemplate" db-factory-ref="mongoFactory" />
<mongo:mongo id="newmongoMongo" host="${mongo2.serverMongoIp}"
port="${mongo2.serverMongoPort}" write-concern="SAFE" />
<mongo:db-factory id="newmongoFactory" dbname="${mongo2.spyPlatData.dbName1}"
mongo-ref="newmongoMongo" />
<mongo:template id="newmongoTemplate" db-factory-ref="newmongoFactory" />
<mongo:mongo id="weibomongoMongo" host="${weibomongo.serverMongoIp}"
port="${weibomongo.serverMongoPort}" write-concern="SAFE" />
<mongo:db-factory id="weibomongoFactory"
dbname="${weibomongo.spyPlatData.dbName1}" mongo-ref="weibomongoMongo" />
<mongo:template id="weibomongoTemplate" db-factory-ref="weibomongoFactory" />
</beans>
\ No newline at end of file
package com.zhiwei.manage.dao;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.domain.Sort.Order;
import org.springframework.data.mongodb.core.MongoTemplate;
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 com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.WriteResult;
import com.zhiwei.manage.bean.Template;
import com.zhiwei.manage.handle.DbDepot;
import com.zhiwei.manage.util.Change;
@Service
public class TemplateDaoImpl implements TemplateDao {
@Resource(name = "mongoTemplate")
private MongoTemplate mongo;
@Autowired
private DbDepot dbDepot;
@Override
public boolean insert(Template template) {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return false;
}
DBObject obj = new BasicDBObject();
Field[] fields = template.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
try {
if (fields[j].getName().equals("id")) {
continue;
}
if (fields[j].get(template) != null)
// 字段名,字段值
obj.put(fields[j].getName(), fields[j].get(template));
} catch (Exception e) {
e.printStackTrace();
}
}
con.insert(obj);
// mongo.insert(template);
return true;
}
@Override
public boolean update(Template template) {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return false;
}
DBObject update = new BasicDBObject();
DBObject obj = new BasicDBObject();
Field[] fields = template.getClass().getDeclaredFields();
for (int j = 0; j < fields.length; j++) {
fields[j].setAccessible(true);
try {
if (fields[j].getName().equals("templateId")) {
continue;
}
if (fields[j].get(template) != null)
// 字段名,字段值
obj.put(fields[j].getName(), fields[j].get(template));
} catch (Exception e) {
e.printStackTrace();
}
}
update.put("$set", obj);
DBObject query = new BasicDBObject();
query.put("_id", new ObjectId(template.getTemplateId()));
WriteResult result = con.update(query, update, false, false);
System.out.println(result.getN());
return result.getN() == 1 ? true : false;
}
@Override
public Template findById(String templateId) {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return null;
}
Map<String,Object> map=(Map<String, Object>) con.findOne(new BasicDBObject("_id",new ObjectId(templateId)).append("pt", DbDepot.nowPt));
Template temp=new Template();
temp=Change.toBean(Template.class, map);
temp.setTemplateId(String.valueOf(map.get("_id")));
return temp;
// return mongo.findOne(Query.query(Criteria.where("_id").is(templateId)
// .andOperator(Criteria.where("pt").is(DbDepot.nowPt)))
// .with(new Sort(new Order(Direction.DESC, "createDate"))), Template.class);
}
@Override
public List<Template> findByTmpName(String templateName, int pageNo, int pageSize,String pt) {
List<Template> list=new ArrayList<Template>();
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return null;
}
DBObject query=new BasicDBObject();
query.put("templateName", new BasicDBObject("$regex",templateName));
query.put("pt", pt);
DBCursor cursor=con.find(query).sort(new BasicDBObject("createDate",-1)).skip((pageNo-1)*pageSize).limit(pageSize);
while(cursor.hasNext()){
Map<String,Object> map=(Map<String, Object>) cursor.next();
Template temp=new Template();
temp=Change.toBean(Template.class, map);
temp.setTemplateId(String.valueOf(map.get("_id")));
list.add(temp);
}
return list;
// return mongo.find(Query
// .query(Criteria.where("templateName").is(templateName)
// .orOperator(Criteria.where("pt").is(DbDepot.nowPt)))
// .skip(pageNo).limit(pageSize).with(new Sort(new Order(Direction.ASC, "createDate"))), Template.class);
}
@Override
public boolean delete(String templateId) {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return false;
}
WriteResult result=con.remove(new BasicDBObject("_id",new ObjectId(templateId)));
// WriteResult wr = mongo.remove(Query.query(Criteria.where("_id").is(templateId)), Template.class);
return result.getN() == 0 ? true : false;
}
@Override
public List<Template> findAll(int pageNo, int pageSize,String pt) {
List<Template> list=new ArrayList<Template>();
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return null;
}
DBObject obj=new BasicDBObject();
obj.put("pt", pt);
DBCursor currsor=con.find(obj).sort(new BasicDBObject("createDate",-1)).skip((pageNo - 1) * 10).limit(pageSize);
while(currsor.hasNext()){
Map<String,Object> map=(Map<String, Object>) currsor.next();
Template temp=new Template();
temp=Change.toBean(Template.class, map);
temp.setTemplateId(String.valueOf(map.get("_id")));
// temp.setNeedPing((boolean)(map.get("isNeedPing")));
// temp.setNeedField((boolean)(map.get("isNeedField")));
// temp.setNeedDelayed((boolean)(map.get("isNeedDelayed")));
System.out.println(temp);
list.add(temp);
}
return list;
// return mongo.find(
// Query.query(Criteria.where("pt").is(DbDepot.nowPt))
// .with(new Sort(new Order(Direction.ASC, "createDate"))).skip((pageNo - 1) * 10).limit(pageSize),
// Template.class);
}
@Override
public int allCount() {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return 0;
}
return (int) con.count(new BasicDBObject("pt",DbDepot.nowPt));
// return (int) mongo.count(Query.query(Criteria.where("pt").is(DbDepot.nowPt)), Template.class);
}
@Override
public int findByUserCount(String templateName,String pt) {
DBCollection con = null;
if (DbDepot.dbCons.get("temp") != null) {
con = (DBCollection) DbDepot.dbCons.get("temp");
} else {
con = dbDepot.getDBCollection("temp");
}
if (con == null) {
return 0;
}
return (int) con.count(new BasicDBObject("templateName",new BasicDBObject("$regex",templateName))
.append("pt", pt));
}
}
// For authoring Nightwatch tests, see
// http://nightwatchjs.org/guide#usage
module.exports = {
'default e2e tests': function (browser) {
// automatically uses dev Server port from /config.index.js
// default: http://localhost:8080
// see nightwatch.conf.js
const devServer = browser.globals.devServerURL
browser
.url(devServer)
.waitForElementVisible('#app', 5000)
.assert.elementPresent('.hello')
.assert.containsText('h1', 'Welcome to Your Vue.js App')
.assert.elementCount('img', 1)
.end()
}
}
package com.zhiwei.manage.dao;
import java.util.Calendar;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.Data;
import com.zhiwei.manage.bean.EasyNews;
@Component
public class DataDaoImpl implements DataDao{
@Resource(name="mongoTemplate")
private MongoTemplate mongo;
@Resource(name="newmongoTemplate")
private MongoTemplate mongo2;
@Override
public List<Data> findByPt(String startTime, String endTime, String pt) {
Criteria criteria = new Criteria();
criteria.and("pt").is(pt);
criteria.and("time").gt(startTime).lt(endTime);
return mongo.find(Query.query(criteria),Data.class,"Data");
}
@Override
public List<Data> findBySource(String startTime, String endTime, String source) {
Criteria criteria = new Criteria();
criteria.and("source").is(source);
criteria.and("time").gt(startTime).lt(endTime);
return mongo.find(Query.query(criteria),Data.class,"Data");
}
@Override
public List<Data> findBytempName(String startTime, String endTime, String tempName) {
Criteria criteria = new Criteria();
criteria.and("tempName").is(tempName);
criteria.and("time").gt(startTime).lt(endTime);
return mongo.find(Query.query(criteria),Data.class,"Data");
}
@Override
public void insert(Data data) {
mongo.insert(data,"Data");
}
@Override
public List<EasyNews> findByAccurateSource(String startTime, String endTime, String source) {
Calendar c=Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
int year=c.get(Calendar.YEAR);
Criteria criteria = new Criteria();
criteria.and("source").is(source);
criteria.and("time").gt(startTime).lt(endTime);
return mongo2.find(Query.query(criteria),EasyNews.class,"net_media_"+year+month);
}
@Override
public List<EasyNews> findByAccurateSpId(String startTime, String endTime, String SpId) {
Calendar c=Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
int year=c.get(Calendar.YEAR);
Criteria criteria = new Criteria();
criteria.and("spyderInfoId").is(SpId);
criteria.and("time").gt(startTime).lt(endTime);
return mongo2.find(Query.query(criteria),EasyNews.class,"net_media_"+year+month);
}
}
package com.zhiwei.manage.service;
import org.springframework.stereotype.Component;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.Person;
@Component
public interface PersonService {
public boolean insert(Person person);
public boolean update(Person person);
public PageEty findAll(int pageNo,int pageSize);
public Person findById(String personId);
public boolean delete(String personId);
public Person login(String username,String password);
public PageEty findByUserName(String username,int pageNo,int pageSize);
}
package com.zhiwei.manage.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zhiwei.manage.bean.PageEty;
import com.zhiwei.manage.bean.Person;
import com.zhiwei.manage.dao.PersonDao;
@Service
public class PersonServiceImpl implements PersonService {
@Autowired
private PersonDao personDao;
@Override
public boolean insert(Person person) {
if(person==null||person.getUsername().trim()==null||person.getPassword().trim()==null){
return false;
}
Person p=personDao.findByUsername(person.getUsername());
if(p!=null){
return false;
}
personDao.insert(person);
return true;
}
@Override
public boolean update(Person person) {
if(person==null||person.getUsername().trim()==null||person.getPassword().trim()==null){
return false;
}
return personDao.update(person);//false 找不到该id或者id没传进来
}
@Override
public PageEty findAll(int pageNo,int pageSize,int lv) {
PageEty page=new PageEty();
int count=personDao.findAllCount();
List<Person> data=personDao.findAll(pageNo, pageSize);
for(Person p:data){
if(lv!=3){
p.setPassword("********");
}
}
page.setData(data);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
if (count % pageSize == 0) {
page.setPageCount(count / pageSize);
} else
page.setPageCount(count / pageSize + 1);
return page;
}
@Override
public Person findById(String personId) {
return personDao.findById(personId);
}
@Override
public boolean delete(List<String> personId) {
return personDao.delete(personId);
}
@Override
public Person login(String username, String password) {
if(username.trim()!=null&&password.trim()!=null){
Person p=personDao.findByUsername(username);
if(p!=null){
if(p.getPassword().equals(password)){
return p;
}
}
}
return null;
}
@Override
public PageEty findByUserName(String username,int pageNo,int pageSize,int lv) {
PageEty page=new PageEty();
int count=personDao.findUserCount(username);
List<Person> data=personDao.findAllByUsername(username, pageNo, pageSize);
for(Person p:data){
if(lv!=3){
p.setPassword("********");
}
}
page.setData(data);
page.setDataCount(count);
page.setPageNo(pageNo);
page.setPageSize(pageSize);
if (count % pageSize == 0) {
page.setPageCount(count / pageSize);
} else
page.setPageCount(count / pageSize + 1);
return page;
}
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
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