企業級權限管理項目(七)
判斷唯一用戶名
前端
<script type="text/javascript">
/**
* 判斷是否唯一用戶名
*/
function isUniqueUsername(usernameText) {
var username = usernameText.value;
//請求Controller判斷用戶名是否唯一
$.ajax({
url:"${pageContext.request.contextPath}/user/isUniqueUsername",
data:{"username":username},
type:"post",
success:function (data) {
if(data=="false"){
//如果返回false,不可以使用
//提示用戶用戶名已經被佔用 -- 設置文本框爲紅色邊框 1px 實線
$("#username").attr("style","border:red 1px solid");
//保存按鈕設置爲不可用
$("#saveBtn").prop("disabled",true);
}else {
//如果返回true,設置保存按鈕可用
//還原文本框狀態
$("#username").attr("style","");
//保存按鈕可用
$("#saveBtn").prop("disabled",false);
}
}
});
}
</script>
UserController
/**
* 判斷是否唯一用戶名
* @ResponseBody 把結果集轉成json以流的形式返回
* @param username
* @return
*/
@RequestMapping("/isUniqueUsername")
@ResponseBody
public String isUniqueUsername(String username){
//判斷是否存在該用戶名
boolean b = userService.isUniqueUsername(username);
return String.valueOf(b);
}
UserService
@Override
public boolean isUniqueUsername(String username) {
SysUser user = userDao.findAllUserByUsername(username);
//user爲null,說明可以使用
return user==null;
}
UserDao
/**
* 判斷唯一用戶名
* @param username
* @return
*/
@Select("select * from sys_user where username = #{username}")
SysUser findAllUserByUsername(String username);
角色模塊
查詢所有角色
前端
<tbody>
<c:forEach items="${roleList}" var="role">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${role.id }</td>
<td>${role.roleName }</td>
<td>${role.roleDesc }</td>
<td class="text-center">
<a href="${pageContext.request.contextPath}/pages/role-permission-add.jsp" class="btn bg-olive btn-xs">添加權限</a>
</td>
</tr>
</c:forEach>
</tbody>
RoleController
@Controller
@RequestMapping("/role")
public class RoleController {
@Autowired
RoleService roleService;
/**
* 查詢全部
* @return
*/
@RequestMapping("/findAll")
public ModelAndView findAll(){
//準備數據
List<Role> roleList = roleService.findAll();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("roleList",roleList);
modelAndView.setViewName("role-list");
return modelAndView;
}
}
RoleService
@Service
public class RoleServiceImpl implements RoleService {
@Autowired
RoleDao roleDao;
@Override
public List<Role> findAll() {
return roleDao.findAll();
}
}
RoleDao
/**
* 查詢全部
* @return
*/
@Select("select * from sys_role")
List<Role> findAll();
保存角色
RoleController
@RequestMapping("/save")
public String save(Role role){
roleService.save(role);
return "redirect:/role/findAll";
}
RoleService
@Service
@Override
public void save(Role role) {
roleDao.save(role);
}
RoleDao
/**
* 保存角色
* @param role
*/
@Insert("insert into sys_role values(role_seq.nextval,#{roleName},#{roleDesc})")
void save(Role role);
權限模塊
創建表:注意pid爲該權限的上一級的id
create sequence permission_seq;
CREATE TABLE sys_permission(
id number PRIMARY KEY,
permissionName VARCHAR2(50) ,
url VARCHAR2(50),
pid number
)
查詢全部
前端
<c:forEach items="${permissionList}" var="permission">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${permission.id}</td>
<td>${permission.permissionName}</td>
<td>${permission.url}</td>
<td class="text-center">
<a href="${pageContext.request.contextPath}/pages/permission-add.jsp" class="btn bg-olive btn-xs">詳情</a>
</td>
</tr>
</c:forEach>
PermissionController
@Controller
@RequestMapping("/permission")
public class PermissionController {
@Autowired
PermissionService permissionService;
/**
* 查詢全部
* @return
*/
@RequestMapping("/findAll")
public ModelAndView findAll(){
//查詢數據
List<Permission> permissionList = permissionService.findAll();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("permissionList",permissionList);
modelAndView.setViewName("permission-list");
return modelAndView;
}
}
PermissionService
@Service
public class PermissionServiceImpl implements PermissionService {
@Autowired
PermissionDao permissionDao;
@Override
public List<Permission> findAll() {
return permissionDao.findAll();
}
}
PermissionDao
public interface PermissionDao {
/**
* 查詢全部
* @return
*/
@Select("select * from sys_permission")
List<Permission> findAll();
}
保存回顯
由於每個權限都要有父權限,所有添加一個下拉菜單
前端
<div class="panel panel-default">
<div class="panel-heading">權限資源信息</div>
<div class="row data-type">
<div class="col-md-2 title">權限資源名稱</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="permissionName"
placeholder="權限資源名稱" value="">
</div>
<div class="col-md-2 title">權限資源URL</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="url"
placeholder="url" value="">
</div>
<div class="col-md-2 title">父權限</div>
<div class="col-md-4 data">
<select class="form-control select2" style="width: 100%"
name="payType">
<c:forEach items="${permissionList}" var="permission">
<%--
value:給程序員用的
文本:客戶看的
--%>
<option value="${permission.id}">${permission.permissionName}</option>
</c:forEach>
</select>
</div>
</div>
</div>
PermissionController
/**
* 添加數據回顯
* 查詢所有的父權限
* @return
*/
@RequestMapping("/saveUI")
public ModelAndView saveUI(){
//查詢數據
List<Permission> permissionList = permissionService.findAllParentPermission();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("permissionList",permissionList);
modelAndView.setViewName("permission-add");
return modelAndView;
}
PermissionService
@Override
public List<Permission> findAllParentPermission() {
return permissionDao.findAllParentPermission();
}
PermissionDao
@Override
public List<Permission> findAllParentPermission() {
return permissionDao.findAllParentPermission();
}
保存權限
PermissionController
/**
* 保存權限
* @param permission
* @return
*/
@RequestMapping("/save")
public String save(Permission permission){
permissionService.save(permission);
return "redirect:/permission/findAll";
}
PermissionService
@Override
public void save(Permission permission) {
permissionDao.save(permission);
}
PermissionDao
/**
* 保存權限
* @param permission
*/
@Insert("insert into sys_permission values(permission_seq.nextval,#{permissionName},#{url},#{pid})")
void save(Permission permission);