Commit 5a5e1c67 by chongli

实现了用户管理和权限分配

parent 53ef580c
/**
* Copyright 2014 CTRIP Co.,Ltd. All rights reserved.
* DTM PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package com.ctrip.fun.admin.controller.userRole;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
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.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.AdminUserBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserQuery;
/**
* @author gswang
* @version 2014年8月21日
*/
@Controller
@RequestMapping("userRole/adminUser")
public class UserRoleController {
@Autowired
private UserRoleService userRoleService;
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String listAll(HttpServletRequest request, @ModelAttribute("form") UserRoleForm form,ModelMap model) {
int currentPage = 0;
if (null != request.getParameter("page")) {
currentPage = Integer.parseInt(request.getParameter("page"));
}
AdminUserQuery query = new AdminUserQuery();
query.setNickName(form.getNickName());
query.setUserName(form.getUserName());
query.setPagerOffset(currentPage * query.getPagerPerPage());
query.setSortField("id");
PagedResponseBean<AdminUserBean> response = userRoleService.adminUserlist("", 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/userListAll";
}
@RequestMapping(value = "/create", method = RequestMethod.GET)
public String formGet(@ModelAttribute("form") UserRoleForm form, ModelMap model) {
model.put("action", "/userRole/adminUser/create");
model.put("roleIds", "");
return "userRole/adminUserForm";
}
@RequestMapping(value = "/create", method = RequestMethod.POST)
public String formPost(HttpServletRequest request, @ModelAttribute("form") UserRoleForm form,ModelMap model) {
AdminUserBean bean = new AdminUserBean();
BeanConverter.copyProperties(bean, form);
userRoleService.addAdminUser("", bean);
return "redirect:list";
}
@RequestMapping(value = "/edit", method = RequestMethod.GET)
public String editGet(@ModelAttribute("form") UserRoleForm form, @RequestParam(value = "id", required = true) int id, ModelMap model) {
AdminUserBean bean = userRoleService.getAdminAll("", id);
BeanConverter.copyProperties(form, bean);
String roleIds = "";
for (Integer roleId : bean.getRoleIds()) {
roleIds += roleId;
roleIds+=",";
}
if(roleIds.length()>0){
roleIds = roleIds.substring(0, roleIds.length()-1);
}
model.put("action", "/userRole/adminUser/edit");
model.put("roleIds", roleIds);
return "userRole/adminUserForm";
}
@RequestMapping(value = "/edit", method = RequestMethod.POST)
public String editPost(HttpServletRequest request, @ModelAttribute("form") UserRoleForm form, @RequestParam(value = "id", required = true) int id, ModelMap model) {
AdminUserBean bean = new AdminUserBean();
BeanConverter.copyProperties(bean, form);
userRoleService.updateAdminAll("", bean);
return "redirect:list";
}
}
/**
* 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 UserRoleForm {
private Integer id;
private String userName;
private String nickName;
private boolean enable;
private Integer[] roleIds;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Integer[] getRoleIds() {
return roleIds;
}
public void setRoleIds(Integer[] roleIds) {
this.roleIds = roleIds;
}
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
}
/**
* Copyright 2014 CTRIP Co.,Ltd. All rights reserved.
* 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.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpMethod;
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.AdminUserBean;
import com.ctrip.fun.common.vo.adminUser.AdminUserQuery;
/**
* @author gswang
* @version 2014年8月25日
*/
public class UserRoleService extends BaseService {
private final static Logger logger = LoggerFactory.getLogger(UserRoleService.class);
/*
* 查询管理员用户列表
*/
public PagedResponseBean<AdminUserBean> adminUserlist(String userId, AdminUserQuery query) {
String uri = super.getServiceUri("uri.adminUser.list");
PagedResponseBean<AdminUserBean> pageResponseBean = null;
Request<AdminUserQuery> request = new Request<AdminUserQuery>();
request.setUserId(userId);
request.setBody(query);
HttpEntity<Request<AdminUserQuery>> httpEntity = new HttpEntity<Request<AdminUserQuery>>(
request);
Response<PagedResponseBean<AdminUserBean>> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<PagedResponseBean<AdminUserBean>>>() {
}).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 Integer addAdminUser(String userId, AdminUserBean bean) {
String uri = super.getServiceUri("uri.adminUser.add");
Integer id = null;
Request<AdminUserBean> request = new Request<AdminUserBean>();
request.setUserId(userId);
request.setBody(bean);
HttpEntity<Request<AdminUserBean>> httpEntity = new HttpEntity<Request<AdminUserBean>>(
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 String updateAdminAll(String userId, AdminUserBean bean) {
String uri = super.getServiceUri("uri.adminUser.updateAdminAll");
String result = null;
Request<AdminUserBean> request = new Request<AdminUserBean>();
request.setUserId(userId);
request.setBody(bean);
HttpEntity<Request<AdminUserBean>> httpEntity = new HttpEntity<Request<AdminUserBean>>(
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 AdminUserBean getAdminAll(String userId, Integer id) {
String uri = super.getServiceUri("uri.adminUser.getAdminAll");
AdminUserBean adminUserBean = null;
Request<Integer> request = new Request<Integer>();
request.setUserId(userId);
request.setBody(id);
HttpEntity<Request<Integer>> httpEntity = new HttpEntity<Request<Integer>>(
request);
Response<AdminUserBean> response = super.exchange(uri, HttpMethod.POST,
httpEntity,
new ParameterizedTypeReference<Response<AdminUserBean>>() {
}).getBody();
if (response.getStatus() == ResponseStatusEnum.SUCCESS.getValue()) {
adminUserBean = 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 adminUserBean;
}
}
...@@ -88,6 +88,8 @@ ...@@ -88,6 +88,8 @@
class="com.ctrip.fun.admin.service.basic.RecommendCodeService" parent="baseService" /> class="com.ctrip.fun.admin.service.basic.RecommendCodeService" parent="baseService" />
<bean name="userService" class="com.ctrip.fun.admin.service.system.UserService" <bean name="userService" class="com.ctrip.fun.admin.service.system.UserService"
parent="baseService" /> parent="baseService" />
<bean name="userRoleService" class="com.ctrip.fun.admin.service.userRole.UserRoleService"
parent="baseService" />
<bean name="adminResourcesService" class="com.ctrip.fun.admin.service.system.AdminResourcesService" <bean name="adminResourcesService" class="com.ctrip.fun.admin.service.system.AdminResourcesService"
parent="baseService" /> parent="baseService" />
<bean name="adService" class="com.ctrip.fun.admin.service.golf.AdvertisementService" <bean name="adService" class="com.ctrip.fun.admin.service.golf.AdvertisementService"
......
...@@ -24,6 +24,10 @@ uri.voucher.queryListForFinance=/fun-golf-service/Voucher/queryListForFinance ...@@ -24,6 +24,10 @@ uri.voucher.queryListForFinance=/fun-golf-service/Voucher/queryListForFinance
uri.voucher.exportVoucherExcel=/fun-golf-service/Voucher/exportVoucherExcel uri.voucher.exportVoucherExcel=/fun-golf-service/Voucher/exportVoucherExcel
#admin user #admin user
uri.adminUser.getAdminAll=/fun-golf-service/adminUser/getAdminAll
uri.adminUser.updateAdminAll=/fun-golf-service/adminUser/updateAdminAll
uri.adminUser.add=/fun-golf-service/adminUser/add
uri.adminUser.list=/fun-golf-service/adminUser/list
uri.adminUser.userDetail=/fun-golf-service/adminUser/userDetail uri.adminUser.userDetail=/fun-golf-service/adminUser/userDetail
uri.adminUser.updatePassword=/fun-golf-service/adminUser/update uri.adminUser.updatePassword=/fun-golf-service/adminUser/update
uri.adminUser.communeAdmUserList = /fun-golf-service/adminUser/communeAdmUserList uri.adminUser.communeAdmUserList = /fun-golf-service/adminUser/communeAdmUserList
......
...@@ -427,6 +427,18 @@ ${pageCss} ...@@ -427,6 +427,18 @@ ${pageCss}
</li> </li>
</ul> </ul>
<#elseif module=="userRole">
<ul class="nav nav-list">
<li class="nav-header">用户管理</li>
<li <#if current == "admin_user_list">class="active"</#if>>
<a href="/userRole/adminUser/list">列表</a>
</li>
<li <#if current == "admin_user_create">class="active"</#if>>
<a href="/userRole/adminUser/create">新建</a>
</li>
</ul>
<#elseif module=="eventActivityOrder"> <#elseif module=="eventActivityOrder">
<ul class="nav nav-list"> <ul class="nav nav-list">
<li class="nav-header">订单</li> <li class="nav-header">订单</li>
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<div class="navbar-inner"> <div class="navbar-inner">
<a class="logo" href="/golf/course/list">主题游管理</a> <a class="logo" href="/golf/course/list">主题游管理</a>
<ul class="nav"> <ul class="nav">
<li <#if module?? && module == "userRole">class="active"</#if>><a href="/userRole/adminUser/list">权限管理</a></li>
<li <#if module?? && module == "basic">class="active"</#if>><a href="/basic/district/list">基础信息</a></li> <li <#if module?? && module == "basic">class="active"</#if>><a href="/basic/district/list">基础信息</a></li>
<li <#if module?? && module == "product">class="active"</#if>><a href="/golf/course/list">高尔夫</a></li> <li <#if module?? && module == "product">class="active"</#if>><a href="/golf/course/list">高尔夫</a></li>
<li <#if module?? && module == "system">class="active"</#if>><a href="/system/template/list">系统管理</a></li> <li <#if module?? && module == "system">class="active"</#if>><a href="/system/template/list">系统管理</a></li>
......
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<@form.hidden "eventGameForm.id"/> <@form.hidden "eventGameForm.id"/>
<@form.textInput path="eventGameForm.gameName" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="赛事名称" required = true /> <@form.textInput path="eventGameForm.gameName" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="赛事名称" required = true />
<@form.addonTextInput path="eventGameForm.courseId" attributes="class=\"input-medium\" required min=\"1\"" label="球场ID" addon="选择" addonType="button" type="number"/> <@form.addonTextInput path="eventGameForm.courseId" attributes="class=\"input-medium\" required min=\"1\"" label="球场ID" addon="选择" addonType="button" type="number"/>
<@form.textInput "eventGameForm.playDate" "class=\"input-medium\" required" "赛事日期"/> <@form.textInput "eventGameForm.playDate" "class=\"input-medium\" required" "赛事日期aaaaa"/>
<div class="control-group"> <div class="control-group">
<div class="controls"> <div class="controls">
<button type="submit" class="btn btn-primary">提交</button> <button type="submit" class="btn btn-primary">提交</button>
......
<#assign pageJsContent>
<script type="text/javascript">
var roleIds = "${roleIds}";
if(roleIds.length>0){
$.each($('input:checkbox'),function(){
if(roleIds.indexOf($(this).val()) != -1 ){
$(this).attr("checked", true);
}
});
}
</script>
</#assign>
<@com.layout title="用户创建" module="userRole" current="admin_user_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.nickName" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="用户名称" required = true />
<@form.textInput path="form.userName" attributes="class=\"input-medium\" pattern=\".{1,64}\" required" label="用户账号" required = true />
<@form.checkbox "form.enable" "" "可用"/>
<div class="control-group">
<div class="controls">
<input type="checkbox" name="roleIds" value="1" />销售员
<input type="checkbox" name="roleIds" value="2" />销售经理
<input type="checkbox" name="roleIds" value="3" />会服人员
<input type="checkbox" name="roleIds" value="4" />会服主管
<input type="checkbox" name="roleIds" value="4" />旅游
<br/>
<input type="checkbox" name="roleIds" value="5" />赛事人员
<input type="checkbox" name="roleIds" value="6" />赛事主管
<input type="checkbox" name="roleIds" value="7" />财务员
<input type="checkbox" name="roleIds" value="8" />财务经理
<br/>
<input type="checkbox" name="roleIds" value="9" />系统管理员
</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="userRole" current="admin_user_list" pageJs="">
<form class="form-inline" action="/userRole/adminUser/list" method="get">
<@com.textInput "form.nickName" "style=\"margin-left: 5px;\"" "用户名称" "text"/>
<@com.textInput "form.userName" "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>角色描述</th>
<th>可用</th>
<th ><i class="icon-wrench"></i></th>
</tr>
</thead>
<tbody>
<#list list as item>
<tr>
<td >${item.nickName!}</td>
<td >${item.userName!}</td>
<td >${item.roleDesc!}</td>
<td >${item.userName!}</td>
<td><a title='' href="/userRole/adminUser/edit?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