OA自动化办公管理系统(javaLayuiSSMMavenmysqlJSPhtml)
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等
用户管理控制层:/** * @author yy */ @Controller @RequestMapping("/user") public class UserController extends BaseController{ private String prefix = "system/user/"; @Autowired IUserService iUserService; @Autowired IRoleService iRoleService; @Autowired IDeptService iDeptService; @Autowired IPositionService iPositionService; @Autowired private SysPasswordService passwordService; /** * * @描述 跳转到用户页面 * * @date 2018/9/16 10:54 */ @RequestMapping("/tolist") @RequiresPermissions("user:list") public String toUserList() { return prefix + "user"; } /** * @描述 用户数据 * @date 2018/9/15 12:30 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo list(User user) { startPage(); List users = iUserService.selectByUser(user); return getDataTable(users); } /** * 编辑用户 system/user/edit/20180914-1 */ @RequiresPermissions("user:update") @RequestMapping("/edit/{userId}") public String edit(@PathVariable("userId") String userId, Model model) { // 个人信息 User user = iUserService.selectByPrimaryKey(userId); Map role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); model.addAttribute("user", user); return prefix + "edit"; } /** * * @描述 保存用户 * * @date 2018/9/15 18:53 */ @PostMapping("/editSave") @RequiresPermissions("user:update") @Operlog(modal = "用户管理", descr = "修改用户信息") @ResponseBody public AjaxResult save(User user) { if (StringUtils.isNotNull(user.getUid()) && User.isBoss(user.getUid())) { return error("不允许修改管理员用户"); } if(user.getPwd()!=null){ user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); } return result(iUserService.updateByPrimaryKeySelective(user)); } /** * @描述 添加用户页面 * @date 2018/9/15 18:46 */ @RequestMapping("/toAdd") @RequiresPermissions("user:add") public String toaddUser(Model model) { Map role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); return prefix + "add"; } /** * * @描述 添加用户 * * @date 2018/9/15 20:40 */ @RequestMapping("/addSave") @RequiresPermissions("user:add") @Operlog(modal = "用户管理", descr = "添加用户") @ResponseBody public AjaxResult addUser(User user) { user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setAvatar(CsEnum.avatar.USER_AVATAR.getValue()); user.setCreateTime(new Date()); return result(iUserService.insertSelective(user)); } /** * * @描述 批量删除 * * @date 2018/9/16 9:31 */ @RequestMapping("/del") @RequiresPermissions("user:del") @Operlog(modal = "用户模块", descr = "删除用户") @ResponseBody public AjaxResult delByUserIds(String[] ids) { try { int i = iUserService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 编辑密码修改页面 * * @date 2018/9/16 10:25 */ @RequestMapping("/resetPwd/{userId}") @RequiresPermissions("user:update") public String editPwd(@PathVariable("userId") String id, Model model) { model.addAttribute("uid", id); return prefix + "resetPwd"; } /** * * @描述 密码修改 * * @date 2018/9/16 10:42 */ @RequestMapping("/resetPwd") @RequiresPermissions("user:update") @Operlog(modal = "用户模块", descr = "修改密码") @ResponseBody public AjaxResult resetPwd(User user) { return result(iUserService.resrtPwd(user)); } /** * 校验手机号码 */ @PostMapping("/checkPhoneUnique") @ResponseBody public String checkPhoneUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkPhoneUnique(user); } return uniqueFlag; } /** * 校验email邮箱 */ @PostMapping("/checkEmailUnique") @ResponseBody public String checkEmailUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkEmailUnique(user); } return uniqueFlag; } /** * * @描述: 校验登录名唯一性 * * @params: * @return: * @date: 2018/10/2 17:06 */ @PostMapping("/checkLoginNameUnique") @ResponseBody public String checkLoginNameUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkLoginNameUnique(user); } return uniqueFlag; } public Map getRole_Post_Dept() { Map map = new HashMap<>(); // 角色 List roles = iRoleService.selectRoleList(new Role()); // 部门信息 List depts = iDeptService.selectDeptList(new Dept()); // 岗位 List positions = iPositionService.selectPositionList(new Position()); map.put("role", roles); map.put("dept", depts); map.put("position", positions); return map; } /** * 用户个人信息查看页面 */ @RequestMapping("/myMsg") public String ToMyMsg(Model model, HttpServletRequest request) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); model.addAttribute("loginIp", HttpHeaderUtil.getIpAddr(request)); return prefix + "profile/msg"; } /** * 密码修改页面 */ @RequestMapping("/resetMyPwd") public String toResetPwd(Model model) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); return prefix + "profile/resetPwd"; } /** * 密码修改保存 */ @RequestMapping("/updateMyPwdSave") @ResponseBody @RequiresPermissions("user:update") @Operlog(modal = "个人信息", descr = "修改密码") public AjaxResult updateMyPwdSave(String password) { User user = new User(); user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setUid(getUserId()); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { //更新shiro中的信息 ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); return success(); } return error(); } /** * 编辑用户头像修改 */ @RequestMapping("/updateAvatar") public String toupdateAvatar(Model model) { model.addAttribute("user", getUser()); return prefix + "profile/avatar"; } /** * 修改保存用户头像 */ @RequestMapping("/updateAvatarSave") @RequiresPermissions("user:update") @Operlog(modal = "个人信息", descr = "修改头像") @ResponseBody public AjaxResult toupdateAvatar(MultipartFile file) { try { String imgPath = UploadFile.uploadUserImg(file); if (StringUtils.isEmpty(imgPath)) { return error("图片上传失败,稍后再试!"); } User user = new User(); user.setUid(getUserId()); user.setAvatar(imgPath); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); } return result(i); } catch (IOException e) { return error(); } catch (FileSizeException e) { //文件过大 return error(e.getMsg()); } catch (FileNameLengthException e) { //文件名字超长 return error(e.getMsg()); } } /** * 校验密码和原来密码是否相同 */ @RequestMapping("/checkPassword") @ResponseBody public boolean checkPassword(String password) { //加密后与数据库密码比较 User user = getUser(); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); String oldPassword = md5.toHex(); String pwd = getPwd(); if (pwd.equals(oldPassword)) { return true; } return false; } }部门管理控制层:/** * @author yy */ @Controller @RequestMapping("/dept") public class DeptController extends BaseController{ private String prefix = "system/dept/"; @Autowired IDeptService iDeptService; @Autowired IUserService iUserService; /** * * @描述 页面跳转到部门 * * @date 2018/9/16 10:59 */ @RequestMapping("/tolist") @RequiresPermissions("dept:list") public String tolist() { return prefix + "dept"; } /** * * @描述 ajax请求的所有部门 * * @date 2018/9/16 10:48 */ @RequestMapping("/ajaxlist") @ResponseBody public List list(Dept dept) { List depts = iDeptService.selectDeptList(dept); return depts; } /** * * @描述 部门列表页 * * @date 2018/9/16 10:52 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo listPag(Dept dept) { //开启分页 startPage(); List depts = iDeptService.selectDeptList(dept); return getDataTable(depts); } /** * * @描述 新增页面 * * @date 2018/9/16 11:37 */ @RequiresPermissions("dept:add") @RequestMapping("/toAdd") public String toAdd(Model model) { List users = iUserService.selectByUser(new User()); model.addAttribute("users", users); return prefix + "add"; } /** * * @描述: 查询所有部门下的所有用户 用户归类 树状数据 * * @date: 2018/9/27 11:25 */ @RequestMapping("/getDeptAndUserTreeData") @ResponseBody public List
我是,不会怀念以前的回忆不知道你十几岁的时候是否会有这种想法我以后是不会怀念现在的日子的。我有过这种想法,不过当时我并没有和任何人说起过,而是也同大家一样与同学们互相道别着。当时,觉得自己的生活是那么
2022年年终总结所有发生的一切都需要被记录下来,否则,过去终将湮灭在滚滚向前的时间车轮之下。即将过去的这一年,对于我来说意味着什么,我获得了什么意义,乘着还能做一些回忆,我要抓紧记录下来,以便未来
12月,上海飞洛杉矶全过程(中篇)闲话不表,书接上回。上篇说到我们准备了哪些材料,中篇就来说说我们遇到的一些小麻烦,给大家一些参考,准备材料其实是难的,每次来洛杉矶基本都要准备,烦但不难,这次来洛杉矶最难的却是难点
实体店之殇上海夜市的消失导读上海的夜市文化,老早是上海的特色。到了夜里厢,大排档美食夜市的小商品,真的是老赞的。但是,现在夜市已经名实俱亡,新搞的夜市是一天世界。上海夜市文化,彻底横死版了。彭浦夜市要说夜
野三坡的兴起源自北京晚报本文来源发现涞水1986年7月11日,北京晚报头版刊登了题为京西新辟综合性风景区的报道,让位于国家级贫困县涞水县的野三坡景区首次出现在北京乃至全国人民的视线中。几天后,上万名北京游
想念不如相见!郑州园博园12月30日恢复开园大河报豫视频记者王永璐今天上午,大河报豫视频记者从郑州园博园了解到,经历77天的等待,郑州园博园将于12月30日恢复对外开放,虽季节有变,但园博园精彩不减。据郑州园博园工作人员介绍
排超积分榜出炉!交叉赛强弱分明,天津一家独大,江苏上海又同组头条创作挑战赛北京时间12月27日,中国女排排球超级联赛八强排位赛结束全部较量。尽管山东,辽宁等俱乐部球员因发烧减员严重,不过在球队剩余球员的努力之下,终于完成了比赛任务。八强排位
汪小菲晒北京新开四合院餐厅画面惊现张兰身影母子做戏真相曝光上个月,汪小菲和大S为豪宅电费吵翻天,再掀离婚风暴,汪小菲与其母亲张兰目前也处于闹翻状态。但就在近日,汪小菲在社交平台上晒出了自己在北京的四合院视频,表示这是和友人们在北京前门开的
第2116篇(随笔)好人品才有好人生一个善良的人,才会真诚待人一个品行正的人,才会本分做人。生活中,与善良的人在一起,能让你舒服放松,与品正的人交往,才能让你踏实安心。做人,品行正,人人敬重心善良,人人爱护。和品行端
就搞您自己的时间管理,发您自己的财就搞您自己的时间管理,发您自己的财这个世界坏得很,不要接触任何人,不要让任何人接触到您。您不用在意任何人高兴不高兴,您不用给任何人脸面,您只要自己爽就可以,您只要自己能发财,您就是
破产那件小事(五)红尘波浪两茫茫,忍辱柔和是妙方。从来硬弩弦先断,自古钢刀口易伤。人为贪财身先丧,鸟为夺食命早亡。任你奸猾多取巧,难免荒郊土内藏。忍字头上一把刀,这话没毛病。可忍的事情多了,就像往心