源码获取:博客首页 "资源" 里下载!

前台:

1、社团信息浏览搜索、社团活动风采、新闻信息浏览搜索。

2、学生注册登录。

3、登录后可自己申请创建社团,也可申请加入其他社团活动。

4、管理自己社团的申请人员。

5个人信息修改及留言等。

后台:

后台管理员除了基本的系统管理功能(脚手架里的功能,这里不赘述)外,还有社团审核管理、活动新闻管理、学生管理、留言管理、活动申请审核、活动经费管理等等。

系统管理控制层:

@RequestMapping("/system")
@Controller
public class SystemController {@Autowiredprivate SiteConfig siteConfig;@Autowiredprivate OperaterLogService operaterLogService;@Autowiredprivate UserService userService;private Logger log= LoggerFactory.getLogger(SiteConfig.class);@Autowiredprivate DatabaseBakService databaseBakService;@Autowiredprivate SmsService smsService;@Autowiredprivate RedisTemplate<String,String> redisTemplate;@Autowiredprivate AssociationService associationService;@Autowiredprivate ActivitiesService activitiesService;@Autowiredprivate StyleService styleService;@Autowiredprivate OrderAuthService orderAuthService;@Autowiredprivate StudentService studentService;/*** 登录页面* @param model* @return*/@RequestMapping(value = "/login",method = RequestMethod.GET)public  String index(Model model){model.addAttribute("siteName",siteConfig.getSiteName());model.addAttribute("siteUrl",siteConfig.getSiteUrl());return "admin/system/login";}//登录成功后主页@RequestMapping(value = "/index")public  String indext(Model model){model.addAttribute("operatorLogs",operaterLogService.findLastLog(10));model.addAttribute("userTotal",userService.total());model.addAttribute("logTotal",operaterLogService.total());model.addAttribute("dataTotal",databaseBakService.total());model.addAttribute("onlineUserTotal", HttpSessionS.onlineUserCount);model.addAttribute("associationTotal",associationService.count(Association.TEAM_AUDIT_SUCCESS));model.addAttribute("activitesTotal",activitiesService.count(Activities.ACTIVITIES_AUDIT_SUCCESS));model.addAttribute("styleTotal",styleService.count(Style.STYLE_AUDIT_SUCCESS));model.addAttribute("studentTotal",studentService.count());return "admin/system/index";}@ResponseBody@RequestMapping(value = "/login",method = RequestMethod.POST)public Result<Boolean> login(HttpServletRequest request,User user, String cpacha){Map<String,String>ret=new HashMap<String,String>();if(user==null) {return Result.error(CodeMsg.DATA_ERROR);}//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){return Result.error(validate);}//表示实体信息合法,开始验证验证码是否为空、if(StringUtils.isEmpty(cpacha)){return Result.error(CodeMsg.CPACHA_EMPTY);}//说明验证码不为空,从session里获取验证码Object attribute = request.getSession().getAttribute("admin_login");if(attribute==null){return Result.error(CodeMsg.SESSION_EXPIRED);}//表示session未失效,进一步判断用户填写的验证码是否正确if(!cpacha.equalsIgnoreCase(attribute.toString())){return Result.error(CodeMsg.CPACHA_ERROR);}//表示验证码正确,开始查询数据库,检验密码是否正确User byUsername = userService.findByUsername(user.getUsername());if(byUsername==null){return Result.error(CodeMsg.ADMIN_USERNAME_NO_EXIST);}//表示用户存在 进一步对比密码是否正确if(!byUsername.getPassword().equals(user.getPassword())){return  Result.error(CodeMsg.ADMIN_PASSWORD_NO_ERROR);}//表示密码正确,将登录信息放入session中 并判断状态是否可用if(byUsername.getStatus()!=byUsername.ADMIN_USER_STATUS_ENABLE){return  Result.error(CodeMsg.ADMIN_USER_STATUS_ERROR);}//检查用户是否有角色 状态是否被冻结if(byUsername.getRole()==null||byUsername.getRole().getStatus()!= Role.ADMIN_ROLE_STATUS_ENABLE){return  Result.error(CodeMsg.ADMIN_USER_ROLE_STATUS_ERROR);}//检查用户有哪些权限if(byUsername.getRole().getAuthorities()==null ||byUsername.getRole().getAuthorities().size()==0){return  Result.error(CodeMsg.ADMIN_USER_ROLE_AUTHORITES_EMPTY);}//检查一切符合 可以登录request.getSession().setAttribute(SessionConstant.SESSION_USER_LOGIN_KEY,byUsername);//销毁session中的验证码request.getSession().setAttribute("admin_login",null);//将登录日志写入日志库OperaterLog operaterLog=new OperaterLog();operaterLog.setOperator(user.getUsername());operaterLog.setContent("用户["+user.getUsername()+"]与["+ StringUtil.getFormatterDate(new Date(),"yyyy-MM-dd HH:mm:ss")+"]登录系统");operaterLogService.save(operaterLog);log.info("用户成功登录,user="+byUsername);return  Result.success(true);}/*** 注销登录* @return*/@RequestMapping(value = "/logout")public String logout(){User loginedUser = SessionUtil.getLoginedUser();if(loginedUser!=null){SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY,"");}return  "redirect:login";}/*** 无权限提示页面* @return*/@RequestMapping(value = "/no_right")public String noRight(){return "admin/system/no_right";}/*** 修改用户个人信息* @return*/@RequestMapping(value = "/update_userInfo",method = RequestMethod.GET)public String updateUserInfo(){return "admin/system/update_userinfo";}/*** 修改信息保存* @param user* @return*/@RequestMapping(value = "/update_userInfo",method = RequestMethod.POST)public String updateUserInfo(User user){User loginedUser = SessionUtil.getLoginedUser();loginedUser.setHeadPic(user.getHeadPic());loginedUser.setEmail(user.getEmail());loginedUser.setMobile(user.getMobile());//首先保存到数据库userService.save(loginedUser);//更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY,loginedUser);return "redirect:update_userInfo";}@RequestMapping(value = "/update_pwd",method = RequestMethod.GET)public String updatePwd(){return "admin/system/update_pwd";}/*** 修改密码表单提交* @param oldPwd* @param newPwd* @return*/@ResponseBody@RequestMapping(value = "/update_pwd",method = RequestMethod.POST)public Result<Boolean> updatePwd(@RequestParam(name = "oldPwd",required = true) String oldPwd,@RequestParam(name = "newPwd",required = true)String newPwd){User loginedUser = SessionUtil.getLoginedUser();if(!loginedUser.getPassword().equals(oldPwd)){return  Result.error(CodeMsg.ADMIN_USER_PASSWORD_OLD_ERROR);}if(StringUtils.isEmpty(newPwd)){return  Result.error(CodeMsg.ADMIN_USER_PASSWORD_NEW_ERROR);}//设置新密码loginedUser.setPassword(newPwd);//更新数据库userService.save(loginedUser);//更新session//更新session里的值SessionUtil.set(SessionConstant.SESSION_USER_LOGIN_KEY,loginedUser);return Result.success(true);}/*** 日志管理页面* @param model* @param operaterLog* @param pageBean* @return*/@RequestMapping(value = "/operator_log_list")public String operatorLogList(Model model,OperaterLog operaterLog, PageBean<OperaterLog> pageBean){model.addAttribute("pageBean",operaterLogService.findList(operaterLog,pageBean));model.addAttribute("operator",operaterLog.getOperator());model.addAttribute("title","日志列表");return "admin/system/operator_log_list";}/*** 删除操作日志,可删除多个* @param ids* @return*/@RequestMapping(value = "/delete_operator_log",method = RequestMethod.POST)@ResponseBodypublic Result<Boolean> delete(String ids){if(!StringUtils.isEmpty(ids)){String[] splitIds = ids.split(",");for(String id:splitIds){operaterLogService.delete(Long.valueOf(id));}}return  Result.success(true);}/*** 清空整个日志* @return*/@RequestMapping(value ="/delete_all_log",method = RequestMethod.POST)@ResponseBodypublic Result<Boolean> deleteAll(){operaterLogService.deleteAll();return  Result.success(true);}@ResponseBody@RequestMapping(value = "/send",method = RequestMethod.POST)public Result<Boolean> code(@RequestParam(name ="phoneName")String phone){//调用方法String code = redisTemplate.opsForValue().get(phone);if(!StringUtils.isEmpty(code)){return  Result.error(CodeMsg.ADMIN_PHONE_SMS_EXIST);}//生成验证码并存储到redis中code = UUID.randomUUID().toString().substring(0, 4);HashMap<String, Object> param = new HashMap<>();param.put("code",code);boolean isSend = smsService.send(phone, "", param);if(isSend){redisTemplate.opsForValue().set(phone,code,5, TimeUnit.SECONDS);return Result.success(true);}else {return Result.error(CodeMsg.ADMIN_PHONE_SMS_ERROR);}}}

后台角色管理控制器:

/*** 后台角色管理控制器*/@RequestMapping("/admin/role")
@Controller
public class RoleController {@Autowiredprivate MenuService menuService;private Logger log= LoggerFactory.getLogger(RoleController.class);@Autowiredprivate OperaterLogService operaterLogService;@Autowiredprivate RoleService roleService;/*** 分页搜索角色列表* @param model* @param role* @param pageBean* @return*/@RequestMapping(value = "/list")public String list(Model model, Role role, PageBean<Role> pageBean){model.addAttribute("title","角色列表");model.addAttribute("name",role.getName());model.addAttribute("pageBean",roleService.findByName(role,pageBean));return "admin/role/list";}/*** 角色添加页面* @param model* @return*/@RequestMapping(value = "/add",method = RequestMethod.GET)public String add(Model model){List<Menu> all = menuService.findAll();model.addAttribute("title","添加角色");model.addAttribute("topMenus", MenuUtil.getTopMenus(all));model.addAttribute("secondMenus", MenuUtil.getSecondMenus(all));model.addAttribute("thirdMenus", MenuUtil.getThirdMenus(all));return "admin/role/add";}/*** 角色添加表单提交处理* @param role* @return*/@ResponseBody@RequestMapping(value = "/add",method = RequestMethod.POST)public Result<Boolean> add(Role role, HttpServletRequest request){CodeMsg validate = ValidateEntityUtil.validate(role);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){return  Result.error(validate);}if(roleService.save(role)==null){return  Result.error(CodeMsg.ADMIN_ROLE_ADD_ERROR);}log.info("添加角色["+role+"]");operaterLogService.add("添加角色["+role.getName()+"]");return Result.success(true);}/*** 角色编辑页面* @param id* @param model* @return*/@RequestMapping(value = "/edit",method = RequestMethod.GET)public String edit(@RequestParam(name = "id",required = true) Long id, Model model){List<Menu> all = menuService.findAll();model.addAttribute("title","添加角色");model.addAttribute("topMenus", MenuUtil.getTopMenus(all));model.addAttribute("secondMenus", MenuUtil.getSecondMenus(all));model.addAttribute("thirdMenus", MenuUtil.getThirdMenus(all));Role role = roleService.find(id);model.addAttribute("role",role);//list转换为数组model.addAttribute("authorities", JSONArray.toJSON(role.getAuthorities()).toString());return "admin/role/edit";}/*** 角色修改表单提交处理* @param role* @param request* @return*/@ResponseBody@RequestMapping(value = "/edit",method = RequestMethod.POST)public Result<Boolean> edit(Role role, HttpServletRequest request){CodeMsg validate = ValidateEntityUtil.validate(role);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){return  Result.error(validate);}Role existRole = roleService.find(role.getId());if(existRole==null){return  Result.error(CodeMsg.ADMIN_ROLE_NO_EXIST);}existRole.setName(role.getName());existRole.setRemark(role.getRemark());existRole.setStatus(role.getStatus());existRole.setAuthorities(role.getAuthorities());if(roleService.save(existRole)==null){return  Result.error(CodeMsg.ADMIN_ROLE_EDIT_ERROR);}log.info("编辑角色["+role+"]");operaterLogService.add("编辑角色["+role.getName()+"]");return Result.success(true);}@ResponseBody@RequestMapping(value = "/delete",method = RequestMethod.POST)public Result<Boolean> delete(@RequestParam(name = "id",required = true) Long id,HttpServletRequest request){try {roleService.delete(id);}catch (Exception e){return Result.error(CodeMsg.ADMIN_ROLE_DELETE_ERROR);}log.info("删除角色ID["+id+"]");operaterLogService.add("删除角色ID["+id+"]");return Result.success(true);}}

后台用户管理控制器:

/*** 后台用户管理控制器*/
@RequestMapping("/admin/user")
@Component
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RoleService roleService;@Autowiredprivate OperaterLogService operaterLogService;/*** 用户列表页面* @param model* @return*/@RequestMapping("/list")public String list(Model model, User user, PageBean<User> pageBean){model.addAttribute("usernmae",user.getUsername());model.addAttribute("pageBean",userService.findList(user,pageBean));model.addAttribute("title","用户列表");return "admin/user/list";}/*** 用户添加页面* @param model* @param* @return*/@RequestMapping(value = "/add",method = RequestMethod.GET)public String add(Model model){List<Role> all = roleService.findAll();model.addAttribute("roles",all);return "admin/user/add";}@ResponseBody@RequestMapping(value = "/add",method = RequestMethod.POST)public Result<Boolean> add(Model model,User user){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){return Result.error(validate);}//判断用户的角色是否选择if(user.getRole()==null ||user.getRole().getId()==null){return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);}//没有ID 传个0进去 0不是Long类型 所以加个0l Lif(userService.isExistUsername(user.getUsername(),0l)){return Result.error(CodeMsg.ADMIN_USER_NAME_EXIST);}//到这说明一切符合条件进行数据库新增if(userService.save(user)==null){return Result.error(CodeMsg.ADMIN_USER_ADD_ERROR);}operaterLogService.add("添加用户,用户名:"+user.getUsername());return Result.success(true);}/*** 用户编辑页面* @param model* @param id* @return*/@RequestMapping(value = "/edit",method = RequestMethod.GET)public String edit(Model model,@RequestParam(name = "id",required = true) Long id){model.addAttribute("user",userService.find(id));model.addAttribute("roles",roleService.findAll());return "admin/user/edit";}/*** 编辑用户信息表单提交处理* @param user* @return*/@ResponseBody@RequestMapping(value = "/edit",method = RequestMethod.POST)public Result<Boolean> edit(User user){//用统一验证实体方法验证是否合法CodeMsg validate = ValidateEntityUtil.validate(user);if(validate.getCode()!=CodeMsg.SUCCESS.getCode()){return Result.error(validate);}//判断用户的角色是否选择if(user.getRole()==null ||user.getRole().getId()==null){return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);}if(user.getId()==null||user.getId().longValue()<=0){return Result.error(CodeMsg.ADMIN_USER_NO_EXIST);}//判断数据库user表有没有这个用户名if(userService.isExistUsername(user.getUsername(),user.getId().longValue())){return Result.error(CodeMsg.ADMIN_USER_NAME_EXIST);}//将提交的用户信息指定字段复制到已存在的user对象中User findbyId = userService.find(user.getId());//把source原来的字段复制到目标对象当中ignoreProperties表示忽略哪些字段 该方法会覆盖新字段内容BeanUtils.copyProperties(user,findbyId,"id","createTime","updateTime");//到这说明一切通过 开始进行数据库编辑if(userService.save(findbyId)==null){return Result.error(CodeMsg.ADMIN_USER_EDIT_ERROR);}operaterLogService.add("编辑用户,用户名:"+user.getUsername());return Result.success(true);}@ResponseBody@RequestMapping(value = "/delete",method = RequestMethod.POST)public Result<Boolean> delete(@RequestParam(name = "id",required = true) Long id) {try {userService.delete(id);} catch (Exception e){return Result.error(CodeMsg.ADMIN_USER_DELETE_ERROR);}operaterLogService.add("删除用户,id为:"+id);return  Result.success(true);}
}

源码获取:博客首页 "资源" 里下载!

Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)相关推荐

  1. java毕业生设计校园社团活动管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计校园社团活动管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计校园社团活动管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  2. ssm毕设项目高校学生社团管理系统n4pcu(java+VUE+Mybatis+Maven+Mysql+sprnig)

    ssm毕设项目高校学生社团管理系统n4pcu(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...

  3. java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw

    java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw java毕业生设计学生学籍信息管理系统计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目架构:B/S ...

  4. Java项目:自习室图书馆座位预约管理系统(java+SSM+JSP+easyUI+mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 一款由jsp+ssm+mysql实现的图书馆预约占座管理系统,前端采用的是当下最流行的easyui框架,后台用的ssm(spr ...

  5. Java项目:流浪猫狗救助管理系统(java+SSM+JSP+bootstrap+jQuery+mysql)

    源码获取:博客首页 "资源" 里下载! 项目介绍 流浪猫狗救助管理系统.该项目分为前后台: 前台主要功能包括:会员的注册登陆,流浪猫狗知识,领养中心,团队活动,流浪宠物详情,申请领 ...

  6. Java项目:医药进销存管理系统(java+SpringBoot+HTML+Echarts+JQuery+maven+mysql)

    源码获取:博客首页 "资源" 里下载! 功能介绍 医药进销存系统,主要分两种角色:员工.客户.本系统具有进销存系统的通用性,可以修改为其它进销存系统,如家电进销存.手机进销存等: ...

  7. Java项目:水果生鲜超市商城管理系统(java+SSM+JSP+jQuery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录: 管理员角色包含以下功能: 管理员登录,用 ...

  8. Java项目:图书进销存管理系统(java+SSM+JSP+bootstrap+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本系统是基于SSM和bootstrap进行开发的项目.主要也是为了完成学校的学习任务,整体可能没有那么完美,练练手倒还行. 该 ...

  9. Java项目:宿舍寝室维修上报管理系统(java+SpringBoot+FreeMarker+Mysql)

    源码获取:博客首页 "资源" 里下载! 管理员:校园管理(楼栋管理.宿舍管理).师生管理(学生管理.辅导员管理).维修管理(维修工管理.维修进度管理).阅览室管理(座位生成等).学 ...

最新文章

  1. Spring消息之WebSocket
  2. 网络营销过程中如何避免网站的过度优化情况的发生?
  3. bilareralFilter双边滤波函数
  4. 【Python】学习笔记总结3(Python文件操作)
  5. java nio 应用场景_BIO、NIO、AIO简述及应用场景
  6. Codeforces 918D/917B - MADMAX
  7. 【操作系统复习】操作系统的发展与分类
  8. firefox android 插件,Firefox for Android将很快迎来更多扩展插件
  9. 商业模式匹配乃同质化产品竞争终极大杀器
  10. 轻量级神经网络ShuffleNet
  11. 转载一个 mui 等待动画 mui.showLoading
  12. 内存free和available区别
  13. 页错误异常处理(page fault)的实现
  14. 函授计算机专业教育感想,函授学习心得体会(精选5篇)
  15. 一、Python-劳务报酬计算器(新手练习)
  16. 【Java.JMS】一个简单的JMS实例
  17. 教师如何创建在线查分系统
  18. SPICE的器件模型
  19. 将列表按字母排序如通讯录
  20. 2021高考济南一中成绩查询,2021年济南重点高中名单及排名,济南高中高考成绩排名榜...

热门文章

  1. 连接远程服务器CredSSP加密Oracle修正报错解决办法
  2. Blender灯光照明与渲染视频教程 Skillshare – Blender: Product rendering for beginners
  3. Go 分布式学习利器(15) -- Go 实现 深搜和广搜
  4. 设计模式 之美 -- 单例模式
  5. 【Step By Step】将Dotnet Core部署到Docker下
  6. JZOJ #4722 跳楼机 (最短路模型的完美转化)
  7. Xamarin开发Anroid应用介绍
  8. Png透明背景的电话图标。
  9. iOS常用动画 类封装
  10. 【Smart_Point】unique_ptr与shared_ptr使用实例