前言引用
本项目是采用了 springboot+vue+elementui 前后端分离;权限采用shiro 管理提供swagger3+knife4j 开发文档 后端统一处理跨域问题;
主要功能概括:
1.管理后台管理上报记录以及风险区域的基本信息如:用户, 主页统计,风险区域,滚动图, 资讯,上报记录和日志管理等功能,
2.微信端功能:授权登录,首页和资讯的信息获取,搜索功能,详情以及上报健康情况还有个人的记录以及定位功能
管理端登录
管理端主页
主页包含系统各个维度的统计,包括角色数量,中高危风险趋势图以及近期打卡健康的上报情况;
国内中高危险区域列表
此数据列表和本地宝数据同步,每30分钟后台定时任务自动更新,也可在管理页面选择手动更新数据;用途为客户端根据地址比对,统计需要;核心代码如下:
public static List<RiskArea> getList(){
Integer index=0;
String url = "http://m.nj.bendibao.com/news/gelizhengce/fengxianmingdan.php";
String createDate = getStringDate();
List<RiskArea> areaList = new ArrayList<>();
try {
Document document = Jsoup.connect(url).get();
Elements byClass = document.getElementsByClass("border-title");
Elements p = byClass.get(0).select("p");
System.out.println(p.html());
Elements time = p.select(".time");
String text = time.get(0).text();
String cutOff = text.substring(2, text.length());
cufTime=cutOff;
Elements number = document.getElementsByClass("fengx-number");
Elements span = number.get(0).select("span");
System.out.println("高风险地区:" + span.get(0).text() + "\t中风险地区:" + span.get(1).text() + "\t低风险地区:" + span.get(2).text());
Elements height = document.getElementsByClass("height");//高风险区域
Elements middle = document.getElementsByClass("middle");//中风险区域
for (Element e : height) {
Elements es = e.getElementsByClass("info-list");
for (Element ess : es) {
Elements shis = ess.select(".shi");
System.out.println(shis.text());
for (Element shi:shis){
Elements proCitys = shi.select("span");
String province=proCitys.get(0).text();
String city=proCitys.get(proCitys.size()-1).text();
System.out.println(shi.text());
Element element = shi.nextElementSibling();
Elements infos = element.select("span");
for (Element info : infos) {
RiskArea area = RiskArea.builder()
.id(++index)
.province(province)
.city(city)
.riskType(1)
.cutOff(cutOff)
.createDate(createDate)
.regionInfo(info.text()).build();
areaList.add(area);
}
}
}
}
for (Element e : middle) {
Elements es = e.getElementsByClass("info-list");
for (Element ess : es) {
Elements shis = ess.select(".shi");
for (Element shi:shis){
Elements proCitys = shi.select("span");
String province=proCitys.get(0).text();
String city=proCitys.get(proCitys.size()-1).text();
System.out.println(shi.text());
Element element = shi.nextElementSibling();
Elements infos = element.select("span");
for (Element info : infos) {
RiskArea area = RiskArea.builder()
.province(province)
.city(city)
.id(++index) .riskType(2)
.cutOff(cutOff)
.createDate(createDate)
.regionInfo(info.text()).build();
areaList.add(area);
}
}
}
}
int c = 322;
} catch (Exception e) {
e.printStackTrace();
}
return areaList;
}
上报列表
此数据列表为微信端提交的数据
微信端授权登录
关于授权登录请看其他文章,此处不再过多赘述;
微信主页
微信打卡上报
资讯详情
有啥不懂得小伙伴们加群交流啦:852665736;本群致力于一同进步的小伙伴们,大家一起交流探讨,在陌生的城市感受温暖;
无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注微信公众号:源码plus