Ver Fonte

权限管理

qzyReal há 3 anos atrás
pai
commit
e333676f9a

+ 1 - 1
app/pages/business-order/business-order.vue

@@ -49,7 +49,7 @@
 					</view>
 				</view>
 				<view class="b">
-					<view class="btn b3" v-if="customemrId=='1'" @click="businessFn(businessItem)">
+					<view class="btn b3" v-if="customemrId=='1'&&perList.indexOf('tb-business-item')!==-1" @click="businessFn(businessItem)">
 						作业订单</view>
 					<view class="btn b3" v-if="businessItem.payStatus==1
 								&&perList.indexOf('tb-business-confirm')!=-1

+ 10 - 6
app/pages/index/index.vue

@@ -109,12 +109,12 @@
 						id: 'tb-business-car',
 						auth: true,
 						icon: '../../static/home-icon-05.png',
-						text: '出入记录',
+						text: '放行记录',
 						url: '/pages/inout-record/inout-record',
 					}
 				],
 				adminList: [{
-						id: 'tb-business',
+						id: 'tb-business-add',
 						auth: true,
 						icon: '../../static/home-icon-02.png',
 						text: '业务录入',
@@ -122,7 +122,7 @@
 						
 					},
 					{
-						id: 'tb-business',
+						id: 'tb-business-list',
 						auth: true,
 						icon: '../../static/home-icon-03.png',
 						text: '业务订单',
@@ -132,7 +132,7 @@
 						id: 'tb-business-car',
 						auth: true,
 						icon: '../../static/home-icon-05.png',
-						text: '出入记录',
+						text: '放行记录',
 						url: '/pages/inout-record/inout-record',
 					},
 				]
