——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于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
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
——————————CodeStart——————————
用户管理控制层:
@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
.getCollectByUserId(user.getId());
for (Collect collect : collects) {
collect.setGood(goodService.getGoodById(collect.getGoodId()));
List
List
List
List
List
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
List
List
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
for (Good good : goodList) {
good.setGoodUser(userService.getUserById(good.getUserId()));
good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));
List
List
List
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
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
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
@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
//获得分页对象
PageInfo
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
ArrayList
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;
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=300023061907201bn
https://javayms.pages.dev?id=300023061907201bn