Commit f986e866 by chentian

反诈平台爬虫项目

parents
HELP.md
/target/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/
### VS Code ###
.vscode/
<?xml version="1.0" encoding="UTF-8"?>
<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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>xzxt-jsoup</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>xzxt-jsoup</name>
<description>Demo project for Spring Boot</description>
<!-- 版本说明:这里统一管理依赖的版本号,为了各个子module依赖包的一致性,避免版本不一致导致冲突问题 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<!-- 公司的maven仓库 -->
<repositories>
<repository>
<id>founder</id>
<url>http://47.92.108.28:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<!-- 指定maven plugin仓库 -->
<pluginRepositories>
<!-- 公司的maven plugin仓库 -->
<pluginRepository>
<id>founder</id>
<url>http://47.92.108.28:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!-- 上传资源到nexus私服,构建部署项目 -->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://47.92.108.28:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://47.92.108.28:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<dependencies>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
<version>1.9.22</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
<!-- 数据库驱动包 -->
<dependency>
<groupId>org.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>10</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.11</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.35</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.35</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.founder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
// 启用异步任务
@EnableAsync
//进行定时任务
@EnableScheduling
@SpringBootApplication
public class XzxtJsoupApplication {
public static void main(String[] args) {
SpringApplication.run(XzxtJsoupApplication.class, args);
}
}
package com.founder.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
/**
* Created by changc on 2018/9/12.
*/
@Configuration
@EnableAsync
public class AsyncConfig {
/*
此处成员变量应该使用@Value从配置中读取
*/
@Value("${ThreadPool.corePoolSize}")
private int corePoolSize;
@Value("${ThreadPool.maxPoolSize}")
private int maxPoolSize;
@Value("${ThreadPool.queueCapacity}")
private int queueCapacity;
@Bean
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.initialize();
return executor;
}
}
package com.founder.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* Created by changc on 2018/9/7.
*
允许任何域名使用
允许任何头
允许任何方法(post、get等)
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1
corsConfiguration.addAllowedHeader("*"); // 2
corsConfiguration.addAllowedMethod("*"); // 3
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 4
return new CorsFilter(source);
}
}
\ No newline at end of file
package com.founder.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
* Created by changc on 2019/3/4.
*/
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/form").setViewName("form");
}
}
package com.founder.controller;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import com.founder.service.CardinfosService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* Created by changc on 2019/3/14.
*/
@RestController
public class CardLiushuiController {
@Autowired
private CardinfosService cardinfosService ;
@PostMapping("/cardinfos")
public Map<String, Object> cardinfos(card card){
card.setCurPage(card.getDraw());
return (Map<String, Object>) cardinfosService.getCardinfos(card).getData();
}
@PostMapping("/cardliushui")
public Map<String, Object> cardliushui(card card){
card.setCurPage(card.getDraw());
return (Map<String, Object>)cardinfosService.getCardliushui(card).getData();
}
@PostMapping("/thirdpartyinfos")
public Map<String, Object> thirdpartyinfos(thirdparty thirdparty){
thirdparty.setCurPage(thirdparty.getDraw());
return (Map<String, Object>)cardinfosService.getThirdpartys(thirdparty).getData();
}
}
\ No newline at end of file
package com.founder.controller;
import com.founder.task.TestTask;
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 java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@Controller
public class HelloController {
@Autowired
private TestTask asyncTask;
@ResponseBody
@RequestMapping("/task")
public Map<String, Object> testAsyncReturn() throws ExecutionException, InterruptedException {
long start = System.currentTimeMillis();
Map<String, Object> map = new HashMap<String, Object>();
List<Future<String>> futures = new ArrayList<Future<String>>();
for (int i = 0; i < 100; i++) {
Future<String> future = asyncTask.doReturn(i);
futures.add(future);
}
List<String> response = new ArrayList<String>();
for (Future future : futures) {
String string = (String) future.get();
response.add(string);
}
map.put("data", response);
map.put("消耗时间", String.format("任务执行成功,耗时{%s}毫秒", System.currentTimeMillis() - start));
return map;
}
}
\ No newline at end of file
package com.founder.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.thirdparty;
import com.founder.service.CardinfosService;
import com.founder.service.SaveCardinfosService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/**
* Created by changc on 2019/3/14.
*/
@RestController
public class SaveCardController {
@Autowired
private SaveCardinfosService saveCardinfosService ;
@PostMapping("/savecardinfos")
public XzxtRestResult cardinfos(card card){
return saveCardinfosService.getSaveCardinfos(card);
}
@PostMapping("/savecardliushui")
public XzxtRestResult cardliushui(@RequestBody card card){
return saveCardinfosService.getSaveCardliushui(card);
}
@PostMapping("/savethirdpartyinfos")
public XzxtRestResult thirdpartyinfos(@RequestBody thirdparty thirdparty){
return saveCardinfosService.getSaveThirdpartys(thirdparty);
}
}
\ No newline at end of file
package com.founder.dao;
import com.founder.model.card;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface CardDao {
@Insert("insert into card(xxzjbh,accountName,account,applicationNumber,bank,type,status,momey,cardResults,lrr,lrsj,lrdw) "
+ "values (#{xxzjbh},#{accountName},#{account},#{applicationNumber},#{bank},#{type},#{status},#{momey},#{cardResults},#{lrr},#{lrsj},#{lrdw})")
public void addCard(card card);
@Select("select url from card")
public List<String> getCardList();
}
package com.founder.jsoup;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import com.sun.tools.internal.xjc.reader.xmlschema.bindinfo.BIConversion;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.*;
/**
* Created by changchao on 2019/5/27.
*/
@Component
public class JsoupCookieCraw {
@Value("${dzpt.login.url}")
private String loginurl;
/**
* 模拟登录获取cookie和sessionid
*/
public Map<String, String> login() throws IOException {
Map<String, String> cookies = null;
Connection connect = Jsoup.connect(loginurl);
// 伪造请求头
connect.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8").header("Accept-Encoding",
"gzip, deflate");
connect.header("Accept-Language", "zh-CN,zh;q=0.9").header("Connection", "keep-alive");
connect.header("Content-Length", "40").header("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
connect.header("Host", "68.89.99.2").header("Referer", "http://68.89.99.2/dxzp/login_yh.jsp");
connect.header("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3510.2 Safari/537.36")
.header("X-Requested-With", "XMLHttpRequest");
// 携带登陆信息
//yh.dwDm: 650000
//yh.dm: 003249
//yh.kl: 123456
connect.data("yh.dwDm", "650000").data("yh.dm", "003249").data("yh.kl", "123456");
//请求url获取响应信息
Connection.Response res = connect.ignoreContentType(true).method(Connection.Method.POST).execute();// 执行请求
// 获取返回的cookie
cookies = res.cookies();
return cookies;
}
/**
* 银行卡解析数据
*/
public Map<String,Object> getCardInfo(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
JsoupCookieCraw jsop=new JsoupCookieCraw();
List<card> cardList =new ArrayList<card>();
String value=null;
Elements cards=document.getElementsByTag("tr");
//System.out.println("获取的元数据列表==="+cards.toString());
//去除表头列数据
cards.remove(0);
for(Element cardinfos:cards){
card card =new card();
Elements cardxx=cardinfos.getElementsByTag("td");
try {
card.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
card.setAccountName(cardxx.get(1).text());
card.setAccount(cardxx.get(2).text());
card.setApplicationNumber(cardxx.get(3).text());
card.setBank(cardxx.get(4).text());
card.setType(cardxx.get(5).text());
card.setStatus(cardxx.get(6).text());
card.setMomey(cardxx.get(7).text());
card.setCardResults(cardxx.get(8).text());
card.setLrr(cardxx.get(9).text());
card.setLrsj(cardxx.get(10).text());
card.setLrdw(cardxx.get(11).text());
System.out.println("数据card====="+JSON.toJSONString(card));
cardList.add(card);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
int num=Integer.parseInt(page.get(1).text())*15;
listmap.put("data", cardList);
listmap.put("recordsTotal", num);
listmap.put("recordsFiltered", num);
listmap.put("draw", "");
return listmap;
}
/**
* 银行卡交易流水解析数据
*/
public Map<String,Object> getCardLsInfo(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
JsoupCookieCraw jsop=new JsoupCookieCraw();
List<cardliushui> cardList =new ArrayList<cardliushui>();
String value=null;
Elements cardliushuixx=document.getElementsByClass("table-two");
//System.out.println("获取的元数据列表1==="+cardliushuixx.toString());
Elements cardliushuis=cardliushuixx.select("tbody").select("tr");
//System.out.println("获取的元数据列表2==="+cardliushuis.toString());
//去除表头列数据
cardliushuis.remove(0);
for(Element cardinfos:cardliushuis){
cardliushui cardliushui =new cardliushui();
Elements cardliushuixxs=cardinfos.getElementsByTag("td");
//System.out.println("获取的元数据列表3==="+cardliushuixxs.toString());
try {
cardliushui.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
cardliushui.setZh(cardliushuixxs.get(1).text());
cardliushui.setAccountName(cardliushuixxs.get(2).text());
cardliushui.setAccount(cardliushuixxs.get(3).text());
cardliushui.setMomey(cardliushuixxs.get(4).text());
cardliushui.setBalance(cardliushuixxs.get(5).text());
cardliushui.setFlag(cardliushuixxs.get(6).text());
cardliushui.setTransactiontpye(cardliushuixxs.get(7).text());
cardliushui.setResults(cardliushuixxs.get(8).text());
cardliushui.setSj(cardliushuixxs.get(9).text());
System.out.println("数据card====="+JSON.toJSONString(cardliushui));
cardList.add(cardliushui);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
int num=Integer.parseInt(page.get(1).text())*15;
listmap.put("data", cardList);
listmap.put("recordsTotal", num);
listmap.put("recordsFiltered", num);
listmap.put("draw", "");
return listmap;
}
/**
* 第三方支付
*/
public Map<String,Object> getThirdpartys(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
JsoupCookieCraw jsop=new JsoupCookieCraw();
List<thirdparty> thirdpartyList =new ArrayList<thirdparty>();
String value=null;
Elements cards=document.getElementsByTag("tr");
//System.out.println("获取的元数据列表==="+cards.toString());
//去除表头列数据
cards.remove(0);
for(Element cardinfos:cards){
thirdparty thirdparty =new thirdparty();
Elements cardxx=cardinfos.getElementsByTag("td");
try {
thirdparty.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
thirdparty.setZh(cardxx.get(1).text());
thirdparty.setApplicationNumber(cardxx.get(2).text());
thirdparty.setZfjg(cardxx.get(3).text());
thirdparty.setType(cardxx.get(4).text());
thirdparty.setStatus(cardxx.get(5).text());
thirdparty.setMomey(cardxx.get(6).text());
thirdparty.setThirdpartyResults(cardxx.get(7).text());
thirdparty.setLrr(cardxx.get(8).text());
thirdparty.setLrdw(cardxx.get(9).text());
thirdparty.setLrsj(cardxx.get(10).text());
System.out.println("数据card====="+JSON.toJSONString(thirdparty));
thirdpartyList.add(thirdparty);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
int num=Integer.parseInt(page.get(1).text())*15;
listmap.put("data", thirdpartyList);
listmap.put("recordsTotal", num);
listmap.put("recordsFiltered", num);
listmap.put("draw", "");
return listmap;
}
public String saveQueryLog() throws Exception {
String uuid = UUID.randomUUID().toString().replaceAll("-","");
uuid = uuid.substring(0,uuid.length()-2);
return uuid;
}
}
package com.founder.jsoup;
import com.alibaba.fastjson.JSON;
import com.founder.dao.CardDao;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.*;
/**
* Created by changchao on 2019/5/27.
*/
@Component
public class SaveJsoupCookieCraw {
@Value("${dzpt.login.url}")
private String loginurl;
@Autowired
private CardDao cardDao;
/**
* 模拟登录获取cookie和sessionid
*/
public Map<String, String> login() throws IOException {
Map<String, String> cookies = null;
Connection connect = Jsoup.connect(loginurl);
// 伪造请求头
connect.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8").header("Accept-Encoding",
"gzip, deflate");
connect.header("Accept-Language", "zh-CN,zh;q=0.9").header("Connection", "keep-alive");
connect.header("Content-Length", "40").header("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
connect.header("Host", "68.89.99.2").header("Referer", "http://68.89.99.2/dxzp/login_yh.jsp");
connect.header("User-Agent",
"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3510.2 Safari/537.36")
.header("X-Requested-With", "XMLHttpRequest");
// 携带登陆信息
//yh.dwDm: 650000
//yh.dm: 003249
//yh.kl: 123456
connect.data("yh.dwDm", "650000").data("yh.dm", "003249").data("yh.kl", "123456");
//请求url获取响应信息
Connection.Response res = connect.ignoreContentType(true).method(Connection.Method.POST).execute();// 执行请求
// 获取返回的cookie
cookies = res.cookies();
return cookies;
}
/**
* 银行卡解析数据
*/
public Map<String,Object> getCardInfo(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
SaveJsoupCookieCraw jsop=new SaveJsoupCookieCraw();
List<card> cardList =new ArrayList<card>();
String value=null;
Elements cards=document.getElementsByTag("tr");
//System.out.println("获取的元数据列表==="+cards.toString());
//去除表头列数据
cards.remove(0);
for(Element cardinfos:cards){
card card =new card();
Elements cardxx=cardinfos.getElementsByTag("td");
try {
card.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
card.setAccountName(cardxx.get(1).text());
card.setAccount(cardxx.get(2).text());
card.setApplicationNumber(cardxx.get(3).text());
card.setBank(cardxx.get(4).text());
card.setType(cardxx.get(5).text());
card.setStatus(cardxx.get(6).text());
card.setMomey(cardxx.get(7).text());
card.setCardResults(cardxx.get(8).text());
card.setLrr(cardxx.get(9).text());
card.setLrsj(cardxx.get(10).text());
card.setLrdw(cardxx.get(11).text());
System.out.println("数据card====="+JSON.toJSONString(card));
//保存数据
cardDao.addCard(card);
cardList.add(card);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
listmap.put("pages", page.get(1).text());
listmap.put("list", cardList);
return listmap;
}
/**
* 银行卡交易流水解析数据
*/
public Map<String,Object> getCardLsInfo(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
SaveJsoupCookieCraw jsop=new SaveJsoupCookieCraw();
List<cardliushui> cardList =new ArrayList<cardliushui>();
String value=null;
Elements cardliushuixx=document.getElementsByClass("table-two");
//System.out.println("获取的元数据列表1==="+cardliushuixx.toString());
Elements cardliushuis=cardliushuixx.select("tbody").select("tr");
//System.out.println("获取的元数据列表2==="+cardliushuis.toString());
//去除表头列数据
cardliushuis.remove(0);
for(Element cardinfos:cardliushuis){
cardliushui cardliushui =new cardliushui();
Elements cardliushuixxs=cardinfos.getElementsByTag("td");
//System.out.println("获取的元数据列表3==="+cardliushuixxs.toString());
try {
cardliushui.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
cardliushui.setZh(cardliushuixxs.get(1).text());
cardliushui.setAccountName(cardliushuixxs.get(2).text());
cardliushui.setAccount(cardliushuixxs.get(3).text());
cardliushui.setMomey(cardliushuixxs.get(4).text());
cardliushui.setBalance(cardliushuixxs.get(5).text());
cardliushui.setFlag(cardliushuixxs.get(6).text());
cardliushui.setTransactiontpye(cardliushuixxs.get(7).text());
cardliushui.setResults(cardliushuixxs.get(8).text());
cardliushui.setSj(cardliushuixxs.get(9).text());
System.out.println("数据card====="+JSON.toJSONString(cardliushui));
cardList.add(cardliushui);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
listmap.put("pages", page.get(1).text());
listmap.put("list", cardList);
return listmap;
}
/**
* 第三方支付
*/
public Map<String,Object> getThirdpartys(Document document) {
Map<String,Object> listmap=new HashMap<String,Object>();
SaveJsoupCookieCraw jsop=new SaveJsoupCookieCraw();
List<thirdparty> thirdpartyList =new ArrayList<thirdparty>();
String value=null;
Elements cards=document.getElementsByTag("tr");
//System.out.println("获取的元数据列表==="+cards.toString());
//去除表头列数据
cards.remove(0);
for(Element cardinfos:cards){
thirdparty thirdparty =new thirdparty();
Elements cardxx=cardinfos.getElementsByTag("td");
try {
thirdparty.setXxzjbh(jsop.saveQueryLog());
} catch (Exception e) {
}
thirdparty.setZh(cardxx.get(1).text());
thirdparty.setApplicationNumber(cardxx.get(2).text());
thirdparty.setZfjg(cardxx.get(3).text());
thirdparty.setType(cardxx.get(4).text());
thirdparty.setStatus(cardxx.get(5).text());
thirdparty.setMomey(cardxx.get(6).text());
thirdparty.setThirdpartyResults(cardxx.get(7).text());
thirdparty.setLrr(cardxx.get(8).text());
thirdparty.setLrdw(cardxx.get(9).text());
thirdparty.setLrsj(cardxx.get(10).text());
System.out.println("数据card====="+JSON.toJSONString(thirdparty));
thirdpartyList.add(thirdparty);
}
//页数
Elements pageinfos=document.getElementsByClass("next-page").select("p");
Elements page=pageinfos.get(0).select("span");
//page.get(1).text();
//结果数据展示
/* JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(cardList));
System.out.println(jsonArray);*/
listmap.put("pages", page.get(1).text());
listmap.put("list", thirdpartyList);
return listmap;
}
public String saveQueryLog() throws Exception {
String uuid = UUID.randomUUID().toString().replaceAll("-","");
uuid = uuid.substring(0,uuid.length()-2);
return uuid;
}
}
package com.founder.model;
import com.founder.service.SaveCardinfosService;
/**
* Created by admin on 2019/5/27.
*/
public class InsertServiceUtils{
private static SaveCardinfosService saveCardinfosService;
static {
saveCardinfosService=(SaveCardinfosService)SpringUtil.getBean("saveCardinfosService");
}
}
package com.founder.model;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Created by admin on 2019/6/3.
* * 普通类调用Spring bean对象:
* 说明:
* 1、此类需要放到App.java同包或者子包下才能被扫描,否则失效。
*/
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
if(SpringUtil.applicationContext == null){
SpringUtil.applicationContext = applicationContext;
}
System.out.println("---------------------------------------------------------------------");
System.out.println("---------------------------------------------------------------------");
System.out.println("---------------com.example.order.util.SpringUtil------------------------------------------------------");
System.out.println("========ApplicationContext配置成功,在普通类可以通过调用SpringUtils.getAppContext()获取applicationContext对象,applicationContext="+SpringUtil.applicationContext+"========");
System.out.println("---------------------------------------------------------------------");
}
//获取applicationContext
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//通过name获取 Bean.
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
//通过class获取Bean.
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
//通过name,以及Clazz返回指定的Bean
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
\ No newline at end of file
package com.founder.model;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
/**
* Xzxt-Rest自定义响应结构
*/
public class XzxtRestResult {
// 定义jackson对象
private static final ObjectMapper MAPPER = new ObjectMapper();
// 响应业务状态
private Integer status;
// 响应消息
private String msg;
// 响应中的数据
private Object data;
//redis key
private String rediskey;
public static XzxtRestResult build(Integer status, String msg, Object data) {
return new XzxtRestResult(status, msg, data);
}
public static XzxtRestResult ok(Object data) {
return new XzxtRestResult(data);
}
public static XzxtRestResult ok(int i, String count, List<Object> list) {
return new XzxtRestResult(null);
}
public XzxtRestResult() {
}
public static XzxtRestResult build(Integer status, String msg, String reidskey, Object data) {
return new XzxtRestResult(status, msg, reidskey,data);
}
public XzxtRestResult(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public XzxtRestResult(Integer status, String msg, String reidskey, Object data) {
this.status = status;
this.msg = msg;
this.rediskey=reidskey;
this.data = data;
}
public XzxtRestResult(Object data) {
this.status = 200;
this.msg = "OK";
this.data = data;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getRediskey() {
return rediskey;
}
public void setRediskey(String rediskey) {
this.rediskey = rediskey;
}
/**
* 将json结果集转化为Xzxt-Rest对象
*
* @param jsonData json数据
* @param clazz Xzxt-Rest中的object类型
* @return
*/
public static XzxtRestResult formatToPojo(String jsonData, Class<?> clazz) {
try {
if (clazz == null) {
return MAPPER.readValue(jsonData, XzxtRestResult.class);
}
JsonNode jsonNode = MAPPER.readTree(jsonData);
JsonNode data = jsonNode.get("data");
Object obj = null;
if (clazz != null) {
if (data.isObject()) {
obj = MAPPER.readValue(data.traverse(), clazz);
} else if (data.isTextual()) {
obj = MAPPER.readValue(data.asText(), clazz);
}
}
return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
} catch (Exception e) {
System.out.println(e.getStackTrace());
return new XzxtRestResult();
}
}
/**
* object对象的转化
*
* @param json
* @return
*/
public static XzxtRestResult format(String json) {
try {
return MAPPER.readValue(json, XzxtRestResult.class);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* object对象的转化
*
* @param object
* @return
*/
public static <T> T format(Object object,Class<T> clz) {
try {
return MAPPER.readValue(object.toString(), clz);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* Object是集合转化
*
* @param jsonData json数据
* @param clazz 集合中的类型
* @return
*/
public static XzxtRestResult formatToList(String jsonData, Class<?> clazz) {
try {
JsonNode jsonNode = MAPPER.readTree(jsonData);
JsonNode data = jsonNode.get("data");
Object obj = null;
if (data.isArray() && data.size() > 0) {
obj = MAPPER.readValue(data.traverse(),
MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
}
return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
} catch (Exception e) {
return null;
}
}
}
package com.founder.model;
/**
* Created by admin on 2019/5/27.
*/
public class card extends page{
private String xxzjbh;//序号
private String accountName;//转入账号姓名
private String account;//转入账号
private String applicationNumber;//业务申请编号
private String bank;//转入账号所属银行
private String type;//请求类型
private String status;//状态
private String momey;//金额
private String cardResults;//银行卡反馈结果
private String lrr;//录入人
private String lrsj;//录入时间
private String lrdw;//录入单位
private String curPage;//当前页
private String kssj;
private String jzsj;
public String getKssj() {
return kssj;
}
public void setKssj(String kssj) {
this.kssj = kssj;
}
public String getJzsj() {
return jzsj;
}
public void setJzsj(String jzsj) {
this.jzsj = jzsj;
}
public String getXxzjbh() {
return xxzjbh;
}
public void setXxzjbh(String xxzjbh) {
this.xxzjbh = xxzjbh;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getApplicationNumber() {
return applicationNumber;
}
public void setApplicationNumber(String applicationNumber) {
this.applicationNumber = applicationNumber;
}
public String getBank() {
return bank;
}
public void setBank(String bank) {
this.bank = bank;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCardResults() {
return cardResults;
}
public void setCardResults(String cardResults) {
this.cardResults = cardResults;
}
public String getLrr() {
return lrr;
}
public void setLrr(String lrr) {
this.lrr = lrr;
}
public String getLrsj() {
return lrsj;
}
public void setLrsj(String lrsj) {
this.lrsj = lrsj;
}
public String getLrdw() {
return lrdw;
}
public void setLrdw(String lrdw) {
this.lrdw = lrdw;
}
public String getMomey() {
return momey;
}
public void setMomey(String momey) {
this.momey = momey;
}
public String getCurPage() {
return curPage;
}
public void setCurPage(String curPage) {
this.curPage = curPage;
}
}
package com.founder.model;
/**
* Created by admin on 2019/5/27.
*/
public class cardliushui extends page {
private String xxzjbh;//
private String zh;//查询账号
private String accountName;//对方账号姓名
private String account;//对方卡号
private String momey;//金额
private String balance;//余额
private String flag;//借贷标志
private String transactiontpye;//交易类型
private String results;//交易结构
private String sj;//交易时间
private String curPage;//当前页
public String getXxzjbh() {
return xxzjbh;
}
public void setXxzjbh(String xxzjbh) {
this.xxzjbh = xxzjbh;
}
public String getZh() {
return zh;
}
public void setZh(String zh) {
this.zh = zh;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getMomey() {
return momey;
}
public void setMomey(String momey) {
this.momey = momey;
}
public String getBalance() {
return balance;
}
public void setBalance(String balance) {
this.balance = balance;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public String getTransactiontpye() {
return transactiontpye;
}
public void setTransactiontpye(String transactiontpye) {
this.transactiontpye = transactiontpye;
}
public String getResults() {
return results;
}
public void setResults(String results) {
this.results = results;
}
public String getSj() {
return sj;
}
public void setSj(String sj) {
this.sj = sj;
}
public String getCurPage() {
return curPage;
}
public void setCurPage(String curPage) {
this.curPage = curPage;
}
}
package com.founder.model;
/**
* Created by admin on 2019/5/27.
*/
public abstract class page {
private String draw;//datatable 参数
private int startNum;//datatable 起始页参数
private int endNum;//datatable 结束页码参数
private String message;//datatable 查询参数
private String start;
private String length;
public String getDraw() {
return draw;
}
public void setDraw(String draw) {
this.draw = draw;
}
public int getStartNum() {
return startNum;
}
public void setStartNum(int startNum) {
this.startNum = startNum;
}
public int getEndNum() {
return endNum;
}
public void setEndNum(int endNum) {
this.endNum = endNum;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package com.founder.model;
/**
* Created by admin on 2019/5/27.
*/
public class thirdparty extends page {
private String xxzjbh;//序号
private String zh;//支付账号
private String zfjg;//支付机构
private String applicationNumber;//业务申请编号
private String type;//请求类型
private String status;//状态
private String momey;//金额
private String thirdpartyResults;//银行卡反馈结果
private String lrr;//录入人
private String lrsj;//录入时间
private String lrdw;//录入单位
private String curPage;//当前页
public String getXxzjbh() {
return xxzjbh;
}
public void setXxzjbh(String xxzjbh) {
this.xxzjbh = xxzjbh;
}
public String getZh() {
return zh;
}
public void setZh(String zh) {
this.zh = zh;
}
public String getZfjg() {
return zfjg;
}
public void setZfjg(String zfjg) {
this.zfjg = zfjg;
}
public String getApplicationNumber() {
return applicationNumber;
}
public void setApplicationNumber(String applicationNumber) {
this.applicationNumber = applicationNumber;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMomey() {
return momey;
}
public void setMomey(String momey) {
this.momey = momey;
}
public String getThirdpartyResults() {
return thirdpartyResults;
}
public void setThirdpartyResults(String thirdpartyResults) {
this.thirdpartyResults = thirdpartyResults;
}
public String getLrr() {
return lrr;
}
public void setLrr(String lrr) {
this.lrr = lrr;
}
public String getLrsj() {
return lrsj;
}
public void setLrsj(String lrsj) {
this.lrsj = lrsj;
}
public String getLrdw() {
return lrdw;
}
public void setLrdw(String lrdw) {
this.lrdw = lrdw;
}
public String getCurPage() {
return curPage;
}
public void setCurPage(String curPage) {
this.curPage = curPage;
}
}
package com.founder.multipleThread.latchThread;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Created by admin on 2019/4/19.
*/
public class LatchThreadPoolTool<T> {
//单个线程处理的数据量
private int singleCount;
//处理的总数据量
private int listSize;
//开启的线程数
private int runSize;
//操作的数据集
private List<T> list;
//计数器
private CountDownLatch begin,end;
//线程池
private ExecutorService executorService;
//回调
private CallBack callBack;
//回调接口定义
public interface CallBack<T>{
public void method(List<T> list);
}
public LatchThreadPoolTool(int singleCount, List<T> list){ //批量处理的数 data
this.singleCount = singleCount;
this.list = list;
if (list != null){
this.listSize = list.size();
this.runSize = (this.listSize/this.singleCount) + 1;
}
}
public void setCallBack(CallBack callBack) {
this.callBack = callBack;
}
//执行
public void excute() throws InterruptedException {
System.out.println("主线程阻塞,等待所有子线程执行完成");
//创建定长线程迟
executorService = Executors.newFixedThreadPool(runSize);
begin = new CountDownLatch(1);
end = new CountDownLatch(runSize);
//创建线程
int startIndex = 0;
int endIndex = 0;
List<T> newList = null;
for (int i = 0; i < runSize; i++) {
//计算每个线程对应的数据
if (i < (runSize - 1)){
startIndex = i * singleCount;
endIndex = (i + 1) * singleCount;
newList = list.subList(startIndex,endIndex); //从fromIndex(包含),到toIndex(不包含)
}else {
startIndex = i * singleCount;
endIndex = listSize;
newList = list.subList(startIndex,endIndex);
}
//创建线程类处理数据
MyThread<T> myThread = new MyThread(newList, begin, end) {
@Override
public void ywmethod(List list) {
callBack.method(list);//接口
}
};
//执行线程
executorService.execute(myThread);
}
//计数器减一 // 完成业务处理过程,计数器-1
System.out.println("游戏开始22222开始");
begin.countDown();
end.await();//await() 方法在倒计数为0之前会阻塞当前线程.
System.out.println("游戏结束333333");
executorService.shutdown();
}
}
\ No newline at end of file
package com.founder.multipleThread.latchThread;
import java.util.List;
import java.util.concurrent.CountDownLatch;
/**
* Created by admin on 2019/5/28.
*/
//抽象线程类
public abstract class MyThread<T> implements Runnable{
private List<T> list;
private CountDownLatch begin,end;
public MyThread(List<T> list, CountDownLatch begin, CountDownLatch end){
this.list = list;
this.begin = begin;
this.end = end;
}
public abstract void ywmethod(List<T> list);
@Override
public void run() { //里面批量是先全部跑完
try {
//执行程序
ywmethod(list);
begin.await();//阻塞
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
//计数器减一
end.countDown();//释放
}
}
}
package com.founder.multipleThread.latchThread;
import java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 2019/4/19.
*/
public class ThreadText {
public static void main(String[] agrs){
long start = System.currentTimeMillis();
List<String> list = new ArrayList<String>();
for (int i = 0; i < 100; i++) {
list.add("hello"+i);
}
//System.out.println("执行开始");
LatchThreadPoolTool<String> tool = new LatchThreadPoolTool(10,list);
tool.setCallBack(new LatchThreadPoolTool.CallBack<String>() {//实现返回值
@Override
public void method(List<String> list) {//返回值
for (int i = 0; i < list.size(); i++) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"------"+list.get(i)+" ");
}
}
});
try {
tool.excute();
System.out.println(String.format("任务执行成功,耗时{%s}毫秒", System.currentTimeMillis() - start));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
\ No newline at end of file
package com.founder.multipleThread.listThread;
import com.founder.jsoup.SaveJsoupCookieCraw;
import com.founder.model.SpringUtil;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.service.SaveCardinfosService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
* Created by admin on 2019/4/19.
*/
public class ListThreadPoolTool<T> {
//单个线程处理的数据量
private int singleCount;
//处理的总数据量
private int listSize;
//开启的线程数
private int runSize;
//操作的数据集
private List<T> list;
//线程池
private ExecutorService executorService;
//业务方法
private Work work;
//业务方法
private SaveCardinfosService saveCardinfosService =(SaveCardinfosService) SpringUtil.getBean(SaveCardinfosService.class);
//回调接口定义
public interface Work<T>{
public void method(int xcmz, List<T> list);
}
public ListThreadPoolTool(int singleCount, List<T> list){ //批量处理的数 data
this.singleCount = singleCount;
this.list = list;
if (list != null){
this.listSize = list.size();
this.runSize = (this.listSize/this.singleCount) + 1;
}
}
public void setWork(Work work) {
this.work = work;
}
//执行
public void excute() throws InterruptedException {
executorService = Executors.newFixedThreadPool(runSize);
//创建线程
int startIndex = 0;
int endIndex = 0;
int xcmz=0;//线程名称
List<T> newList = null;
for (int i = 0; i < runSize; i++) {
xcmz=i+1;
//计算每个线程对应的数据
if (i < (runSize - 1)){//每次批量处理
startIndex = i * singleCount;
endIndex = (i + 1) * singleCount;
newList = list.subList(startIndex,endIndex); //从fromIndex(包含),到toIndex(不包含)
}else {
startIndex = i * singleCount;
endIndex = listSize;
if(i * singleCount==listSize){//处理没有余数的情况
return;
}else{
newList = list.subList(startIndex,endIndex);//最后一次批量处理
}
}
//创建线程类处理数据
MyThread myThread = new MyThread(xcmz,newList) {
@Override
public void threadwork(int xcmz,List list) {
//SaveCardinfosService saveCardinfosService=(SaveCardinfosService) SpringUtil.getBean(SaveCardinfosService.class);
for (int i = 0; i < list.size(); i++) {
System.out.println("调取页数" + xcmz + "---" + list.get(i));
card card=new card();
card.setCurPage((String) list.get(i));
card.setKssj("2019-05-01");
card.setJzsj("2019-05-02");
System.out.println("调取页数2222" + xcmz + "---" + list.get(i));
//获取一个月的数据
XzxtRestResult xzxtRestResult=saveCardinfosService.getSaveCardinfos(card);
}
work.method(xcmz,list);
}
};
//执行线程
executorService.execute(myThread);
}
executorService.shutdown();
}
}
\ No newline at end of file
package com.founder.multipleThread.listThread;
import java.util.List;
/**
* Created by admin on 2019/5/28.
*/
//抽象线程类
public abstract class MyThread<T> implements Runnable{
private List<T> list;
private int xcmz;
public MyThread(int xcmz,List<T> list){
this.list = list;
this.xcmz = xcmz;
}
public abstract void threadwork(int xcmz,List<T> list);
@Override
public void run() { //里面实现业务代码
threadwork(xcmz,list);
}
}
package com.founder.multipleThread.postThread;
/**
* Created by admin on 2019/5/28.
*/
//抽象线程类
public abstract class MyThread<T> implements Runnable{
private int startIndex,endIndex,xcmz;
private T data;
public MyThread(int xcmz,int startIndex,int endIndex,T data){
this.xcmz = xcmz;
this.startIndex = startIndex;
this.endIndex = endIndex;
this.data = data;
}
public abstract void threadwork(int xcmz,int startIndex,int endIndex,T data);
@Override
public void run() {
threadwork(xcmz,startIndex,endIndex,data);
}
}
package com.founder.multipleThread.postThread;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import static com.founder.multipleThread.postThread.ThreadReturnText.thread2;
/**
* Created by admin on 2019/4/19.
*/
public class PostThreadPoolTool<T> {
//处理的数据页数(请求次数)
private int pages;
//单个线程处理的数据量
private int singleCount;
//处理的总数据量
private int listSize;
//开启的线程数
private int runSize;
//线程池
private ExecutorService executorService;
//回调(接口)
private Work work;
//回调(接口)
private T data;
//回调接口定义
public interface Work<T>{
public void method(int xzmc, int startIndex, int endIndex, T data);
}
public PostThreadPoolTool(int singleCount, int pages,T data){ //批量处理的数 data
this.singleCount = singleCount;
this.pages = pages;
this.data = data;
this.runSize = (this.pages/this.singleCount) +1;//22 5的批量 线程数5 4 个5 1个2
}
public void setWork(Work work) {
this.work = work;
}
//执行
public void excute() throws InterruptedException {
//创建定长线程迟
executorService = Executors.newFixedThreadPool(runSize);
//创建线程
int startIndex = 0;
int endIndex = 0;
int xcmz=0;//线程名称
List<T> newList = null;
for (int i = 1; i <=runSize; i++) {
xcmz=i;
//计算每个线程对应的数据
if(i==1){
startIndex =1;
endIndex = 1* singleCount;
System.out.println("开启----第"+i+"个------线程:起始页:+"+startIndex+"结束页"+endIndex);
}
else if (i==runSize){
startIndex = (i-1)* singleCount+1;
endIndex =pages;
if(startIndex>endIndex){
return;
}else{
System.out.println("开启----第"+i+"个------线程:起始页:+"+startIndex+"结束页"+endIndex);
}
}
else {
startIndex = (i-1)* singleCount+1;
endIndex = i * singleCount;
System.out.println("开启----第"+i+"个------线程:起始页:+"+startIndex+"结束页"+endIndex);
}
//创建线程类处理数据
MyThread<T> myThread = new MyThread(xcmz,startIndex,endIndex,data) {
@Override
public void threadwork(int xcmz, int startIndex, int endIndex, Object data) {
List<String> list = new ArrayList<String>();
for (int i = startIndex; i <= endIndex; i++) {
//System.out.println("请求第"+i+"页数据");
list.add(i + "");
}
System.out.println("线程池1==" + xcmz + "---" + Thread.currentThread().getName() + "==分组list数据" + list.toString());
thread2(100, list, data);
//work.method(xcmz,startIndex,endIndex,data);
}
};
//执行线程
executorService.execute(myThread);
}
executorService.shutdown();
}
}
\ No newline at end of file
package com.founder.multipleThread.postThread;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.multipleThread.listThread.ListThreadPoolTool;
import java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 2019/4/19.
*/
public class ThreadReturnText {
public static void main(String[] agrs) {
System.out.println("执行开始");
card card = new card();
card.setKssj("2019-05-1");
card.setJzsj("2019-05-29");
/*//获取一个月的数据
XzxtRestResult xzxtRestResult=cardinfosService.getCardinfos(card);
JSONObject object= JSON.parseObject(xzxtRestResult.getData().toString());
int pages= (int) object.get("pages");*/
int pages = 100;
//1、线程批量分组页面list
PostThreadPoolTool<card> tool = new PostThreadPoolTool(20, pages,card);
tool.setWork(new PostThreadPoolTool.Work<card>() {
@Override
public void method(int xzmc, int startIndex, int endIndex, card card) {
List<String> list = new ArrayList<String>();
for (int i = startIndex; i <= endIndex; i++) {
//System.out.println("请求第"+i+"页数据");
list.add(i + "");
}
System.out.println("线程池1==" + xzmc + "---" + Thread.currentThread().getName() + "==分组list数据" + list.toString());
thread2(5, list, card);
}
});
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void thread2(int singleCount, List<String> list, Object data) {
ListThreadPoolTool<String> tool = new ListThreadPoolTool(singleCount, list);
// final card card=XzxtRestResult.format(data,card.class);
tool.setWork(new ListThreadPoolTool.Work<String>() {//实现业务代码
@Override
public void method(int xcmz, List<String> list) {//返回值
System.out.println("线程池2==" + xcmz + "---" + Thread.currentThread().getName() + "------" + list.toString());
}
});
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
\ No newline at end of file
package com.founder.service;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.thirdparty;
/**
* @author yutons
*/
public interface CardinfosService {
public XzxtRestResult getCardinfos(card card) ;
public XzxtRestResult getCardliushui(card card) ;
public XzxtRestResult getThirdpartys(thirdparty thirdparty) ;
}
package com.founder.service;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.thirdparty;
/**
* @author yutons
*/
public interface SaveCardinfosService {
public XzxtRestResult getSaveCardinfos(card card) ;
public XzxtRestResult getSaveCardliushui(card card) ;
public XzxtRestResult getSaveThirdpartys(thirdparty thirdparty) ;
}
package com.founder.service.impl;
import com.founder.jsoup.JsoupCookieCraw;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import com.founder.service.CardinfosService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class CardinfosServiceImpl implements CardinfosService {
private static final Logger logger = LoggerFactory.getLogger(CardinfosServiceImpl.class);
@Value("${dzpt.card.url}")
private String cardurl;
@Value("${dzpt.cardliushui.url}")
private String cardliushuiurl;
@Value("${dzpt.thirdparty.url}")
private String thirdpartyurl;
@Autowired
private JsoupCookieCraw jsoupCookieCraw;
@Override
public XzxtRestResult getCardinfos(card card) {
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=jsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
try {
document = Jsoup.connect(cardurl)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage",card.getCurPage())
.data("yhzh.zh", card.getAccount())
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<card> cardList =new ArrayList<card>();
cardlistmap=jsoupCookieCraw.getCardInfo(document);
if(!StringUtils.isEmpty(cardList)){
return XzxtRestResult.build(201,"成功获取",cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",cardlistmap);
}
}
@Override
public XzxtRestResult getCardliushui(card card) {
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=jsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
try {
document = Jsoup.connect(cardliushuiurl)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage",card.getCurPage())
.data("yhzh.zh", card.getAccount())//账号
.data("yhzh.ywsqbh", card.getApplicationNumber())//业务申请编号
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<cardliushui> cardList =new ArrayList<cardliushui>();
cardlistmap=jsoupCookieCraw.getCardLsInfo(document);
if(!StringUtils.isEmpty(cardList)){
return XzxtRestResult.build(201,"成功获取",cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",cardlistmap);
}
}
@Override
public XzxtRestResult getThirdpartys(thirdparty thirdparty) {
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=jsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
try {
document = Jsoup.connect(thirdpartyurl)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage",thirdparty.getCurPage())
.data("sfzfQq.zh", thirdparty.getZh())
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<thirdparty> thirdpartyList =new ArrayList<thirdparty>();
cardlistmap=jsoupCookieCraw.getThirdpartys(document);
if(!StringUtils.isEmpty(thirdpartyList)){
return XzxtRestResult.build(201,"成功获取",cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",cardlistmap);
}
}
}
package com.founder.service.impl;
import com.founder.jsoup.JsoupCookieCraw;
import com.founder.jsoup.SaveJsoupCookieCraw;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import com.founder.service.CardinfosService;
import com.founder.service.SaveCardinfosService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class SaveCardinfosServiceImpl implements SaveCardinfosService {
private static final Logger logger = LoggerFactory.getLogger(SaveCardinfosServiceImpl.class);
@Value("${dzpt.card.url}")
private String cardurl;
@Value("${dzpt.cardliushui.url}")
private String cardliushuiurl;
@Value("${dzpt.thirdparty.url}")
private String thirdpartyurl;
@Autowired
private SaveJsoupCookieCraw saveJsoupCookieCraw;
@Autowired
private JsoupCookieCraw jsoupCookieCraw;
@Override
public XzxtRestResult getSaveCardinfos(card card) {
String pages="";
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=saveJsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
//爬虫必须带时间参数
try {
document = Jsoup.connect(cardurl)
.cookies(cookies)
.timeout(120000)
.data("pageList.curPage",card.getCurPage())
.data("yhzh.kssj", card.getKssj())
.data("yhzh.jzsj", card.getJzsj())
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<card> cardList =new ArrayList<card>();
if("0".equals(card.getCurPage()))
{//用来查总数
cardlistmap=jsoupCookieCraw.getCardInfo(document);
pages=cardlistmap.get("recordsTotal")+"";
}
else{
cardlistmap=saveJsoupCookieCraw.getCardInfo(document);
pages= (String) cardlistmap.get("pages");
}
if(!StringUtils.isEmpty(cardList)){
return XzxtRestResult.build(201,"成功获取",pages,cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",pages,cardlistmap);
}
}
@Override
public XzxtRestResult getSaveCardliushui(card card) {
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=saveJsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
try {
document = Jsoup.connect(cardliushuiurl)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage",card.getCurPage())
.data("yhzh.zh", card.getAccount())//账号
.data("yhzh.ywsqbh", card.getApplicationNumber())//业务申请编号
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<cardliushui> cardList =new ArrayList<cardliushui>();
cardlistmap=saveJsoupCookieCraw.getCardLsInfo(document);
if(!StringUtils.isEmpty(cardList)){
return XzxtRestResult.build(201,"成功获取",cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",cardlistmap);
}
}
@Override
public XzxtRestResult getSaveThirdpartys(thirdparty thirdparty) {
Map<String, String> cookies=null;
Map<String, Object> cardlistmap=new HashMap<String,Object>();
try {
//1、登录
cookies=saveJsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
} catch (IOException e) {
e.printStackTrace();
}
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = null;
try {
document = Jsoup.connect(thirdpartyurl)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage",thirdparty.getCurPage())
.data("sfzfQq.zh", thirdparty.getZh())
.post();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(document.toString());
List<thirdparty> thirdpartyList =new ArrayList<thirdparty>();
cardlistmap=saveJsoupCookieCraw.getThirdpartys(document);
if(!StringUtils.isEmpty(thirdpartyList)){
return XzxtRestResult.build(201,"成功获取",cardlistmap);
}else {
return XzxtRestResult.build(201,"暂无数据",cardlistmap);
}
}
}
package com.founder.service.impl;
import com.founder.jsoup.JsoupCookieCraw;
import com.founder.jsoup.SaveJsoupCookieCraw;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.model.cardliushui;
import com.founder.model.thirdparty;
import com.founder.multipleThread.listThread.ListThreadPoolTool;
import com.founder.multipleThread.postThread.PostThreadPoolTool;
import com.founder.service.SaveCardinfosService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class SaveCardinfosServiceImpl1 {
private static final Logger logger = LoggerFactory.getLogger(SaveCardinfosServiceImpl1.class);
@Value("${dzpt.card.url}")
private String cardurl;
@Value("${dzpt.cardliushui.url}")
private String cardliushuiurl;
@Value("${dzpt.thirdparty.url}")
private String thirdpartyurl;
@Autowired
private SaveJsoupCookieCraw saveJsoupCookieCraw;
@Autowired
private SaveCardinfosService saveCardinfosService;
public void cardthread(){
System.out.println("执行开始");
card card = new card();
card.setCurPage("0");
card.setKssj("2019-05-01");
card.setJzsj("2019-05-29");
//获取一个月的数据
XzxtRestResult xzxtRestResult=saveCardinfosService.getSaveCardinfos(card);
int pages= Integer.parseInt(xzxtRestResult.getRediskey());
System.out.println("批处理总数========"+pages);
//1、线程批量分组页面list
PostThreadPoolTool<card> tool = new PostThreadPoolTool(10000, pages,card);
tool.setWork(new PostThreadPoolTool.Work<card>() {
@Override
public void method(int xzmc, int startIndex, int endIndex, card card) {
List<String> list = new ArrayList<String>();
for (int i = startIndex; i <= endIndex; i++) {
//System.out.println("请求第"+i+"页数据");
list.add(i + "");
}
System.out.println("线程池1==" + xzmc + "---" + Thread.currentThread().getName() + "==分组list数据" + list.toString());
thread2(1000, list, card,saveCardinfosService);
}
});
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void thread2(int singleCount, List<String> list, card yscard,SaveCardinfosService saveCardinfosService) {
ListThreadPoolTool<String> tool = new ListThreadPoolTool(singleCount, list);
final card data=yscard;
final SaveCardinfosService saveCardinfosService1= saveCardinfosService;
//final card yscard=XzxtRestResult.format(data,card.class);
tool.setWork(new ListThreadPoolTool.Work<String>() {
@Override
public void method(int xcmz, List<String> list) {//返回值
System.out.println("线程池2==" + xcmz + "---" + Thread.currentThread().getName() + "------" + list.toString());
for (int i = 0; i < list.size(); i++) {
System.out.println("调取页数" + xcmz + "---" + list.get(i));
card card=new card();
card.setCurPage(list.get(i));
card.setKssj(data.getKssj());
card.setJzsj(data.getJzsj());
//获取一个月的数据
XzxtRestResult xzxtRestResult=saveCardinfosService1.getSaveCardinfos(card);
}
}
});
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
package com.founder.task;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.multipleThread.postThread.PostThreadPoolTool;
import com.founder.service.SaveCardinfosService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.List;
/**
* Created by admin on 2019/5/29.
*/
public class CardTask {
@Autowired
private SaveCardinfosService saveCardinfosService ;
//@Scheduled(cron="0 0 12,24 * * ? ")//每天12点和24点执行
//@Scheduled(cron = "0/2 * * * * *")
public void cardthread(){
long start = System.currentTimeMillis();
card card=new card();
card.setKssj("2019-");
card.setJzsj("");
//获取一个月的数据
XzxtRestResult xzxtRestResult= saveCardinfosService.getSaveCardinfos(card);
JSONObject object= JSON.parseObject(xzxtRestResult.getData().toString());
/* int pages= (int) object.get("pages");
List<card> cards=new ArrayList<>();
//1、批量批量获取数据
PostThreadPoolTool<String> tool = new PostThreadPoolTool(1000,pages); //单个线程处理1000页
tool.setWork(new PostThreadPoolTool.Work<String>() {
@Override
public void method(int xzmc, int startIndex, int endIndex) {
for (int i = startIndex; i < endIndex; i++) {//1000 15条 15000条 1000次请求。
card.setCurPage(i+"");
//获取一个月的数据
XzxtRestResult xzxtRestResult= saveCardinfosService.getSaveCardinfos(card);
System.out.println(Thread.currentThread().getName()+"------"+xzxtRestResult.toString());
}
}
});
try {
tool.excute();
System.out.println(String.format("任务执行成功,耗时{%s}毫秒", System.currentTimeMillis() - start));
} catch (InterruptedException e) {
e.printStackTrace();
}*/
}
}
package com.founder.task;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Component;
import java.util.concurrent.Future;
@Component
public class TestTask {
//异步任务此处必须返回Future,可以是Future<String>,也可以是Future<Integer>,自己定义具体的返回内容
@Async("taskExecutor")
public Future<String> doReturn(int i){
try {
// 这个方法需要调用500毫秒
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("线程:"+Thread.currentThread().getName()+"---执行任务,用时500秒");
// 消息汇总
return new AsyncResult<String>(String.format("这个是第{%s}个异步调用的证书", i));
}
}
server:
port: 8051
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
username: XZXT
password: XzxtPwd#50
url: jdbc:oracle:thin:@77.1.24.50:1521:CQXZ
dzpt:
login:
url: http://68.89.99.2/dxzp/login.action
card:
url: http://68.89.99.2/dxzp/jsp/ajxx/yszfcx.action
cardliushui:
url: http://68.89.99.2/dxzp/jsp/ajxx/mxcxJg.action
thirdparty:
url: http://68.89.99.2/dxzp/jsp/sfzf/sfzf_all.action
third-partyliushui:
url: http://68.89.99.2/dxzp/jsp/sfzf/sfzf_all.action
\ No newline at end of file
spring.profiles.active:dev
#核心线程数
ThreadPool.corePoolSize=30
#最大线程数
ThreadPool.maxPoolSize=200
#任务队列容量(阻塞队列)
ThreadPool.queueCapacity=10
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.mode=LEGACYHTML5
var AjaxxmlHttp = false;
var AjaxmyAfisT = false;
var EnableZwSystem = 1;
var AfisScanMode=1;//判断是扫描还是一体化采集 1代表一体化采集 0代表扫描
var clientVersion ="2"; //客户端程序版本
//主要用的就是这个函数
function scanPersonInfotoAfisEx(theForm,Ssystime,status) {
var zhiwenid,rybh;
var ri=1;
if(theForm){
clientVersion = theForm.clientVersion.value; //获取采集程序客户端版本
rybh = theForm.rybh.value;
zhiwenid = theForm.szzwbh.value;
theForm.cjfs.value=AfisScanMode;
}
ri=scanPersonInfotoAfis(zhiwenid,rybh,Ssystime,status);
return ri;
}
function scanPersonInfotoAfis(zhiwenid,rybh,Ssystime,status) {
var ver,rstr;
var ret,sret;
var myAfis = null;
if(EnableZwSystem) {
myAfis =GetAfisObject(1);
}
if(myAfis){
try{
ver = myAfis.GetProgramVersion();
if(ver != null && ver != "" && ver.length>1){
ver = ver.substr(0,1);
if(ver == "2"){
clientVersion = "2";
}
}
}catch(e){
clientVersion = "2";
}
ver=myAfis.GetVersion();
if(zhiwenid==""){
zhiwenid = rybh.substr(1);
}
if(zhiwenid != ""){
rstr = GettoAfisStr(1,rybh,zhiwenid);
if(rybh.substr(1)!=zhiwenid){
rybh = "R"+zhiwenid;
}
if(rstr == "NULL"){
alert("无相关人员基本信息!");
return -9;
}else if(rstr == "False"){
alert("获取人员基本信息失败,请联系技术人员!");
return -9;
}
var rete = myAfis.SetPersonDataStatus(zhiwenid,status);
if(rete<0){
alert("传入参数出错!");
return -9;
}
if(clientVersion=="2"){
//把人像信息传给控件
if(frminput.ZMZPL64!=undefined && frminput.ZMZPL64!="undefined" && frminput.ZMZPL64.value>0){
myAfis.SetPersonData(rybh,41,1,1,0,0,frminput.ZMZPL64.value,frminput.zmzpStr64.value);
}
if(frminput.CMZPL64!=undefined && frminput.CMZPL64!="undefined" && frminput.CMZPL64.value>0){
myAfis.SetPersonData(rybh,42,1,1,0,0,frminput.CMZPL64.value,frminput.cmzpStr64.value);
}
if(frminput.YCMZPL64!=undefined && frminput.YCMZPL64!="undefined" && frminput.YCMZPL64.value>0){
myAfis.SetPersonData(rybh,43,1,1,0,0,frminput.YCMZPL64.value,frminput.ycmzpStr64.value);
}
//end
}
sret=myAfis.ScanFingerImage(zhiwenid,rybh,rstr);
// >0 表示已保存, 接口调用成功
// =0 表示未保存, 接口调用成功
// <0 表示未保存, 接口调用失败
if(sret>0){
var bContinue=0;
while (bContinue<1){
var b = myAfis.IsFinished();
if (b){
ret = myAfis.GetLastSaveResult(); //处理文件返回值
bContinue = 1;
return ret;
}
}
}
}
else {
alert("指纹编号不能为空!");
return -9;
}
} else {
alert("请安装相关指纹系统!");
return -9;
}
}
//调用指纹的客户端程序
function GetAfisObject(zwtype)
{
if(typeof(zwtype) == "undefined"){
if(AjaxmyAfisT){
return(AjaxmyAfisT);
}
zwtype = 1;
}
if(!AjaxmyAfisT){
try{
AjaxmyAfisT =new ActiveXObject("HLPrtScan.Document");
if(AjaxmyAfisT){
EnableZwSystem = 1;
}
else{
alert("调用汉林采集程序发生异常!");
}
}
catch(e){
alert("调用汉林采集程序发生异常!");
AjaxmyAfisT = null;
EnableZwSystem = 0;
}
}
return(AjaxmyAfisT);
}
function GettoAfisStr(zwtype,rybh,zwbh)
{
var ver,rstr;
var myAfis = null;
if(EnableZwSystem) {
myAfis =GetAfisObject();
}
if(myAfis){
ver=myAfis.GetVersion();
if(!AjaxxmlHttp){
AjaxxmlHttp = getHTTPObject();
}
AjaxxmlHttp.open("GET","ajaxGettoAfisStr?ver="+ver+"&psnid="+rybh+"&clientVersion="+clientVersion,false);
try{
AjaxxmlHttp.send(null);
}
catch(e){
alert("获取人员文字信息异常!");
}
if(AjaxxmlHttp.readyState == 4){
if(AjaxxmlHttp.status == 200){
rstr = AjaxxmlHttp.responseText;
rstr = trim1013(rstr);
if(rstr==""){
alert("获取人员文字信息异常!");
return("False");
}
return(rstr);
}else{
alert("获取人员文字信息异常!");
return("False");
}
}
}else
alert("请安装相关指纹系统!");
}
function getHTTPObject()
{
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("MSxml2.XMLHTTP");
}catch(e){
try{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
xmlHttp = false;
}
}
}
return(xmlHttp);
}
function trim1013(str)
{
var ch,s,e;
s = 0;
e = str.length;
for(var i=0; i < str.length; i++){
ch = str.charAt(i);
if(ch != '\n' && ch != '\r') {
s = i;
break;
}
}
for(i=str.length - 1; i >= s ; i--){
ch = str.charAt(i);
if(ch != '\n' && ch != '\r') {
e = i + 1;
break;
}
}
return(str.substring(s,e));
}
\ No newline at end of file
function creatPicOBJ(){
var obj;
try{
obj =new ActiveXObject("HLPhotoCatcher.Document");
}
catch(ex){
try{
obj =new ActiveXObject("CatchPhotoImg.Document");
}
catch(ee){
alert("创建控件发生异常!");
}
}
return obj;
}
var rxljObject;
var index;
function getRxbclj(index_){
index = index_;
getTp();
}
function getTp(){
var xmlFld="c:\\";
var fso = new ActiveXObject("Scripting.FileSystemObject");
var fldr = fso.FolderExists(xmlFld);
if(!fldr){
fso.CreateFolder(xmlFld);
}
if(index==2){
try{setTP(frminput.R_ZMZP64,xmlFld+frminput.rybh.value+index+".jpg",frminput.imghead2,frminput.xm);}catch(e){}
document.getElementById("zmzpflag").value="1";
document.getElementById("R_ZMZP_File").value="";
}else if(index==3){
try{setTP(frminput.R_CMZP64,xmlFld+frminput.rybh.value+index+".jpg",frminput.imghead3,frminput.xm);}catch(e){}
document.getElementById("cmzpflag").value="1";
document.getElementById("R_CMZP_File").value="";
}else if(index==4){
try{setTP(frminput.R_YCMZP64,xmlFld+frminput.rybh.value+index+".jpg",frminput.imghead4,frminput.xm);}catch(e){}
document.getElementById("ycmzpflag").value="1";
document.getElementById("R_YCMZP_File").value="";
}
}
var myAfis;
function setTP(tpCode,tpFile,tpShow,tpName){
//if(myAfis == undefined||myAfis==null ){
myAfis = creatPicOBJ();
//}
if(myAfis==undefined){
alert("请安装采集控件!");
return;
}
if(tpName.value==null||tpName.value==undefined||tpName.value==""){
alert("请先录入姓名!");
return;
}
myAfis.SetBmpFileName(tpFile);
myAfis.SetPersonName(tpName.value);
var str=myAfis.GetOneAfisPhotoForWeb();
tpCode.value = str;
tpShow.style.display = 'block';
//$("#imghead2").attr("src","data:image/gif;base64,"+str);
//$("#imghead2").attr("src","static/img/Personrightside.jpg?t=1");
tpShow.src = "data:image/gif;base64,"+str;
var rmShow = document.getElementById(tpShow.name.substring(1));
rmShow.src = tpFile;
myAfis=null;
}
function configTP(){
var myAfisOBJ = creatPicOBJ();
if(myAfisOBJ == undefined){
alert("请安装采集控件!");
return;
}
myAfisOBJ.SetUp();
}
//清空file的value值
function deleteFileVal(fileId){
var file = $("#"+fileId) ;
file.after(file.clone().val(""));
file.remove();
}
\ No newline at end of file
/*
* 通用的js function放置在此
*/
/*填写身份证号后,自动填充出生年月日*/
function AotuFillRq(sfzh,rqid){
var sfzhstr = sfzh.value;
if(sfzhstr!=""){
var nyr=sfzhstr.substr(6,8);
var nian=nyr.substr(0,4);
var yue=nyr.substr(4,2);
var ri=nyr.substr(6,2);
var csrq=nian+"-"+yue+"-"+ri;
document.getElementById(rqid).value=csrq;
}
}
/*
* obj:传入同名的checkbox的值,类似如:document.all.ids
* 功能:获得查询列表复选框中多条用逗号隔开的编号
* */
function getPids(obj){
var counter=0;
var numbervalue="";
if(obj==null){
return "0";
}
if (obj.length>0){
for(var i=0;i<obj.length;i++){
if(obj[i].checked){
counter++;
numbervalue+=","+obj[i].value;
}
}
}else{
if(obj.checked==true){
numbervalue=obj.value
counter=1
}else{
counter=0
}
}
if(counter >0){
//列表有数据,也有选中的记录
numbervalue=numbervalue.replace(/^[,]+|[,]+$/g,'');//削掉字符串两端逗号
return(numbervalue);
}else{
//列表有数据,但是没有选中的记录
return("-1");
}
}
/*
* obj:传入同名的checkbox的值,类似如:document.all.ids
* 功能:获得查询列表复选框中多条用#隔开的编号
* */
function getnums(obj){
var counter=0;
var numbervalue="";
if(obj==null){
return "0";
}
if (obj.length>0){
for(var i=0;i<obj.length;i++){
if(obj[i].checked){
counter++;
numbervalue+=obj[i].value+"#";
}
}
}else{
if(obj.checked==true){
numbervalue=obj.value
counter=1
}else{
counter=0
}
}
if(counter==0){
return("-1")
}
return(numbervalue)
}
/*
* obj:传入同名的checkbox的值,类似如:document.all.ids
* 功能:获得查询列表复选框中单条记录编号
* */
function getPid(obj){
var counter=0;
var numbervalue="";
if(obj==null){
return "0";
}
if (obj.length>0){
for(var i=0;i<obj.length;i++){
if(obj[i].checked){
counter++;
numbervalue=obj[i].value;
}
}
}else{
if(obj.checked==true){
numbervalue=obj.value
counter=1
}else{
counter=0
}
}
if(counter>1){
//alert("只能选择一条记录")
return("-2")
}
if(counter==0){
//alert("没有选择记录")
return("-1")
}
return(numbervalue);
}
//防止回退
$(function(){
document.getElementsByTagName("body")[0].onkeydown =function(){
//获取事件对象
var elem = event.relatedTarget || event.srcElement || event.target ||event.currentTarget;
if(event.keyCode==8){//判断按键为backSpace键
//获取按键按下时光标做指向的element
var elem = event.srcElement || event.currentTarget;
//判断是否需要阻止按下键盘的事件默认传递
var name = elem.nodeName;
if(name!='INPUT' && name!='TEXTAREA'){
return _stopIt(event);
}
var type_e = elem.type.toUpperCase();
if(name=='INPUT' && (type_e!='TEXT' && type_e!='TEXTAREA' && type_e!='PASSWORD' && type_e!='FILE')){
return _stopIt(event);
}
if(name=='INPUT' && (elem.readOnly==true || elem.disabled ==true)){
return _stopIt(event);
}
}
}
});
function _stopIt(e){
if(e.returnValue){
e.returnValue = false ;
}
if(e.preventDefault ){
e.preventDefault();
}
return false;
}
//打开新窗口
function openBrow(p_url){
var str_features;
var n_left=0;
var n_top=0;
var p_title="详情显示";
var p_w=screen.availWidth;
var p_h=screen.availHeight-100;
n_left = 0; //(screen.availWidth - p_w) / 2;
n_top = 0; //(screen.availHeight - p_h) / 2;
str_features = "width="+p_w+",height="+p_h+",top="+n_top+",left="+n_left+",toolbar=yes,location=no,status=no,menubar=yes,resizable=yes,scrollbars=1";
window.open(p_url,'newwindow',str_features);
}
//关闭当前页面
function closeWin(){
var browserName=navigator.appName;
if(browserName!="Microsoft Internet Explorer"){
window.close();
}else{
window.opener=null;
window.open('','_self');
window.close();
}
}
/*
* 导航
*/
jQuery(document).ready(function (){
//获取的navgation字符串
var navstr="";
navstr=$("#navgation").val();
//navgation的value格式为:"title1|案件信息管理|#:title2|案件办理|#",最后一个标签写成#
if(typeof(navstr)!="undefined"){
if(navstr!="" && navstr.indexOf(':')>=0){
//返回":"分割的临时数组
var temp1=navstr.split(':');
var navstr="您的位置:";
for (var i=0;i<temp1.length;i++)
{
var tempTitle=temp1[i];
if(tempTitle!="" && tempTitle.indexOf('|')>=0){
//导航链接的id
var navId="";
//导航title
var navTitle="";
//导航链接
var navUrl="";
var temp2=tempTitle.split("|");
//循环生成导航标题
navId=temp2[0];
navTitle=temp2[1];
navUrl=temp2[2];
if(i==temp1.length-1){
navstr+="<span class=\"font_weizhi_ts\">"+navTitle+"</span>";
}else{
if(navUrl=="#"){
navstr+="<a href=\"#\" class=\"font_weizhi\">"+navTitle+" </a>&gt;";
}else{
navstr+="<a href=\""+navUrl+"\" class=\"font_weizhi\" target=\"mainFrame\">"+navTitle+" </a>&gt;";
}
}
}
}
if(window.parent.parent.frames["topFrame"]!=null&&window.parent.parent.frames["topFrame"]!=""&&window.parent.parent.frames["topFrame"]!="undifined"){
$(window.parent.parent.frames["topFrame"].document.getElementById("rootnav")).html(navstr);
}
}
}
});
/**
* 打开模态对话框
* @param p_url 窗口地址
* @param p_title 窗口标题
* @param p_w
* @param p_h
* @param iscroll
*/
function openModelDialog(p_url,p_title,p_w,p_h,iscroll){
var str_features;
var n_left=0;
var n_top=0;
n_left = (screen.availWidth - p_w) / 2;
n_top = (screen.availHeight - p_h) / 2;
str_features = "status=no;resizable=no;center=yes;scroll="+iscroll+";";
str_features += "dialogWidth="+p_w+"px;dialogHeight:"+p_h+"px;dialogLeft:"+n_left+"px;dialogTop:"+n_top+"px";
window.showModalDialog(p_url,p_title,str_features);
}
//设置网页打印的页眉页脚为空
var HKEY_Root,HKEY_Path,HKEY_Key;
HKEY_Root="HKEY_CURRENT_USER";
HKEY_Path="\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
function PageSetup_Null() {
try{
var Wsh=new ActiveXObject("WScript.Shell");
HKEY_Key="header";
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
HKEY_Key="footer";
Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
}catch(e){}
}
/**
*根据codeType和codeVal获取中文名称 2014-7-3
*/
function getNameByCode(codeType,codeVal){
var codeText="";
if($.trim(codeVal) == "")
return codeText;
$.ajax({
url:"queryNameByCodeAct.action",
type:"POST",
data:{code_val:codeVal,code_type:codeType},
async:false,
dataType:"json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("请求失败!");
},
success:function(dictUtil){
if(dictUtil != null){
codeText = dictUtil.itemname;
}
}
});
return codeText;
}
console.log("demoJs include !");
\ No newline at end of file
//加载中间内容
$(function () {
//var content=$(".page-content").clone();
//$(".wrapper").append(content.show());
$(".wrapper").append($(".page-content"));
//监控页面数据---------------
// 基于准备好的dom,初始化echarts实例
$("#main").width($(".layui-elem-quote").width());
/* var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title:{
text:'原数据 数据统计'
},
tooltip: {},
legend: {
data:['数据总量','增量(变更数据)']
},
xAxis: {
data: []
},
yAxis: {},
series: [{
name: '数据总量',
type: 'bar',
data: []
},{
name:'增量(变更数据)',
type:'bar',
data:[]
}]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option)*/
//初始化echarts实例
var myChart = echarts.init(document.getElementById('chartmain'));
//异步加载数据
$.get('data.json').done(function (data) {
data = eval('('+data+')');
debugger;
myChart.setOption({
xAxis:{
data:data.name
},
series:[
{
//根据名字对应到相应的系列
name:"数据总量",
data:data.data
},{
//根据名字对应到相应的系列
name:"增量(变更数据)",
data:data.data
}
]
})
})
})
\ No newline at end of file
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.
//修改采集状态js
function editCjzt(bm,bz,asjbh){//bm:对应权限表BM字段,bz:1新增、2修改,asjbh:案件编号
$.ajax({
type: "POST",
url: "editCjztjson.action",
data: {asjbh:asjbh,bm:bm,bz:bz},
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
},
success: function(msg){
}
});
}
function editCjzt1(bm,bz,asjbh,wpzl){//bm:对应权限表BM字段,bz:1新增、2修改,asjbh:案件编号,wpzl:损失物品(SSWP)或者非法物品(FFWP)或者 作案工具(ZAGJ)
$.ajax({
type: "POST",
url: "editCjztjson.action",
data: {asjbh:asjbh,bm:bm,bz:bz,wpzl:wpzl},
dataType: "json",
error: function(XMLHttpRequest, textStatus, errorThrown) {
},
success: function(msg){
}
});
}
/*!
* jquery.base64.js 0.0.3 - https://github.com/yckart/jquery.base64.js
* Makes Base64 en & -decoding simpler as it is.
*
* Based upon: https://gist.github.com/Yaffle/1284012
*
* Copyright (c) 2012 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/02/10
**/
;(function($) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
a256 = '',
r64 = [256],
r256 = [256],
i = 0;
var UTF8 = {
/**
* Encode multi-byte Unicode string into utf-8 multiple single-byte characters
* (BMP / basic multilingual plane only)
*
* Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
*
* @param {String} strUni Unicode string to be encoded as UTF-8
* @returns {String} encoded string
*/
encode: function(strUni) {
// use regular expressions & String.replace callback function for better efficiency
// than procedural approaches
var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
})
.replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
});
return strUtf;
},
/**
* Decode utf-8 encoded string back into multi-byte Unicode characters
*
* @param {String} strUtf UTF-8 string to be decoded back to Unicode
* @returns {String} decoded string
*/
decode: function(strUtf) {
// note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!
var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
function(c) { // (note parentheses for precence)
var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
return String.fromCharCode(cc);
})
.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
function(c) { // (note parentheses for precence)
var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
return String.fromCharCode(cc);
});
return strUni;
}
};
while(i < 256) {
var c = String.fromCharCode(i);
a256 += c;
r256[i] = i;
r64[i] = b64.indexOf(c);
++i;
}
function code(s, discard, alpha, beta, w1, w2) {
s = String(s);
var buffer = 0,
i = 0,
length = s.length,
result = '',
bitsInBuffer = 0;
while(i < length) {
var c = s.charCodeAt(i);
c = c < 256 ? alpha[c] : -1;
buffer = (buffer << w1) + c;
bitsInBuffer += w1;
while(bitsInBuffer >= w2) {
bitsInBuffer -= w2;
var tmp = buffer >> bitsInBuffer;
result += beta.charAt(tmp);
buffer ^= tmp << bitsInBuffer;
}
++i;
}
if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
return result;
}
var Plugin = $.base64 = function(dir, input, encode) {
return input ? Plugin[dir](input, encode) : dir ? null : this;
};
Plugin.btoa = Plugin.encode = function(plain, utf8encode) {
plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
plain = code(plain, false, r256, b64, 8, 6);
return plain + '===='.slice((plain.length % 4) || 4);
};
Plugin.atob = Plugin.decode = function(coded, utf8decode) {
coded = String(coded).split('=');
var i = coded.length;
do {--i;
coded[i] = code(coded[i], true, r64, a256, 6, 8);
} while (i > 0);
coded = coded.join('');
return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
};
}(jQuery));
\ No newline at end of file
/*! layer mobile-v2.0.0 Web弹层组件 MIT License http://layer.layui.com/mobile By 贤心 */
;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
\ No newline at end of file
.layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}
\ No newline at end of file
$(function(){
$(".check-default").click(function(){
var n=$(this).find(".check-box");
var status=n.hasClass("ck-active");
n.toggleClass("ck-active").attr({status:!status})})
});
$(function(){
var n=$(".input-part input");
n.on("focus",function(){$(this).parents(".input-part").addClass("input-active")
}).on("blur",function(){$(this).parents(".input-part").removeClass("input-active")})
});
//点击登录功能
$("#login-btn").off("click").on("click",function(){
var userName=$("#login_username").val();
var psw=$("#login_password").val();
if(userName){
if(psw){
doLogin(userName,psw);
}else{
//密码不能为空
alert("密码不能为空");
}
}else{
//用户名不能为空
alert("用户名不能为空");
}
});
function doLogin(userName,psw){
$.ajax({
url:"doLogin",
data:{"userId":userName,"psw":psw},
type:"post",
dataType:"json",
success:function(data){
var state=data.state;
var msg=data.msg;
if(state&&state=="success"){
window.location.href="toHome";
}else{
alert(msg);
}
}
});
}
\ No newline at end of file
function showpic1(sender){
if( !sender.value.match( /.jpg/i ) ){
alert("二代证照片类型不正确!","提示");
//清空input type=file的value
deleteFileVal("R_EDZZP_File");
return false;
}
//得到图片大小
var fileSize = getImgSize(sender);
var fileflag = fileChangeNew(fileSize);
if(fileflag==0){
//照片不满足上传要求
return false;
}else{
//满足上传的大小要求
var imgobj = document.getElementById( 'imghead1' );
var imgobjstr = document.getElementById( 'preview1' );
showImg(sender,imgobj,imgobjstr,"R_EDZZP64","edzzpflag");
}
}
function showpic2(sender){
if( !sender.value.match( /.jpg/i ) ){
alert("正面照片类型不正确!","提示");
deleteFileVal("R_ZMZP_File");
return false;
}
//得到图片大小
var fileSize = getImgSize(sender);
var fileflag = fileChangeNew(fileSize);
if(fileflag==0){
//照片不满足上传要求
return false;
}else{
//满足上传的大小要求
var imgobj = document.getElementById( 'imghead2' );
var imgobjstr = document.getElementById( 'preview2' );
showImg(sender,imgobj,imgobjstr,"R_ZMZP64","zmzpflag");
}
}
function showpic3(sender){
if( !sender.value.match( /.jpg/i ) ){
alert("侧面照片类型不正确!","提示");
deleteFileVal("R_CMZP_File");
return false;
}
//得到图片大小
var fileSize = getImgSize(sender);
var fileflag = fileChangeNew(fileSize);
if(fileflag==0){
//照片不满足上传要求
return false;
}else{
//满足上传的大小要求
var imgobj = document.getElementById( 'imghead3' );
var imgobjstr = document.getElementById( 'preview3' );
showImg(sender,imgobj,imgobjstr,"R_CMZP64","cmzpflag");
}
}
function showpic4(sender){
if( !sender.value.match( /.jpg/i ) ){
alert("侧面照片类型不正确!","提示");
deleteFileVal("R_YCMZP_File");
return false;
}
//得到图片大小
var fileSize = getImgSize(sender);
var fileflag = fileChangeNew(fileSize);
if(fileflag==0){
//照片不满足上传要求
return false;
}else{
//满足上传的大小要求
var imgobj = document.getElementById( 'imghead4' );
var imgobjstr = document.getElementById( 'preview4' );
showImg(sender,imgobj,imgobjstr,"R_YCMZP64","ycmzpflag");
}
}
function showpic5(sender){
if( !sender.value.match( /.jpg/i ) ){
alert("正面照片类型不正确!","提示");
var file = $(sender);
file.after(file.clone().val(""));
file.remove();
return false;
}
//得到图片大小
var fileSize = getImgSize(sender);
var fileflag = fileChangeNew(fileSize);
if(fileflag==0){
//照片不满足上传要求
return false;
}else{
//满足上传的大小要求
showImg(sender,$(sender).parent().find("img"));
}
}
//清空file的value值
function deleteFileVal(fileId){
var file = $("#"+fileId) ;
file.after(file.clone().val(""));
file.remove();
}
function fileChangeNew(fileSize) {
if (fileSize<0) {
alert("图片不正确,请重新输入!","提示");
return 0;
}else{
//1024*1024=1048576
var size = fileSize / 1048576;
if(size>1048576){
alert("照片不能大于1M,请重新选择照片","提示");
return 0;
}else if(size==0){
alert("照片不能为0K,请重新选择照片","提示");
return 0;
}
return 1;
}
}
//旧方法使用ActiveXObject操作文件,常出问题
function fileChange(target,id) {
var isIE = /msie/i.test(navigator.userAgent) && !window.opera;
var fileSize = 0;
if (isIE && !target.files) {
var filePath = target.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,请重新输入!","提示");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML;
return 0;
}
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
} else {
fileSize = target.files[0].size;
}
var size = fileSize / 1048576;
if(size>1024){
alert("照片不能大于1M,请重新选择照片","提示");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML;
return 0;
}
if(size<=0){
alert("照片不能为0K,请重新选择照片","提示");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML
return 0;
}
}
function checkPic(){
if (document.frminput.R_ZMZP_File.value != "" && document.frminput.pic2.fileSize < 0) {
alert("正面照片类型不正确");
return false;
}
if (document.frminput.pic2.fileSize > 61440)
{
alert("正面照片不能大于60K");
return false;
}
if (document.frminput.R_CMZP_File.value != "" && document.frminput.pic3.fileSize < 0) {
alert("侧面照片类型不正确");
return false;
}
if (document.frminput.pic3.fileSize > 61440)
{
alert("侧面照片不能大于60K");
return false;
}
if (document.frminput.R_YCMZP_File.value != "" && document.frminput.pic4.fileSize < 0) {
alert("侧面照片类型不正确");
return false;
}
if (document.frminput.pic4.fileSize > 61440)
{
alert("侧面照片不能大于60K");
return false;
}
return true;
}
/**
* @param fileObj 通过操作inuput或得的文件对象
* @param path input文件域的文件路径
* @returns 得到图片的大小
*/
function getImgSize(sender){
var fileSize;
var FileReader = window.FileReader;
if (FileReader) {//chrome浏览器处理
var file = sender.files[0];
fileSize=file.size;//文件大小
}else {//其他浏览器处理
var filePath = sender.value;
var fileSystem = new ActiveXObject("Scripting.FileSystemObject");
if(!fileSystem.FileExists(filePath)){
alert("附件不存在,请重新输入!","提示");
var file=document.getElementById(id);
file.outerHTML=file.outerHTML;
return 0;
}
var file = fileSystem.GetFile (filePath);
fileSize = file.Size;
}
return fileSize;
}
/**
* @param sender
* @param imgobj
* 说明:兼容谷歌和IE
*/
function showImg(sender,imgobj,imgobjstr,picStr,flagname){
var FileReader = window.FileReader;
if (FileReader) {//chrome浏览器处理
document.getElementById(flagname).value="1";
var reader = new FileReader(),
file = sender.files[0];
reader.onload = function(e) {
imgobj.src=e.target.result;
document.getElementById(picStr).value=e.target.result;
};
reader.readAsDataURL(file);
}else {//IE等其他浏览器处理
document.getElementById(flagname).value="0";
var objPic = imgobj;
var objLocalpic = imgobjstr;
sender.select();
var imgSrc = document.selection.createRange().text;
objLocalpic.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;
objPic.style.display = 'none';
objLocalpic.style.width = 185 + 'px';
objLocalpic.style.height = 230 + 'px';
}
}
function getHTTPObject()
{
var xmlHttp;
if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject){
try{
xmlHttp = new ActiveXObject("MSxml2.XMLHTTP");
}catch(e){
try{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
xmlHttp = false;
}
}
}
return(xmlHttp);
}
\ No newline at end of file
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){factory(require("jquery"))}else{factory(jQuery)}})(function($){var debugMode=false;var isOperaMini=Object.prototype.toString.call(window.operamini)==="[object OperaMini]";var isInputSupported="placeholder"in document.createElement("input")&&!isOperaMini&&!debugMode;var isTextareaSupported="placeholder"in document.createElement("textarea")&&!isOperaMini&&!debugMode;var valHooks=$.valHooks;var propHooks=$.propHooks;var hooks;var placeholder;var settings={};if(isInputSupported&&isTextareaSupported){placeholder=$.fn.placeholder=function(){return this};placeholder.input=true;placeholder.textarea=true}else{placeholder=$.fn.placeholder=function(options){var defaults={customClass:"placeholder"};settings=$.extend({},defaults,options);return this.filter((isInputSupported?"textarea":":input")+"["+(debugMode?"placeholder-x":"placeholder")+"]").not("."+settings.customClass).not(":radio, :checkbox, [type=hidden]").bind({"focus.placeholder":clearPlaceholder,"blur.placeholder":setPlaceholder}).data("placeholder-enabled",true).trigger("blur.placeholder")};placeholder.input=isInputSupported;placeholder.textarea=isTextareaSupported;hooks={get:function(element){var $element=$(element);var $passwordInput=$element.data("placeholder-password");if($passwordInput){return $passwordInput[0].value}return $element.data("placeholder-enabled")&&$element.hasClass(settings.customClass)?"":element.value},set:function(element,value){var $element=$(element);var $replacement;var $passwordInput;if(value!==""){$replacement=$element.data("placeholder-textinput");$passwordInput=$element.data("placeholder-password");if($replacement){clearPlaceholder.call($replacement[0],true,value)||(element.value=value);$replacement[0].value=value}else if($passwordInput){clearPlaceholder.call(element,true,value)||($passwordInput[0].value=value);element.value=value}}if(!$element.data("placeholder-enabled")){element.value=value;return $element}if(value===""){element.value=value;if(element!=safeActiveElement()){setPlaceholder.call(element)}}else{if($element.hasClass(settings.customClass)){clearPlaceholder.call(element)}element.value=value}return $element}};if(!isInputSupported){valHooks.input=hooks;propHooks.value=hooks}if(!isTextareaSupported){valHooks.textarea=hooks;propHooks.value=hooks}$(function(){$(document).delegate("form","submit.placeholder",function(){var $inputs=$("."+settings.customClass,this).each(function(){clearPlaceholder.call(this,true,"")});setTimeout(function(){$inputs.each(setPlaceholder)},10)})});$(window).bind("beforeunload.placeholder",function(){var clearPlaceholders=true;try{if(document.activeElement.toString()==="javascript:void(0)"){clearPlaceholders=false}}catch(exception){}if(clearPlaceholders){$("."+settings.customClass).each(function(){this.value=""})}})}function args(elem){var newAttrs={};var rinlinejQuery=/^jQuery\d+$/;$.each(elem.attributes,function(i,attr){if(attr.specified&&!rinlinejQuery.test(attr.name)){newAttrs[attr.name]=attr.value}});return newAttrs}function clearPlaceholder(event,value){var input=this;var $input=$(this);if(input.value===$input.attr(debugMode?"placeholder-x":"placeholder")&&$input.hasClass(settings.customClass)){input.value="";$input.removeClass(settings.customClass);if($input.data("placeholder-password")){$input=$input.hide().nextAll('input[type="password"]:first').show().attr("id",$input.removeAttr("id").data("placeholder-id"));if(event===true){$input[0].value=value;return value}$input.focus()}else{input==safeActiveElement()&&input.select()}}}function setPlaceholder(event){var $replacement;var input=this;var $input=$(this);var id=input.id;if(event&&event.type==="blur"&&$input.hasClass(settings.customClass)){return}if(input.value===""){if(input.type==="password"){if(!$input.data("placeholder-textinput")){try{$replacement=$input.clone().prop({type:"text"})}catch(e){$replacement=$("<input>").attr($.extend(args(this),{type:"text"}))}$replacement.removeAttr("name").data({"placeholder-enabled":true,"placeholder-password":$input,"placeholder-id":id}).bind("focus.placeholder",clearPlaceholder);$input.data({"placeholder-textinput":$replacement,"placeholder-id":id}).before($replacement)}input.value="";$input=$input.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",$input.data("placeholder-id")).show()}else{var $passwordInput=$input.data("placeholder-password");if($passwordInput){$passwordInput[0].value="";$input.attr("id",$input.data("placeholder-id")).show().nextAll('input[type="password"]:last').hide().removeAttr("id")}}$input.addClass(settings.customClass);$input[0].value=$input.attr(debugMode?"placeholder-x":"placeholder")}else{$input.removeClass(settings.customClass)}}function safeActiveElement(){try{return document.activeElement}catch(exception){}}});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
var stompClient = null;
$("#loadding-zdy").show();
//加载完浏览器后 调用connect(),打开双通道
$(function(){
//打开双通道
connect()
$(window).resize(function(){
$("iframe").contents().find('body').css({"min-height":$(document).height()-104});
$("iframe").height($(document).height()-104);
})
})
//强制关闭浏览器 调用websocket.close(),进行正常关闭
window.onunload = function() {
disconnect()
}
function connect(){
var socket = new SockJS('http://localhost:9022/alldata'); //连接SockJS的endpoint名称为"endpointOyzc"
var res="";
var res2="";
stompClient = Stomp.over(socket);//使用STMOP子协议的WebSocket客户端
stompClient.connect({},function(frame){//连接WebSocket服务端
console.log('Connected:' + frame);
//通过stompClient.subscribe订阅/topic/getResponse 目标(destination)发送的消息
stompClient.subscribe('/topic/getResponse',function(response){
res=showResponse(JSON.parse(response.body));
});
});
return res
}
//关闭双通道
function disconnect(){
if(stompClient != null) {
stompClient.disconnect();
}
console.log("Disconnected");
}
function showResponse(message){
debugger;
var response = $("#response");
var core = new Array();
var allnum = new Array();
var updatenum = new Array();
for(var i=0;i<message.length;i++){
var solrhome=message[i].solrhomes;
var numFound=message[i].numFound;
var updatecount=message[i].updatecount;
var uestimes=message[i].uestimes;
var flag=message[i].flag
core.push(solrhome);
allnum.push(numFound);
updatenum.push(updatecount);
}
//指定图标的配置和数据
var option = {
title:{
text:'',
textStyle:{ color:'#fff' }
},
toolbox: {
show : true,
feature : {
dataView : {show: true, readOnly: false,iconStyle:{ color:'rgb(255, 255, 255)',borderColor:"#fff"}},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
tooltip: {},
legend: {
data:['数据总量','数据增量'],
textStyle: {
color: '#fff'
}
},
xAxis: {
data:[],
axisLabel: {
show: true,
textStyle: {
color: '#fff',
borderColor:'#fff',
lineStyle:{
color:'#fff'
}
}
}
},
yAxis: {
axisLabel: {
show: true,
textStyle: {
color: '#fff',
lineStyle:{
color:'#fff'
}
}
},
axisLine: {
show: true, // Y轴线
lineStyle: {
type: 'dashed',
color: '#fff'
}
},
},
series: [{
name: '数据总量',
type: 'bar',
data: [],
color:['#fff'],
itemStyle : {
normal : {
lineStyle:{
color:'#00FF00' //线的颜色
}
}
},
},{
name: '数据增量',
type: 'bar',
data: [],
color:['#fff'],
itemStyle : {
normal : {
lineStyle:{
color:'#00FF00' //线的颜色
}
}
},
}]
};
//初始化echarts实例
var myChart = echarts.init(document.getElementById('chartmain'));
//使用制定的配置项和数据显示图表
myChart.setOption(option);
//异步加载数据
myChart.setOption({
xAxis:{
data:core
},
series:[
{
//根据名字对应到相应的系列
name:"数据总量",
data:allnum
},
{
//根据名字对应到相应的系列
name:"数据增量",
data:updatenum
}
]
})
//获取数据后,隐藏loading动画
//myChart.hideLoading();
//表格
layui.use('table', function(){
var table = layui.table;
//展示已知数据
table.render({
elem: '#demo'
,cols: [[ //标题栏
{field: 'solrhomes', title: '实例名', width: 400, sort: true}
,{field: 'numFound', title: '数据总量', width: 150}
,{field: 'updatecount', title: '数据增量', minWidth: 150}
,{field: 'uestimes', title: '耗时', minWidth: 150}
]]
,data:message
//,skin: 'line' //表格风格
,even: true
//,page: true //是否显示分页
//,limits: [5, 7, 10]
//,limit: 5 //每页默认显示的数量
});
});
}
\ No newline at end of file
var stompClient = null;
//$("#loadding-zdy").show();
//加载完浏览器后 调用connect(),打开双通道
$(function(){
//打开双通道
connect()
$(window).resize(function(){
$("iframe").contents().find('body').css({"min-height":$(document).height()-104});
$("iframe").height($(document).height()-104);
})
})
//强制关闭浏览器 调用websocket.close(),进行正常关闭
window.onunload = function() {
disconnect()
}
function connect(){
var socket = new SockJS('http://localhost:9022/alldata2'); //连接SockJS的endpoint名称为"endpointOyzc"
var res="";
var res2="";
stompClient = Stomp.over(socket);//使用STMOP子协议的WebSocket客户端
stompClient.connect({},function(frame){//连接WebSocket服务端
console.log('Connected:' + frame);
//通过stompClient.subscribe订阅/topic/getResponse 目标(destination)发送的消息
stompClient.subscribe('/topic/getResponse2',function(response){
res=showResponse(JSON.parse(response.body));
});
});
return res
}
//关闭双通道
function disconnect(){
if(stompClient != null) {
stompClient.disconnect();
}
console.log("Disconnected");
}
function showResponse(message){
debugger;
var response = $("#response");
var core = new Array();
var allnum = new Array();
var updatenum = new Array();
for(var i=0;i<message.length;i++){
var solrhome=message[i].solrhomes;
var numFound=message[i].numFound;
var updatecount=message[i].updatecount;
var uestimes=message[i].uestimes;
var flag=message[i].flag
core.push(solrhome);
allnum.push(numFound);
updatenum.push(updatecount);
}
//指定图标的配置和数据
var option = {
title:{
text:'',
textStyle:{ color:'#fff' }
},
toolbox: {
show : true,
feature : {
dataView : {show: true, readOnly: false,iconStyle:{ color:'rgb(255, 255, 255)',borderColor:"#fff"}},
magicType : {show: true, type: ['line', 'bar']},
restore : {show: true},
saveAsImage : {show: true}
}
},
calculable : true,
tooltip: {},
legend: {
data:['数据总量','数据增量'],
textStyle: {
color: '#fff'
}
},
xAxis: {
data:[],
axisLabel: {
show: true,
textStyle: {
color: '#fff',
borderColor:'#fff',
lineStyle:{
color:'#fff'
}
}
}
},
yAxis: {
axisLabel: {
show: true,
textStyle: {
color: '#fff',
lineStyle:{
color:'#fff'
}
}
},
axisLine: {
show: true, // Y轴线
lineStyle: {
type: 'dashed',
color: '#fff'
}
},
},
series: [{
name: '数据总量',
type: 'bar',
data: [],
color:['#fff'],
itemStyle : {
normal : {
lineStyle:{
color:'#00FF00' //线的颜色
}
}
},
},{
name: '数据增量',
type: 'bar',
data: [],
color:['#fff'],
itemStyle : {
normal : {
lineStyle:{
color:'#00FF00' //线的颜色
}
}
},
}]
};
//初始化echarts实例
var myChart = echarts.init(document.getElementById('chartmain'));
//使用制定的配置项和数据显示图表
myChart.setOption(option);
//异步加载数据
myChart.setOption({
xAxis:{
data:core
},
series:[
{
//根据名字对应到相应的系列
name:"数据总量",
data:allnum
},
{
//根据名字对应到相应的系列
name:"数据增量",
data:updatenum
}
]
})
//获取数据后,隐藏loading动画
//myChart.hideLoading();
//表格
layui.use('table', function(){
var table = layui.table;
//展示已知数据
table.render({
elem: '#demo'
,cols: [[ //标题栏
{field: 'solrhomes', title: '实例名', width: 400, sort: true}
,{field: 'numFound', title: '数据总量', width: 150}
,{field: 'updatecount', title: '数据增量', minWidth: 150}
,{field: 'uestimes', title: '耗时', minWidth: 150}
]]
,data:message
//,skin: 'line' //表格风格
,even: true
//,page: true //是否显示分页
//,limits: [5, 7, 10]
//,limit: 5 //每页默认显示的数量
});
});
}
\ No newline at end of file
$(function () {
//加载弹出层
layui.use(['form','element'],
function() {
layer = layui.layer;
//element = layui.element();
});
//初如化背景
function bgint () {
if(localStorage.bglist){
var arr = JSON.parse(localStorage.bglist);//
// console.log(arr);
//全局背景统一
if(arr['bgSrc']){
$('body').css('background-image', 'url('+arr['bgSrc']+')');
//初始化弹出层背景
}
//单个背景逻辑
// if(arr[location.href]){
// $('body').css('background-image', 'url('+arr[location.href]+')');
// }
}
}
bgint();
//背景主题功能
/*var changerlist = new Swiper('.changer-list', {
initialSlide :5,
effect: 'coverflow',
grabCursor: true,
centeredSlides: true,
slidesPerView: 'auto',
coverflow: {
rotate: 50,
stretch: -10,
depth: 100,
modifier: 1,
slideShadows : false
}
});*/
//判断是否显示左侧菜单
$(window).resize(function(){
width=$(this).width();
if(width>1024){
$('#side-nav').show();
}
});
//背景主题设置展示
is_show_change=true;
$('#changer-set').click(function(event) {
if(is_show_change){
$('.bg-out').show();
$('.bg-changer').animate({top: '0px'}, 500);
is_show_change=false;
}else{
$('.bg-changer').animate({top: '-110px'}, 500);
is_show_change=true;
}
});
//背景主题切换
$('.bg-changer img.item').click(function(event) {
if(!localStorage.bglist){
arr = {};
}else{
arr = JSON.parse(localStorage.bglist);
}
var src = $(this).attr('src');
$('body').css('background-image', 'url('+src+')');
url = location.href;
// 单个背景逻辑
// arr[url]=src;
// 全局背景统一
arr['bgSrc'] = src;
// console.log(arr);
localStorage.bglist = JSON.stringify(arr);
});
//背景初始化
$('.reset').click(function () {
localStorage.clear();
layer.msg('初如化成功',function(){});
});
//背景切换点击空白区域隐藏
$('.bg-out').click(function () {
$('.bg-changer').animate({top: '-110px'}, 500);
is_show_change=true;
$(this).hide();
})
//窄屏下的左侧菜单隐藏效果
$('.container .open-nav i').click(function(event) {
$('#side-nav').toggle(400);
// $('.wrapper .left-nav').toggle(400)
});
//左侧菜单效果
//$('.left-nav #nav li').click(function () {
/*if($(this).hasClass('open')){
$(this).removeClass('open');
$(this).find('.nav_right').html('&#xe697;');
$(this).children('.sub-menu').slideUp();
// $(this).siblings().children('.sub-menu').slideUp();
}else{
$(this).addClass('open');
$(this).find('.nav_right').html('&#xe6a6;');
$(this).children('.sub-menu').slideDown();
$(this).siblings().children('.sub-menu').slideUp();
$(this).siblings().removeClass('open');
}*/
//})
$('.left-nav #nav li>a.dj').click(function(){
if($(this).find(".fa-angle-down").css("display")!="none"){
$(this).next(".sub-menu").slideDown();
$(this).find(".fa-angle-down").hide();
$(this).find(".fa-angle-up").show();
}else{
$(this).next(".sub-menu").slideUp();
$(this).find(".fa-angle-down").show();
$(this).find(".fa-angle-up").hide();
}
});
//初始化菜单展开样式
$('.left-nav #nav li .opened').siblings('a').find('.nav_right').html('&#xe6a6;');
//alert($(".tablec tr:eq(0) td:eq(1)").html())
$("textarea.bgn").width($(".tablec tr:eq(0) td:eq(1)").width()+$(".tablec tr:eq(0) td:eq(2)").width()+$(".tablec tr:eq(0) td:eq(3)").width()+$(".tablec tr:eq(0) td:eq(4)").width()+200);
})
/*弹出层*/
/*
参数解释:
title 标题
url 请求的url
id 需要操作的数据id
w 弹出层宽度(缺省调默认值)
h 弹出层高度(缺省调默认值)
*/
function x_admin_show(title,url,w,h){
if (title == null || title == '') {
title=false;
};
if (url == null || url == '') {
url="404.html";
};
if (w == null || w == '') {
w=800;
};
if (h == null || h == '') {
h=($(window).height() - 50);
};
layer.open({
type: 2,
area: [w+'px', h +'px'],
fix: false, //不固定
maxmin: true,
shadeClose: true,
shade:0.4,
title: title,
content: url
});
}
/*关闭弹出框口*/
function x_admin_close(){
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>测试</title>
<script type="text/javascript" src="/js/jquery.min.js"></script>
</head>
<body>
<form id="form1">
id: <input type="text" name="id"/> <br>
用户名: <input type="text" name="username"/><br>
用户名: <input type="text" name="name"/> <br>
年 龄: <input type="text" name="age"/><br>
收人: <input type="text" name="balance"/><br>
<!-- 兴 趣: <input type="checkbox" name="sport" value="1">足球
<input type="checkbox" name="sport" value="2">篮球<br>-->
<a onclick="submit()">银行卡查询</a><br/>
<a onclick="submit1()">银行流水查询</a><br/>
<a onclick="submit2()">第三方支付查询</a><br/>
<a onclick="submit3()">爬虫银行卡查询</a><br/>
<a onclick="submit4()">爬虫银行流水查询</a><br/>
<a onclick="submit5()">爬虫第三方支付查询</a><br/>
<a onclick="submit6()">测试路网</a><br/>
</form>
<iframe border="0" id="content" src="http://47.92.48.137:3000/d/pE4NDbgZz/shouji?orgId=1&from=1554048000000&to=1556639999999" frameborder="0" height="100%" width="100%"></iframe>
<script>
function submit6() {
var data={"aliyun":"106.44986234519158,29.717933013864105,2019-04-08 19:22:10;106.47539408617838,29.72916060093053,2019-04-08 21:44:26;106.47539408617838,29.72916060093053,2019-04-08 21:54:20;106.47539408617838,29.72916060093053,2019-04-08 22:04:14;106.47539408617838,29.72916060093053,2019-04-08 22:16:38;106.47539408617838,29.72916060093053,2019-04-08 22:26:26;106.47539408617838,29.72916060093053,2019-04-08 22:34:30;106.47539408617838,29.72916060093053,2019-04-08 23:00:24;106.47539408617838,29.72916060093053,2019-04-08 23:08:24;106.47539408617838,29.72916060093053,2019-04-08 23:28:42;106.47539408617838,29.72916060093053,2019-04-08 23:38:28;106.47539408617838,29.72916060093053,2019-04-08 23:49:41;106.47539408617838,29.72916060093053,2019-04-09 00:09:14;106.47539408617838,29.72916060093053,2019-04-09 00:14:31;106.47539408617838,29.72916060093053,2019-04-09 00:24:35;106.47539408617838,29.72916060093053,2019-04-09 00:27:12;106.47539408617838,29.72916060093053,2019-04-09 00:34:23;106.47539408617838,29.72916060093053,2019-04-09 00:44:09;106.47539408617838,29.72916060093053,2019-04-09 00:49:24;106.47539408617838,29.72916060093053,2019-04-09 01:04:27;106.47539408617838,29.72916060093053,2019-04-09 01:09:07;106.47539408617838,29.72916060093053,2019-04-09 01:18:54;106.47539408617838,29.72916060093053,2019-04-09 01:48:15;106.47539408617838,29.72916060093053,2019-04-09 01:54:24;106.47539408617838,29.72916060093053,2019-04-09 02:00:10;106.47539408617838,29.72916060093053,2019-04-09 02:09:34;106.47539408617838,29.72916060093053,2019-04-09 02:15:32;106.47539408617838,29.72916060093053,2019-04-09 02:19:22;106.47539408617838,29.72916060093053,2019-04-09 02:25:18;106.47539408617838,29.72916060093053,2019-04-09 03:20:48;106.47539408617838,29.72916060093053,2019-04-09 03:28:21;106.47539408617838,29.72916060093053,2019-04-09 03:44:06;106.47539408617838,29.72916060093053,2019-04-09 04:29:32;106.47539408617838,29.72916060093053,2019-04-09 04:58:12;106.47539408617838,29.72916060093053,2019-04-09 05:04:42;106.47539408617838,29.72916060093053,2019-04-09 05:32:45;106.47539408617838,29.72916060093053,2019-04-09 05:59:49;106.47539408617838,29.72916060093053,2019-04-09 06:03:10;106.47539408617838,29.72916060093053,2019-04-09 06:09:35;106.47539408617838,29.72916060093053,2019-04-09 06:36:18;106.47539408617838,29.72916060093053,2019-04-09 06:53:45;106.47539408617838,29.72916060093053,2019-04-09 06:58:04;106.47539408617838,29.72916060093053,2019-04-09 07:02:53;106.47539408617838,29.72916060093053,2019-04-09 07:19:59;106.47539408617838,29.72916060093053,2019-04-09 07:29:45;106.47539408617838,29.72916060093053,2019-04-09 07:37:27;106.47539408617838,29.72916060093053,2019-04-09 07:40:29;106.47539408617838,29.72916060093053,2019-04-09 07:41:40;106.47539408617838,29.72916060093053,2019-04-09 07:42:36;106.47539408617838,29.72916060093053,2019-04-09 07:44:23;106.47539408617838,29.72916060093053,2019-04-09 07:59:28;106.47539408617838,29.72916060093053,2019-04-09 08:08:14;106.47539408617838,29.72916060093053,2019-04-09 08:12:47;106.47539408617838,29.72916060093053,2019-04-09 08:18:00;106.47539408617838,29.72916060093053,2019-04-09 08:39:04;106.47539408617838,29.72916060093053,2019-04-09 08:40:20;106.47539408617838,29.72916060093053,2019-04-09 08:43:19;106.47055250844024,29.729514133215133,2019-04-09 08:47:00;106.47055250844024,29.729514133215133,2019-04-09 08:48:35;106.47503559881285,29.72829610580375,2019-04-09 08:54:54;106.46607132368773,29.730175814266627,2019-04-09 08:55:27;106.45848496129948,29.717837175544915,2019-04-09 08:58:15;106.46100439823739,29.719126202356893,2019-04-09 09:00:49;106.45027401331609,29.71177339511978,2019-04-09 09:11:36;106.45027401331609,29.71177339511978,2019-04-09 09:13:22;106.45027401331609,29.71177339511978,2019-04-09 09:29:19;106.45027401331609,29.71177339511978,2019-04-09 09:33:00;106.45027401331609,29.71177339511978,2019-04-09 09:35:05;106.45027401331609,29.71177339511978,2019-04-09 09:39:45;106.45027401331609,29.71177339511978,2019-04-09 09:43:09;106.45027401331609,29.71177339511978,2019-04-09 09:46:54;106.45027401331609,29.71177339511978,2019-04-09 09:49:03;106.45027401331609,29.71177339511978,2019-04-09 09:52:54;106.45027401331609,29.71177339511978,2019-04-09 09:59:46;106.45027401331609,29.71177339511978,2019-04-09 10:01:02;106.45027401331609,29.71177339511978,2019-04-09 10:01:56;106.45027401331609,29.71177339511978,2019-04-09 10:02:34;106.45027401331609,29.71177339511978,2019-04-09 10:10:44;106.45027401331609,29.71177339511978,2019-04-09 10:25:27;106.45027401331609,29.71177339511978,2019-04-09 10:33:46;106.45027401331609,29.71177339511978,2019-04-09 10:48:42;106.45027401331609,29.71177339511978,2019-04-09 10:50:21;106.45027401331609,29.71177339511978,2019-04-09 10:51:07;106.45027401331609,29.71177339511978,2019-04-09 11:08:50;106.45027401331609,29.71177339511978,2019-04-09 11:18:21;106.45027401331609,29.71177339511978,2019-04-09 11:22:09"
,"aliyunUrl": "http://77.1.24.80:9090/mapmatching/compute?type=station&maxLoopNum=6&minRoadLen=200"}
//console.info("2222222222"+JSON.stringify(data1));
$.ajax({
method : 'post',
url : 'http://77.1.24.49:8080/lbs/poiController/poiQueryLwsj',
dateType:'json',
data :data, // 将json对象转为json字符串
success : function(data) {
console.info(data);
}
})
}
function submit() {
var data={"account":"6217850800004919054","curPage":"1"}
//console.info("2222222222"+JSON.stringify(data1));
$.ajax({
method : 'post',
url : 'cardinfos',
dateType:'json',
data :data, // 将json对象转为json字符串
success : function(data) {
console.info(data);
}
})
}
function submit1() {
//json对象
var data1={"account":"6217850800004919054", "applicationNumber":"0301421615242101H3205002019058880054","curPage":"1","draw":"3"}
$.ajax({
method : 'post',
url : 'cardliushui',
dateType:'json',
//contentType:"application/json", //后台@RequestBody接收 就是接收json字符串
//data :JSON.stringify(data1), // 将json对象转为json字符串
data :data1,
success : function(data) {
console.info(data);
}
})
}
function submit2() {
//json对象
var data1={"zh":"17059107788","curPage":"1"}
$.ajax({
method : 'post',
url : 'thirdpartyinfos',
dateType:'json',
dateType:'json',
//contentType:"application/json", //后台@RequestBody接收 就是接收json字符串
//data :JSON.stringify(data1), // 将json对象转为json字符串
data :data1,
success : function(data) {
console.info(data);
}
})
}
function submit3() {
var data={"curPage":"0","kssj":"2019-05-01","jzsj":"2019-05-29"}
//console.info("2222222222"+JSON.stringify(data1));
$.ajax({
method : 'post',
url : 'savecardinfos',
dateType:'json',
data :data, // 将json对象转为json字符串
success : function(data) {
console.info(data);
}
})
}
function submit4() {
//json对象
var data1={"account":"6217850800004919054", "applicationNumber":"0301421615242101H3205002019058880054","curPage":"1"}
$.ajax({
method : 'post',
url : 'savecardliushui',
dateType:'json',
contentType:"application/json", //后台@RequestBody接收 就是接收json字符串
data :JSON.stringify(data1), // 将json对象转为json字符串
success : function(data) {
console.info(data);
}
})
}
function submit5() {
//json对象
var data1={"zh":"17059107788","curPage":"1"}
$.ajax({
method : 'post',
url : 'savethirdpartyinfos',
dateType:'json',
contentType:"application/json", //后台@RequestBody接收 就是接收json字符串
data :JSON.stringify(data1), // 将json对象转为json字符串
success : function(data) {
console.info(data);
}
})
}
</script>
</body>
</html>
\ No newline at end of file
package com.founder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.founder.dao.CardDao;
import com.founder.jsoup.JsoupCookieCraw;
import com.founder.jsoup.SaveJsoupCookieCraw;
import com.founder.model.XzxtRestResult;
import com.founder.model.card;
import com.founder.multipleThread.listThread.ListThreadPoolTool;
import com.founder.multipleThread.postThread.PostThreadPoolTool;
import com.founder.service.CardinfosService;
import com.founder.service.SaveCardinfosService;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ExecutorService;
@RunWith(SpringRunner.class)
@SpringBootTest
public class XzxtJsoupApplicationTests {
@Autowired
CardDao cardDao;
@Autowired
private SaveJsoupCookieCraw saveJsoupCookieCraw;
@Autowired
private JsoupCookieCraw jsoupCookieCraw;
@Autowired
private SaveCardinfosService saveCardinfosService ;
@Autowired
private CardinfosService cardinfosService ;
//卡号
@Test
public void card() throws IOException {
Map<String, String> cookies = null;
JsoupCookieCraw jsop=new JsoupCookieCraw();
// 先模拟登录获取到cookie和sessionid并存到全局变量cookies中
cookies=jsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
String url = "http://68.89.99.2/dxzp/jsp/ajxx/yszfcx.action";
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = Jsoup.connect(url)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage", "1")
.data("yhzh.kssj", "")
.data("yhzh.jzsj", "")
.data("yhzh.zh", "6217850800004919054")
//.data("yhzh.xfzt", "all")
.post();
System.out.println(document.toString());
List<card> cardList =new ArrayList<card>();
//cardList=jsop.getCardInfo(document);
for(card card :cardList){
System.out.println("存入数据==="+JSON.toJSONString(card));
//cardDao.addCard(card);
}
}
//银行卡流水
@Test
public void cardliushui() throws IOException {
Map<String, String> cookies = null;
JsoupCookieCraw jsop=new JsoupCookieCraw();
// 先模拟登录获取到cookie和sessionid并存到全局变量cookies中
cookies=jsoupCookieCraw.login();
System.out.print("登录反诈平台获取cookies==="+cookies.toString());
String url = "http://68.89.99.2/dxzp/jsp/ajxx/mxcxJg.action";
// 直接获取DOM树,带着cookies去获取
//pageList.curPage: 1 yhzh.kssj: 2019-05-27 yhzh.xfzt: all
Document document = Jsoup.connect(url)
.cookies(cookies)
.timeout(60000)
.data("pageList.curPage", "1")
.data("yhzh.zh", "6217850800004919054")//账号
.data("yhzh.ywsqbh", "0301421615242101H3205002019058880054")//业务申请编号
//.data("yhzh.id", "H3205002019058880054")
.post();
System.out.println(document.toString());
List<card> cardList =new ArrayList<card>();
/*cardList=jsop.getCardInfo(document);
for(card card :cardList){
System.out.println("存入数据==="+JSON.toJSONString(card));
//cardDao.addCard(card);
}*/
}
@Test
public void UUID(){
for(int i=0;i<15;i++){
String uuid = UUID.randomUUID().toString().replaceAll("-","");
uuid = uuid.substring(0,uuid.length()-2);
System.out.print("登录反诈平台获取cookies==="+uuid);
}
}
@Test
public void cardthread(){
System.out.println("执行开始");
card card = new card();
card.setCurPage("0");
card.setKssj("2019-05-01");
card.setJzsj("2019-05-02");
//获取一个月的数据
XzxtRestResult xzxtRestResult=saveCardinfosService.getSaveCardinfos(card);
int pages= Integer.parseInt(xzxtRestResult.getRediskey());
System.out.println("批处理总数========"+pages);
//1、线程批量分组页面list
PostThreadPoolTool<card> tool = new PostThreadPoolTool(1000, pages,card);
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void thread2(int singleCount, List<String> list, final card yscard) {
ListThreadPoolTool<String> tool = new ListThreadPoolTool(singleCount, list);
//final card yscard=XzxtRestResult.format(data,card.class);
tool.setWork(new ListThreadPoolTool.Work<String>() {
@Override
public void method(int xcmz, List<String> list) {//返回值
System.out.println("线程池2==" + xcmz + "---" + Thread.currentThread().getName() + "------" + list.toString());
}
});
try {
tool.excute();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
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