@@ -153,8 +153,6 @@
 		},
 		methods: {
 			checkPer(code) {
-				console.log(code);
-				console.log(this.$common.isAuth(code))
 				return this.$common.isAuth(code);
 			},
 			getOpenidByCode() {
@@ -167,6 +165,12 @@
 					code: this.code,
 					openid: storeOpenid
 				}).then(resp => {
+					this.success=resp.code==200&&resp.data?1:0
+					if(resp.code==200&&resp.data){
+						this.success=1;
+					}else{
+						this.success=0
+					}
 					let openid = resp.data;
 					this.openid = openid;
 					if (openid) {

+ 10 - 7
sp-admin/sa-frame/menu-list.js

@@ -32,6 +32,16 @@ var menuList = [{
 				name: '管理员列表',
 				url: 'sa-view-sp/sp-admin/admin-list.html',
 			},
+			{
+				id: 'customer-auth-list',
+				name: '客户权限列表',
+				url: 'sa-view/tb-costomer/tb-menu-list.html',
+			},
+			{
+				id: 'partner-auth-list',
+				name: '合作伙伴列表',
+				url: 'sa-view/tb-partner/tb-menu-list.html',
+			},
 		]
 	},
 	{
@@ -40,7 +50,6 @@ var menuList = [{
 		parent: true,
 		icon: 'el-icon-s-custom',
 		childList: [{
-				
 				id: 'tb-costomer-list',
 				name: '客户列表',
 				url: 'sa-view/tb-costomer/tb-costomer-list.html'
@@ -54,7 +63,6 @@ var menuList = [{
 			{
 				id: 'tb-costomer-judge',
 				name: '审核',
-				
 				isShow: false
 			},
 			{
@@ -390,11 +398,6 @@ var menuList = [{
 					isShow: false
 				},
 				{
-					id: 'tb-declare-add',
-					name: '添加申报信息',
-					isShow: false
-				},
-				{
 					id: 'tb-declare-edit',
 					name: '修改申报信息',
 					isShow: false

+ 2 - 0
sp-admin/sa-view-sp/sp-admin/admin-add.html

@@ -81,6 +81,8 @@
 							sa.alert('添加成功, 账号id为:' + res.data, function(){
 								this.m = crateModel();
 								// location.reload();
+								parent.app.f5(); // 刷新父页面列表
+								sa.closeCurrIframe(); // 关闭本页 
 							}.bind(this));
 						}.bind(this));
 					}

+ 1 - 1
sp-admin/sa-view-sp/sp-admin/admin-list.html

@@ -164,7 +164,7 @@
 					},
 					// 新增
 					add: function() {
-						parent.sa_admin.showMenuById('admin-add');
+						sa.showIframe('添加详情', 'admin-add.html', '700px', '80%');
 					},
 					// 查看详情
 					getInfo: function(data) {

+ 6 - 6
sp-admin/sa-view/tb-costomer/customer-admin-list.html

@@ -33,7 +33,7 @@
 
 				</el-form>
 				<!-- ------------- 快捷按钮 ------------- -->
-				<el-button type="primary" icon="el-icon-plus" @click="add()" v-if="sa.isAuth('tb-costomer-maintain-user-add')">新增
+				<el-button type="primary" icon="el-icon-plus" @click="add()" v-if="sa.isAuth('tb-costomer-user-add')">新增
 				</el-button>
 				<el-button type="danger" icon="el-icon-delete" @click="deleteByIds()"
 					v-if="sa.isAuth('tb-costomer-maintain-user-del')">删除
@@ -53,19 +53,19 @@
 							<span @click="getInfo(s.row)">
 								<el-button type="success" class="c-btn" icon="el-icon-view">查看</el-button>
 							</span>
-							<span @click="updateName(s.row)" v-if="sa.isAuth('tb-costomer-maintain-user-edit')">
+							<span @click="updateName(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">
 								<el-button type="primary" class="c-btn" icon="el-icon-edit">改名称</el-button>
 							</span>
-							<span @click="updateAvatar(s.row)" v-if="sa.isAuth('tb-costomer-maintain-user-edit')">
+							<span @click="updateAvatar(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">
 								<el-button type="primary" class="c-btn" icon="el-icon-edit">改头像</el-button>
 							</span>
-							<span @click="updatePassword(s.row)" v-if="sa.isAuth('tb-costomer-maintain-user-edit')">
+							<span @click="updatePassword(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">
 								<el-button type="primary" class="c-btn" icon="el-icon-edit">改密码</el-button>
 							</span>
-							<span @click="roleFn(s.row)" v-if="sa.isAuth('tb-costomer-maintain-user-edit')">
+							<span @click="roleFn(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">
 								<el-button type="primary" class="c-btn" icon="el-icon-edit">角色</el-button>
 							</span>
-							<span @click="del(s.row)" v-if="sa.isAuth('tb-costomer-maintain-user-del')">
+							<span @click="del(s.row)" v-if="sa.isAuth('tb-costomer-user-del')">
 								<el-button type="danger" class="c-btn" icon="el-icon-delete">删除</el-button>
 							</span>
 						</template>

+ 204 - 0
sp-admin/sa-view/tb-costomer/tb-menu-list.html

@@ -0,0 +1,204 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>权限分配</title>
+		<meta charset="utf-8">
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style>
+			body,
+			.el-tree {
+				background-color: #eee;
+			}
+
+			.el-tree-node {
+				margin: 0.15em 0 !important;
+			}
+
+			/* 悬浮时颜色更深一点 */
+			.el-tree-node__content:hover {
+				background-color: #CFE8FC !important;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<!-- 表格 -->
+				<div style="padding: 1em 2em;">
+					<el-form>
+						<div class="c-title">所有权限</div>
+						<!-- 此扩展能递归渲染一个权限树,点击深层次节点,父级节点中没有被选中的节点会被自动选中,单独点击父节点,子节点会全部 选中/去选中 -->
+						<el-tree ref="tree" :data="dataList" node-key="id" :default-expand-all="true"
+							:default-checked-keys="selectList" :expand-on-click-node="false" :check-on-click-node="true"
+							:check-strictly="true" @node-click="node_click" @check="node_click">
+							<span class="custom-tree-node" slot-scope="s">
+								<span style="color: #2D8CF0;"
+									v-if="s.data.isShow == undefined || s.data.isShow == true">{{ s.data.name }}</span>
+								<span style="color: #999;" v-if="s.data.isShow == false">{{ s.data.name }} </span>
+								<span style="color: #999;" v-if="s.data.info">&emsp;———— {{s.data.info}} </span>
+							</span>
+						</el-tree>
+					</el-form>
+				</div>
+			</div>
+		</div>
+		<script src="../../sa-frame/menu-list.js?v=32648732"></script>
+		<script src="../../sa-frame/menu-list-sp.js"></script>
+		<script src="../../sa-frame/index/admin-util.js"></script>
+		<script>
+			var roleId = sa.p('roleId');
+			var app = new Vue({
+				el: '.vue-box',
+				data: {
+					p: [],
+					dataList: [], // 数据集合 
+					selectList: [], // 默认选中
+					ywList: [], // 一维数组 
+					haveList: [] // 这个角色用的权限id,拷贝 
+				},
+				methods: {
+					// 保存
+					ok: function(clickCount) {
+						if (clickCount === undefined) {
+							clickCount = 5;
+						}
+						// 判断是否改掉了关键权限 
+						var keys = this.$refs.tree.getCheckedKeys(); // 设置完拥有的id列表 
+						var rArr = ['1', '99', 'auth', 'role-list']; // 敏感菜单id列表 
+						var isR = false; // 是否给改掉了 
+						rArr.forEach(function(item) {
+							// 只有原先有,现在没有,才会被这样判定 
+							if (this.haveList.indexOf(item) > -1 && keys.indexOf(item) == -1) {
+								isR = true;
+							}
+						}.bind(this))
+						// 提示 
+						if (isR) {
+							var tipStr = '危险!系统检测到您取消了此角色的重要权限,这将导致与之关联的账号可能会无法正常使用后台,您无论如何都要这样设置吗?';
+							tipStr += '<br/>为保证您不是误操作,您还需要继续点击按钮: ' + clickCount + '次'
+							tipStr = '<b style="color: red;">' + tipStr + '</b>';
+							sa.confirm(tipStr, function(res) {
+								if (clickCount <= 1) {
+									this.ok2();
+								} else {
+									clickCount--;
+									this.ok(clickCount);
+								}
+							}.bind(this))
+						} else {
+							this.ok2();
+						}
+					},
+					// 开始设置 
+					ok2: function() {
+						var str = '';
+						var keys = this.$refs.tree.getCheckedKeys();
+						keys.forEach(function(ts) {
+							str += 'code=' + ts + '&';
+						})
+						var url = '/SpRolePermission/updatePcodeByRid?roleId=' + roleId;
+						sa.ajax(url, str, function(res) {
+							sa.alert('设置成功', function() {
+								sa.closeCurrIframe();
+							});
+							// 如果设置的角色与当前登录者的角色一致,则立即显示出来							
+							if (roleId == sa.$sys.getCurrUser().roleId) {
+								top.sa_admin.initMenu(keys);
+							}
+						}.bind(this))
+					},
+					// 点击回调, 处理其子节点跟随父节点的选中
+					node_click: function(node) {
+						var is_select = this.$refs.tree.getCheckedKeys().indexOf(node.id) != -1; // 此节点现在是否被选中 
+						if (node.children) {
+							node.children.forEach(function(item) {
+								this.$refs.tree.setChecked(item.id, is_select);
+								// 递归
+								if (item.children) {
+									this.node_click(item);
+								}
+							}.bind(this))
+						}
+					},
+					// 全选/ 取消全选
+					checkedAll: function() {
+						// console.log(this.$refs.tree.getCheckedKeys().length);
+						// console.log(this.ywList.length);
+						if (this.$refs.tree.getCheckedKeys().length != this.ywList.length) {
+							this.$refs['tree'].setCheckedNodes(this.ywList);
+						} else {
+							this.$refs['tree'].setCheckedNodes([]);
+						}
+					},
+					filterMenu(menu_list, menuCode) {
+						let oneList = menu_list.filter(item => menuCode.indexOf(item.id) !== -1)
+						for (let i in oneList) {
+							let one = oneList[i];
+							let childrenList = one.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+							for (let j in childrenList) {
+								let two = childrenList[j];
+								if (!two.childList) {
+									continue;
+								}
+								let cList = two.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+								for (let k in cList) {
+									let three = cList[k];
+									if (!three.childList) {
+										continue;
+									}
+									let list = three.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+									for (let l in list) {
+										let item = list[l];
+										if (!item.childList) {
+											continue;
+										}
+										let itemList = item.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+										item.childList = itemList;
+									}
+									three.childList = list;
+								}
+								two.childList = cList;
+							}
+							one.childList = childrenList;
+						}
+						return oneList;
+					},
+					getCurrPer() {
+						sa.ajax('/TbInitPermission/getList',{pageSize:200,pageNo:1}, function(resp) {
+							let cuList = resp.data.filter(obj=>obj.type=='0').map(obj=>obj.code);
+							console.log(cuList)
+							let menu_list = this.filterMenu(menuList, cuList);
+							this.handler(menu_list);
+						}.bind(this))
+					},
+					handler(menu_list) {
+						// 全部
+						menu_list = sa_admin_code_util.arrayToTree(menu_list); // 一维转tree 
+						menu_list = sa_admin_code_util.refMenuList(menu_list); // 属性处理 
+						this.dataList = menu_list; // 数据  
+						this.ywList = sa_admin_code_util.treeToArray(this.dataList);
+
+						// 拉取此 roleId 的
+						sa.ajax('/SpRolePermission/getPcodeByRid?roleId=' + roleId, function(res) {
+							this.selectList = res.data; // 选中的列表 
+							this.haveList = [].concat(this.selectList);
+						}.bind(this))
+					}
+				},
+				created: function() {
+					this.getCurrPer();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 3 - 0
sp-admin/sa-view/tb-partner/customer-admin-list.html

@@ -51,6 +51,9 @@
 							<span @click="updatePassword(s.row)" v-if="sa.isAuth('tb-partner-user-edit')">
 								<el-button type="primary" class="c-btn" icon="el-icon-edit">改密码</el-button>
 							</span>
+							<span @click="roleFn(s.row)" v-if="sa.isAuth('tb-partner-user-edit')">
+								<el-button type="primary" class="c-btn" icon="el-icon-edit">角色</el-button>
+							</span>
 							<span @click="del(s.row)" v-if="sa.isAuth('tb-partner-user-del')"> 
 								<el-button type="danger" class="c-btn" icon="el-icon-delete">删除</el-button>
 							</span>

+ 207 - 0
sp-admin/sa-view/tb-partner/tb-menu-list.html

@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html>
+	<head>
+		<title>权限分配</title>
+		<meta charset="utf-8">
+		<meta name="viewport"
+			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
+		<!-- 所有的 css & js 资源 -->
+		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">
+		<link rel="stylesheet" href="../../static/sa.css">
+		<script src="../../static/kj/vue.min.js"></script>
+		<script src="../../static/kj/element-ui/index.js"></script>
+		<script src="../../static/kj/jquery.min.js"></script>
+		<script src="../../static/kj/layer/layer.js"></script>
+		<script src="../../static/sa.js"></script>
+		<style>
+			body,
+			.el-tree {
+				background-color: #eee;
+			}
+
+			.el-tree-node {
+				margin: 0.15em 0 !important;
+			}
+
+			/* 悬浮时颜色更深一点 */
+			.el-tree-node__content:hover {
+				background-color: #CFE8FC !important;
+			}
+		</style>
+	</head>
+	<body>
+		<div class="vue-box sbot" style="display: none;" :style="'display: block;'">
+			<!-- ------- 内容部分 ------- -->
+			<div class="s-body">
+				<!-- 表格 -->
+				<div style="padding: 1em 2em;">
+					<el-form>
+						<div class="c-title">所有权限</div>
+						<!-- 此扩展能递归渲染一个权限树,点击深层次节点,父级节点中没有被选中的节点会被自动选中,单独点击父节点,子节点会全部 选中/去选中 -->
+						<el-tree ref="tree" :data="dataList" how-checkbox node-key="id" :default-expand-all="true"
+							:default-checked-keys="selectList" :expand-on-click-node="false" :check-on-click-node="true"
+							:check-strictly="true" @node-click="node_click" @check="node_click">
+							<span class="custom-tree-node" slot-scope="s">
+								<span style="color: #2D8CF0;"
+									v-if="s.data.isShow == undefined || s.data.isShow == true">{{ s.data.name }}</span>
+								<span style="color: #999;" v-if="s.data.isShow == false">{{ s.data.name }} </span>
+								<span style="color: #999;" v-if="s.data.info">&emsp;———— {{s.data.info}} </span>
+							</span>
+						</el-tree>
+					</el-form>
+				</div>
+			</div>
+		</div>
+		<script src="../../sa-frame/menu-list.js?v=32648732"></script>
+		<script src="../../sa-frame/menu-list-sp.js"></script>
+		<script src="../../sa-frame/index/admin-util.js"></script>
+		<script>
+			var roleId = sa.p('roleId');
+			var app = new Vue({
+				el: '.vue-box',
+				data: {
+					p: [],
+					dataList: [], // 数据集合 
+					selectList: [], // 默认选中
+					ywList: [], // 一维数组 
+					haveList: [] // 这个角色用的权限id,拷贝 
+				},
+				methods: {
+					// 保存
+					ok: function(clickCount) {
+						if (clickCount === undefined) {
+							clickCount = 5;
+						}
+						// 判断是否改掉了关键权限 
+						var keys = this.$refs.tree.getCheckedKeys(); // 设置完拥有的id列表 
+						var rArr = ['1', '99', 'auth', 'role-list']; // 敏感菜单id列表 
+						var isR = false; // 是否给改掉了 
+						rArr.forEach(function(item) {
+							// 只有原先有,现在没有,才会被这样判定 
+							if (this.haveList.indexOf(item) > -1 && keys.indexOf(item) == -1) {
+								isR = true;
+							}
+						}.bind(this))
+						// 提示 
+						if (isR) {
+							var tipStr = '危险!系统检测到您取消了此角色的重要权限,这将导致与之关联的账号可能会无法正常使用后台,您无论如何都要这样设置吗?';
+							tipStr += '<br/>为保证您不是误操作,您还需要继续点击按钮: ' + clickCount + '次'
+							tipStr = '<b style="color: red;">' + tipStr + '</b>';
+							sa.confirm(tipStr, function(res) {
+								if (clickCount <= 1) {
+									this.ok2();
+								} else {
+									clickCount--;
+									this.ok(clickCount);
+								}
+							}.bind(this))
+						} else {
+							this.ok2();
+						}
+					},
+					// 开始设置 
+					ok2: function() {
+						var str = '';
+						var keys = this.$refs.tree.getCheckedKeys();
+						keys.forEach(function(ts) {
+							str += 'code=' + ts + '&';
+						})
+						var url = '/SpRolePermission/updatePcodeByRid?roleId=' + roleId;
+						sa.ajax(url, str, function(res) {
+							sa.alert('设置成功', function() {
+								sa.closeCurrIframe();
+							});
+							// 如果设置的角色与当前登录者的角色一致,则立即显示出来							
+							if (roleId == sa.$sys.getCurrUser().roleId) {
+								top.sa_admin.initMenu(keys);
+							}
+						}.bind(this))
+					},
+					// 点击回调, 处理其子节点跟随父节点的选中
+					node_click: function(node) {
+						var is_select = this.$refs.tree.getCheckedKeys().indexOf(node.id) != -1; // 此节点现在是否被选中 
+						if (node.children) {
+							node.children.forEach(function(item) {
+								this.$refs.tree.setChecked(item.id, is_select);
+								// 递归
+								if (item.children) {
+									this.node_click(item);
+								}
+							}.bind(this))
+						}
+					},
+					// 全选/ 取消全选
+					checkedAll: function() {
+						// console.log(this.$refs.tree.getCheckedKeys().length);
+						// console.log(this.ywList.length);
+						if (this.$refs.tree.getCheckedKeys().length != this.ywList.length) {
+							this.$refs['tree'].setCheckedNodes(this.ywList);
+						} else {
+							this.$refs['tree'].setCheckedNodes([]);
+						}
+					},
+					filterMenu(menu_list, menuCode) {
+						let oneList = menu_list.filter(item => menuCode.indexOf(item.id) !== -1)
+						for (let i in oneList) {
+							let one = oneList[i];
+							let childrenList = one.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+							for (let j in childrenList) {
+								let two = childrenList[j];
+								if (!two.childList) {
+									continue;
+								}
+								let cList = two.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+								for (let k in cList) {
+									let three = cList[k];
+									if (!three.childList) {
+										continue;
+									}
+									let list = three.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+									for (let l in list) {
+										let item = list[l];
+										if (!item.childList) {
+											continue;
+										}
+										let itemList = item.childList.filter(item => menuCode.indexOf(item.id) !== -1);
+										item.childList = itemList;
+									}
+									three.childList = list;
+								}
+								two.childList = cList;
+							}
+							one.childList = childrenList;
+						}
+						return oneList;
+					},
+					getCurrPer() {
+						sa.ajax('/TbInitPermission/getList', {
+							pageSize: 200,
+							pageNo: 1
+						}, function(resp) {
+							let cuList = resp.data.filter(obj => obj.type !== '0').map(obj => obj.code);
+							console.log(cuList)
+							let menu_list = this.filterMenu(menuList, cuList);
+							this.handler(menu_list);
+						}.bind(this))
+					},
+					handler(menu_list) {
+						// 全部
+						menu_list = sa_admin_code_util.arrayToTree(menu_list); // 一维转tree 
+						menu_list = sa_admin_code_util.refMenuList(menu_list); // 属性处理 
+						this.dataList = menu_list; // 数据  
+						this.ywList = sa_admin_code_util.treeToArray(this.dataList);
+
+						// 拉取此 roleId 的
+						sa.ajax('/SpRolePermission/getPcodeByRid?roleId=' + roleId, function(res) {
+							this.selectList = res.data; // 选中的列表 
+							this.haveList = [].concat(this.selectList);
+						}.bind(this))
+					}
+				},
+				created: function() {
+					this.getCurrPer();
+				}
+			})
+		</script>
+	</body>
+</html>

+ 1 - 1
sp-server/app.pid

@@ -1 +1 @@
-15424
+40532

+ 8 - 1
sp-server/src/main/java/com/pj/project/tb_account/TbAccountService.java

@@ -1,6 +1,8 @@
 package com.pj.project.tb_account;
 
 import java.math.BigDecimal;
+import java.nio.charset.Charset;
+import java.sql.Struct;
 import java.util.Date;
 import java.util.List;
 
@@ -8,6 +10,7 @@ import cn.hutool.core.codec.Base64;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.NumberUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.XmlUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -77,7 +80,11 @@ public class TbAccountService extends ServiceImpl<TbAccountMapper, TbAccount> im
         recharge(account, chargeType, money,payMoney);
     }
     public void recharge(TbAccount account, String chargeType, BigDecimal money,BigDecimal payMoney) {
-        BigDecimal total = new BigDecimal(Base64.decodeStr(account.getTotalMoney())).add(money);
+        String totalMoney =account.getTotalMoney();
+        if (NumberUtil.isNumber(totalMoney)){
+            totalMoney=Base64.encode(totalMoney.getBytes());
+        }
+        BigDecimal total = new BigDecimal(Base64.decodeStr(totalMoney)).add(money);
         account.setTotalMoney(Base64.encode(total.toString()));
         this.updateById(account);
         String customerId = account.getCustomerId();

+ 1 - 1
sp-server/src/main/java/com/pj/project4sp/admin/SpAdminController.java

@@ -120,7 +120,7 @@ public class SpAdminController {
      */
     @RequestMapping("getCurrentAuthCode")
     AjaxJson getCurrentAuthCode() {
-        if (StpUserUtil.isLogin()) {
+        if (!StpUserUtil.isLogin()) {
             return AjaxJson.getSuccessData(Collections.emptyList());
         }
         String roleId = StpUserUtil.getAdmin().getRoleId();

+ 1 - 1
sp-server/src/main/java/com/pj/project4sp/role/SpRoleController.java

@@ -56,7 +56,7 @@ public class SpRoleController {
 	AjaxJson update(SpRole s){
 		StpUtil.checkPermission(AuthConst.AUTH);
 		StpUtil.checkPermission(AuthConst.ROLE_LIST);	
-		SpRoleUtil.checkRoleThrow(s);
+		//SpRoleUtil.checkRoleThrow(s,StpUserUtil.getCustomerId());
 		int line = spRoleMapper.update(s);
 		return AjaxJson.getByLine(line);
 	}

+ 2 - 1
sp-server/src/main/java/com/pj/project4sp/role/SpRoleMapper.java

@@ -5,6 +5,7 @@ import java.util.List;
 import org.apache.ibatis.annotations.Mapper;
 
 import com.pj.utils.so.SoMap;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * Mapper: 系统角色表
@@ -55,7 +56,7 @@ public interface SpRoleMapper {
 	 * @param name
 	 * @return
 	 */
-	SpRole getByRoleName(String name);
+	SpRole getByRoleName(@Param("name") String name,@Param("customerId") String customerId);
 
     List<SpRole> getByIds(List<Long> ids);
 

+ 1 - 1
sp-server/src/main/java/com/pj/project4sp/role/SpRoleMapper.xml

@@ -58,7 +58,7 @@
 	<!-- 查 - 根据角色名字 -->
 	<select id="getByRoleName" resultMap="model">
 		select * from sp_role 
-		where name = #{name}
+		where name = #{name} and customer_id=#{customerId}
 	</select>
 	<select id="getByIds" resultType="com.pj.project4sp.role.SpRole">
 		select * from sp_role where id in

+ 5 - 5
sp-server/src/main/java/com/pj/project4sp/role/SpRoleUtil.java

@@ -35,15 +35,15 @@ public class SpRoleUtil {
 	 * @param s
 	 * @return
 	 */
-	static AjaxJson checkRole(SpRole s) {
+	static AjaxJson checkRole(SpRole s,String customerId) {
 		
 		// 1、名称相关 
 		if(NbUtil.isNull(s.getName())) {
 			return AjaxJson.getError("昵称不能为空");
 		}
 		// 2、如果该名称已存在,并且不是当前角色 
-		SpRole s2 = spRoleMapper.getByRoleName(s.getName());
-		if(s2 != null && s2.getId() != s.getId()) {
+		SpRole s2 = spRoleMapper.getByRoleName(s.getName(),customerId);
+		if(s2 != null && !s2.getId().equals(s.getId())) {
 			return AjaxJson.getError("昵称与已有角色重复,请更换");
 		}
 		
@@ -55,8 +55,8 @@ public class SpRoleUtil {
 	 * 验证一个Role是否符合标准, 不符合则抛出异常 
 	 * @param s
 	 */
-	static void checkRoleThrow(SpRole s) {
-		AjaxJson aj = checkRole(s);
+	static void checkRoleThrow(SpRole s,String customerId) {
+		AjaxJson aj = checkRole(s,customerId);
 		if(aj.getCode() != AjaxJson.CODE_SUCCESS){
 			throw AjaxError.get(aj.getMsg());
 		}