• SSM学校社团管理系统


    作者主页:夜未央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版本;

    6.是否Maven项目:是;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:JSP+CSS+JavaScript+jquery+bootstrap

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

    若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

    3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入localhost:8080/ssm_shetuan_sys 登录

    运行截图

    超级管理员角色

     

     

     

    社团管理员角色

     

     

     

     

    学生角色 

     

     

     

    相关代码

    管理员控制器

    1. @Controller
    2. @RequestMapping(value = "/Manager")
    3. public class ManagerController {
    4. @Autowired
    5. private ManagerService managerService;
    6. // 1根据id查询
    7. @RequestMapping("/findManagerById")
    8. public @ResponseBody Manager findManagerById(Model model,String ma_id){
    9. System.out.println("===============findManagerById=================");
    10. System.out.println("MA_id:"+ma_id);
    11. int id=Integer.parseInt(ma_id);
    12. Manager manager=managerService.findManagerById(id);
    13. System.out.println("manager:"+manager.getMA_name());
    14. model.addAttribute("manager", manager);
    15. return manager;
    16. }
    17. // 2查询所有(分页显示)
    18. @RequestMapping("/findAllManager")
    19. public String findAllManager(Model model, String type, Integer pageNo,
    20. Integer pageSize) {
    21. System.out.println("===========findAllManager==============");
    22. System.out.println("传到type的值:" + type);
    23. PagedResult<Manager> pagedResult = (PagedResult<Manager>) managerService
    24. .findAllManager(pageNo, pageSize);
    25. model.addAttribute("pagedResult", pagedResult);
    26. List<Manager> managerList = pagedResult.getDataList();
    27. System.out.println("当前页码:" + pageNo);
    28. System.out.println("总页数:" + pageSize);
    29. System.out.println(pagedResult.getPages());
    30. model.addAttribute("managerList", managerList);
    31. if (type.equals("show1")) {
    32. return "jsp/sonpage/manager/managerson/findManager";
    33. }
    34. if (type.equals("show2")) {
    35. return "jsp/sonpage/manager/managerson/delManager";
    36. }
    37. return "";
    38. }
    39. // 3模糊查询
    40. @RequestMapping("/findLikeNameManager")
    41. public String findLikeNameManager(String ma_id, String ma_name,
    42. Model model, String type) {
    43. System.out.println("===========模糊查询系统管理员信息============");
    44. //String ma_id=id;
    45. //String ma_name=name;
    46. System.out.println("ma_id:" + ma_id);
    47. System.out.println("ma_name:" + ma_name);
    48. System.out.println("type:" + type);
    49. Map map = new HashMap();
    50. map.put("ma_id", ma_id);
    51. map.put("ma_name", ma_name);
    52. List<Manager> managerList = managerService.findLikeNameManager(map);
    53. model.addAttribute("managerList", managerList);
    54. if (type.equals("show1")) {
    55. System.out.println("===========从查询管理员信息页面===========");
    56. if (("").equals(ma_id) && ("").equals(ma_name)) {
    57. System.out.println("1没有传值");
    58. System.out.println("===========findAllManager==============");
    59. System.out.println("传到type的值:" + type);
    60. PagedResult<Manager> pagedResult = (PagedResult<Manager>) managerService
    61. .findAllManager(0, 5);
    62. model.addAttribute("pagedResult", pagedResult);
    63. managerList = pagedResult.getDataList();
    64. System.out.println("当前页码:" + 1);
    65. System.out.println("总页数:" + 5);
    66. System.out.println(pagedResult.getPages());
    67. model.addAttribute("managerList", managerList);
    68. return "jsp/sonpage/manager/managerson/findManager";
    69. }
    70. System.out
    71. .println("===================跳回查询页面======================");
    72. return "jsp/sonpage/manager/managerson/findManager";
    73. }
    74. if (type.equals("show2")) {
    75. System.out.println("===========从删除管理员信息页面===========");
    76. if (("").equals(ma_id) && ("").equals(ma_name)) {
    77. System.out.println("2没有传值");
    78. System.out.println("1没有传值");
    79. System.out.println("===========findAllManager==============");
    80. System.out.println("传到type的值:" + type);
    81. PagedResult<Manager> pagedResult = (PagedResult<Manager>) managerService
    82. .findAllManager(0, 5);
    83. model.addAttribute("pagedResult", pagedResult);
    84. managerList = pagedResult.getDataList();
    85. System.out.println("当前页码:" + 1);
    86. System.out.println("总页数:" + 5);
    87. System.out.println(pagedResult.getPages());
    88. model.addAttribute("managerList", managerList);
    89. return "jsp/sonpage/manager/managerson/findManager";
    90. }
    91. System.out
    92. .println("===================跳回删除页面======================");
    93. return "jsp/sonpage/manager/managerson/delManager";
    94. }
    95. return "";
    96. }
    97. // 4添加系统管理员
    98. @RequestMapping("/addManager")
    99. public String addManager(Manager manager) {
    100. System.out.println("=========添加系统管理员=========");
    101. System.out.println("姓名:" + manager.getMA_name());
    102. managerService.addManager(manager);
    103. return "jsp/sonpage/manager/managerson/addManager";
    104. }
    105. // 5删除系统管理员
    106. @RequestMapping("/delManager")
    107. public String delManager(String MA_id) {
    108. System.out.println("===========删除系统管理员===========");
    109. System.out.println("MA_id:" + MA_id);
    110. int id = Integer.parseInt(MA_id);
    111. managerService.delManager(id);
    112. return "forward:findAllManager.action?type=show2";
    113. }
    114. // 6修改系统管理员
    115. @RequestMapping("/updateManager")
    116. public String updateManager(Manager manager) {
    117. System.out.println("=========修改系统管理员=========");
    118. System.out.println("名字:"+manager.getMA_name());
    119. managerService.updateManager(manager);
    120. return "forward:findAllManager.action?type=show1";
    121. }
    122. // 8批量删除管理员信息
    123. @RequestMapping("/delItem")
    124. public @ResponseBody boolean delItem(Model model, String ids) {
    125. System.out.println("==========批量删除已审批活动信息==========");
    126. System.out.println("ids:" + ids);
    127. // 用数组接收获取的选中集合
    128. String[] str = ids.split("_");
    129. for (int i = 0; i < str.length; i++) {
    130. int id = Integer.parseInt(str[i]);
    131. managerService.delManager(id);
    132. System.out.println("删除的方法执行了");
    133. }
    134. // return "forward:findAllMember.action?type=show2";
    135. return true;
    136. }
    137. //9登陆(根据学号查找)
    138. @RequestMapping("/findManagerByNum")
    139. public @ResponseBody boolean findManagerByNum(HttpSession session,String num,String pwd){
    140. System.out.println("===============findManagerByNum=================");
    141. System.out.println("num:"+num);
    142. Subject subject = SecurityUtils.getSubject();
    143. subject.getSession().setAttribute("userType", "Manager");
    144. // 保存至令牌环中,供MyRealm做验证
    145. UsernamePasswordToken token = new UsernamePasswordToken(num, pwd);
    146. // 保存用户类型供MyRealm获取
    147. try {
    148. // 跳转到MyRealm 做登录用户名和密码验证
    149. subject.login(token);
    150. session.setAttribute("num", num);
    151. session.setAttribute("role", "2");
    152. System.out.println("ManagerController-->>findManagerByNum-->>登录成功");
    153. return true;
    154. } catch (Exception e) {
    155. // TODO: handle exception
    156. e.printStackTrace();
    157. System.out.println("ManagerController-->>findManagerByNum-->>登录失败");
    158. return false;
    159. }
    160. // Manager manager=managerService.findManagerByNum(num);
    161. // System.out.println("manager:"+manager.getMA_pwd());
    162. // String MA_pwd=manager.getMA_pwd();
    163. // session.setAttribute("num", num);
    164. // session.setAttribute("role", "2");
    165. // if(MA_pwd.equals(pwd)){
    166. // System.out.println("返回值是真");
    167. // return true;
    168. // }else{
    169. // return false;
    170. // }
    171. }
    172. // 登出
    173. @RequestMapping("/logout")
    174. public String logout(Model model) {
    175. try {
    176. Subject subject = SecurityUtils.getSubject();
    177. System.out.println("==========>>>>>>>>logout>>>>>>======"+subject.getPrincipal().toString());
    178. subject.logout();
    179. System.out.println("****************logout成功*************");
    180. } catch (Exception e) {
    181. }
    182. return "/jsp/sonpage/login";
    183. }
    184. //9修改密码
    185. @RequestMapping("/updateManagerPwd")
    186. public @ResponseBody boolean updateManagerPwd(Model model,String num,String oldPwd,String newPwd){
    187. System.out.println("===============updateManagerPwd=================");
    188. System.out.println("旧密码:"+oldPwd);
    189. System.out.println("新密码:"+newPwd);
    190. String MA_pwd=newPwd;
    191. String MA_num=num;
    192. Manager manager=managerService.findManagerByNum(num);
    193. String pwd=manager.getMA_pwd();
    194. if(pwd.equals(oldPwd)){
    195. managerService.updateManagerPwd(MA_pwd,MA_num);
    196. return true;
    197. }else{
    198. return false;
    199. }
    200. }
    201. }

    活动控制器

    1. @Controller
    2. @RequestMapping(value = "/Activity")
    3. public class ActivityController {
    4. @Autowired
    5. private ActivityService activityService;
    6. // 1根据id查询
    7. @RequestMapping("/findActivityById")
    8. public @ResponseBody Activity findActivityById(Model model, String AC_id) {
    9. System.out.println("用户传过来的id值:" + AC_id);
    10. int id = Integer.parseInt(AC_id);
    11. Activity activity = activityService.findActivityById(id);
    12. System.out.println("查到的值:"+activity.getAC_theme());
    13. return activity;
    14. }
    15. // 2查询所有未审核活动信息(分页)
    16. @RequestMapping("/findAllActivity")
    17. public String findAllActivity(Model model, String type, Integer pageNo,
    18. Integer pageSize) {
    19. System.out.println("===========查询所有未审核活动信息==============");
    20. System.out.println("传到type的值:" + type);
    21. PagedResult<Activity> pagedResult = (PagedResult<Activity>) activityService
    22. .findAllActivity(pageNo, pageSize);
    23. model.addAttribute("pagedResult", pagedResult);
    24. List<Activity> activityList = pagedResult.getDataList();
    25. System.out.println("当前页码:" + pageNo);
    26. System.out.println("总页数:" + pageSize);
    27. System.out.println(pagedResult.getPages());
    28. model.addAttribute("activityList", activityList);
    29. return "jsp/sonpage/activity/activityson/findActivity";
    30. }
    31. // 3模糊查询未审核活动信息
    32. @RequestMapping("/findLikeNameActivity")
    33. public String findLikeNameActivity(String AC_id, String AC_theme,
    34. Model model, String type) {
    35. System.out.println("===========模糊查询未审核活动信息============");
    36. System.out.println("AC_id:" + AC_id);
    37. System.out.println("AC_theme:" + AC_theme);
    38. //String AC_id=ac_id;
    39. //String AC_theme=ac_theme;
    40. Map map = new HashMap();
    41. map.put("AC_id", AC_id);
    42. map.put("AC_theme", AC_theme);
    43. List<Activity> activityList = activityService.findLikeNameActivity(map);
    44. model.addAttribute("activityList", activityList);
    45. if (type.equals("show")) {
    46. if (("").equals(AC_id) && ("").equals(AC_theme)) {
    47. System.out.println("========输入为空跳转查询所有的方法=========");
    48. return "forward:findAllActivity.action?type";
    49. }
    50. return "jsp/sonpage/activity/activityson/findActivity";
    51. }
    52. return "jsp/sonpage/activity/activityson/findActivity";
    53. }
    54. // 4添加活动信息
    55. @RequestMapping("/addActivity")
    56. public String addActivity(HttpServletRequest request, Activity activity) {
    57. System.out.println("=========添加活动信息==========");
    58. activityService.addActivity(activity);
    59. // 查询所有物品
    60. List<Goods> goodsList = activityService.findAllGoods();
    61. request.getSession().setAttribute("goodsList", goodsList);
    62. // 将刚添加的活动id保存,供添加活动物品时使用
    63. request.getSession().setAttribute("AC_id", activity.getAC_id());
    64. // 跳转到添加物品
    65. return "redirect:../jsp/sonpage/activity/activityson/addActivityGoods.jsp";
    66. }
    67. // 5删除活动信息
    68. @RequestMapping("/delActivity")
    69. public String delActivity(int AC_id) {
    70. System.out.println("============根据id删除活动信息============");
    71. System.out.println("页面传值:" + AC_id);
    72. activityService.delActivity(AC_id);
    73. return "forward:findAllCActivity.action?type=show1";
    74. }
    75. // 6修改活动信息
    76. @RequestMapping("/updateActivity")
    77. public String updateActivity(Activity activity){
    78. System.out.println("===========updateActivity==============");
    79. System.out.println("活动编号:"+activity.getAC_theme());
    80. activityService.updateActivity(activity);
    81. return "forward:findAllCActivity.action?type=show";
    82. }
    83. // 7查询所有已审核活动信息(分页)
    84. @RequestMapping("/findAllCActivity")
    85. public String findAllCActivity(Model model, String type, Integer pageNo,
    86. Integer pageSize) {
    87. System.out.println("===========查询所有已审核活动信息==============");
    88. System.out.println("传到type的值:" + type);
    89. PagedResult<Activity> pagedResult = (PagedResult<Activity>) activityService
    90. .findAllCActivity(pageNo, pageSize);
    91. model.addAttribute("pagedResult", pagedResult);
    92. List<Activity> activityList = pagedResult.getDataList();
    93. System.out.println("当前页码:" + pageNo);
    94. System.out.println("总页数:" + pageSize);
    95. System.out.println(pagedResult.getPages());
    96. model.addAttribute("activityList", activityList);
    97. if (type.equals("show1")) {
    98. return "jsp/sonpage/activity/activityson/delActivity";
    99. }
    100. if (type.equals("show")) {
    101. return "jsp/sonpage/activity/activityson/findCActivity";
    102. }
    103. return "jsp/sonpage/activity/activityson/findCActivity";
    104. }
    105. // 8模糊查询已审核活动信息
    106. @RequestMapping("/findLikeNameCActivity")
    107. public String findLikeNameCActivity(String AC_id, String AC_theme,
    108. Model model, String type) {
    109. System.out.println("===========模糊查询已审核活动信息============");
    110. //String AC_id=id;
    111. //String AC_theme=theme;
    112. System.out.println("AC_id:" + AC_id);
    113. System.out.println("AC_theme:" + AC_theme);
    114. Map map = new HashMap();
    115. map.put("AC_id", AC_id);
    116. map.put("AC_theme", AC_theme);
    117. List<Activity> activityList = activityService
    118. .findLikeNameCActivity(map);
    119. model.addAttribute("activityList", activityList);
    120. if (type.equals("show")) {
    121. if (("").equals(AC_id) && ("").equals(AC_theme)) {
    122. return "forward:findAllCActivity.action?type";
    123. }
    124. return "jsp/sonpage/activity/activityson/findCActivity";
    125. }
    126. if (type.equals("show1")) {
    127. if (("").equals(AC_id) && ("").equals(AC_theme)) {
    128. return "forward:findAllCActivity.action?type";
    129. }
    130. return "jsp/sonpage/activity/activityson/delActivity";
    131. }
    132. return "";
    133. }
    134. // 8批量删除已审批活动信息
    135. @RequestMapping("/delItem")
    136. public @ResponseBody boolean delItem(Model model, String ids) {
    137. System.out.println("==========批量删除已审批活动信息==========");
    138. System.out.println("ids:" + ids);
    139. // 用数组接收获取的选中集合
    140. String[] str = ids.split("_");
    141. for (int i = 0; i < str.length; i++) {
    142. int id = Integer.parseInt(str[i]);
    143. activityService.delActivity(id);
    144. System.out.println("删除的方法执行了");
    145. }
    146. // return "forward:findAllMember.action?type=show2";
    147. return true;
    148. }
    149. //审批(同意)
    150. @RequestMapping("/updateActivityById")
    151. public @ResponseBody boolean updateActivityById(String id){
    152. System.out.println("===========updateActivityById==============");
    153. int AC_id=Integer.parseInt(id);
    154. activityService.updateActivityById(AC_id);
    155. return true;
    156. }
    157. //审批(不同意)
    158. @RequestMapping("/updateActivityNById")
    159. public @ResponseBody boolean updateActivityNById(String id,String AC_remark){
    160. System.out.println("===========updateActivityNById==============");
    161. int AC_id=Integer.parseInt(id);
    162. activityService.updateActivityNById(AC_remark,AC_id);
    163. return true;
    164. }
    165. //首页显示
    166. @RequestMapping("/show")
    167. public String show(HttpServletRequest request,Model model){
    168. System.out.println("===========show==============");
    169. List<Activity> activityList=activityService.findshow();
    170. request.getSession().setAttribute("activityList", activityList);
    171. return "redirect:../jsp/sonpage/index.jsp";
    172. }
    173. // 添加活动物品
    174. @RequestMapping("/addActivityGoods")
    175. @ResponseBody
    176. public boolean addActivityGoods(HttpServletRequest request, String strnums, String strids) {
    177. System.out.println("数量:" + strnums);
    178. System.out.println("ID:" + strids);
    179. String[] arrNums = strnums.split(",");
    180. String[] arrIds = strids.split(",");
    181. if (arrNums.length < 1 || arrIds.length < 1) {
    182. return false;
    183. } else {
    184. // 获取活动ID
    185. System.out.println(request.getSession().getAttribute("AC_id"));
    186. Integer AC_id = (Integer) request.getSession().getAttribute("AC_id");
    187. boolean result = activityService.addActivityGoods(AC_id, arrNums, arrIds);
    188. return result;
    189. }
    190. }
    191. }

     如果也想学习本系统,下面领取。回复:96ssm 

  • 相关阅读:
    ubuntu如何开启22端口支持ssh访问
    GS5MB-ASEMI贴片整流二极管GS5MB
    主干网络篇 | YOLOv8 更换主干网络之 VanillaNet |《华为方舟实验室最新成果》
    工资支付系统可行性研究报告
    新手教程!制作电子期刊的必备网站
    raw图片处理推荐 DxO PhotoLab 6 for Mac中文最新
    【微服务】SpringCloud-Nacos注册中心
    【Numpy总结】第三节:Numpy创建数组
    Java流与链表:探索java.util.stream与LinkedList的交汇点
    一文入门【NestJs】Providers
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125478849