Commit 625cbedb authored by maliang's avatar maliang

权限控制

parent 16f8b8ef
...@@ -18,7 +18,7 @@ public class AdvertiserManagerController { ...@@ -18,7 +18,7 @@ public class AdvertiserManagerController {
JSONObject item = new JSONObject(); JSONObject item = new JSONObject();
JSONArray array = new JSONArray(); JSONArray array = new JSONArray();
item.put("id",1); item.put("id",1);
item.put("advertiser","百度联盟"); item.put("advertiser","麦子");
item.put("balance",100000); item.put("balance",100000);
item.put("AccumulatedConsumptionAmount",100000); item.put("AccumulatedConsumptionAmount",100000);
item.put("leader","高飞"); item.put("leader","高飞");
...@@ -31,4 +31,8 @@ public class AdvertiserManagerController { ...@@ -31,4 +31,8 @@ public class AdvertiserManagerController {
jsonObject.put("data",array); jsonObject.put("data",array);
return jsonObject.toJSONString(); return jsonObject.toJSONString();
} }
//返回所有用户和其对应的广告商列表
public String getUserAdvertiserMap() {
return null;
}
} }
...@@ -2,6 +2,7 @@ package com.boot.security.server.controller; ...@@ -2,6 +2,7 @@ package com.boot.security.server.controller;
import java.util.List; import java.util.List;
import com.boot.security.server.model.AdvertiserUserMap;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
...@@ -95,6 +96,7 @@ public class UserController { ...@@ -95,6 +96,7 @@ public class UserController {
@ApiOperation(value = "用户列表") @ApiOperation(value = "用户列表")
@PreAuthorize("hasAuthority('sys:user:query')") @PreAuthorize("hasAuthority('sys:user:query')")
public PageTableResponse listUsers(PageTableRequest request) { public PageTableResponse listUsers(PageTableRequest request) {
System.out.println(request.getLimit());
return new PageTableHandler(new CountHandler() { return new PageTableHandler(new CountHandler() {
@Override @Override
...@@ -117,6 +119,25 @@ public class UserController { ...@@ -117,6 +119,25 @@ public class UserController {
return UserUtil.getLoginUser(); return UserUtil.getLoginUser();
} }
@ApiOperation(value = "获取广告商和用户的映射关系")
@GetMapping("/advertiserUserList")
public PageTableResponse getAdvertiserUserList(PageTableRequest request) {
return new PageTableHandler(new CountHandler() {
@Override
public int count(PageTableRequest request) {
return userDao.countAdvertiserUserMap(request.getParams());
}
}, new ListHandler() {
@Override
public List<AdvertiserUserMap> list(PageTableRequest request) {
List<AdvertiserUserMap> list = userDao.getAdvertiserUserMap();
return list;
}
}).handle(request);
}
@ApiOperation(value = "根据用户id获取用户") @ApiOperation(value = "根据用户id获取用户")
@GetMapping("/{id}") @GetMapping("/{id}")
@PreAuthorize("hasAuthority('sys:user:query')") @PreAuthorize("hasAuthority('sys:user:query')")
......
...@@ -3,6 +3,7 @@ package com.boot.security.server.dao; ...@@ -3,6 +3,7 @@ package com.boot.security.server.dao;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.boot.security.server.model.AdvertiserUserMap;
import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
...@@ -23,6 +24,9 @@ public interface UserDao { ...@@ -23,6 +24,9 @@ public interface UserDao {
@Select("select * from sys_user t where t.id = #{id}") @Select("select * from sys_user t where t.id = #{id}")
SysUser getById(Long id); SysUser getById(Long id);
//查询广告商用户的映射关系
List<AdvertiserUserMap> getAdvertiserUserMap();
@Select("select * from sys_user t where t.username = #{username}") @Select("select * from sys_user t where t.username = #{username}")
SysUser getUser(String username); SysUser getUser(String username);
...@@ -31,6 +35,8 @@ public interface UserDao { ...@@ -31,6 +35,8 @@ public interface UserDao {
Integer count(@Param("params") Map<String, Object> params); Integer count(@Param("params") Map<String, Object> params);
Integer countAdvertiserUserMap(@Param("params") Map<String, Object> params);
List<SysUser> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset, List<SysUser> list(@Param("params") Map<String, Object> params, @Param("offset") Integer offset,
@Param("limit") Integer limit); @Param("limit") Integer limit);
......
package com.boot.security.server.model;
public class AdvertiserUserMap {
public Long userId;
public String nickname;
public Integer advertiserId;
public String advertiserName;
public Integer status;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public Integer getAdvertiserId() {
return advertiserId;
}
public void setAdvertiserId(Integer advertiserId) {
this.advertiserId = advertiserId;
}
public String getAdvertiserName() {
return advertiserName;
}
public void setAdvertiserName(String advertiserName) {
this.advertiserName = advertiserName;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
...@@ -22,6 +22,19 @@ ...@@ -22,6 +22,19 @@
<include refid="where" /> <include refid="where" />
</select> </select>
<select id="countAdvertiserUserMap" resultType="int">
SELECT count(1)
FROM advertiser_user_map a INNER JOIN sys_user b
ON a.user_id=b.id
</select>
<select id="getAdvertiserUserMap" resultType="com.boot.security.server.model.AdvertiserUserMap">
SELECT user_id as userId,nickname,advertiser_id as advertiserId,advertiser_name as advertiserName,a.status as status
FROM advertiser_user_map a INNER JOIN sys_user b
ON a.user_id=b.id
ORDER BY user_id,advertiser_id
</select>
<select id="list" resultType="SysUser"> <select id="list" resultType="SysUser">
select * from sys_user t select * from sys_user t
<include refid="where" /> <include refid="where" />
......
...@@ -44,6 +44,21 @@ function buttonEdit(href, permission, pers){ ...@@ -44,6 +44,21 @@ function buttonEdit(href, permission, pers){
return btn.prop("outerHTML"); return btn.prop("outerHTML");
} }
function checkboxEdit(data,advertiserName,advertiserId,userId,permission, pers){
if(permission != ""){
if ($.inArray(permission, pers) < 0) {
return "";
}
}
var check;
//console.log(advertiserName)
if(data===0)
check = "<input lay-filter='formCheckbox' type=\"checkbox\" advertiserId=\""+advertiserId+"\" title=\""+advertiserName+"\" userId=\""+userId+"\">";
else
check = "<input lay-filter='formCheckbox' type=\"checkbox\" advertiserId=\""+advertiserId+"\" title=\""+advertiserName+"\" userId=\""+userId+"\" checked>";
return check
}
function deleteCurrentTab(){ function deleteCurrentTab(){
var lay_id = $(parent.document).find("ul.layui-tab-title").children("li.layui-this").attr("lay-id"); var lay_id = $(parent.document).find("ul.layui-tab-title").children("li.layui-this").attr("lay-id");
......
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>广告商负责人设置</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../layui/css/layui.css">
</head>
<body>
<div>
<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
<header style="height: 100%">
</header>
<div class="layui-form">
<div class="widget-body no-padding">
<table id="dt-table" class="table table-striped table-bordered table-hover" style="width:100%">
<thead>
<tr>
</tr>
<tr>
<th>id</th>
<th>nickname</th>
<th>广告商</th>
<!--<th>操作</th>-->
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
</div>
</body>
</html>
<script type="text/javascript" src="../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../js/jq.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../js/my/permission.js"></script>
<script type="text/javascript" src="../../layui/layui.js"></script>
<script type="text/javascript" src="../../js/dict.js"></script>
<script type="text/javascript">
// layui.use([ 'layer' ], function() {
// var layer = layui.layer;
// });
var pers = checkPermission();
var example;
function init(){
example =
$('#dt-table').DataTable({
"searching": false,
"processing": false,
"serverSide" : true,
"language": {
"url": "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url" : "/users/advertiserUserList",
"type":"get",
"error":function(xhr, textStatus, errorThrown){
var msg = xhr.responseText;
console.log(msg);
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期,请先登录", {shift: -1, time: 1000}, function(){
location.href = '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
layer.msg('系统错误:' + message);
}
}
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-10 col-xs-12 hidden-xs'i><'col-xs-12 col-sm-10' p v>>",
"columns": [
{ "data": "userId", "defaultContent": "","visible": false},
{ "data": "nickname", "defaultContent": ""},
{
"data": "status",
"defaultContent": "",
"orderable":false,
"render": function (data, type, row) {
var advertiserName = row['advertiserName'];
//console.log(advertiserName)
var advertiserId = row['advertiserId'];
var userId = row['userId'];
var adCb = checkboxEdit(data,advertiserName,advertiserId,userId,"sys:user:add", pers);
return "<input lay-filter='formCheckbox' type=\"checkbox\" advertiserId=\""+advertiserId+"\" title=\""+advertiserName+"\" userId=\""+userId+"\" checked>";
}
}
],
"order": [[ 0, "desc" ],[1, "asc"]]
} );
}
init();
var form;
layui.use('form', function() {
form = layui.form;
form.render();
form.on('checkbox(formCheckbox)', function(data){
var elem=data.elem;
console.log(data.elem.checked); //是否被选中,true或者false
console.log(elem.getAttribute("advertiserId"));
console.log(elem.getAttribute("userId")); //复选框value值,也可以通过data.elem.value得到
});
});
</script>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>广告商负责人设置</title>
<link rel="stylesheet" type="text/css" media="screen" href="../../css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../css/dataTables.bootstrap.min.css">
<link rel="stylesheet" type="text/css" media="screen" href="../../layui/css/layui.css">
</head>
<body>
<div class="layui-form" lay-filter="formTest">
<table class="layui-table">
<thead>
<tr>
<th>用户昵称</th>
<th>广告商</th>
</tr>
</thead>
<tbody id="advertiserTable">
</tbody>
</table>
<button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
</div>
</body>
</html>
<script type="text/javascript" src="../../js/libs/jquery-2.1.1.min.js"></script>
<script type="text/javascript" src="../../js/jq.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="../../js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script type="text/javascript" src="../../js/my/permission.js"></script>
<script type="text/javascript" src="../../layui/layui.js"></script>
<script type="text/javascript" src="../../js/dict.js"></script>
<script type="text/javascript">
var form;
layui.use('form', function() {
form = layui.form;
form.render();
form.on('submit(formDemo)', function(data){
var data1 = form.val("formTest");
console.log(data1);
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});
form.on('checkbox(formCheckbox)', function(data){
var elem=data.elem;
console.log(elem.getAttribute("advertiserId"));
console.log(data.elem.checked); //是否被选中,true或者false
console.log(data.value); //复选框value值,也可以通过data.elem.value得到
});
});
var pers = checkPermission();
var table=$("#advertiserTable");
function setTable(data) {
for(var i in data){
table.append("<tr><td>"+data[i].nickname+"</td><td><input lay-filter='formCheckbox' type=\"checkbox\" advertiserId=\""+data[i].advertiserId+"\" name=\""+data[i].advertiserId+"\" title=\""+data[i].advertiserName+"\" value=\""+data[i].userId+"\"checked></td></tr>");
}
}
function init(){
$.ajax({
//请求方式
type : "get",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "/users/advertiserUserList",
async:false,
//数据,json字符串
//data : JSON.stringify(list),
//请求成功
success : function(result) {
setTable(result.data);
//console.log(result.data);
//form.render();
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});
//var adCb = checkboxEdit(data,advertiserName, "sys:user:add", pers);
}
init();
</script>
\ No newline at end of file
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