解决bug
This commit is contained in:
@@ -651,6 +651,18 @@ input.inputstyle:hover{
|
|||||||
position:relative;
|
position:relative;
|
||||||
background:url(../images/bg_loginmain.jpg) no-repeat;
|
background:url(../images/bg_loginmain.jpg) no-repeat;
|
||||||
}
|
}
|
||||||
|
#login .login_btn{
|
||||||
|
float:left;
|
||||||
|
width:230px;
|
||||||
|
height:50px;
|
||||||
|
margin:160px auto 0 120px;
|
||||||
|
}
|
||||||
|
#login .register_btn{
|
||||||
|
float:left;
|
||||||
|
width:230px;
|
||||||
|
height:50px;
|
||||||
|
margin:218px auto 0 120px;
|
||||||
|
}
|
||||||
#login_signal{
|
#login_signal{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
left: 63px;
|
left: 63px;
|
||||||
@@ -668,6 +680,18 @@ input.inputstyle:hover{
|
|||||||
top: 119px;
|
top: 119px;
|
||||||
width: 54px;
|
width: 54px;
|
||||||
}
|
}
|
||||||
|
#txt_userpwd_repeat{
|
||||||
|
position:absolute;
|
||||||
|
left: 65px;
|
||||||
|
top: 154px;
|
||||||
|
width: 54px;
|
||||||
|
}
|
||||||
|
#txt_captcha{
|
||||||
|
position:absolute;
|
||||||
|
left: 65px;
|
||||||
|
top: 189px;
|
||||||
|
width: 54px;
|
||||||
|
}
|
||||||
#txt_vcode{
|
#txt_vcode{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
left: 66px;
|
left: 66px;
|
||||||
@@ -698,6 +722,40 @@ input.inputstyle:hover{
|
|||||||
left: 118px;
|
left: 118px;
|
||||||
top: 118px;
|
top: 118px;
|
||||||
}
|
}
|
||||||
|
#user_pwd_repeat{
|
||||||
|
position:absolute;
|
||||||
|
width:132px;
|
||||||
|
padding:0 4px;
|
||||||
|
height:23px;
|
||||||
|
line-height:23px;
|
||||||
|
border:none;
|
||||||
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
|
left: 118px;
|
||||||
|
top: 152px;
|
||||||
|
}
|
||||||
|
#user_captcha{
|
||||||
|
position:absolute;
|
||||||
|
width:132px;
|
||||||
|
padding:0 4px;
|
||||||
|
height:23px;
|
||||||
|
line-height:23px;
|
||||||
|
border:none;
|
||||||
|
font-family:Arial, Helvetica, sans-serif;
|
||||||
|
background:url(../images/bg_logininout.jpg) no-repeat;
|
||||||
|
left: 118px;
|
||||||
|
top: 186px;
|
||||||
|
}
|
||||||
|
#imgCaptcha{
|
||||||
|
position:absolute;
|
||||||
|
width:132px;
|
||||||
|
padding:0 4px;
|
||||||
|
height:40px;
|
||||||
|
line-height:23px;
|
||||||
|
border:none;
|
||||||
|
left: 270px;
|
||||||
|
top: 170px;
|
||||||
|
}
|
||||||
#vcode{
|
#vcode{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
width:67px;
|
width:67px;
|
||||||
@@ -716,17 +774,32 @@ input.inputstyle:hover{
|
|||||||
top: 151px;
|
top: 151px;
|
||||||
}
|
}
|
||||||
#btn_login{
|
#btn_login{
|
||||||
position:absolute;
|
width:100px;
|
||||||
width:81px;
|
|
||||||
height:30px;
|
height:30px;
|
||||||
border:none;
|
border:none;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
background:url(../images/btn_login.jpg) no-repeat;
|
color: white;
|
||||||
|
background:#318dff;
|
||||||
left: 120px;
|
left: 120px;
|
||||||
top: 170px;
|
top: 170px;
|
||||||
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
#btn_login:hover{
|
#btn_login:hover{
|
||||||
background:url(../images/btn_loginon.jpg) no-repeat;
|
background:#54a0ff;
|
||||||
|
}
|
||||||
|
#btn_register{
|
||||||
|
width:100px;
|
||||||
|
height:30px;
|
||||||
|
border:none;
|
||||||
|
cursor:pointer;
|
||||||
|
color: white;
|
||||||
|
background:#318dff;
|
||||||
|
left: 120px;
|
||||||
|
top: 170px;
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
#btn_register:hover{
|
||||||
|
background:#54a0ff;
|
||||||
}
|
}
|
||||||
#tip_username{
|
#tip_username{
|
||||||
position:absolute;
|
position:absolute;
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
erp_web/images/register_tip.jpg
Normal file
BIN
erp_web/images/register_tip.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
138
erp_web/js/gVerify.js
Normal file
138
erp_web/js/gVerify.js
Normal file
@@ -0,0 +1,138 @@
|
|||||||
|
!(function(window, document) {
|
||||||
|
var size = 4;//设置验证码长度
|
||||||
|
function GVerify(options) { //创建一个图形验证码对象,接收options对象为参数
|
||||||
|
this.options = { //默认options参数值
|
||||||
|
id: "", //容器Id
|
||||||
|
canvasId: "verifyCanvas", //canvas的ID
|
||||||
|
width: "100", //默认canvas宽度
|
||||||
|
height: "30", //默认canvas高度
|
||||||
|
type: "letter", //图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母
|
||||||
|
code: "",
|
||||||
|
}
|
||||||
|
if(Object.prototype.toString.call(options) == "[object Object]"){//判断传入参数类型
|
||||||
|
for(var i in options) { //根据传入的参数,修改默认参数值
|
||||||
|
this.options[i] = options[i];
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
this.options.id = options;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.options.numArr = "0,1,2,3,4,5,6,7,8,9".split(",");
|
||||||
|
this.options.letterArr = getAllLetter();
|
||||||
|
|
||||||
|
this._init();
|
||||||
|
this.refresh();
|
||||||
|
}
|
||||||
|
|
||||||
|
GVerify.prototype = {
|
||||||
|
/**版本号**/
|
||||||
|
version: '1.0.0',
|
||||||
|
|
||||||
|
/**初始化方法**/
|
||||||
|
_init: function() {
|
||||||
|
var con = document.getElementById(this.options.id);
|
||||||
|
var canvas = document.createElement("canvas");
|
||||||
|
this.options.width = con.offsetWidth > 0 ? con.offsetWidth : "100";
|
||||||
|
this.options.height = con.offsetHeight > 0 ? con.offsetHeight : "30";
|
||||||
|
canvas.id = this.options.canvasId;
|
||||||
|
canvas.width = this.options.width;
|
||||||
|
canvas.height = this.options.height;
|
||||||
|
canvas.style.cursor = "pointer";
|
||||||
|
canvas.innerHTML = "您的浏览器版本不支持canvas";
|
||||||
|
con.appendChild(canvas);
|
||||||
|
var parent = this;
|
||||||
|
canvas.onclick = function(){
|
||||||
|
parent.refresh();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**生成验证码**/
|
||||||
|
refresh: function() {
|
||||||
|
this.options.code = "";
|
||||||
|
var canvas = document.getElementById(this.options.canvasId);
|
||||||
|
if(canvas.getContext) {
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
}else{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.textBaseline = "middle";
|
||||||
|
|
||||||
|
ctx.fillStyle = randomColor(180, 240);
|
||||||
|
ctx.fillRect(0, 0, this.options.width, this.options.height);
|
||||||
|
|
||||||
|
if(this.options.type == "blend") { //判断验证码类型
|
||||||
|
var txtArr = this.options.numArr.concat(this.options.letterArr);
|
||||||
|
} else if(this.options.type == "number") {
|
||||||
|
var txtArr = this.options.numArr;
|
||||||
|
} else {
|
||||||
|
var txtArr = this.options.letterArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(var i = 1; i <=size; i++) {
|
||||||
|
var txt = txtArr[randomNum(0, txtArr.length)];
|
||||||
|
this.options.code += txt;
|
||||||
|
ctx.font = randomNum(this.options.height/2, this.options.height) + 'px SimHei'; //随机生成字体大小
|
||||||
|
ctx.fillStyle = randomColor(50, 160); //随机生成字体颜色
|
||||||
|
ctx.shadowOffsetX = randomNum(-3, 3);
|
||||||
|
ctx.shadowOffsetY = randomNum(-3, 3);
|
||||||
|
ctx.shadowBlur = randomNum(-3, 3);
|
||||||
|
ctx.shadowColor = "rgba(0, 0, 0, 0.3)";
|
||||||
|
var x = this.options.width / (size+1) * i;
|
||||||
|
var y = this.options.height / 2;
|
||||||
|
var deg = randomNum(-30, 30);
|
||||||
|
/**设置旋转角度和坐标原点**/
|
||||||
|
ctx.translate(x, y);
|
||||||
|
ctx.rotate(deg * Math.PI / 180);
|
||||||
|
ctx.fillText(txt, 0, 0);
|
||||||
|
/**恢复旋转角度和坐标原点**/
|
||||||
|
ctx.rotate(-deg * Math.PI / 180);
|
||||||
|
ctx.translate(-x, -y);
|
||||||
|
}
|
||||||
|
/**绘制干扰线**/
|
||||||
|
for(var i = 0; i < 4; i++) {
|
||||||
|
ctx.strokeStyle = randomColor(40, 180);
|
||||||
|
ctx.beginPath();
|
||||||
|
ctx.moveTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
|
||||||
|
ctx.lineTo(randomNum(0, this.options.width), randomNum(0, this.options.height));
|
||||||
|
ctx.stroke();
|
||||||
|
}
|
||||||
|
/**绘制干扰点**/
|
||||||
|
for(var i = 0; i < this.options.width/4; i++) {
|
||||||
|
ctx.fillStyle = randomColor(0, 255);
|
||||||
|
ctx.beginPath();
|
||||||
|
ctx.arc(randomNum(0, this.options.width), randomNum(0, this.options.height), 1, 0, 2 * Math.PI);
|
||||||
|
ctx.fill();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/**验证验证码**/
|
||||||
|
validate: function(code){
|
||||||
|
var code = code.toLowerCase();
|
||||||
|
var v_code = this.options.code.toLowerCase();
|
||||||
|
if(code == v_code){
|
||||||
|
return true;
|
||||||
|
}else{
|
||||||
|
this.refresh();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**生成字母数组**/
|
||||||
|
function getAllLetter() {
|
||||||
|
var letterStr = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
|
||||||
|
return letterStr.split(",");
|
||||||
|
}
|
||||||
|
/**生成一个随机数**/
|
||||||
|
function randomNum(min, max) {
|
||||||
|
return Math.floor(Math.random() * (max - min) + min);
|
||||||
|
}
|
||||||
|
/**生成一个随机色**/
|
||||||
|
function randomColor(min, max) {
|
||||||
|
var r = randomNum(min, max);
|
||||||
|
var g = randomNum(min, max);
|
||||||
|
var b = randomNum(min, max);
|
||||||
|
return "rgb(" + r + "," + g + "," + b + ")";
|
||||||
|
}
|
||||||
|
window.GVerify = GVerify;
|
||||||
|
})(window, document);
|
||||||
@@ -26,7 +26,10 @@
|
|||||||
<input type="password" id="user_pwd"/>
|
<input type="password" id="user_pwd"/>
|
||||||
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
||||||
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
||||||
<input type="button" value=" " id="btn_login"/>
|
<div class="login_btn">
|
||||||
|
<input type="button" value="登录" id="btn_login"/>
|
||||||
|
<input type="button" value="立即注册" id="btn_register"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p id="copyright">
|
<p id="copyright">
|
||||||
Copyright © 2017-2020 季圣华(jishenghua)
|
Copyright © 2017-2020 季圣华(jishenghua)
|
||||||
@@ -40,6 +43,7 @@
|
|||||||
//进入页面聚焦在username输入框,方便 用户输入
|
//进入页面聚焦在username输入框,方便 用户输入
|
||||||
$("#user_name").focus();
|
$("#user_name").focus();
|
||||||
browserFit();
|
browserFit();
|
||||||
|
checkTenantStatus();
|
||||||
});
|
});
|
||||||
|
|
||||||
//浏览器适配
|
//浏览器适配
|
||||||
@@ -50,6 +54,32 @@
|
|||||||
$("#user_vcodepwd").empty().append("密 码:");
|
$("#user_vcodepwd").empty().append("密 码:");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//判断是否开启多租户
|
||||||
|
function checkTenantStatus(){
|
||||||
|
$("#btn_register").hide();
|
||||||
|
$.ajax({
|
||||||
|
type: "get",
|
||||||
|
url: "/user/getTenantStatus",
|
||||||
|
dataType: "json",
|
||||||
|
success: function (res) {
|
||||||
|
if(res && res.code === 200) {
|
||||||
|
if(res.data) {
|
||||||
|
if(res.data.status == "open") {
|
||||||
|
$("#btn_register").show();
|
||||||
|
} else if(res.data.status == "close") {
|
||||||
|
$("#btn_register").hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$("#btn_register").hide();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
$("#btn_register").hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//初始化键盘enter事件
|
//初始化键盘enter事件
|
||||||
$(document).keydown(function (event) {
|
$(document).keydown(function (event) {
|
||||||
//兼容 IE和firefox 事件
|
//兼容 IE和firefox 事件
|
||||||
@@ -66,6 +96,10 @@
|
|||||||
$('#btn_login').off("click").on("click", function () {
|
$('#btn_login').off("click").on("click", function () {
|
||||||
checkUserInput();
|
checkUserInput();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#btn_register").off("click").on("click", function () {
|
||||||
|
location.href = "register.html";
|
||||||
|
});
|
||||||
|
|
||||||
//检测用户输入数据
|
//检测用户输入数据
|
||||||
function checkUserInput() {
|
function checkUserInput() {
|
||||||
|
|||||||
@@ -356,6 +356,7 @@
|
|||||||
//加载完以后重新初始化
|
//加载完以后重新初始化
|
||||||
var opts = $("#tableData").datagrid('options');
|
var opts = $("#tableData").datagrid('options');
|
||||||
showDepotDetails(opts.pageNumber, opts.pageSize);
|
showDepotDetails(opts.pageNumber, opts.pageSize);
|
||||||
|
$.messager.alert('提示', '保存成功,请给用户分配该仓库才能使用!', 'info');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//此处添加错误处理
|
//此处添加错误处理
|
||||||
|
|||||||
@@ -257,7 +257,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -259,7 +259,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -178,7 +178,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -251,7 +251,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -174,7 +174,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
@@ -255,7 +255,7 @@
|
|||||||
<table class="money-dlg">
|
<table class="money-dlg">
|
||||||
<tr class="money-head-tmp">
|
<tr class="money-head-tmp">
|
||||||
<td style="width:30px;"></td>
|
<td style="width:30px;"></td>
|
||||||
<td style="width:140px; padding:5px;">结算账户</td>
|
<td style="width:140px; padding:5px;">支出项目</td>
|
||||||
<td style="width:100px; padding:5px;">金额</td>
|
<td style="width:100px; padding:5px;">金额</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
|||||||
100
erp_web/register.html
Normal file
100
erp_web/register.html
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>ERP系统</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=8" >
|
||||||
|
<meta name="referrer" content="Webkit">
|
||||||
|
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
|
||||||
|
<link type="text/css" rel="stylesheet" href="/css/css.css"/>
|
||||||
|
<script type="text/javascript" src="/js/jquery-1.8.0.min.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/common/common.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/md5/md5.js"></script>
|
||||||
|
<script type="text/javascript" src="/js/gVerify.js"></script>
|
||||||
|
</head>
|
||||||
|
<body id="login_body">
|
||||||
|
<div id="login_main">
|
||||||
|
<div id="login">
|
||||||
|
<p id="login_signal"><img src="/images/register_tip.jpg" width="108" height="29" alt="login"/></p>
|
||||||
|
<p id="txt_username">
|
||||||
|
<label for="user_name">用户名:</label>
|
||||||
|
</p>
|
||||||
|
<p id="txt_userpwd">
|
||||||
|
<label for="user_vcodepwd" id="user_vcodepwd">密 码:</label>
|
||||||
|
</p>
|
||||||
|
<p id="txt_userpwd_repeat">
|
||||||
|
<label for="user_vcodepwd" id="user_vcodepwd_repeat">确认密码:</label>
|
||||||
|
</p>
|
||||||
|
<p id="txt_captcha">
|
||||||
|
<label>验证码:</label>
|
||||||
|
</p>
|
||||||
|
<input type="text" id="user_name"/>
|
||||||
|
<input type="password" id="user_pwd"/>
|
||||||
|
<input type="password" id="user_pwd_repeat"/>
|
||||||
|
<input type="text" id="user_captcha"/>
|
||||||
|
<div id="imgCaptcha"></div>
|
||||||
|
<p id="tip_username" style="display: none"><span class="error_input">用户名不正确</span></p>
|
||||||
|
<p id="tip_userpwd" style="display: none">密码不能为空</p>
|
||||||
|
<div class="register_btn">
|
||||||
|
<input type="button" value="注册" id="btn_register"/>
|
||||||
|
<input type="button" value="立即登录" id="btn_login"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p id="copyright">
|
||||||
|
Copyright © 2017-2020 季圣华(jishenghua)
|
||||||
|
<a style="color:#00458a;" href="https://gitee.com/jishenghua/JSH_ERP" target="_blank">华夏ERP_v2.0</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
var verifyCode = new GVerify("imgCaptcha");
|
||||||
|
//注册按钮绑定处理事件
|
||||||
|
$("#btn_register").off("click").on("click", function () {
|
||||||
|
if($("#user_captcha").val()) {
|
||||||
|
var res = verifyCode.validate($("#user_captcha").val());
|
||||||
|
if(res){
|
||||||
|
if(!$("#user_name").val()) {
|
||||||
|
alert("用户名不能为空!");
|
||||||
|
} else if(!$("#user_pwd").val()) {
|
||||||
|
alert("密码不能为空!");
|
||||||
|
} else if(!$("#user_pwd_repeat").val()) {
|
||||||
|
alert("确认密码不能为空!");
|
||||||
|
} else if($("#user_pwd").val()!=$("#user_pwd_repeat").val()) {
|
||||||
|
$("#user_pwd_repeat").val("");
|
||||||
|
alert("确认密码不一致!");
|
||||||
|
} else {
|
||||||
|
//执行注册
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
url: "/user/registerUser",
|
||||||
|
dataType: "json",
|
||||||
|
data: ({
|
||||||
|
loginame: $("#user_name").val(),
|
||||||
|
password: $("#user_pwd").val()
|
||||||
|
}),
|
||||||
|
success: function (res) {
|
||||||
|
if (res && res.code === 200) {
|
||||||
|
alert("注册成功!");
|
||||||
|
} else {
|
||||||
|
alert("注册失败!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//此处添加错误处理
|
||||||
|
error: function () {
|
||||||
|
alert("后台访问错误,请联系管理员!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
alert("验证码错误!");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
alert("验证码为空!");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#btn_login').off("click").on("click", function () {
|
||||||
|
location.href = "login.html";
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
|
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantHandler;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
|
import com.baomidou.mybatisplus.extension.plugins.tenant.TenantSqlParser;
|
||||||
|
import com.jsh.erp.datasource.entities.User;
|
||||||
import net.sf.jsqlparser.expression.Expression;
|
import net.sf.jsqlparser.expression.Expression;
|
||||||
import net.sf.jsqlparser.expression.LongValue;
|
import net.sf.jsqlparser.expression.LongValue;
|
||||||
import org.mybatis.spring.mapper.MapperScannerConfigurer;
|
import org.mybatis.spring.mapper.MapperScannerConfigurer;
|
||||||
@@ -42,16 +43,27 @@ public class TenantConfig {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean doTableFilter(String tableName) {
|
public boolean doTableFilter(String tableName) {
|
||||||
//从session中获取租户id
|
//获取开启状态
|
||||||
Object mybatisPlusStatus = request.getSession().getAttribute("mybatisPlusStatus");
|
Object mybatisPlusStatus = request.getSession().getAttribute("mybatisPlusStatus");
|
||||||
if(mybatisPlusStatus !=null && mybatisPlusStatus.toString().equals("open")) {
|
if(mybatisPlusStatus !=null && mybatisPlusStatus.toString().equals("open")) {
|
||||||
// 这里可以判断是否过滤表
|
//从session中获取租户id
|
||||||
if ("databasechangelog".equals(tableName) || "databasechangeloglock".equals(tableName)
|
String loginName = null;
|
||||||
|| "jsh_materialproperty".equals(tableName) || "tbl_sequence".equals(tableName) || "dual".equals(tableName)
|
Object userInfo = request.getSession().getAttribute("user");
|
||||||
|| "jsh_userbusiness".equals(tableName) || "jsh_app".equals(tableName) || "jsh_functions".equals(tableName)) {
|
if(userInfo != null) {
|
||||||
|
User user = (User) userInfo;
|
||||||
|
loginName = user.getLoginame();
|
||||||
|
}
|
||||||
|
if(("admin").equals(loginName)) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
return false;
|
// 这里可以判断是否过滤表
|
||||||
|
if ("databasechangelog".equals(tableName) || "databasechangeloglock".equals(tableName)
|
||||||
|
|| "jsh_materialproperty".equals(tableName) || "tbl_sequence".equals(tableName) || "dual".equals(tableName)
|
||||||
|
|| "jsh_userbusiness".equals(tableName) || "jsh_app".equals(tableName) || "jsh_functions".equals(tableName)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -165,21 +165,23 @@ public class AppController {
|
|||||||
JSONArray dataArray = new JSONArray();
|
JSONArray dataArray = new JSONArray();
|
||||||
if (null != dataList) {
|
if (null != dataList) {
|
||||||
for (App app : dataList) {
|
for (App app : dataList) {
|
||||||
JSONObject item = new JSONObject();
|
if(!("系统管理").equals(app.getName())) {
|
||||||
item.put("id", app.getId());
|
JSONObject item = new JSONObject();
|
||||||
item.put("text", app.getName());
|
item.put("id", app.getId());
|
||||||
//勾选判断1
|
item.put("text", app.getName());
|
||||||
Boolean flag = false;
|
//勾选判断1
|
||||||
try {
|
Boolean flag = false;
|
||||||
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + app.getId().toString() + "]");
|
try {
|
||||||
} catch (Exception e) {
|
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + app.getId().toString() + "]");
|
||||||
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的应用:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
} catch (Exception e) {
|
||||||
|
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的应用:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
||||||
|
}
|
||||||
|
if (flag == true) {
|
||||||
|
item.put("checked", true);
|
||||||
|
}
|
||||||
|
//结束
|
||||||
|
dataArray.add(item);
|
||||||
}
|
}
|
||||||
if (flag == true) {
|
|
||||||
item.put("checked", true);
|
|
||||||
}
|
|
||||||
//结束
|
|
||||||
dataArray.add(item);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
outer.put("children", dataArray);
|
outer.put("children", dataArray);
|
||||||
|
|||||||
@@ -129,104 +129,106 @@ public class FunctionsController {
|
|||||||
JSONArray dataArray = new JSONArray();
|
JSONArray dataArray = new JSONArray();
|
||||||
if (null != dataList) {
|
if (null != dataList) {
|
||||||
for (Functions functions : dataList) {
|
for (Functions functions : dataList) {
|
||||||
JSONObject item = new JSONObject();
|
if(!("系统管理").equals(functions.getName())) {
|
||||||
item.put("id", functions.getId());
|
JSONObject item = new JSONObject();
|
||||||
item.put("text", functions.getName());
|
item.put("id", functions.getId());
|
||||||
|
item.put("text", functions.getName());
|
||||||
|
|
||||||
//勾选判断1
|
//勾选判断1
|
||||||
Boolean flag = false;
|
Boolean flag = false;
|
||||||
try {
|
try {
|
||||||
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions.getId().toString() + "]");
|
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions.getId().toString() + "]");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
||||||
}
|
|
||||||
if (flag == true) {
|
|
||||||
item.put("checked", true);
|
|
||||||
}
|
|
||||||
//结束
|
|
||||||
|
|
||||||
List<Functions> dataList1 = functionsService.findRoleFunctions(functions.getNumber());
|
|
||||||
JSONArray dataArray1 = new JSONArray();
|
|
||||||
if (null != dataList1) {
|
|
||||||
|
|
||||||
for (Functions functions1 : dataList1) {
|
|
||||||
item.put("state", "open"); //如果不为空,节点不展开
|
|
||||||
JSONObject item1 = new JSONObject();
|
|
||||||
item1.put("id", functions1.getId());
|
|
||||||
item1.put("text", functions1.getName());
|
|
||||||
|
|
||||||
//勾选判断2
|
|
||||||
//Boolean flag = false;
|
|
||||||
try {
|
|
||||||
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions1.getId().toString() + "]");
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
|
||||||
}
|
|
||||||
if (flag == true) {
|
|
||||||
item1.put("checked", true);
|
|
||||||
}
|
|
||||||
//结束
|
|
||||||
|
|
||||||
List<Functions> dataList2 = functionsService.findRoleFunctions(functions1.getNumber());
|
|
||||||
JSONArray dataArray2 = new JSONArray();
|
|
||||||
if (null != dataList2) {
|
|
||||||
|
|
||||||
for (Functions functions2 : dataList2) {
|
|
||||||
item1.put("state", "closed"); //如果不为空,节点不展开
|
|
||||||
JSONObject item2 = new JSONObject();
|
|
||||||
item2.put("id", functions2.getId());
|
|
||||||
item2.put("text", functions2.getName());
|
|
||||||
|
|
||||||
//勾选判断3
|
|
||||||
//Boolean flag = false;
|
|
||||||
try {
|
|
||||||
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions2.getId().toString() + "]");
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
|
||||||
}
|
|
||||||
if (flag == true) {
|
|
||||||
item2.put("checked", true);
|
|
||||||
}
|
|
||||||
//结束
|
|
||||||
|
|
||||||
List<Functions> dataList3 = functionsService.findRoleFunctions(functions2.getNumber());
|
|
||||||
JSONArray dataArray3 = new JSONArray();
|
|
||||||
if (null != dataList3) {
|
|
||||||
|
|
||||||
for (Functions functions3 : dataList3) {
|
|
||||||
item2.put("state", "closed"); //如果不为空,节点不展开
|
|
||||||
JSONObject item3 = new JSONObject();
|
|
||||||
item3.put("id", functions3.getId());
|
|
||||||
item3.put("text", functions3.getName());
|
|
||||||
|
|
||||||
//勾选判断4
|
|
||||||
//Boolean flag = false;
|
|
||||||
try {
|
|
||||||
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions3.getId().toString() + "]");
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
|
||||||
}
|
|
||||||
if (flag == true) {
|
|
||||||
item3.put("checked", true);
|
|
||||||
}
|
|
||||||
//结束
|
|
||||||
|
|
||||||
dataArray3.add(item3);
|
|
||||||
item2.put("children", dataArray3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dataArray2.add(item2);
|
|
||||||
item1.put("children", dataArray2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dataArray1.add(item1);
|
|
||||||
item.put("children", dataArray1);
|
|
||||||
}
|
}
|
||||||
|
if (flag == true) {
|
||||||
|
item.put("checked", true);
|
||||||
|
}
|
||||||
|
//结束
|
||||||
|
|
||||||
|
List<Functions> dataList1 = functionsService.findRoleFunctions(functions.getNumber());
|
||||||
|
JSONArray dataArray1 = new JSONArray();
|
||||||
|
if (null != dataList1) {
|
||||||
|
|
||||||
|
for (Functions functions1 : dataList1) {
|
||||||
|
item.put("state", "open"); //如果不为空,节点不展开
|
||||||
|
JSONObject item1 = new JSONObject();
|
||||||
|
item1.put("id", functions1.getId());
|
||||||
|
item1.put("text", functions1.getName());
|
||||||
|
|
||||||
|
//勾选判断2
|
||||||
|
//Boolean flag = false;
|
||||||
|
try {
|
||||||
|
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions1.getId().toString() + "]");
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
||||||
|
}
|
||||||
|
if (flag == true) {
|
||||||
|
item1.put("checked", true);
|
||||||
|
}
|
||||||
|
//结束
|
||||||
|
|
||||||
|
List<Functions> dataList2 = functionsService.findRoleFunctions(functions1.getNumber());
|
||||||
|
JSONArray dataArray2 = new JSONArray();
|
||||||
|
if (null != dataList2) {
|
||||||
|
|
||||||
|
for (Functions functions2 : dataList2) {
|
||||||
|
item1.put("state", "closed"); //如果不为空,节点不展开
|
||||||
|
JSONObject item2 = new JSONObject();
|
||||||
|
item2.put("id", functions2.getId());
|
||||||
|
item2.put("text", functions2.getName());
|
||||||
|
|
||||||
|
//勾选判断3
|
||||||
|
//Boolean flag = false;
|
||||||
|
try {
|
||||||
|
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions2.getId().toString() + "]");
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
||||||
|
}
|
||||||
|
if (flag == true) {
|
||||||
|
item2.put("checked", true);
|
||||||
|
}
|
||||||
|
//结束
|
||||||
|
|
||||||
|
List<Functions> dataList3 = functionsService.findRoleFunctions(functions2.getNumber());
|
||||||
|
JSONArray dataArray3 = new JSONArray();
|
||||||
|
if (null != dataList3) {
|
||||||
|
|
||||||
|
for (Functions functions3 : dataList3) {
|
||||||
|
item2.put("state", "closed"); //如果不为空,节点不展开
|
||||||
|
JSONObject item3 = new JSONObject();
|
||||||
|
item3.put("id", functions3.getId());
|
||||||
|
item3.put("text", functions3.getName());
|
||||||
|
|
||||||
|
//勾选判断4
|
||||||
|
//Boolean flag = false;
|
||||||
|
try {
|
||||||
|
flag = userBusinessService.checkIsUserBusinessExist(type, keyId, "[" + functions3.getId().toString() + "]");
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(">>>>>>>>>>>>>>>>>设置角色对应的功能:类型" + type + " KeyId为: " + keyId + " 存在异常!");
|
||||||
|
}
|
||||||
|
if (flag == true) {
|
||||||
|
item3.put("checked", true);
|
||||||
|
}
|
||||||
|
//结束
|
||||||
|
|
||||||
|
dataArray3.add(item3);
|
||||||
|
item2.put("children", dataArray3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dataArray2.add(item2);
|
||||||
|
item1.put("children", dataArray2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dataArray1.add(item1);
|
||||||
|
item.put("children", dataArray1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
dataArray.add(item);
|
||||||
}
|
}
|
||||||
dataArray.add(item);
|
|
||||||
}
|
}
|
||||||
outer.put("children", dataArray);
|
outer.put("children", dataArray);
|
||||||
arr.add(outer);
|
arr.add(outer);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import com.jsh.erp.datasource.entities.UserEx;
|
|||||||
import com.jsh.erp.datasource.vo.TreeNode;
|
import com.jsh.erp.datasource.vo.TreeNode;
|
||||||
import com.jsh.erp.datasource.vo.TreeNodeEx;
|
import com.jsh.erp.datasource.vo.TreeNodeEx;
|
||||||
import com.jsh.erp.service.user.UserService;
|
import com.jsh.erp.service.user.UserService;
|
||||||
|
import com.jsh.erp.service.userBusiness.UserBusinessService;
|
||||||
import com.jsh.erp.utils.*;
|
import com.jsh.erp.utils.*;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -25,6 +26,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -41,10 +43,24 @@ public class UserController {
|
|||||||
@Value("${mybatis-plus.status}")
|
@Value("${mybatis-plus.status}")
|
||||||
private String mybatisPlusStatus;
|
private String mybatisPlusStatus;
|
||||||
|
|
||||||
|
@Value("${manage.ip}")
|
||||||
|
private String manageIp;
|
||||||
|
|
||||||
|
@Value("${manage.port}")
|
||||||
|
private Integer managePort;
|
||||||
|
|
||||||
|
@Value("${manage.roleId}")
|
||||||
|
private Integer manageRoleId;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private UserBusinessService userBusinessService;
|
||||||
|
|
||||||
private static String message = "成功";
|
private static String message = "成功";
|
||||||
|
private static final String HTTP = "http://";
|
||||||
|
private static final String CODE_OK = "200";
|
||||||
|
|
||||||
@PostMapping(value = "/login")
|
@PostMapping(value = "/login")
|
||||||
public BaseResponseInfo login(@RequestParam(value = "loginame", required = false) String loginame,
|
public BaseResponseInfo login(@RequestParam(value = "loginame", required = false) String loginame,
|
||||||
@@ -96,7 +112,17 @@ public class UserController {
|
|||||||
// new Timestamp(System.currentTimeMillis()), (short) 0, "管理用户:" + username + " 登录系统", username + " 登录系统"));
|
// new Timestamp(System.currentTimeMillis()), (short) 0, "管理用户:" + username + " 登录系统", username + " 登录系统"));
|
||||||
msgTip = "user can login";
|
msgTip = "user can login";
|
||||||
request.getSession().setAttribute("user",user);
|
request.getSession().setAttribute("user",user);
|
||||||
request.getSession().setAttribute("tenantId",1L); //租户id
|
String url = HTTP + manageIp + ":" + managePort + "/tenant/getTenant?tenantId=" + user.getId();
|
||||||
|
JSONObject obj = HttpClient.httpGet(url);
|
||||||
|
if(obj!=null && obj.getString("code").equals(CODE_OK)) {
|
||||||
|
JSONObject dataObj = obj.getJSONObject("data");
|
||||||
|
if(dataObj!=null) {
|
||||||
|
String id = dataObj.getString("tenantId");
|
||||||
|
if(id!=null) {
|
||||||
|
request.getSession().setAttribute("tenantId",id); //租户id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
request.getSession().setAttribute("mybatisPlusStatus",mybatisPlusStatus); //开启状态
|
request.getSession().setAttribute("mybatisPlusStatus",mybatisPlusStatus); //开启状态
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error(">>>>>>>>>>>>>>>查询用户名为:" + username + " ,用户信息异常", e);
|
logger.error(">>>>>>>>>>>>>>>查询用户名为:" + username + " ,用户信息异常", e);
|
||||||
@@ -149,6 +175,8 @@ public class UserController {
|
|||||||
BaseResponseInfo res = new BaseResponseInfo();
|
BaseResponseInfo res = new BaseResponseInfo();
|
||||||
try {
|
try {
|
||||||
request.getSession().removeAttribute("user");
|
request.getSession().removeAttribute("user");
|
||||||
|
request.getSession().removeAttribute("tenantId");
|
||||||
|
request.getSession().removeAttribute("mybatisPlusStatus");
|
||||||
response.sendRedirect("/login.html");
|
response.sendRedirect("/login.html");
|
||||||
} catch(Exception e){
|
} catch(Exception e){
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -283,12 +311,55 @@ public class UserController {
|
|||||||
@PostMapping("/addUser")
|
@PostMapping("/addUser")
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public Object addUser(@RequestParam("info") String beanJson)throws Exception{
|
public Object addUser(@RequestParam("info") String beanJson)throws Exception{
|
||||||
|
|
||||||
JSONObject result = ExceptionConstants.standardSuccess();
|
JSONObject result = ExceptionConstants.standardSuccess();
|
||||||
UserEx ue= JSON.parseObject(beanJson, UserEx.class);
|
UserEx ue= JSON.parseObject(beanJson, UserEx.class);
|
||||||
userService.addUserAndOrgUserRel(ue);
|
userService.addUserAndOrgUserRel(ue);
|
||||||
return result;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册用户
|
||||||
|
* @param loginame
|
||||||
|
* @param password
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/registerUser")
|
||||||
|
public Object registerUser(@RequestParam(value = "loginame", required = false) String loginame,
|
||||||
|
@RequestParam(value = "password", required = false) String password,
|
||||||
|
HttpServletRequest request)throws Exception{
|
||||||
|
JSONObject result = ExceptionConstants.standardSuccess();
|
||||||
|
UserEx ue= new UserEx();
|
||||||
|
ue.setUsername(loginame);
|
||||||
|
ue.setLoginame(loginame);
|
||||||
|
ue.setPassword(password);
|
||||||
|
ue = userService.registerUser(ue);
|
||||||
|
|
||||||
|
//调第三方接口创建租户管理信息
|
||||||
|
String url = HTTP + manageIp + ":" + managePort + "/tenant/add";
|
||||||
|
JSONObject tenantObj = new JSONObject();
|
||||||
|
tenantObj.put("tenantId", ue.getId());
|
||||||
|
tenantObj.put("loginName",ue.getLoginame());
|
||||||
|
String param = URLEncoder.encode(tenantObj.toString());
|
||||||
|
HttpClient.httpPost(url + "?info=" + param, param);
|
||||||
|
logger.info("===============创建租户信息完成===============");
|
||||||
|
|
||||||
|
//更新租户id
|
||||||
|
User user = new User();
|
||||||
|
user.setId(ue.getId());
|
||||||
|
user.setTenantId(ue.getId());
|
||||||
|
userService.updateUserTenant(user);
|
||||||
|
|
||||||
|
//新增用户与角色的关系
|
||||||
|
JSONObject ubObj = new JSONObject();
|
||||||
|
ubObj.put("type", "UserRole");
|
||||||
|
ubObj.put("keyid", ue.getId());
|
||||||
|
JSONArray ubArr = new JSONArray();
|
||||||
|
ubArr.add(manageRoleId);
|
||||||
|
ubObj.put("value", ubArr.toString());
|
||||||
|
userBusinessService.insertUserBusiness(ubObj.toString(), request);
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* create by: cjl
|
* create by: cjl
|
||||||
@@ -335,4 +406,19 @@ public class UserController {
|
|||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/getTenantStatus")
|
||||||
|
public BaseResponseInfo getTenantStatus(HttpServletRequest request) {
|
||||||
|
BaseResponseInfo res = new BaseResponseInfo();
|
||||||
|
try {
|
||||||
|
Map<String, Object> data = new HashMap<String, Object>();
|
||||||
|
data.put("status", mybatisPlusStatus);
|
||||||
|
res.code = 200;
|
||||||
|
res.data = data;
|
||||||
|
} catch(Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
res.code = 500;
|
||||||
|
res.data = "获取失败";
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.jsh.erp.filter;
|
package com.jsh.erp.filter;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import javax.servlet.*;
|
import javax.servlet.*;
|
||||||
import javax.servlet.annotation.WebFilter;
|
import javax.servlet.annotation.WebFilter;
|
||||||
import javax.servlet.annotation.WebInitParam;
|
import javax.servlet.annotation.WebInitParam;
|
||||||
@@ -16,7 +14,8 @@ import java.util.regex.Pattern;
|
|||||||
|
|
||||||
@WebFilter(filterName = "LogCostFilter", urlPatterns = {"/*"},
|
@WebFilter(filterName = "LogCostFilter", urlPatterns = {"/*"},
|
||||||
initParams = {@WebInitParam(name = "ignoredUrl", value = ".css#.js#.jpg#.png#.gif#.ico"),
|
initParams = {@WebInitParam(name = "ignoredUrl", value = ".css#.js#.jpg#.png#.gif#.ico"),
|
||||||
@WebInitParam(name = "filterPath", value = "/user/login")})
|
@WebInitParam(name = "filterPath",
|
||||||
|
value = "/user/login#/user/registerUser#/user/getTenantStatus")})
|
||||||
public class LogCostFilter implements Filter {
|
public class LogCostFilter implements Filter {
|
||||||
|
|
||||||
private static final String FILTER_PATH = "filterPath";
|
private static final String FILTER_PATH = "filterPath";
|
||||||
@@ -53,7 +52,7 @@ public class LogCostFilter implements Filter {
|
|||||||
chain.doFilter(request, response);
|
chain.doFilter(request, response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (requestUrl != null && requestUrl.contains("/login.html")) {
|
if (requestUrl != null && (requestUrl.contains("/login.html") || requestUrl.contains("/register.html"))) {
|
||||||
chain.doFilter(request, response);
|
chain.doFilter(request, response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ public class DepotHeadService {
|
|||||||
|
|
||||||
public List<DepotHead> findByMonth(String monthTime) {
|
public List<DepotHead> findByMonth(String monthTime) {
|
||||||
DepotHeadExample example = new DepotHeadExample();
|
DepotHeadExample example = new DepotHeadExample();
|
||||||
monthTime = monthTime + "-31 00:00:00";
|
monthTime = monthTime + "-31 23:59:59";
|
||||||
Date month = StringUtil.getDateByString(monthTime, null);
|
Date month = StringUtil.getDateByString(monthTime, null);
|
||||||
example.createCriteria().andOpertimeLessThanOrEqualTo(month);
|
example.createCriteria().andOpertimeLessThanOrEqualTo(month);
|
||||||
return depotHeadMapper.selectByExample(example);
|
return depotHeadMapper.selectByExample(example);
|
||||||
|
|||||||
@@ -15,10 +15,7 @@ import com.jsh.erp.datasource.vo.TreeNodeEx;
|
|||||||
import com.jsh.erp.exception.BusinessRunTimeException;
|
import com.jsh.erp.exception.BusinessRunTimeException;
|
||||||
import com.jsh.erp.service.log.LogService;
|
import com.jsh.erp.service.log.LogService;
|
||||||
import com.jsh.erp.service.orgaUserRel.OrgaUserRelService;
|
import com.jsh.erp.service.orgaUserRel.OrgaUserRelService;
|
||||||
import com.jsh.erp.utils.ExceptionCodeConstants;
|
import com.jsh.erp.utils.*;
|
||||||
import com.jsh.erp.utils.JshException;
|
|
||||||
import com.jsh.erp.utils.StringUtil;
|
|
||||||
import com.jsh.erp.utils.Tools;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -29,6 +26,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.net.URLEncoder;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -272,6 +270,29 @@ public class UserService {
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
|
public UserEx registerUser(UserEx ue) throws Exception{
|
||||||
|
ue.setPassword(Tools.md5Encryp(ue.getPassword()));
|
||||||
|
ue.setIsystem(BusinessConstants.USER_NOT_SYSTEM);
|
||||||
|
if(ue.getIsmanager()==null){
|
||||||
|
ue.setIsmanager(BusinessConstants.USER_NOT_MANAGER);
|
||||||
|
}
|
||||||
|
ue.setStatus(BusinessConstants.USER_STATUS_NORMAL);
|
||||||
|
int i=userMapperEx.addUser(ue);
|
||||||
|
if(i>0){
|
||||||
|
return ue;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
|
public void updateUserTenant(User user) throws Exception{
|
||||||
|
UserExample example = new UserExample();
|
||||||
|
example.createCriteria().andIdEqualTo(user.getId());
|
||||||
|
userMapper.updateByPrimaryKeySelective(user);
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
public void updateUserAndOrgUserRel(UserEx ue) throws Exception{
|
public void updateUserAndOrgUserRel(UserEx ue) throws Exception{
|
||||||
logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_USER,
|
logService.insertLog(BusinessConstants.LOG_INTERFACE_NAME_USER,
|
||||||
|
|||||||
88
src/main/java/com/jsh/erp/utils/HttpClient.java
Normal file
88
src/main/java/com/jsh/erp/utils/HttpClient.java
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
package com.jsh.erp.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.apache.http.HttpEntity;
|
||||||
|
import org.apache.http.client.config.RequestConfig;
|
||||||
|
import org.apache.http.client.entity.EntityBuilder;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.methods.HttpPost;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClientBuilder;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import static org.apache.http.HttpStatus.SC_OK;
|
||||||
|
|
||||||
|
public final class HttpClient {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(HttpClient.class);
|
||||||
|
|
||||||
|
private static final RequestConfig REQUEST_CONFIG = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(10000).build();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采用Get方式发送请求,获取响应数据
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static JSONObject httpGet(String url){
|
||||||
|
CloseableHttpClient client = HttpClientBuilder.create().build();
|
||||||
|
HttpGet httpGet = new HttpGet(url);
|
||||||
|
httpGet.setConfig(REQUEST_CONFIG);
|
||||||
|
try {
|
||||||
|
CloseableHttpResponse chr = client.execute(httpGet);
|
||||||
|
int statusCode = chr.getStatusLine().getStatusCode();
|
||||||
|
if (SC_OK != statusCode) {
|
||||||
|
throw new RuntimeException(String.format("%s查询出现异常", url));
|
||||||
|
}
|
||||||
|
String entity = EntityUtils.toString(chr.getEntity(), StandardCharsets.UTF_8);
|
||||||
|
JSONObject object = JSONObject.parseObject(entity);
|
||||||
|
return object;
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new RuntimeException(String.format("%s", url) + "查询出现异常");
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
client.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 采用Post方式发送请求,获取响应数据
|
||||||
|
*
|
||||||
|
* @param url url地址
|
||||||
|
* @param param 参数值键值对的字符串
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String httpPost(String url, String param) {
|
||||||
|
CloseableHttpClient client = HttpClientBuilder.create().build();
|
||||||
|
try {
|
||||||
|
HttpPost post = new HttpPost(url);
|
||||||
|
EntityBuilder builder = EntityBuilder.create();
|
||||||
|
builder.setContentType(ContentType.APPLICATION_JSON);
|
||||||
|
builder.setText(param);
|
||||||
|
post.setEntity(builder.build());
|
||||||
|
|
||||||
|
CloseableHttpResponse response = client.execute(post);
|
||||||
|
int statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
String data = EntityUtils.toString(entity, StandardCharsets.UTF_8);
|
||||||
|
logger.info("状态:"+statusCode+"数据:"+data);
|
||||||
|
return data;
|
||||||
|
} catch(Exception e){
|
||||||
|
throw new RuntimeException(e.getMessage());
|
||||||
|
} finally {
|
||||||
|
try{
|
||||||
|
client.close();
|
||||||
|
}catch(Exception ex){ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -27,7 +27,10 @@ pagehelper.supportMethodsArguments=false
|
|||||||
#open开启 close关闭
|
#open开启 close关闭
|
||||||
mybatis-plus.status=close
|
mybatis-plus.status=close
|
||||||
mybatis-plus.mapper-locations=classpath:./mapper_xml/*.xml
|
mybatis-plus.mapper-locations=classpath:./mapper_xml/*.xml
|
||||||
|
#获取管理系统信息
|
||||||
|
manage.ip=127.0.0.1
|
||||||
|
manage.port=8090
|
||||||
|
manage.roleId=10
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user