作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
管理员角色包含以下功能:
管理员登录,添加航班,航班列表,查看订单,查看用户信息,留言管理等功能。
用户角色包含以下功能:
查询航班,用户登录,订票,查看订单,留言板等功能。
由于本程序规模不大,可供课程设计,毕业设计学习演示之用
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
技术栈
HTML+CSS+JavaScript+jsp+mysql
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/login.jsp 登录
运行截图
相关代码
用户管理控制器
@Controller
@RequestMapping("/userController")
public class UserController {
/**
* Logger for this class
*/
@SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(UserController.class);
private UserService userService;
private SystemService systemService;
private String message = null;
@Autowired
public void setSystemService(SystemService systemService) {
this.systemService = systemService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* 菜单列表
*
* @param request
* @return
*/
@RequestMapping(params = "menu")
public void menu(HttpServletRequest request, HttpServletResponse response) {
SetListSort sort = new SetListSort();
TSUser u = ResourceUtil.getSessionUserName();
// 登陆者的权限
Set<TSFunction> loginActionlist = new HashSet();// 已有权限菜单
List<TSRoleUser> rUsers = systemService.findByProperty(TSRoleUser.class, "TSUser.id", u.getId());
for (TSRoleUser ru : rUsers) {
TSRole role = ru.getTSRole();
List<TSRoleFunction> roleFunctionList = systemService.findByProperty(TSRoleFunction.class, "TSRole.id", role.getId());
if (roleFunctionList.size() > 0) {
for (TSRoleFunction roleFunction : roleFunctionList) {
TSFunction function = (TSFunction) roleFunction.getTSFunction();
loginActionlist.add(function);
}
}
}
List<TSFunction> bigActionlist = new ArrayList();// 一级权限菜单
List<TSFunction> smailActionlist = new ArrayList();// 二级权限菜单
if (loginActionlist.size() > 0) {
for (TSFunction function : loginActionlist) {
if (function.getFunctionLevel() == 0) {
bigActionlist.add(function);
} else if (function.getFunctionLevel() == 1) {
smailActionlist.add(function);
}
}
}
// 菜单栏排序
Collections.sort(bigActionlist, sort);
Collections.sort(smailActionlist, sort);
String logString = ListtoMenu.getMenu(bigActionlist, smailActionlist);
// request.setAttribute("loginMenu",logString);
try {
response.getWriter().write(logString);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 用户列表页面跳转[跳转到标签和手工结合的html页面]
*
* @return
*/
@RequestMapping(params = "userDemo")
public String userDemo(HttpServletRequest request) {
// 给部门查询条件中的下拉框准备数据
List<TSDepart> departList = systemService.getList(TSDepart.class);
request.setAttribute("departsReplace", RoletoJson.listToReplaceStr(departList, "departname", "id"));
return "system/user/userList2";
}
/**
* 用户列表页面跳转
*
* @return
*/
@RequestMapping(params = "user")
public String user(HttpServletRequest request) {
// 给部门查询条件中的下拉框准备数据
List<TSDepart> departList = systemService.getList(TSDepart.class);
request.setAttribute("departsReplace", RoletoJson.listToReplaceStr(departList, "departname", "id"));
return "system/user/userList";
}
/**
* 用户信息
*
* @return
*/
@RequestMapping(params = "userinfo")
public String userinfo(HttpServletRequest request) {
TSUser user = ResourceUtil.getSessionUserName();
request.setAttribute("user", user);
return "system/user/userinfo";
}
/**
* 修改密码
*
* @return
*/
@RequestMapping(params = "changepassword")
public String changepassword(HttpServletRequest request) {
TSUser user = ResourceUtil.getSessionUserName();
request.setAttribute("user", user);
return "system/user/changepassword";
}
/**
* 修改密码
*
* @return
*/
@RequestMapping(params = "savenewpwd")
@ResponseBody
public AjaxJson savenewpwd(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
TSUser user = ResourceUtil.getSessionUserName();
String password = oConvertUtils.getString(request.getParameter("password"));
String newpassword = oConvertUtils.getString(request.getParameter("newpassword"));
String pString = PasswordUtil.encrypt(user.getUserName(), password, PasswordUtil.getStaticSalt());
if (!pString.equals(user.getPassword())) {
j.setMsg("原密码不正确");
j.setSuccess(false);
} else {
try {
user.setPassword(PasswordUtil.encrypt(user.getUserName(), newpassword, PasswordUtil.getStaticSalt()));
} catch (Exception e) {
e.printStackTrace();
}
systemService.updateEntitie(user);
j.setMsg("修改成功");
}
return j;
}
/**
* 得到角色列表
*
* @return
*/
@RequestMapping(params = "role")
@ResponseBody
public List<ComboBox> role(HttpServletResponse response, HttpServletRequest request, ComboBox comboBox) {
String id = request.getParameter("id");
List<ComboBox> comboBoxs = new ArrayList<ComboBox>();
List<TSRole> roles = new ArrayList();
if (StringUtil.isNotEmpty(id)) {
List<TSRoleUser> roleUser = systemService.findByProperty(TSRoleUser.class, "TSUser.id", id);
if (roleUser.size() > 0) {
for (TSRoleUser ru : roleUser) {
roles.add(ru.getTSRole());
}
}
}
List<TSRole> roleList = systemService.getList(TSRole.class);
comboBoxs = TagUtil.getComboBox(roleList, roles, comboBox);
return comboBoxs;
}
/**
* 得到部门列表
*
* @return
*/
@RequestMapping(params = "depart")
@ResponseBody
public List<ComboBox> depart(HttpServletResponse response, HttpServletRequest request, ComboBox comboBox) {
String id = request.getParameter("id");
List<ComboBox> comboBoxs = new ArrayList<ComboBox>();
List<TSDepart> departs = new ArrayList();
if (StringUtil.isNotEmpty(id)) {
TSUser user = systemService.get(TSUser.class, id);
if (user.getTSDepart() != null) {
TSDepart depart = systemService.get(TSDepart.class, user.getTSDepart().getId());
departs.add(depart);
}
}
List<TSDepart> departList = systemService.getList(TSDepart.class);
comboBoxs = TagUtil.getComboBox(departList, departs, comboBox);
return comboBoxs;
}
/**
* easyuiAJAX用户列表请求数据
* @param request
* @param response
* @param dataGrid
*/
@RequestMapping(params = "datagrid")
public void datagrid(TSUser user,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid);
//查询条件组装器
com.bjpowernode.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, user);
Short[] userstate = new Short[] { Globals.User_Normal, Globals.User_ADMIN, Globals.User_Forbidden };
cq.in("status", userstate);
cq.add();
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* 用户信息录入和更新
*
* @param user
* @param req
* @return
*/
@RequestMapping(params = "del")
@ResponseBody
public AjaxJson del(TSUser user, HttpServletRequest req) {
AjaxJson j = new AjaxJson();
if("admin".equals(user.getUserName())){
message = "超级管理员[admin]不可删除";
j.setMsg(message);
return j;
}
user = systemService.getEntity(TSUser.class, user.getId());
List<TSRoleUser> roleUser = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId());
if (!user.getStatus().equals(Globals.User_ADMIN)) {
if (roleUser.size()>0) {
// 删除用户时先删除用户和角色关系表
delRoleUser(user);
userService.delete(user);
message = "用户:" + user.getUserName() + "删除成功";
systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
} else {
userService.delete(user);
message = "用户:" + user.getUserName() + "删除成功";
}
} else {
message = "超级管理员不可删除";
}
j.setMsg(message);
return j;
}
public void delRoleUser(TSUser user) {
// 同步删除用户角色关联表
List<TSRoleUser> roleUserList = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId());
if (roleUserList.size() >= 1) {
for (TSRoleUser tRoleUser : roleUserList) {
systemService.delete(tRoleUser);
}
}
}
/**
* 检查用户名
*
* @param ids
* @return
*/
@RequestMapping(params = "checkUser")
@ResponseBody
public ValidForm checkUser(HttpServletRequest request) {
ValidForm v = new ValidForm();
String userName=oConvertUtils.getString(request.getParameter("param"));
String code=oConvertUtils.getString(request.getParameter("code"));
List<TSUser> roles=systemService.findByProperty(TSUser.class,"userName",userName);
if(roles.size()>0&&!code.equals(userName))
{
v.setInfo("用户名已存在");
v.setStatus("n");
}
return v;
}
/**
* 用户录入
*
* @param user
* @param req
* @return
*/
@RequestMapping(params = "saveUser")
@ResponseBody
public AjaxJson saveUser(HttpServletRequest req, TSUser user) {
AjaxJson j = new AjaxJson();
// 得到用户的角色
String roleid = oConvertUtils.getString(req.getParameter("roleid"));
String password = oConvertUtils.getString(req.getParameter("password"));
if (StringUtil.isNotEmpty(user.getId())) {
TSUser users = systemService.getEntity(TSUser.class, user.getId());
users.setEmail(user.getEmail());
users.setOfficePhone(user.getOfficePhone());
users.setMobilePhone(user.getMobilePhone());
users.setTSDepart(user.getTSDepart());
users.setRealName(user.getRealName());
users.setDebit(users.getDebit().add(user.getDebit()));
if((user.getDebit().add(users.getDebit())).compareTo(BigDecimal.ZERO) != -1){
users.setStatus(Globals.User_Normal);
}
users.setActivitiSync(user.getActivitiSync());
systemService.updateEntitie(users);
List<TSRoleUser> ru = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId());
systemService.deleteAllEntitie(ru);
message = "用户: " + users.getUserName() + "更新成功";
if (StringUtil.isNotEmpty(roleid)) {
saveRoleUser(users, roleid);
}
systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
} else {
saveUser(user, password, roleid);
}
j.setMsg(message);
return j;
}
private void saveUser(TSUser user, String password, String roleid){
TSUser users = systemService.findUniqueByProperty(TSUser.class, "userName",user.getUserName());
if (users != null) {
message = "用户: " + users.getUserName() + "已经存在";
} else {
user.setPassword(PasswordUtil.encrypt(user.getUserName(), password, PasswordUtil.getStaticSalt()));
if (user.getTSDepart().equals("")) {
user.setTSDepart(null);
}
user.setStatus(Globals.User_Normal);
systemService.save(user);
message = "用户: " + user.getUserName() + "添加成功";
if (StringUtil.isNotEmpty(roleid)) {
saveRoleUser(user, roleid);
}
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
}
}
protected void saveRoleUser(TSUser user, String roleidstr) {
String[] roleids = roleidstr.split(",");
for (int i = 0; i < roleids.length; i++) {
TSRoleUser rUser = new TSRoleUser();
TSRole role = systemService.getEntity(TSRole.class, roleids[i]);
rUser.setTSRole(role);
rUser.setTSUser(user);
systemService.save(rUser);
}
}
/**
* 用户选择角色跳转页面
*
* @return
*/
@RequestMapping(params = "roles")
public String roles() {
return "system/user/users";
}
/**
* 角色显示列表
*
* @param request
* @param response
* @param dataGrid
*/
@RequestMapping(params = "datagridRole")
public void datagridRole(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSRole.class, dataGrid);
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* easyuiAJAX请求数据: 用户选择角色列表
*
* @param request
* @param response
* @param dataGrid
* @param user
*/
@RequestMapping(params = "addorupdate")
public ModelAndView addorupdate(TSUser user, HttpServletRequest req) {
List<TSDepart> departList = new ArrayList<TSDepart>();
String departid = oConvertUtils.getString(req.getParameter("departid"));
if(!StringUtil.isEmpty(departid)){
departList.add((TSDepart)systemService.getEntity(TSDepart.class,departid));
}else {
departList.addAll((List)systemService.getList(TSDepart.class));
}
req.setAttribute("departList", departList);
if (StringUtil.isNotEmpty(user.getId())) {
user = systemService.getEntity(TSUser.class, user.getId());
req.setAttribute("user", user);
idandname(req, user);
}
return new ModelAndView("system/user/user");
}
public void idandname(HttpServletRequest req, TSUser user) {
List<TSRoleUser> roleUsers = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId());
String roleId = "";
String roleName = "";
if (roleUsers.size() > 0) {
for (TSRoleUser tRoleUser : roleUsers) {
roleId += tRoleUser.getTSRole().getId() + ",";
roleName += tRoleUser.getTSRole().getRoleName() + ",";
}
}
req.setAttribute("id", roleId);
req.setAttribute("roleName", roleName);
}
/**
* 根据部门和角色选择用户跳转页面
*/
@RequestMapping(params = "choose")
public String choose(HttpServletRequest request) {
List<TSRole> roles = systemService.loadAll(TSRole.class);
request.setAttribute("roleList", roles);
return "system/membership/checkuser";
}
/**
* 部门和角色选择用户的panel跳转页面
*
* @param request
* @return
*/
@RequestMapping(params = "chooseUser")
public String chooseUser(HttpServletRequest request) {
String departid = request.getParameter("departid");
String roleid = request.getParameter("roleid");
request.setAttribute("roleid", roleid);
request.setAttribute("departid", departid);
return "system/membership/userlist";
}
/**
* 部门和角色选择用户的用户显示列表
*
* @param request
* @param response
* @param dataGrid
*/
@RequestMapping(params = "datagridUser")
public void datagridUser(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
String departid = request.getParameter("departid");
String roleid = request.getParameter("roleid");
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid);
if (departid.length() > 0) {
cq.eq("TDepart.departid", oConvertUtils.getInt(departid, 0));
cq.add();
}
String userid = "";
if (roleid.length() > 0) {
List<TSRoleUser> roleUsers = systemService.findByProperty(TSRoleUser.class, "TRole.roleid", oConvertUtils.getInt(roleid, 0));
if (roleUsers.size() > 0) {
for (TSRoleUser tRoleUser : roleUsers) {
userid += tRoleUser.getTSUser().getId() + ",";
}
}
cq.in("userid", oConvertUtils.getInts(userid.split(",")));
cq.add();
}
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* 根据部门和角色选择用户跳转页面
*/
@RequestMapping(params = "roleDepart")
public String roleDepart(HttpServletRequest request) {
List<TSRole> roles = systemService.loadAll(TSRole.class);
request.setAttribute("roleList", roles);
return "system/membership/roledepart";
}
/**
* 部门和角色选择用户的panel跳转页面
*
* @param request
* @return
*/
@RequestMapping(params = "chooseDepart")
public ModelAndView chooseDepart(HttpServletRequest request) {
String nodeid = request.getParameter("nodeid");
ModelAndView modelAndView = null;
if (nodeid.equals("role")) {
modelAndView = new ModelAndView("system/membership/users");
} else {
modelAndView = new ModelAndView("system/membership/departList");
}
return modelAndView;
}
/**
* 部门和角色选择用户的用户显示列表
*
* @param request
* @param response
* @param dataGrid
*/
@RequestMapping(params = "datagridDepart")
public void datagridDepart(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSDepart.class, dataGrid);
systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
/**
* 测试
*
* @param user
* @param req
* @return
*/
@RequestMapping(params = "test")
public void test(HttpServletRequest request, HttpServletResponse response) {
String jString = request.getParameter("_dt_json");
DataTables dataTables = new DataTables(request);
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataTables);
String username = request.getParameter("userName");
if (username != null) {
cq.like("userName", username);
cq.add();
}
DataTableReturn dataTableReturn = systemService.getDataTableReturn(cq, true);
TagUtil.datatable(response, dataTableReturn, "id,userName,mobilePhone,TSDepart_departname");
}
/**
* 用户列表页面跳转
*
* @return
*/
@RequestMapping(params = "index")
public String index() {
return "bootstrap/main";
}
/**
* 用户列表页面跳转
*
* @return
*/
@RequestMapping(params = "main")
public String main() {
return "bootstrap/test";
}
/**
* 测试
*
* @return
*/
@RequestMapping(params = "testpage")
public String testpage(HttpServletRequest request) {
return "test/test";
}
/**
* 设置签名跳转页面
*
* @param request
* @return
*/
@RequestMapping(params = "addsign")
public ModelAndView addsign(HttpServletRequest request) {
String id = request.getParameter("id");
request.setAttribute("id", id);
return new ModelAndView("system/user/usersign");
}
/**
* 用户录入
*
* @param user
* @param req
* @return
*/
@RequestMapping(params = "savesign", method = RequestMethod.POST)
@ResponseBody
public AjaxJson savesign(HttpServletRequest req) {
UploadFile uploadFile = new UploadFile(req);
String id = uploadFile.get("id");
TSUser user = systemService.getEntity(TSUser.class, id);
uploadFile.setRealPath("signatureFile");
uploadFile.setCusPath("signature");
uploadFile.setByteField("signature");
uploadFile.setBasePath("resources");
uploadFile.setRename(false);
uploadFile.setObject(user);
AjaxJson j = new AjaxJson();
message = user.getUserName() + "设置签名成功";
systemService.uploadFile(uploadFile);
systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
j.setMsg(message);
return j;
}
/**
* 测试组合查询功能
* @param user
* @param request
* @param response
* @param dataGrid
*/
@RequestMapping(params = "testSearch")
public void testSearch(TSUser user, HttpServletRequest request,HttpServletResponse response,DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSUser.class, dataGrid);
if(user.getUserName()!=null){
cq.like("userName", user.getUserName());
}
if(user.getRealName()!=null){
cq.like("realName", user.getRealName());
}
cq.add();
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);
}
@RequestMapping(params = "changestyle")
public String changeStyle(HttpServletRequest request) {
TSUser user = ResourceUtil.getSessionUserName();
if(user==null){
return "login/login";
}
String indexStyle = "shortcut";
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies) {
if(cookie==null || StringUtils.isEmpty(cookie.getName())){
continue;
}
if(cookie.getName().equalsIgnoreCase("JEECGINDEXSTYLE")){
indexStyle = cookie.getValue();
}
}
request.setAttribute("indexStyle", indexStyle);
return "system/user/changestyle";
}
/**
* @Title: saveStyle
* @Description: 修改首页样式
* @param request
* @return AjaxJson
* @throws
*/
@RequestMapping(params = "savestyle")
@ResponseBody
public AjaxJson saveStyle(HttpServletRequest request,HttpServletResponse response) {
AjaxJson j = new AjaxJson();
j.setSuccess(Boolean.FALSE);
TSUser user = ResourceUtil.getSessionUserName();
if(user!=null){
String indexStyle = request.getParameter("indexStyle");
if(StringUtils.isNotEmpty(indexStyle)){
Cookie cookie = new Cookie("JEECGINDEXSTYLE", indexStyle);
//设置cookie有效期为一个月
cookie.setMaxAge(3600*24*30);
response.addCookie(cookie);
j.setSuccess(Boolean.TRUE);
j.setMsg("样式修改成功,请刷新页面");
}
}else{
j.setMsg("请登录后再操作");
}
return j;
}
/**
* 用户列表
*
* @return
*/
@RequestMapping(params = "upload")
public ModelAndView upload(HttpServletRequest req) {
return new ModelAndView("system/user/userUpload");
}
@SuppressWarnings("unchecked")
@RequestMapping(params = "importExcel", method = RequestMethod.POST)
@ResponseBody
public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
AjaxJson j = new AjaxJson();
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
MultipartFile file = entity.getValue();// 获取上传文件对象
ImportParams params = new ImportParams();
try {
List<TSUser> listUsers =
(List<TSUser>)ExcelImportUtil.importExcelByIs(file.getInputStream(),TSUser.class,params);
String departName = null;
TSDepart depart = null;
for (TSUser users : listUsers) {
if(users.getUserName()!=null){
if(users.getTSDepart() != null && users.getTSDepart().getDepartname() != null){
if(departName != users.getTSDepart().getDepartname()){
departName = users.getTSDepart().getDepartname();
depart = systemService.findUniqueByProperty(TSDepart.class, "departname", departName);
}
users.setTSDepart(depart);
}
saveUser(users, users.getPassword(), Globals.ROLE_ID);
}
}
j.setMsg("文件导入成功!");
} catch (Exception e) {
j.setMsg("文件导入失败!");
logger.error(ExceptionUtil.getExceptionMessage(e));
}finally{
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return j;
}
}
角色管理控制器
@Controller
@RequestMapping("/roleController")
public class RoleController extends BaseController {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(RoleController.class);
private UserService userService;
private SystemService systemService;
private String message = null;
@Autowired
public void setSystemService(SystemService systemService) {
this.systemService = systemService;
}
public UserService getUserService() {
return userService;
}
@Autowired
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* 角色列表页面跳转
*
* @return
*/
@RequestMapping(params = "role")
public ModelAndView role() {
return new ModelAndView("system/role/roleList");
}
/**
* easyuiAJAX请求数据
*
* @param request
* @param response
* @param dataGrid
* @param user
*/
@RequestMapping(params = "roleGrid")
public void roleGrid( TSRole role,HttpServletRequest request,
HttpServletResponse response, DataGrid dataGrid) {
CriteriaQuery cq = new CriteriaQuery(TSRole.class, dataGrid);
com.bjpowernode.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, role);
cq.add();
this.systemService.getDataGridReturn(cq, true);
TagUtil.datagrid(response, dataGrid);;
}
/**
* 删除角色
*
* @param ids
* @return
*/
@RequestMapping(params = "delRole")
@ResponseBody
public AjaxJson delRole(TSRole role,HttpServletRequest request) {
AjaxJson j = new AjaxJson();
int count = userService.getUsersOfThisRole(role.getId());
if(count == 0){
//删除角色之前先删除角色权限关系
delRoleFunction(role);
role = systemService.getEntity(TSRole.class, role.getId());
userService.delete(role);
message = "角色: " + role.getRoleName() + "被删除成功";
systemService.addLog(message, Globals.Log_Type_DEL,
Globals.Log_Leavel_INFO);
}else{
message = "角色: 仍被用户使用,请先删除关联关系";
}
j.setMsg(message);
return j;
}
/**
* 检查角色
*
* @param ids
* @return
*/
@RequestMapping(params = "checkRole")
@ResponseBody
public ValidForm checkRole(TSRole role,HttpServletRequest request,HttpServletResponse response) {
ValidForm v = new ValidForm();
String roleCode=oConvertUtils.getString(request.getParameter("param"));
String code=oConvertUtils.getString(request.getParameter("code"));
List<TSRole> roles=systemService.findByProperty(TSRole.class,"roleCode",roleCode);
if(roles.size()>0&&!code.equals(roleCode))
{
v.setInfo("角色编码已存在");
v.setStatus("n");
}
return v;
}
/**
* 删除角色权限
* @param role
*/
protected void delRoleFunction(TSRole role){
List<TSRoleFunction> roleFunctions=systemService.findByProperty(TSRoleFunction.class,"TSRole.id",role.getId());
if (roleFunctions.size()>0) {
for (TSRoleFunction tsRoleFunction : roleFunctions) {
systemService.delete(tsRoleFunction);
}
}
List<TSRoleUser> roleUsers=systemService.findByProperty(TSRoleUser.class,"TSRole.id",role.getId());
for (TSRoleUser tsRoleUser : roleUsers) {
systemService.delete(tsRoleUser);
}
}
/**
* 角色录入
*
* @param ids
* @return
*/
@RequestMapping(params = "saveRole")
@ResponseBody
public AjaxJson saveRole(TSRole role, HttpServletRequest request) {
AjaxJson j = new AjaxJson();
if (StringUtil.isNotEmpty(role.getId())) {
message = "角色: " + role.getRoleName() + "被更新成功";
userService.saveOrUpdate(role);
systemService.addLog(message, Globals.Log_Type_UPDATE,
Globals.Log_Leavel_INFO);
} else {
message = "角色: " + role.getRoleName() + "被添加成功";
userService.save(role);
systemService.addLog(message, Globals.Log_Type_INSERT,
Globals.Log_Leavel_INFO);
}
return j;
}
/**
* 角色列表页面跳转
*
* @return
*/
@RequestMapping(params = "fun")
public ModelAndView fun(HttpServletRequest request) {
String roleId = request.getParameter("roleId");
request.setAttribute("roleId", roleId);
return new ModelAndView("system/role/roleSet");
}
/**
* 设置权限
*
* @param role
* @param request
* @param response
* @param dataGrid
* @param user
* @return
*/
@RequestMapping(params = "setAuthority")
@ResponseBody
public List<ComboTree> setAuthority(TSRole role, HttpServletRequest request,
ComboTree comboTree) {
CriteriaQuery cq = new CriteriaQuery(TSFunction.class);
if (comboTree.getId() != null) {
cq.eq("TSFunction.id",
comboTree.getId());
}
if (comboTree.getId() == null) {
cq.isNull("TSFunction");
}
cq.notEq("functionLevel",Short.parseShort("-1"));
cq.add();
List<TSFunction> functionList = systemService.getListByCriteriaQuery(cq,false);
Collections.sort(functionList, new NumberComparator());
List<ComboTree> comboTrees = new ArrayList<ComboTree>();
String roleId = request.getParameter("roleId");
List<TSFunction> loginActionlist = new ArrayList<TSFunction>();// 已有权限菜单
role = this.systemService.get(TSRole.class, roleId);
if (role != null) {
List<TSRoleFunction> roleFunctionList=systemService.findByProperty(TSRoleFunction.class, "TSRole.id", role.getId());
if (roleFunctionList.size() > 0) {
for (TSRoleFunction roleFunction : roleFunctionList) {
TSFunction function = (TSFunction) roleFunction
.getTSFunction();
loginActionlist.add(function);
}
}
}
ComboTreeModel comboTreeModel = new ComboTreeModel("id", "functionName", "TSFunctions");
comboTrees = systemService.ComboTree(functionList,comboTreeModel,loginActionlist);
return comboTrees;
}
/**
* 更新权限
*
* @param request
* @return
*/
@RequestMapping(params = "updateAuthority")
@ResponseBody
public AjaxJson updateAuthority(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
try{
String roleId =request.getParameter("roleId");
String rolefunction = request.getParameter("rolefunctions");
TSRole role = this.systemService.get(TSRole.class, roleId);
List<TSRoleFunction> roleFunctionList=systemService.findByProperty(TSRoleFunction.class, "TSRole.id", role.getId());
Map<String,TSRoleFunction> map = new HashMap<String,TSRoleFunction>();
for (TSRoleFunction functionOfRole : roleFunctionList){
map.put(functionOfRole.getTSFunction().getId(),functionOfRole);
}
String[] roleFunctions = rolefunction.split(",");
Set<String> set = new HashSet<String>();
for (String s : roleFunctions) {
set.add(s);
}
updateCompare(set,role,map);
j.setMsg("权限更新成功");
}catch (Exception e){
logger.error(ExceptionUtil.getExceptionMessage(e));
j.setMsg("权限更新失败");
}
return j;
}
/**
* 权限比较
* @param set 最新的权限列表
* @param role 当前角色
* @param map 旧的权限列表
* @param entitys 最后保存的权限列表
*/
private void updateCompare(Set<String> set,TSRole role,
Map<String, TSRoleFunction> map) {
List<TSRoleFunction> entitys = new ArrayList<TSRoleFunction>();
List<TSRoleFunction> deleteEntitys = new ArrayList<TSRoleFunction>();
for (String s : set) {
if(map.containsKey(s)){
map.remove(s);
}else{
TSRoleFunction rf = new TSRoleFunction();
TSFunction f = this.systemService.get(TSFunction.class,s);
rf.setTSFunction(f);
rf.setTSRole(role);
entitys.add(rf);
}
}
Collection<TSRoleFunction> collection = map.values();
Iterator<TSRoleFunction> it = collection.iterator();
for (; it.hasNext();) {
deleteEntitys.add(it.next());
}
systemService.batchSave(entitys);
systemService.deleteAllEntitie(deleteEntitys);
}
/**
* 角色页面跳转
*
* @param role
* @param req
* @return
*/
@RequestMapping(params = "addorupdate")
public ModelAndView addorupdate(TSRole role, HttpServletRequest req) {
if (role.getId() != null) {
role = systemService.getEntity(TSRole.class, role.getId());
req.setAttribute("role", role);
}
return new ModelAndView("system/role/role");
}
/**
* 权限操作列表
*
* @param role
* @param request
* @param response
* @param dataGrid
* @param user
* @return
*/
@RequestMapping(params = "setOperate")
@ResponseBody
public List<TreeGrid> setOperate(HttpServletRequest request,
TreeGrid treegrid) {
String roleId = request.getParameter("roleId");
CriteriaQuery cq = new CriteriaQuery(TSFunction.class);
if (treegrid.getId() != null) {
cq.eq("TSFunction.id",
treegrid.getId());
}
if (treegrid.getId() == null) {
cq.isNull("TSFunction");
}
cq.add();
List<TSFunction> functionList = systemService.getListByCriteriaQuery(cq,false);
List<TreeGrid> treeGrids = new ArrayList<TreeGrid>();
Collections.sort(functionList, new SetListSort());
TreeGridModel treeGridModel=new TreeGridModel();
treeGridModel.setRoleid(roleId);
treeGrids = systemService.treegrid(functionList, treeGridModel);
return treeGrids;
}
/**
* 操作录入
*
* @param ids
* @return
*/
@RequestMapping(params = "saveOperate")
@ResponseBody
public AjaxJson saveOperate(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
String fop = request.getParameter("fp");
String roleId = request.getParameter("roleId");
//录入操作前清空上一次的操作数据
clearp(roleId);
String[] fun_op = fop.split(",");
String aa = "";
String bb = "";
//只有一个被选中
if (fun_op.length == 1) {
bb = fun_op[0].split("_")[1];
aa = fun_op[0].split("_")[0];
savep( roleId,bb,aa);
}else{
//至少2个被选中
for (int i = 0; i < fun_op.length; i++) {
String cc = fun_op[i].split("_")[0]; //操作id
if (i > 0 && bb.equals(fun_op[i].split("_")[1])) {
aa += "," + cc;
if (i== (fun_op.length - 1)) {
savep( roleId,bb,aa);
}
} else if (i > 0) {
savep(roleId,bb,aa);
aa = fun_op[i].split("_")[0]; //操作ID
if (i==(fun_op.length-1)){
bb = fun_op[i].split("_")[1]; //权限id
savep(roleId,bb,aa);
}
} else {
aa = fun_op[i].split("_")[0]; //操作ID
}
bb = fun_op[i].split("_")[1]; //权限id
}
}
return j;
}
/**
*更新操作
* @param roleId
* @param functionid
* @param ids
*/
public void savep(String roleId,String functionid, String ids) {
//String hql = "from TSRoleFunction t where" + " t.TSRole.id=" + oConvertUtils.getInt(roleId,0)
// + " " + "and t.TSFunction.id=" + oConvertUtils.getInt(functionid,0);
CriteriaQuery cq=new CriteriaQuery(TSRoleFunction.class);
cq.eq("TSRole.id",roleId);
cq.eq("TSFunction.id",functionid);
cq.add();
List<TSRoleFunction> rFunctions =systemService.getListByCriteriaQuery(cq,false);
if (rFunctions.size() > 0) {
TSRoleFunction roleFunction = rFunctions.get(0);
roleFunction.setOperation(ids);
systemService.saveOrUpdate(roleFunction);
}
}
/**
* 清空操作
* @param roleId
*/
public void clearp(String roleId) {
List<TSRoleFunction> rFunctions = systemService.findByProperty(TSRoleFunction.class,"TSRole.id",roleId);
if (rFunctions.size() > 0){
for (TSRoleFunction tRoleFunction : rFunctions) {
tRoleFunction.setOperation(null);
systemService.saveOrUpdate(tRoleFunction);
}
}
}
/**
* 按钮权限展示
* @param request
* @param functionId
* @param roleId
* @return
*/
@RequestMapping(params = "operationListForFunction")
public ModelAndView operationListForFunction(HttpServletRequest request,String functionId,String roleId) {
CriteriaQuery cq = new CriteriaQuery(TSOperation.class);
cq.eq("TSFunction.id", functionId);
cq.add();
List<TSOperation> operationList = this.systemService.getListByCriteriaQuery(cq, false);
Set<String> operationCodes = systemService.getOperationCodesByRoleIdAndFunctionId(roleId, functionId);
request.setAttribute("operationList", operationList);
request.setAttribute("operationcodes", operationCodes);
request.setAttribute("functionId", functionId);
return new ModelAndView("system/role/operationListForFunction");
}
/**
* 更新按钮权限
*
* @param request
* @return
*/
@RequestMapping(params = "updateOperation")
@ResponseBody
public AjaxJson updateOperation(HttpServletRequest request) {
AjaxJson j = new AjaxJson();
String roleId =request.getParameter("roleId");
String functionId = request.getParameter("functionId");
// update-begin--Author:chenxu Date:201403024 for:410
String operationcodes = null;
try {
operationcodes = URLDecoder.decode(request.getParameter("operationcodes"), "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// update-end--Author:chenxu Date:20140324 for:410
CriteriaQuery cq1=new CriteriaQuery(TSRoleFunction.class);
cq1.eq("TSRole.id",roleId);
cq1.eq("TSFunction.id",functionId);
cq1.add();
List<TSRoleFunction> rFunctions =systemService.getListByCriteriaQuery(cq1,false);
if(null!=rFunctions && rFunctions.size()>0){
TSRoleFunction tsRoleFunction = rFunctions.get(0);
tsRoleFunction.setOperation(operationcodes);
systemService.saveOrUpdate(tsRoleFunction);
}
j.setMsg("按钮权限更新成功");
return j;
}
}
如果也想学习本系统,下面领取。关注并回复:043jsp