基于javaweb的SSM社团管理系统(java+ssm+jsp+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

162323431807

172323431807

182323431807

192323431807

202323431807

基于javaweb的SSM社团管理系统(java+ssm+jsp+jquery+mysql)

项目介绍

本社团管理系统是根据大学社团管理的实际应用而开发的,采用JSP技术,JAVA编程语言,基于SSM框架,使用MySQL数据库,充分保证系统的安全性和稳定性,使得社团管理工作系统化、规范化、高效化。

该系统主要分为前台和后台两大功能模块,共包含两个角色:用户、管理员。 具体的系统功能如下: 1.前台功能 前台首页、新闻公告、规章制度、社团活动、活动报名、互动交流、用户注册、用户登陆、用户中心、修改密码、个人信息、我的社团活动、物资申请、退出登陆等功能。 2.后台功能 后台系统登陆、社团用户管理、管理员管理、网站公告管理、社团活动管理、申请类型管理、用户申请管理、活动报名管理、留言交流管理等功能。

环境需要

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.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7/8.0等版本均可;

技术栈

后台框架:Spring、SpringMVC、MyBatis UI界面:JSP、jQuery 数据库:MySQL

使用说明

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

  2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

用户管理控制层: 

@Controller

@RequestMapping(value = “user”)

public class UserController {

private final GoodService goodService;

private final OrderService orderService;

private final ReviewService reviewService;

private final UserService userService;

private final CollectService collectService;

@Autowired

public UserController(GoodService goodService, OrderService orderService,

ReviewService reviewService, UserService userService,

CollectService collectService) {

this.goodService = goodService;

this.orderService = orderService;

this.reviewService = reviewService;

this.userService = userService;

this.collectService = collectService;

@RequestMapping(value = “userProfile”, method = RequestMethod.GET)

public String getMyProfile(ModelMap model, HttpSession session) {

User user = (User) session.getAttribute(“user”);

if (user == null) {

return “redirect:/“;

List collects = collectService

.getCollectByUserId(user.getId());

for (Collect collect : collects) {

collect.setGood(goodService.getGoodById(collect.getGoodId()));

List goods = goodService.getGoodByUserId(user.getId());

List orders = orderService.getOrderByCustomerId(user.getId());

List reviews = reviewService.gerReviewByToUserId(user.getId());

List replies = reviewService.gerReplyByToUserId(user.getId());

List sellGoods = orderService.getOrderBySellerId(user.getId());

model.addAttribute(“collects”, collects);

model.addAttribute(“goods”, goods);

model.addAttribute(“orders”, orders);

model.addAttribute(“reviews”, reviews);

model.addAttribute(“replies”, replies);

model.addAttribute(“sellGoods”, sellGoods);

return “user/userProfile”;

@RequestMapping(value = “/review”, method = RequestMethod.GET)

public String getReviewInfo(@RequestParam(required = false) Integer goodId,

@RequestParam(required = false) Integer reviewId) {

System.out.println(“reviewId” + reviewId);

if (reviewId != null) {

System.out.println(“reviewId” + reviewId);

if (reviewService.updateReviewStatus(1, reviewId) == 1) {

return “redirect:/goods/goodInfo?goodId=” + goodId;

return “redirect:/user/userProfile”;

@RequestMapping(value = “/reply”, method = RequestMethod.GET)

public String getReplyInfo(

@RequestParam(required = false) Integer reviewId,

@RequestParam(required = false) Integer replyId) {

if (replyId != null) {

if (reviewService.updateReplyStatus(1, replyId) == 1) {

Integer goodId = reviewService.getGoodIdByReviewId(reviewId);

return “redirect:/goods/goodInfo?goodId=” + goodId;

return “redirect:/user/userProfile”;

@RequestMapping(value = “/userEdit”, method = RequestMethod.GET)

public String getUserEdit(ModelMap model,

@RequestParam(value = “userId”, required = false) Integer userId,

HttpSession session) {

User sessionUser = (User) session.getAttribute(“user”);

if (sessionUser == null) {

return “redirect:/“;

User user = userService.getUserById(userId);

List sellGoods = orderService.getOrderBySellerId(user.getId());

List reviews = reviewService.gerReviewByToUserId(user.getId());

List replies = reviewService.gerReplyByToUserId(user.getId());

model.addAttribute(“user”, user);

model.addAttribute(“sellGoods”, sellGoods);

model.addAttribute(“reviews”, reviews);

model.addAttribute(“replies”, replies);

return “user/userEdit”;

@RequestMapping(value = “/userEdit”, method = RequestMethod.POST)

public String postUserEdit(ModelMap model, @Valid User user,

HttpSession session,

@RequestParam(value = “photo”, required = false) MultipartFile photo)

throws IOException {

String status;

Boolean insertSuccess;

User sessionUser = (User) session.getAttribute(“user”);

user.setId(sessionUser.getId());

InfoCheck infoCheck = new InfoCheck();

if (!infoCheck.isMobile(user.getMobile())) {

status = “请输入正确的手机号!”;

} else if (!infoCheck.isEmail(user.getEmail())) {

status = “请输入正确的邮箱!”;

} else if (userService.getUserByMobile(user.getMobile()).getId() != user

.getId()) {

System.out.println(userService.getUserByMobile(user.getMobile())

.getId() + “ “ + user.getId());

status = “此手机号码已使用!”;

} else if (userService.getUserByEmail(user.getEmail()).getId() != user

.getId()) {

status = “此邮箱已使用!”;

} else {

if (!photo.isEmpty()) {

RandomString randomString = new RandomString();

FileCheck fileCheck = new FileCheck();

String filePath = “/statics/image/photos/“ + user.getId();

String pathRoot = fileCheck.checkGoodFolderExist(filePath);

String fileName = user.getId()

  • randomString.getRandomString(10);

String contentType = photo.getContentType();

String imageName = contentType.substring(contentType

.indexOf(“/“) + 1);

String name = fileName + “.” + imageName;

photo.transferTo(new File(pathRoot + name));

String photoUrl = filePath + “/“ + name;

user.setPhotoUrl(photoUrl);

} else {

String photoUrl = userService.getUserById(user.getId())

.getPhotoUrl();

user.setPhotoUrl(photoUrl);

insertSuccess = userService.updateUser(user);

if (insertSuccess) {

session.removeAttribute(“user”);

session.setAttribute(“user”, user);

return “redirect:/user/userProfile”;

} else {

status = “修改失败!”;

model.addAttribute(“user”, user);

model.addAttribute(“status”, status);

return “user/userEdit”;

System.out.println(user.getMobile());

System.out.println(status);

model.addAttribute(“user”, user);

model.addAttribute(“status”, status);

return “user/userEdit”;

@RequestMapping(value = “/password/edit”, method = RequestMethod.POST)

public ResponseEntity editPassword(@RequestBody Password password) {

User user = userService.getUserById(password.getUserId());

String oldPass = DigestUtils

.md5DigestAsHex((password.getOldPassword() + user.getCode())

.getBytes());

if (oldPass.equals(user.getPassword())) {

RandomString randomString = new RandomString();

String code = (randomString.getRandomString(5));

String md5Pass = DigestUtils.md5DigestAsHex((password

.getNewPassword() + code).getBytes());

Boolean success = userService.updatePassword(md5Pass, code,

password.getUserId());

if (success) {

return ResponseEntity.ok(true);

} else {

return ResponseEntity.ok(“密码修改失败!”);

} else {

return ResponseEntity.ok(“原密码输入不正确!”);

后台管理员管理控制层:

@Controller

@RequestMapping(value = “admin”)

public class AdminController {

private final UserService userService;

private final GoodService goodService;

private final TypeService typeService;

private final OrderService orderService;

@Autowired

public AdminController(UserService userService, GoodService goodService, TypeService typeService, OrderService orderService) {

this.userService = userService;

this.goodService = goodService;

this.typeService = typeService;

this.orderService = orderService;

@RequestMapping(value = “/adminLogin”, method = RequestMethod.GET)

public String getAdminLogin(){

return “admin/adminLogin”;

@RequestMapping(value = “/adminLogin”, method = RequestMethod.POST)

public String postAdminLogin(ModelMap model,

@RequestParam(value = “email”, required = false) String email,

@RequestParam(value = “password”, required = false) String password,

HttpSession session) {

User admin = userService.getUserByEmail(email);

String message;

if (admin != null){

String mdsPass = DigestUtils.md5DigestAsHex((password + admin.getCode()).getBytes());

// if (!mdsPass .equals(admin.getPassword())){

// message = “用户密码错误!”;

// }

if (!password .equals(admin.getPassword())){

message = “用户密码错误!”;

} else if (admin.getRoleId() != 101){

message = “用户没有权限访问!”;

} else {

session.setAttribute(“admin”,admin);

return “redirect:/admin/adminPage”;

} else {

message = “用户不存在!”;

model.addAttribute(“message”, message);

return “admin/adminLogin”;

@RequestMapping(value = “/adminLogout”, method = RequestMethod.GET)

public String adminLogout(@RequestParam(required = false, defaultValue = “false” )String adminLogout, HttpSession session){

if (adminLogout.equals(“true”)){

session.removeAttribute(“admin”);

// adminLogout = “false”;

return “redirect:/“;

@RequestMapping(value = “/adminPage”, method = RequestMethod.GET)

public String getAdminPage(ModelMap model,

HttpSession session){

User admin = (User) session.getAttribute(“admin”);

if (admin == null){

return “redirect:/admin/adminLogin”;

List goodList = goodService.getAllGoodList();

for (Good good : goodList) {

good.setGoodUser(userService.getUserById(good.getUserId()));

good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));

List userList = userService.getAllUser();

List firstTypeList = typeService.getAllFirstType();

List orderList = orderService.getOrderList();

model.addAttribute(“goodList”, goodList);

model.addAttribute(“userList”, userList);

model.addAttribute(“firstTypeList”, firstTypeList);

model.addAttribute(“orderList”, orderList);

return “admin/adminPage”;

@RequestMapping(value = “/user/update/status/{statusId}&{userId}”, method = RequestMethod.GET)

public ResponseEntity updateUserStatus(@PathVariable Integer statusId,

@PathVariable Integer userId){

Boolean success = userService.updateUserStatus(statusId, userId);

if (success){

List userList = userService.getAllUser();

return ResponseEntity.ok(userList);

return ResponseEntity.ok(success);

@RequestMapping(value = “/user/delete/{userId}”, method = RequestMethod.GET)

public ResponseEntity deleteUser(@PathVariable Integer userId){

Boolean success = userService.deleteUser(userId);

if (success){

List userList = userService.getAllUser();

return ResponseEntity.ok(userList);

return ResponseEntity.ok(success);

角色管理控制层:

@Controller

@RequestMapping(“role”)

public class RoleController {

@Autowired

private RoleService roleService;

@Autowired

private PermissionService permissionService;

@RequestMapping(“/list”)

@RequiresPermissions(“role:list”)

public String roleList() {

return “role/list”;

@ResponseBody

@RequestMapping(“/getRoles”)

@RequiresPermissions(“role:list”)

public PageInfo getAdmins(String keyWord,

@RequestParam(defaultValue = “1”) Integer pageNum,

@RequestParam(defaultValue = “10”) Integer pageSize) {

//开始分页,这里启动并设置页码,和每页结果数量后,后续结果会自动为分页后结果

PageHelper.startPage(pageNum, pageSize);

RoleExample roleExample = new RoleExample();

/**

  • StringUtils.isNotBlank 可以判断 “”/“ “/null 为 false

*/

if (StringUtils.isNotBlank(keyWord)) {

//角色条件

RoleExample.Criteria criteriaUserName = roleExample.createCriteria();

criteriaUserName.andRolenameLike(“%” + keyWord + “%”);

List roles = roleService.selectByExample(roleExample);

//获得分页对象

PageInfo pageInfo = new PageInfo<>(roles);

return pageInfo;

@ResponseBody

@RequestMapping(“/delete”)

@RequiresPermissions(“role:delete”)

public Map<String, String> delete(Long[] roleIds) {

HashMap<String, String> map = new HashMap<>();

if (roleIds.length == 1) {

int res = roleService.deleteByPrimaryKey(roleIds[0]);

if (res == 1) {

map.put(“status”, “true”);

map.put(“info”, “删除成功!”);

return map;

map.put(“status”, “false”);

map.put(“info”, “删除失败!角色已经不存在”);

return map;

//批量删除

int success = 0;

int total = roleIds.length;

for(Long roleId : roleIds) {

success += roleService.deleteByPrimaryKey(roleId);

map.put(“status”, “true”);

map.put(“info”, “成功删除选中 “ + total + “ 个角色中的 “ + success + “ 个角色”);

return map;

@RequestMapping(“/add”)

@RequiresPermissions(“role:insert”)

public String addRole() {

return “role/add”;

@ResponseBody

@RequestMapping(“/getTree”)

public List getTree(){

ArrayList permissions = (ArrayList) permissionService.selectByExample(new PermissionExample());

return permissions;

@ResponseBody

@RequestMapping(“/insert”)

@RequiresPermissions(“role:insert”)

public Boolean insert(Role role){

int res = roleService.insert(role);

if (res == 1)

return true;

return false;

@ResponseBody

@RequestMapping(“/checkRole”)

@RequiresPermissions(“role:list”)

public Boolean checkRole(String name, String curName) {

if (curName != null && name.equals(curName)) {

return true;

RoleExample roleExample = new RoleExample();

RoleExample.Criteria criteria = roleExample.createCriteria();

criteria.andRolenameEqualTo(name);

if (roleService.selectByExample(roleExample).size() != 0) {

return false;

return true;

@RequestMapping(“/edit”)

@RequiresPermissions(“role:update”)

public String edit(Model m, Long roleId) {

m.addAttribute(“role”, roleService.selectByPrimaryKey(roleId));

return “role/edit”;

@ResponseBody

@RequestMapping(“/update”)

@RequiresPermissions(“role:update”)

public Boolean update(Role role) {

int res = roleService.updateByPrimaryKeySelective(role);

if (res == 1) {

return true;

return false;


项目链接:
https://javayms.github.io?id=300023061907201bn
https://javayms.pages.dev?id=300023061907201bn