Commit bc65857f by zhangchen

角色列表

parent bdb12745
......@@ -3,7 +3,10 @@
* DTM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.ctrip.fun.admin.controller.userRole;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
......@@ -11,13 +14,18 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.ctrip.fun.admin.form.PaginationForm;
import com.ctrip.fun.admin.form.userRole.UserResourcesForm;
import com.ctrip.fun.admin.form.userRole.UserRoleForm;
import com.ctrip.fun.admin.service.userRole.UserRoleService;
import com.ctrip.fun.common.core.util.BeanConverter;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.adminUser.AdminResourcesBean;
import com.ctrip.fun.common.vo.adminUser.AdminRoleBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserQuery;
import com.ctrip.fun.common.vo.adminUser.AdminUserRoleQuery;
......@@ -53,6 +61,7 @@ public class UserRoleController {
return "userRole/userListAll";
}
@RequestMapping(value = "/create", method = RequestMethod.GET)
public String formGet(@ModelAttribute("form") UserRoleForm form, ModelMap model) {
model.put("action", "/userRole/adminUser/create");
......@@ -97,5 +106,91 @@ public class UserRoleController {
return "redirect:list";
}
@RequestMapping(value = "/roleList", method = RequestMethod.GET)
public String getRolelist(HttpServletRequest request, @ModelAttribute("form") UserRoleForm form,ModelMap model) {
int currentPage = 0;
if (null != request.getParameter("page")) {
currentPage = Integer.parseInt(request.getParameter("page"));
}
AdminUserRoleQuery query = new AdminUserRoleQuery();
query.setRoleName(form.getRoleName());
query.setPagerOffset(currentPage * query.getPagerPerPage());
query.setSortField("id");
PagedResponseBean<AdminRoleBean> response = userRoleService.getRolelist("", query);
int pageSize = query.getPagerPerPage();
int total = response.getCount();
int pageCount = (0 == total % pageSize) ? (total / pageSize) : (total / pageSize + 1);
model.put("list", response.getResult());
model.put("paginationData", new PaginationForm(currentPage, pageSize, pageCount, total));
return "userRole/roleListAll";
}
@RequestMapping(value = "/createRole", method = RequestMethod.GET)
public String roleFormGet(@ModelAttribute("form") UserRoleForm form, ModelMap model) {
model.put("action", "/userRole/adminUser/createRole");
model.put("resIds", "");
model.put("enable", true);
List<AdminResourcesBean> resList = userRoleService.getResList();
model.put("resList", resList);
return "userRole/adminUserRoleForm";
}
@RequestMapping(value = "/createRole", method = RequestMethod.POST)
public String createRole(@ModelAttribute("form") UserRoleForm form, ModelMap model) {
AdminRoleBean bean = new AdminRoleBean();
BeanConverter.copyProperties(bean, form);
bean.setName(form.getRoleName());
userRoleService.addAdminRole("", bean);
return "redirect:roleList";
}
@RequestMapping(value = "/editRole", method = RequestMethod.GET)
public String editRoleGet(@ModelAttribute("form") UserRoleForm form, @RequestParam(value = "id", required = true) int id, ModelMap model) {
AdminRoleBean bean = userRoleService.getUserRoleById("", id);
BeanConverter.copyProperties(form, bean);
form.setRoleName(bean.getName());
String resIds = "";
for (Integer resId : bean.getResIds()) {
resIds += resId;
resIds+=",";
}
if(resIds.length()>0){
resIds = resIds.substring(0, resIds.length()-1);
}
model.put("action", "/userRole/adminUser/editRole");
model.put("resIds", resIds);
model.put("enable", bean.getEnable());
List<AdminResourcesBean> resList = userRoleService.getResList();
model.put("resList", resList);
return "userRole/adminUserRoleForm";
}
@RequestMapping(value = "/editRole", method = RequestMethod.POST)
public String editRolePost(HttpServletRequest request, @ModelAttribute("form") UserRoleForm form, @RequestParam(value = "id", required = true) int id, ModelMap model) {
AdminRoleBean bean = new AdminRoleBean();
BeanConverter.copyProperties(bean, form);
userRoleService.updateAdminRole("", bean);
return "redirect:roleList";
}
@RequestMapping(value = "/createResource", method = RequestMethod.GET)
public String ResourceFormGet(@ModelAttribute("form") UserResourcesForm form, ModelMap model) {
model.put("action", "/userRole/adminUser/createResource");
model.put("resIds", "");
model.put("enable", true);
return "userRole/adminResourcesForm";
}
@RequestMapping(value = "/createResource", method = RequestMethod.POST)
public String createResource(@ModelAttribute("form") UserResourcesForm form, ModelMap model) {
AdminResourcesBean bean = new AdminResourcesBean();
BeanConverter.copyProperties(bean, form);
userRoleService.addAdminResources("", bean);
return "redirect:roleList";
}
}
/**
* Copyright 2014 CTRIP Co.,Ltd. All rights reserved.
* DTM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.ctrip.fun.admin.form.userRole;
/**
* @author gswang
* @version 2014年8月25日
*/
public class UserResourcesForm {
private Integer id;
private String name;
private String parentId;
private String resKey;
private String type;
private String resUrl;
private String level;
private String description;
private Boolean enable;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public String getResKey() {
return resKey;
}
public void setResKey(String resKey) {
this.resKey = resKey;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getResUrl() {
return resUrl;
}
public void setResUrl(String resUrl) {
this.resUrl = resUrl;
}
public String getLevel() {
return level;
}
public void setLevel(String level) {
this.level = level;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Boolean getEnable() {
return enable;
}
public void setEnable(Boolean enable) {
this.enable = enable;
}
}
......@@ -14,6 +14,10 @@ public class UserRoleForm {
private String nickName;
private Boolean enable;
private Integer[] roleIds;
private Integer[] resIds;
private String description;
private String roleName;
private String resUrl;
public Integer getId() {
......@@ -46,5 +50,29 @@ public class UserRoleForm {
public void setEnable(Boolean enable) {
this.enable = enable;
}
public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
}
public String getResUrl() {
return resUrl;
}
public void setResUrl(String resUrl) {
this.resUrl = resUrl;
}
public Integer[] getResIds() {
return resIds;
}
public void setResIds(Integer[] resIds) {
this.resIds = resIds;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
package com.ctrip.fun.admin.service.userRole;
public class AdminRole {
private Integer id;
/**
* 角色名称
*/
private String name;
/**
* 角色KEY
*/
private String roleKey;
/**
* 角色描述
*/
private String description;
/**
* 是否可用
*/
private Integer enable;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRoleKey() {
return roleKey;
}
public void setRoleKey(String roleKey) {
this.roleKey = roleKey;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Integer getEnable() {
return enable;
}
public void setEnable(Integer enable) {
this.enable = enable;
}
}
......@@ -3,8 +3,8 @@
* DTM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.ctrip.fun.admin.service.userRole;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
......@@ -13,13 +13,17 @@ import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
import com.alibaba.fastjson.JSON;
import com.ctrip.fun.admin.service.BaseService;
import com.ctrip.fun.common.vo.PagedResponseBean;
import com.ctrip.fun.common.vo.Request;
import com.ctrip.fun.common.vo.Response;
import com.ctrip.fun.common.vo.ResponseStatusEnum;
import com.ctrip.fun.common.vo.adminUser.AdminResourcesBean;
import com.ctrip.fun.common.vo.adminUser.AdminRoleBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserQuery;
import com.ctrip.fun.common.vo.adminUser.AdminUserRoleQuery;
/**
......@@ -150,6 +154,159 @@ public class UserRoleService extends BaseService {
}
/*
* 查询权限列表
*/
public PagedResponseBean<AdminRoleBean> getRolelist(String userId, AdminUserRoleQuery query) {
String uri = super.getServiceUri("uri.adminUser.roleList");
PagedResponseBean<AdminRoleBean> pageResponseBean = null;
Request<AdminUserRoleQuery> request = new Request<AdminUserRoleQuery>();
request.setUserId(userId);
request.setBody(query);
HttpEntity<Request<AdminUserRoleQuery>> httpEntity = new HttpEntity<Request<AdminUserRoleQuery>>(
request);
System.out.println(JSON.toJSONString(request));
Response<PagedResponseBean<AdminRoleBean>> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<PagedResponseBean<AdminRoleBean>>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
pageResponseBean = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
tags.put("userId", userId);
tags.put("query", query.toString());
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return pageResponseBean;
}
public List<AdminResourcesBean> getResList() {
String uri = super.getServiceUri("uri.adminUser.resList");
List<AdminResourcesBean> AdminResourcesList = null;
HttpEntity<Object> httpEntity = new HttpEntity<Object>(null);
Response<List<AdminResourcesBean>> response = super.exchange(uri, HttpMethod.GET,
httpEntity,
new ParameterizedTypeReference<Response<List<AdminResourcesBean>>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
AdminResourcesList = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return AdminResourcesList;
}
public Integer addAdminRole(String userId, AdminRoleBean bean) {
String uri = super.getServiceUri("uri.adminUser.addRole");
Integer id = null;
Request<AdminRoleBean> request = new Request<AdminRoleBean>();
request.setUserId(userId);
request.setBody(bean);
HttpEntity<Request<AdminRoleBean>> httpEntity = new HttpEntity<Request<AdminRoleBean>>(
request);
Response<Integer> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<Integer>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
id = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
tags.put("userId", userId);
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return id;
}
public AdminRoleBean getUserRoleById(String userId, int id) {
String uri = super.getServiceUri("uri.adminUser.getUserRoleById");
AdminRoleBean adminRoleBean = null;
Request<Integer> request = new Request<Integer>();
request.setUserId(userId);
request.setBody(id);
HttpEntity<Request<Integer>> httpEntity = new HttpEntity<Request<Integer>>(
request);
Response<AdminRoleBean> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<AdminRoleBean>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
adminRoleBean = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
tags.put("userId", userId);
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return adminRoleBean;
}
public String updateAdminRole(String userId, AdminRoleBean bean) {
String uri = super.getServiceUri("uri.adminUser.updateAdminRole");
String result = null;
Request<AdminRoleBean> request = new Request<AdminRoleBean>();
request.setUserId(userId);
request.setBody(bean);
HttpEntity<Request<AdminRoleBean>> httpEntity = new HttpEntity<Request<AdminRoleBean>>(
request);
Response<String> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<String>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
result = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
tags.put("userId", userId);
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return result;
}
public Integer addAdminResources(String userId, AdminResourcesBean bean) {
String uri = super.getServiceUri("uri.adminUser.addResources");
Integer id = null;
Request<AdminResourcesBean> request = new Request<AdminResourcesBean>();
request.setUserId(userId);
request.setBody(bean);
HttpEntity<Request<AdminResourcesBean>> httpEntity = new HttpEntity<Request<AdminResourcesBean>>(
request);
Response<Integer> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<Integer>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
id = response.getBody();
} else {
Map<String, String> tags = new HashMap<>();
tags.put("userId", userId);
logger.error(
"用户list异常",
String.format("status: %d, msg: %s", response.getStatus(),
response.getMessage()), tags);
}
return id;
}
}
......@@ -32,7 +32,12 @@ uri.adminUser.userDetail=/fun-golf-service/adminUser/userDetail
uri.adminUser.updatePassword=/fun-golf-service/adminUser/updatePassword
uri.adminUser.communeAdmUserList = /fun-golf-service/adminUser/communeAdmUserList
uri.adminResources.list=/fun-golf-service/adminResources/list
uri.adminUser.roleList=/fun-golf-service/adminUser/roleList
uri.adminUser.resList=/fun-golf-service/adminUser/resList
uri.adminUser.addRole=/fun-golf-service/adminUser/addRole
uri.adminUser.getUserRoleById=/fun-golf-service/adminUser/getUserRoleById
uri.adminUser.updateAdminRole=/fun-golf-service/adminUser/updateAdminRole
uri.adminUser.addResources=/fun-golf-service/adminUser/addResources
# order
uri.order.placeOrder=/fun-golf-service/{orderType}/placeOrder
uri.order.list=/fun-golf-service/{orderType}/list
......
......@@ -127,7 +127,16 @@ ${pageCss}
<li <#if current == "admin_user_create">class="active"</#if>>
<a href="/userRole/adminUser/create">新建</a>
</li>
<li class="nav-header">系统角色</li>
<li <#if current == "admin_role_list">class="active"</#if>>
<a href="/userRole/adminUser/roleList">角色列表</a>
</li>
<li <#if current == "admin_role_create">class="active"</#if>>
<a href="/userRole/adminUser/createRole">新建角色</a>
</li>
<li <#if current == "admin_resource_create">class="active"</#if>>
<a href="/userRole/adminUser/createResource">新建资源</a>
</li>
<!--
<li class="nav-header">Redis</li>
<li <#if current == "redis_clearbykey">class="active"</#if>>
......
<#assign pageJsContent>
<script type="text/javascript">
var resIds = "${resIds}";
var roleObj = {};
resIds.split(",").forEach(function(item){
roleObj[item]=true;
})
if(resIds.length>0){
$.each($('input:checkbox'),function(){
if(roleObj[$(this).val()]){
$(this).attr("checked", true);
}
});
}
var enable = $ {enable?c};
if(enable){
$("#enable").prop("checked",enable);
}else{
$("#enable").prop({checked:false});
}
</script>
</#assign>
<@com.layout title="资源创建" module="system" current="admin_resource_create" pageJs=pageJsContent>
<form class="form-inline" action="${action}" method="post">
<div id="course_container">
<div class="row-fluid show-grid">
<@form.hidden "form.id"/>
<@form.textInput path="form.name" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="资源名称" required = true />
<@form.textInput path="form.parentId" attributes="class=\"input-medium\" pattern=\".{1,64}\" " label="父级id" />
<@form.textInput path="form.resKey" attributes="class=\"input-medium\" pattern=\".{1,64}\" " label="key" />
<@form.textInput path="form.type" attributes="class=\"input-medium\" pattern=\".{1,64}\" " label="类别" />
<@form.textInput path="form.resUrl" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="资源路径" required = true />
<@form.textInput path="form.level" attributes="class=\"input-medium\" pattern=\".{1,64}\" " label="级别" />
<@form.textInput path="form.description" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="资源描述" required = true />
<@form.checkbox "form.enable" "" "可用"/>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</div>
</div>
</form>
</@com.layout>
\ No newline at end of file
<#assign pageJsContent>
<script type="text/javascript">
var resIds = "${resIds}";
var roleObj = {};
resIds.split(",").forEach(function(item){
roleObj[item]=true;
})
if(resIds.length>0){
$.each($('input:checkbox'),function(){
if(roleObj[$(this).val()]){
$(this).attr("checked", true);
}
});
}
var enable = ${enable?c};
if(enable){
$("#enable").prop("checked",enable);
}else{
$("#enable").prop({checked:false});
}
</script>
</#assign>
<@com.layout title="用户创建" module="system" current="admin_role_create" pageJs=pageJsContent>
<form class="form-inline" action="${action}" method="post">
<div id="course_container">
<div class="row-fluid show-grid">
<@form.hidden "form.id"/>
<@form.textInput path="form.roleName" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="角色名称" required = true />
<@form.textInput path="form.description" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="角色描述" required = true />
<@form.checkbox "form.enable" "" "可用"/>
<div class="control-group">
<div class="controls">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>资源名称</th>
<th>资源名称</th>
<th>资源名称</th>
</tr>
</thead>
<tbody>
<#list resList as item>
<#if item_index % 3 == 0>
<tr>
</#if>
<td><input type="checkbox" name="resIds" value="${item.id}" />${item.resUrl}</td>
<#if item_index % 3 == 2>
</tr>
</#if>
</#list>
</tbody>
</table>
</div>
</div>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</div>
</div>
</form>
</@com.layout>
\ No newline at end of file
<@com.layout title="管理员列表" module="system" current="admin_role_list" pageJs="">
<form class="form-inline" action="/userRole/adminUser/roleList" method="get">
<@com.textInput "form.roleName" "style=\"margin-left: 5px;\"" "角色名称" "text"/>
<@com.textInput "form.description" "style=\"margin-left: 5px;\"" "角色描述" "text"/>
<button type="submit" class="btn btn-primary">查询</button>
</form>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>角色名</th>
<th>角色描述</th>
<th>资源url</th>
<th ><i class="icon-wrench"></i></th>
</tr>
</thead>
<tbody>
<#list list as item>
<tr>
<td >${item.name!}</td>
<td >${item.description!}</td>
<td >${item.resStr!}</td>
<td><a title='' href="/userRole/adminUser/editRole?id=${item.id}">编辑</a></td>
</tr>
</#list>
</tbody>
</table>
<div class="pagination pagination-right">
<ul>
<@paginator.first />
<@paginator.previous />
<@paginator.numbers separator=""/>
<@paginator.next />
<@paginator.last />
</ul>
<@paginator.statistics />
</div>
</@com.layout>
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 sign in to comment