Author home page: Programming compass
About the author: a high-quality creator in the Java field, CSDN blogger expert, Nuggets invited author, many years of architect design experience, Tencent classroom resident lecturer
Main contents: Java project, graduation design, resume template, learning materials, interview question bank, technical assistance
Get the source code at the end of the article
Project No.: BS-XX-124
1, Project introduction
This project develops and implements a college community management system based on Springboot+Mybatis. The system includes three roles: administrator, head and member. Administrators mainly do some basic data management, such as user comparison management, news management, activity approval, community creation approval, etc. members can apply to join the relevant community, or apply for the community themselves. After the administrator passes the approval, he becomes the head, and can apply to carry out relevant activities. After logging in, the head can approve the application information for joining the club, and manage and view the relevant Club user information. Each role can view the published news information.
2, Environment introduction
Locale: Java: jdk1.8
Database: Mysql: mysql5.7 Redis cache database
Application server: Tomcat: tomcat8.5.31
Development tools: IDEA or eclipse
Background development technology: Springboot+Mybatis+SpringCache caching framework
Front end development technology: Jquery+AjAX+JSP
3, System display
Here are the relevant functional modules of the system:
Main operation functions after administrator login
Login registration interface
main interface
View club activity information
user management
Community management
Audit management
News management
After the captain logs in the system
Request creation activity
Manage members of the society
Review the application for joining the society
Student login
Apply to create a community
Apply to join the club
4, Core code display
package com.example.association2.controller; import com.example.association2.service.impl.ActivityServiceImpl; import com.example.association2.service.impl.AssociationMemberServiceImpl; import com.example.association2.utils.PicUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @Controller public class ActivityController { @Autowired private AssociationMemberServiceImpl associationMemberService; @Autowired private ActivityServiceImpl activityService; @GetMapping("/activities")//All active pages public String toActivities(HttpServletRequest httpServletRequest, @RequestParam(name = "key", required = true) int key) {//key determine the activity classification of clicks if (key == 0) {//All activities httpServletRequest.setAttribute("activityList", activityService.findAllActivityAndName()); httpServletRequest.setAttribute("key", key); } else if (key == 1) {//Cultural and sports activities httpServletRequest.setAttribute("activityList", activityService.findActivityAndNameByAssociationType(key)); httpServletRequest.setAttribute("key", key); } else if (key == 2) {//Academic activities httpServletRequest.setAttribute("activityList", activityService.findActivityAndNameByAssociationType(key)); httpServletRequest.setAttribute("key", key); } else if (key == 3) {//Public welfare activities httpServletRequest.setAttribute("activityList", activityService.findActivityAndNameByAssociationType(key)); httpServletRequest.setAttribute("key", key); } return "jsp/activity"; } @GetMapping("/activity")//Event details page public String act_detail(HttpServletRequest httpServletRequest, @RequestParam(name = "activityId", required = true) int activityId) { String imglocation[] = activityService.findActivityById(activityId).getPicture().split(";");//Cut the active picture path and semicolon and return to the correct picture path httpServletRequest.setAttribute("imgLocation", imglocation); int imgNum = imglocation.length; httpServletRequest.setAttribute("imgNum", imgNum);//Get the number of pictures httpServletRequest.setAttribute("activity", activityService.findActivityById(activityId)); return "jsp/act_detail";//Event details page } @GetMapping("/activityApply")//Application activity page public String toApply(HttpServletRequest httpServletRequest) { HttpSession session = httpServletRequest.getSession(); int userId = (int) session.getAttribute("userId"); httpServletRequest.setAttribute("associationId", associationMemberService.findassociationIdByUserId(userId)); return "jsp/act_apply"; } @PostMapping("/activity")//Submit activity request @ResponseBody public String addAct(@RequestParam String title, String description, int associationId, String startTime, String endTime, String location, float material, @RequestParam(name = "base64Data0", required = false) String base64Data0, @RequestParam(name = "base64Data1", required = false) String base64Data1, @RequestParam(name = "base64Data2", required = false) String base64Data2, HttpServletRequest httpServletRequest) { String picture1 = ""; String picture2 = ""; String picture3 = ""; String picture = ""; if (base64Data0 == null || "".equals(base64Data0)) { //Prompt error uploading pictures } else { picture1 = PicUtil.pictureUtil(base64Data0, httpServletRequest); picture = picture1; } if (base64Data1 == null || "".equals(base64Data1)) { //Prompt error uploading pictures } else { picture2 = PicUtil.pictureUtil(base64Data1, httpServletRequest); picture = picture + ";" + picture2; } if (base64Data2 == null || "".equals(base64Data2)) { //Prompt error uploading pictures } else { picture3 = PicUtil.pictureUtil(base64Data2, httpServletRequest); picture = picture + ";" + picture3; } activityService.addActivity(title, description, associationId, startTime, endTime, location, material, picture); //HttpSession session = httpServletRequest.getSession(); String result = "1"; return result; } @RequestMapping("/applyResult")//Activity application result page public String toresult() { return "jsp/apply_result"; } @RequestMapping("/actDelete") public ModelAndView actDelete(@RequestParam(name = "activityId", required = true) int activityId) { activityService.deleteActivity(activityId); int bar = 2; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:assManage"); return mv; } //View the requested activity picture @RequestMapping("/actPicture") public String act_picture(HttpServletRequest httpServletRequest, @RequestParam(name = "activityId", required = true) int activityId) { String imglocation[] = activityService.findActivityById(activityId).getPicture().split(";");//Cut the active picture path and semicolon and return to the correct picture path httpServletRequest.setAttribute("imgLocation", imglocation); int imgNum = imglocation.length; httpServletRequest.setAttribute("imgNum", imgNum);//Get the number of pictures httpServletRequest.setAttribute("activity", activityService.findActivityById(activityId)); return "jsp/manage/act_picture";//Event details page } @RequestMapping("/toActModify")//Activity modification page public String toAssModify(@RequestParam(name = "activityId", required = true) int activityId, HttpServletRequest httpServletRequest) { String imglocation[] = activityService.findActivityAndNameById(activityId).getPicture().split(";");//Cut the active picture path and semicolon and return to the correct picture path httpServletRequest.setAttribute("imgLocation", imglocation); int imgNum = imglocation.length; httpServletRequest.setAttribute("imgNum", imgNum);//Get the number of pictures httpServletRequest.setAttribute("act", activityService.findActivityAndNameById(activityId)); return "jsp/manage/act_modify"; } @RequestMapping("/actModify")//Submit activity modification @ResponseBody public String actModify( @RequestParam(name = "activityId", required = true)int activityId, int activityStatus, @RequestParam String title, String description, int associationId, String startTime, String endTime, String location, float material, @RequestParam(name = "base64Data0", required = false) String base64Data0, @RequestParam(name = "base64Data1", required = false) String base64Data1, @RequestParam(name = "base64Data2", required = false) String base64Data2, HttpServletRequest httpServletRequest) { String picture1 = ""; String picture2 = ""; String picture3 = ""; String picture = ""; if("data".equals(base64Data0.substring(0,4))){//Pictures uploaded locally if (base64Data0 == null || "".equals(base64Data0)) { //Prompt error uploading pictures } else { picture1 = PicUtil.pictureUtil(base64Data0, httpServletRequest); picture = picture1; } if (base64Data1 == null || "".equals(base64Data1)) { //Prompt error uploading pictures } else { picture2 = PicUtil.pictureUtil(base64Data1, httpServletRequest); picture = picture + ";" + picture2; } if (base64Data2 == null || "".equals(base64Data2)) { //Prompt error uploading pictures } else { picture3 = PicUtil.pictureUtil(base64Data2, httpServletRequest); picture = picture + ";" + picture3; } }else {//Is a picture read from the database if (base64Data0 == null || "".equals(base64Data0)) { //Prompt error uploading pictures } else { picture1 = base64Data0; picture = picture1; } if (base64Data1 == null || "".equals(base64Data1)) { //Prompt error uploading pictures } else { picture2 = base64Data1; picture = picture + ";" + picture2; } if (base64Data2 == null || "".equals(base64Data2)) { //Prompt error uploading pictures } else { picture3 =base64Data2; picture = picture + ";" + picture3; } } activityService.updateActivity(title,description,associationId,startTime,endTime,location,picture,material,activityStatus,activityId); String result = "1"; return result; } @RequestMapping("/toAddAct") public String toAddAss(int associationId,HttpServletRequest httpServletRequest) { httpServletRequest.setAttribute("associationId",associationId); return "jsp/manage/act_add"; } @PostMapping("/actAdd")//Activity add business logic @ResponseBody public String actAdd(@RequestParam String title, String description, int associationId, String startTime, String endTime, String location, float material, @RequestParam(name = "base64Data0", required = false) String base64Data0, @RequestParam(name = "base64Data1", required = false) String base64Data1, @RequestParam(name = "base64Data2", required = false) String base64Data2, HttpServletRequest httpServletRequest) { String picture1 = ""; String picture2 = ""; String picture3 = ""; String picture = ""; if (base64Data0 == null || "".equals(base64Data0)) { //Prompt error uploading pictures } else { picture1 = PicUtil.pictureUtil(base64Data0, httpServletRequest); picture = picture1; } if (base64Data1 == null || "".equals(base64Data1)) { //Prompt error uploading pictures } else { picture2 = PicUtil.pictureUtil(base64Data1, httpServletRequest); picture = picture + ";" + picture2; } if (base64Data2 == null || "".equals(base64Data2)) { //Prompt error uploading pictures } else { picture3 = PicUtil.pictureUtil(base64Data2, httpServletRequest); picture = picture + ";" + picture3; } activityService.addActivity(title, description, associationId, startTime, endTime, location, material, picture); //HttpSession session = httpServletRequest.getSession(); String result = "1"; return result; } @RequestMapping("/actApplyPass")//Activity application passed public ModelAndView actApplySuccess(@RequestParam(name = "activityId", required = true) int activityId) { activityService.applyPass(activityId); int bar = 1; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:applyManage"); return mv; } @RequestMapping("/actApplyRefuse")//Activity request rejected public ModelAndView actApplyRefuse(@RequestParam(name = "activityId", required = true) int activityId) { activityService.applyRefuse(activityId); int bar = 1; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:applyManage"); return mv; } }
package com.example.association2.controller; import com.example.association2.service.impl.ActivityServiceImpl; import com.example.association2.service.impl.AssociationMemberServiceImpl; import com.example.association2.service.impl.AssociationServiceImpl; import com.example.association2.service.impl.NewsServiceImpl; import com.example.association2.utils.PicUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.text.SimpleDateFormat; import java.util.Date; @Controller public class AssociationController { @Autowired private AssociationServiceImpl associationService; @Autowired private AssociationMemberServiceImpl associationMemberService; @Autowired private ActivityServiceImpl activityService; @Autowired private NewsServiceImpl newsService; @GetMapping("/associations")//All club pages public String index(HttpServletRequest httpServletRequest, @RequestParam(name = "type", required = false, defaultValue = "1") int type) { httpServletRequest.setAttribute("type", type); httpServletRequest.setAttribute("associationsList", associationService.findAssociationsByType(type)); httpServletRequest.setAttribute("lastActivity", activityService.findLastActivity()); return "jsp/mid/index"; } //Apply to create a community page @GetMapping("/associationApply") public String toApplyAss(HttpServletRequest httpServletRequest) { HttpSession session = httpServletRequest.getSession(); int userId = (int) session.getAttribute("userId"); httpServletRequest.setAttribute("userId", userId); return "jsp/ass_apply"; } //Submit the application for establishing a society @PostMapping("/associationApply") @ResponseBody public String addAss(String name, String description, int ownerId, int type, @RequestParam(name = "base64Data", required = true) String base64Data, HttpServletRequest httpServletRequest) { String logo = ""; String s[]; if (base64Data == null || "".equals(base64Data)) { //Prompt error uploading pictures } else { logo = PicUtil.pictureUtil(base64Data, httpServletRequest); logo = logo.substring(3, logo.length()); System.out.println(logo); } associationService.addAssociation(description, name, null, type, ownerId, logo); String result = "1"; return result; } //Club details page @GetMapping("/association") public String association( @RequestParam(name = "associationId", required = true) int associationId, @RequestParam(name = "bar", defaultValue = "1") int bar, HttpServletRequest httpServletRequest) { switch (bar) { case 1: //home page httpServletRequest.setAttribute("bar", 1); break; case 2: //Member list httpServletRequest.setAttribute("presidentDes", associationMemberService.findPresidentDesByAssid(associationId)); httpServletRequest.setAttribute("VicePresidentDes", associationMemberService.findVicePresidentDesByAssid(associationId)); httpServletRequest.setAttribute("MinisterDes", associationMemberService.findMinisterDesByAssid(associationId)); httpServletRequest.setAttribute("bar", 2); break; case 3: //Activity list httpServletRequest.setAttribute("activityList", activityService.findActivityByAssociationId(associationId)); httpServletRequest.setAttribute("signatureActivity",associationService.findSignatureActivityName(associationId)); httpServletRequest.setAttribute("bar", 3); break; } httpServletRequest.setAttribute("association", associationService.findAssociationById(associationId)); return "jsp/ass_detail"; } @RequestMapping("/assManage") public String toAssManage(@RequestParam(name = "bar", defaultValue = "1") int bar, HttpServletRequest httpServletRequest) { switch (bar) { case 1: httpServletRequest.setAttribute("assList", associationService.findAllAss()); httpServletRequest.setAttribute("bar", 1); break; case 2: httpServletRequest.setAttribute("actList", activityService.findAllActivityAndName()); httpServletRequest.setAttribute("bar", 2); break; } return "jsp/manage/ass_manage"; } @RequestMapping("/toAddAss") public String toAddAss() { return "jsp/manage/ass_add"; } @PostMapping("/assAdd") @ResponseBody public String AddAss(String name, String description, int ownerId, int type, @RequestParam(name = "base64Data", required = true) String base64Data, HttpServletRequest httpServletRequest) { String logo = ""; String s[]; if (base64Data == null || "".equals(base64Data)) { //Prompt error uploading pictures } else { logo = PicUtil.pictureUtil(base64Data, httpServletRequest); logo = logo.substring(3, logo.length()); System.out.println(logo); } String createTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); associationService.addAss(description, name, createTime, type, ownerId, logo); String result = "1"; return result; } @RequestMapping("/assDelete") public ModelAndView amDelete(@RequestParam(name = "associationId", required = true) int associationId) { associationService.deleteAss(associationId); int bar = 2; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:assManage"); return mv; } @RequestMapping("/toAssModify") public String toAssModify(@RequestParam(name = "associationId", required = true) int associationId, HttpServletRequest httpServletRequest) { httpServletRequest.setAttribute("ass", associationService.findAssociationById(associationId)); return "jsp/manage/ass_modify"; } @RequestMapping("/assModify") @ResponseBody public String assModify( @RequestParam(name = "associationId", required = true)int associationId, String name, String description, int ownerId, int type, Integer signatureActivity, @RequestParam(name = "base64Data", required = true) String base64Data, HttpServletRequest httpServletRequest) { String logo = ""; if("data".equals(base64Data.substring(0,4))) {//Pictures uploaded locally if (base64Data == null || "".equals(base64Data)) { //Prompt error uploading pictures } else { logo = PicUtil.pictureUtil(base64Data, httpServletRequest); logo = logo.substring(3, logo.length()); } }else { logo=base64Data.substring(22,base64Data.length()) ; } associationService.assModify(description,name,type,ownerId,logo,signatureActivity,associationId); associationMemberService.updatePresidentByAssociationId(associationId,ownerId); String result = "1"; return result; } @RequestMapping("/applyManage") public String toApplyManage(@RequestParam(name = "bar", defaultValue = "1") int bar, HttpServletRequest httpServletRequest) { switch (bar) { case 1: httpServletRequest.setAttribute("actApplyList", activityService.findAllActivityApply()); httpServletRequest.setAttribute("bar", 1); break; case 2: httpServletRequest.setAttribute("assApplyList", associationService.findAllAssociationsApply()); httpServletRequest.setAttribute("bar", 2); break; } return "jsp/manage/apply_manage"; } @RequestMapping("/assApplyPass") public ModelAndView assApplySuccess(@RequestParam(name = "associationId", required = true) int associationId) { String createTime = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); associationService.applyPass(createTime,associationId); associationMemberService.updatePresidentByAssociationId(associationId,associationService.findOwnerIdByAssociationId(associationId)); associationMemberService.updateUserByAssociationId(associationId,associationService.findOwnerIdByAssociationId(associationId)); int bar = 2; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:applyManage"); return mv; } @RequestMapping("/assApplyRefuse") public ModelAndView assApplyRefuse(@RequestParam(name = "associationId", required = true) int associationId) { associationService.applyRefuse(associationId); int bar = 2; ModelAndView mv = new ModelAndView(); mv.addObject("bar", bar); mv.setViewName("forward:applyManage"); return mv; } }
package com.example.association2.controller; import com.example.association2.enums.UserType; import com.example.association2.model.User; import com.example.association2.service.impl.ActivityServiceImpl; import com.example.association2.service.impl.AssociationServiceImpl; import com.example.association2.service.impl.NewsServiceImpl; import com.example.association2.service.impl.UserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; @Controller //@ResponseBody public class LoginController{ @Autowired private UserServiceImpl userService; @Autowired private NewsServiceImpl newsService; @Autowired private AssociationServiceImpl associationService; @Autowired private ActivityServiceImpl activityService; //Login interface @GetMapping("/") public String tologin(){ return "templates/login2"; } //Verify account password @PostMapping("/login") public String check(User user, HttpSession session, HttpServletRequest httpServletRequest, RedirectAttributes redirectAttributes) { User u1=userService.validUser(user.getUserId(), user.getPassword()); if(u1==null) {//Account passwords do not match httpServletRequest.setAttribute("msg","Wrong user name and password" ); return "templates/login2"; }else { session.setAttribute("userId", user.getUserId()); session.setAttribute("userType", userService.finUserTypeById(user.getUserId())); return "redirect:associations"; } } //Registration interface @GetMapping("/register") public String Register(Model model) { //model.addAttribute("user", new User()); return "templates/register"; } //Register @PostMapping("/register") public String Register(User user,HttpSession session, HttpServletRequest httpServletRequest, RedirectAttributes redirectAttributes) { User u2=userService.validUserAccount(user.getUserId()); if(u2!=null) {//Account already exists httpServletRequest.setAttribute("msg","User already exists" ); return "templates/register"; } else//Register userService.addUser(user.getUserId(), user.getPassword(), UserType.STUDENT.getUserType()); session.setAttribute("userId", user.getUserId()); session.setAttribute("userType", userService.finUserTypeById(user.getUserId())); return "redirect:associations"; } //cancellation @RequestMapping("/exit") public String exit(HttpSession session, HttpServletRequest httpServletRequest, Model model, @RequestParam(name = "type", required = false,defaultValue = "1") int type) { httpServletRequest.setAttribute("type",type); httpServletRequest.setAttribute("associationsList",associationService.findAssociationsByType(type)); model.addAttribute("signatureActivity","**Competition"); httpServletRequest.setAttribute("lastNews",newsService.findLastNews()); httpServletRequest.setAttribute("lastActivity",activityService.findLastActivity()); session.invalidate(); return "jsp/mid/index"; } }
5, Project summary
The basic functions of the whole project are complete, the business logic is clear, and there is a strict approval process, which is more suitable for graduation design or curriculum design.