Commit 4b78fee2 by xing_wang

Merge remote-tracking branch 'origin/master'

parents 723d7d81 e0197b37
......@@ -11,6 +11,34 @@
<spring.version>4.2.6.RELEASE</spring.version>
<mybatis.version>3.4.1</mybatis.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>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
......
package com.cc.HandlerInterceptor;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Created by changchao on 2020/3/11.
*/
public class SystemSessionInterceptor implements HandlerInterceptor {
private static final String LOGIN_URL = "/relogin.jsp";
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object handler) throws Exception {
//不是ajax请求,则直接跳转页面
HttpSession session = request.getSession(true);
//session中获取用户名信息
Object obj = session.getAttribute("user");
if (obj == null || "".equals(obj.toString())) {
//如果判断是 AJAX 请求,直接设置为session超时
if(request.getHeader("x-requested-with")!=null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){
//是ajax请求,则返回个消息给前台
response.setHeader("sessionstatus", "timeout");
}else{
//不是ajax请求,则直接跳转页面
//超时登录
response.sendRedirect(request.getSession().getServletContext().getContextPath() + LOGIN_URL);
return false;
}
}
return true;
}
}
\ No newline at end of file
package com.cc.controller;
import com.cc.model.Drsconfig;
import com.cc.db.InfoDao;
import com.cc.framework.WordsTpye;
import com.cc.model.Drsconfig;
import com.cc.model.User;
import com.cc.service.GasjzyfwService;
import com.cc.service.LoginService;
......@@ -10,9 +10,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import sun.misc.BASE64Encoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;
......@@ -116,4 +120,39 @@ public class LoginController {
}
return returnMap;
}
//调用登录后台 返回resultlogin页面,登录成功即自动关闭;
@RequestMapping(value="/relogin",method = {RequestMethod.POST, RequestMethod.GET})
public String retoHome(HttpServletRequest request, @RequestParam("username") String username, @RequestParam("password") String password,ModelMap map){
//Map<String,Object> returnMap=new HashMap<>();
User user=null;
user=(User)request.getSession().getAttribute("user");
if(user==null){//进行登录
try {
User yuser=loginService.queryUserByUsername(username);
if(yuser!=null){
BASE64Encoder encoder = new BASE64Encoder();
String ypassword=encoder.encode(password.getBytes());
if(ypassword.equals(yuser.getPassword())){
user=yuser;
}
}
} catch (Exception e) {
e.printStackTrace();
map.addAttribute("state","error");
map.addAttribute("msg","登录异常!");
return "resultlogin";
}
}
if(user!=null){
request.getSession().setAttribute("user",user);//登录成功生成session
String sid=request.getSession().getId();
map.addAttribute("state","success");
map.addAttribute("msg","登陆成功!");
map.addAttribute("sid",sid);
}else{
map.addAttribute("state","failed");
map.addAttribute("msg","用户名或密码错误!");
}
return "resultlogin";
}
}
......@@ -10,4 +10,5 @@ import org.springframework.stereotype.Component;
public interface LoginDao {
public User queryUserById(String id);
public User queryUserByUsername(String Username);
}
......@@ -8,5 +8,5 @@ import com.cc.model.User;
public interface LoginService {
public User getUserById(String id);
public User queryUserByUsername(String Username);
}
......@@ -21,4 +21,11 @@ public class LoginServiceImpl implements LoginService {
user=loginDao.queryUserById(id);
return user;
}
@Override
public User queryUserByUsername(String Username) {
User user=null;
user=loginDao.queryUserByUsername(Username);
return user;
}
}
......@@ -17,5 +17,19 @@
TQYHBZ as tqyhbz from SYS_USER where 1=1
and identitycard=#{id}
</select>
<select id="queryUserByUsername" resultType="com.cc.model.User" parameterType="string">
select UNITCODE as unitcode,
USERNAME as username,
TRUE_NAME as trueName,
IDENTITYCARD as identitycard,
PASSWORD as password,
SEX as sex,
BIRTHDAY as birthday,
TELEPHONE as telephone,
UNITNAME as unitname,
GRADE as grade,
POLICEMANID as policemanid,
TQYHBZ as tqyhbz from SYS_USER where 1=1
and username=#{username}
</select>
</mapper>
\ No newline at end of file
......@@ -9,14 +9,27 @@
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<context:component-scan base-package="com.cc.controller"></context:component-scan>
<mvc:resources mapping="/static/**" location="/static/"/>
<!--配置视图解析器,方便页面返回-->
<!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="redirectContextRelative" value="true"></property>
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
<!-- Session失效拦截 -->
<mvc:interceptors>
<!-- 定义拦截器 -->
<mvc:interceptor>
<!-- 匹配的是url路径, 如果不配置或/**,将拦截所有的Controller -->
<mvc:mapping path="/**" />
<!-- 不需要拦截的地址 -->
<mvc:exclude-mapping path="/static/**"/>
<mvc:exclude-mapping path="/relogin"/>
<bean class="com.cc.HandlerInterceptor.SystemSessionInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
</beans>
\ No newline at end of file
......@@ -97,4 +97,7 @@
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<session-config>
<session-timeout>1</session-timeout>
</session-config>
</web-app>
......@@ -8,6 +8,7 @@
<script type="text/javascript" charset="utf8" src="static/easyui-window/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/easyui-window/js/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<style>
.dw-span{float: right;margin-right:15px;height:24px;line-height: 24px;font-size: 12px;}
.btn_cx {position: relative;top: 2px;margin-left:5px;cursor: pointer; padding: 3px 17px; border: 1px solid #245580; background-color: #337ab7; color: #fff; background-image: linear-gradient(to bottom,#337ab7 0,#265a88 100%); background-repeat: repeat-x; text-shadow: 0 -1px 0 rgba(0,0,0,.2); box-shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075); border-radius: 4px; font-weight: normal; font-size: 12px; }
......
......@@ -46,6 +46,7 @@
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/rasc/js/tipbar.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
......@@ -43,8 +43,10 @@
<script type="text/javascript" src="static/dy/js/guide_xq.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
.textbox .textbox-text {
height: 24px !important;
......
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆界面</title>
<link rel="stylesheet" type="text/css" href="static/rasc/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="static/dy/css/base-login.css">
</head>
<body class="login-body">
<header class="login-header">
<div class="login-title"><img src="static/images/title.png" /></div>
</header>
<div class="lines">
<div class="content">
<div class="left-globe">
<h1 class="title"></h1>
</div>
<div class="right-login">
<div class="login-wrap">
<h2 class="namel">用户登录</h2>
<form action="relogin" method="post">
<p class="tc"><input type="text" placeholder="账号" name="username" class="name" autocomplete="off"/><i class="username-icon zdy-fa"></i></p>
<p class="tc"><input type="password" placeholder="密码" name="password" class="password" autocomplete="off"/><i class="password-icon zdy-fa"></i></p>
<p class="tc" style="margin-top:36px;"><input type="submit" class="btn btn-info" value="登陆"/></p>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录结果</title>
</head>
<body>
<span id="time">登录状态:"${state}"</span><br>
<script type="text/javascript" src="static/easyui-window/js/jquery-1.11.3.js"></script>
<script type="text/javascript">
//定义函数myClose关闭当前窗口
function myClose(){
//将id为time的元素的内容转为整数,保存在变量n中
//var n=parseInt(time.innerHTML);
debugger;
var n=1;
n--;//将n-1
//如果n==0,关闭页面
//否则, 将n+秒钟后自动关闭,再保存回time的内容中
if(n>0){
time.innerHTML=n+"秒钟后自动关闭";
timer=setTimeout(myClose,1000);
}else{
window.location.href="about:blank";
window.close();
}
}
var timer=null;
//当页面加载后,启动周期性定时器,每个1秒执行myClose
window.onload=function(){
var state = "${state}";
if(state=="success"){
debugger;
timer=setTimeout(myClose,1000);
}
}
</script>
</body>
</html>
\ No newline at end of file
......@@ -44,6 +44,7 @@
<script type="text/javascript" src="static/rasc/js/navCategory_zj.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
......@@ -76,6 +76,8 @@
<script src="static/js/util.js"></script>
<!--引入模板文件-->
<script type="text/javascript" src="static/js/templet.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
</body>
</html>
<script type="text/javascript">
......
@charset "UTF-8";
/*css 初始化 */
html,
body,
ul,
li,
ol,
dl,
dd,
dt,
p,
h1,
h2,
h3,
h4,
h5,
h6,
form,
fieldset,
legend,
img {
margin: 0;
padding: 0;
font:12px/150% Arial, Verdana, "\5b8b\4f53";
font-size:12px;
}
fieldset,
img,
input,
button {
border: none;
padding: 0;
margin: 0;
outline-style: none;
}
/*清除边框外发光 */
ul,
ol {
list-style: none;
/* 清除左侧小圆点标注 */
}
input {
padding-top: 0;
padding-bottom: 0;
font-family: "SimSun", "宋体";
}
select,
input {
vertical-align: middle;
}
select,
input,
textarea {
font-size: 12px;
margin: 0;
}
textarea {
resize: none;
/*防止拖动*/
}
img {
border: 0;
vertical-align: middle;
/* 去掉图片底部默认的3像素空白缝隙*/
}
table {
border-collapse: collapse;
/* 边框合并 */
}
body {
font: 12px/150% Arial, Verdana, "\5b8b\4f53";
/* 宋体 */
color: #666;
background: #fff
}
.clearfix:before,
.clearfix:after {
content: "";
display: table;
/* 清除浮动 */
}
.clearfix:after {
clear: both;
/* 清除浮动 */
}
.clearfix {
*zoom: 1;
/*IE/7/6*/
}
a {
color: #666;
text-decoration: none;
/* 清除下划线 */
}
h1,
h2,
h3,
h4,
h5,
h6 {
text-decoration: none;
font-weight: normal;
font-size: 100%;
}
s,
i,
em {
font-style: normal;
text-decoration: none;
}
.col-red {
color: #C81623!important;
}
/*公共类*/
.w {
width: 1210px;
margin: 0 auto;
/*版心 提取 */
}
.fl {
float: left
}
.fr {
float: right
}
.al {
text-align: left
}
.ac {
text-align: center
}
.ar {
text-align: right
}
.hide {
display: none
}
.show{
display: block;
}
.sp_table td.ar{
color:#0066cc;
}
/*滚动条*/
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/
::-webkit-scrollbar
{
width: 8px; /*滚动条宽度*/
height: 8px; /*滚动条高度*/
}
/*定义滚动条轨道 内阴影+圆角*/
::-webkit-scrollbar-track
{
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
border-radius: 10px; /*滚动条的背景区域的圆角*/
background-color: rgba(0,0,0,0.2);/*滚动条的背景颜色*/
}
/*定义滑块 内阴影+圆角*/
::-webkit-scrollbar-thumb
{
border-radius: 10px; /*滚动条的圆角*/
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
background-color: rgba(5, 111, 111,0.7);; /*滚动条的背景颜色*/
}
/****/
html,body{height:100%;width:100%;overflow:hidden;}
.login-body{background: url(../../images/bgn.jpg) no-repeat;background-size: cover;}
.login-header{width:100%;height:50px;line-height: 50px;}
.login-title{text-align: center;/* background: url(../images/title-bg.png) no-repeat center; width: 1264px;*/background-size: 62%;margin:19px auto;font-size: 28px; color: #0df4ff;font-weight: 600;}
.left-globe,.right-login{float: left;width:50%;height:100%;}
.content{width:100%;height:calc(100% - 70px);display: table;}
.title{font-size: 22px; line-height: 40px;text-align: left; margin-top: 19px;margin-left: 59px;color: #0df4ff;font-weight: 600;/* -webkit-animation: slideShine 4s linear infinite;animation: slideShine 4s linear infinite;color:#D6B436; *//* background: #0df4ff -webkit-linear-gradient(left,#de1a20,#c746ba 50%,#e0b516 90%,#f31f25) no-repeat 0 0; background-size:50% 100%; -webkit-background-clip: text;-webkit-text-fill-color: transparent; */}
.policeBadge{position: absolute;top: 234px;left: 75%;margin-left: -48.5px;height:102px;}
.title-line{height:100px;position: absolute;top:52px;left:200px;}
.globe{width:50%;animation: rotateArround 3.5s linear infinite;position: absolute;top:138px;}
.left-globe{text-align: center;position: relative;}
.right-login{position:relative;}
.login-wrap{background:url(../../images/wrap.png); width: 310px;height: 320px;background-size: cover;margin: 0 auto;position: absolute;top:50%;margin-top:-160px;left:50%;margin-left:-155px;}
.namel{height:58px;line-height: 58px;text-align: center;font-size: 16px;color:#15e9ff;font-weight: 600;}
.password,.name{padding: 0 10px 0 36px;color:#fff;width:171px;height:42px;background:url(../../images/input.png);background-size: cover;}
.tc{text-align: center;margin:19px 0;position: relative;}
.password::-webkit-input-placeholder,.name::-webkit-input-placeholder{
color: #fff;
}
.username-icon{background: url(../../images/username.png) no-repeat;}
.password-icon{background: url(../../images/password.png) no-repeat;}
.zdy-fa{position: absolute;left:50%;margin-left:-100px;color:#0df4ff;font-size: 18px;top:10px;display: inline-block;width:36px;height:36px;line-height: 36px;}
.btn-info {
color: #fff;
background-color: #5bc0de;
border-color: #46b8da;
width:217px;
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn-info:hover {
color: #fff;
background-color: #31b0d5;
border-color: #269abc;
}
.lines{width:100%;height:100%;position: relative;}
.dib{display: inline-block;position: absolute;}
@keyframes rotateArround {
0% {transform: rotateZ(0deg);}
100% {transform: rotateZ(360deg);}
}
@-webkit-keyframes slideShine {
0% {
background-position: 0 0;
}
100% {
background-position: 100% 100%;
}
}
\ No newline at end of file
/**
* 设置未来(全局)的AJAX请求默认选项
* 主要设置了AJAX请求遇到Session过期的情况
*/
$.ajaxSetup({
type: 'POST',
complete: function(xhr,status) {
var sessionStatus = xhr.getResponseHeader('sessionstatus');
if(sessionStatus == 'timeout') {
//var top = getTopWinow();
//var tempwindow=window.open('_blank');
var yes = confirm('由于您长时间没有操作, session已过期, 请重新登录.');
if (yes) {
//tempwindow.location.href = '/relogin.jsp';
openWin( '/xzxt-solr/relogin.jsp','用户登录', '8.5','7.5');
}
}
}
});
/**
* 在页面中任何嵌套层次的窗口中获取顶层窗口
* @return 当前页面的顶层窗口对象
*/
function getTopWinow(){
var p = window;
while(p != p.parent){
p = p.parent;
}
return p;
}
//name 弹窗名字
//width 弹窗宽度(比例)
//height 弹窗高度(比例)
var myWindow;
function openWin(url, name, width, height) {
var w_percent = width ? width : 9;//如果参数未传,则取9
var h_percent = height ? height : 8;
var widths = (window.screen.availWidth) * w_percent / 10;
var heights = (window.screen.availHeight) * h_percent / 10;
var iLeft = (window.screen.availWidth - widths) / 2;
var iTop = (window.screen.availHeight - heights) / 2;
//判断是否为IE
var b_version=navigator.appVersion;
var version=b_version.split(";");
if(version[1]){
var trim_Version=version[1].replace(/[ ]/g,"");
}
if(trim_Version == 'MSIE9.0' || trim_Version == 'MSIE10.0'|| trim_Version == 'WOW64' || trim_Version == 'MSIE7.0'){//IE浏览器,直接打开
myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + '');
myWindow.focus();
}else{//非IE,判断窗口是否存在,若存在,则关闭当前窗口,重新打开
if(myWindow){
myWindow.close();
myWindow = null;
}
myWindow = window.open(url, name, 'scrollbars=yes,width=' + widths + ',height=' + heights + ',left=' + iLeft + ',top=' + iTop + '');
}
//弹窗名字重命名ss
var title = name;
setTimeout(function () {
myWindow.document.title = title;
}, 1000);
}
\ No newline at end of file
$(function(){
resize();
$(window).resize(function(){
resize();
})
})
window.onload=function (){
}
function resize(){
/*$(".left-globe").css({"line-height":$(".left-globe").height()+"px"});*/
}
......@@ -227,6 +227,7 @@
</div>
<div class="right_box ssmz_right">
<h4>当前资源常住人口信息 <span class="red">3</span> 条结果</h4>
......@@ -360,6 +361,8 @@
<script type="text/javascript" src="static/js/fsfzfenye.js"></script>
<!--引入分页js-->
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
</body>
</html>
......
......@@ -48,6 +48,7 @@
<script type="text/javascript" src="static/rasc/js/navCategory_zj.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
......@@ -48,6 +48,7 @@
<script type="text/javascript" src="static/rasc/js/navCategory_zj.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
......@@ -48,6 +48,7 @@
<script type="text/javascript" src="static/rasc/js/navCategory_zj.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
......@@ -48,6 +48,7 @@
<script type="text/javascript" src="static/rasc/js/navCategory_zj.js"></script>
<script type="text/javascript" src="static/layer/layer.js"></script>
<script type="text/javascript" src="static/rasc/js/ychy.js"></script>
<script type="text/javascript" src="static/js/ajax.js"></script>
<!--水印-->
<script src="static/js/watermark.js"></script>
<style>
......
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