——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Node.js≥14
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
❗没学过node.js的不要搞前后端分离项目
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot广场舞管理系统(java+springboot+vue+layui+elementui+mysql)
项目介绍
基于SpringBoot Vue的广场舞
角色:管理员、社团、用户
管理员:管理员登陆系统后,可以查看首页,个人中心,地区管理,舞团类型管理,社团管理,用户管理,成员信息管理,社团活动管理,交流中心,系统管理等功能等功能,还能对每个功能逐一进行相应操作,
社团:社团登录系统后可以查看首页、个人中心、成员信息管理、社团活动管理等功能并进行详细的操作;
用户:用户登录系统后可以查看首页、个人中心、成员信息管理、我的收藏管理等功能并进行详细的操作;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+ElementUI+Layui+HTML+CSS+JS
使用说明
项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
文档介绍(系统流程分析、操作流程、添加信息流程、删除信息流程、系统设计、系统设计主要功能、数据库设计、数据库设计规范、E-R图、数据表、系统实现、系统功能模块、管理员功能模块、社团功能模块、用户功能模块、系统测试、功能测试、可用性测试、维护测试、性能测试、测试结果分析):
首页展示页面:
社团列表信息展示:
社团详情信息展示:
后台系统社团管理列表:
——————————CodeStart——————————
管理员管理控制层:
@Controller
@RequestMapping(value = “/Manager”)
public class ManagerController {
@Autowired
private ManagerService managerService;
// 1根据id查询
@RequestMapping(“/findManagerById”)
public @ResponseBody Manager findManagerById(Model model,String ma_id){
System.out.println(“===============findManagerById=================”);
System.out.println(“MA_id:”+ma_id);
int id=Integer.parseInt(ma_id);
Manager manager=managerService.findManagerById(id);
System.out.println(“manager:”+manager.getMA_name());
model.addAttribute(“manager”, manager);
return manager;
// 2查询所有(分页显示)
@RequestMapping(“/findAllManager”)
public String findAllManager(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========findAllManager==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllManager(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“managerList”, managerList);
if (type.equals(“show1”)) {
return “jsp/sonpage/manager/managerson/findManager”;
if (type.equals(“show2”)) {
return “jsp/sonpage/manager/managerson/delManager”;
return “”;
// 3模糊查询
@RequestMapping(“/findLikeNameManager”)
public String findLikeNameManager(String ma_id, String ma_name,
Model model, String type) {
System.out.println(“===========模糊查询系统管理员信息============”);
//String ma_id=id;
//String ma_name=name;
System.out.println(“ma_id:” + ma_id);
System.out.println(“ma_name:” + ma_name);
System.out.println(“type:” + type);
Map map = new HashMap();
map.put(“ma_id”, ma_id);
map.put(“ma_name”, ma_name);
List
model.addAttribute(“managerList”, managerList);
if (type.equals(“show1”)) {
System.out.println(“===========从查询管理员信息页面===========”);
if ((“”).equals(ma_id) && (“”).equals(ma_name)) {
System.out.println(“1没有传值”);
System.out.println(“===========findAllManager==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllManager(0, 5);
model.addAttribute(“pagedResult”, pagedResult);
managerList = pagedResult.getDataList();
System.out.println(“当前页码:” + 1);
System.out.println(“总页数:” + 5);
System.out.println(pagedResult.getPages());
model.addAttribute(“managerList”, managerList);
return “jsp/sonpage/manager/managerson/findManager”;
System.out
.println(“===================跳回查询页面======================”);
return “jsp/sonpage/manager/managerson/findManager”;
if (type.equals(“show2”)) {
System.out.println(“===========从删除管理员信息页面===========”);
if ((“”).equals(ma_id) && (“”).equals(ma_name)) {
System.out.println(“2没有传值”);
System.out.println(“1没有传值”);
System.out.println(“===========findAllManager==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllManager(0, 5);
model.addAttribute(“pagedResult”, pagedResult);
managerList = pagedResult.getDataList();
System.out.println(“当前页码:” + 1);
System.out.println(“总页数:” + 5);
System.out.println(pagedResult.getPages());
model.addAttribute(“managerList”, managerList);
return “jsp/sonpage/manager/managerson/findManager”;
System.out
.println(“===================跳回删除页面======================”);
return “jsp/sonpage/manager/managerson/delManager”;
return “”;
// 4添加系统管理员
@RequestMapping(“/addManager”)
public String addManager(Manager manager) {
System.out.println(“=========添加系统管理员=========”);
System.out.println(“姓名:” + manager.getMA_name());
managerService.addManager(manager);
return “jsp/sonpage/manager/managerson/addManager”;
// 5删除系统管理员
@RequestMapping(“/delManager”)
public String delManager(String MA_id) {
System.out.println(“===========删除系统管理员===========”);
System.out.println(“MA_id:” + MA_id);
int id = Integer.parseInt(MA_id);
managerService.delManager(id);
return “forward:findAllManager.action?type=show2”;
// 6修改系统管理员
@RequestMapping(“/updateManager”)
public String updateManager(Manager manager) {
System.out.println(“=========修改系统管理员=========”);
System.out.println(“名字:”+manager.getMA_name());
managerService.updateManager(manager);
return “forward:findAllManager.action?type=show1”;
// 8批量删除管理员信息
@RequestMapping(“/delItem”)
public @ResponseBody boolean delItem(Model model, String ids) {
System.out.println(“==========批量删除已审批活动信息==========”);
System.out.println(“ids:” + ids);
// 用数组接收获取的选中集合
String[] str = ids.split(“_”);
for (int i = 0; i < str.length; i++) {
int id = Integer.parseInt(str[i]);
managerService.delManager(id);
System.out.println(“删除的方法执行了”);
// return “forward:findAllMember.action?type=show2”;
return true;
//9登陆(根据学号查找)
@RequestMapping(“/findManagerByNum”)
public @ResponseBody boolean findManagerByNum(HttpSession session,String num,String pwd){
System.out.println(“===============findManagerByNum=================”);
System.out.println(“num:”+num);
Subject subject = SecurityUtils.getSubject();
subject.getSession().setAttribute(“userType”, “Manager”);
// 保存至令牌环中,供MyRealm做验证
UsernamePasswordToken token = new UsernamePasswordToken(num, pwd);
// 保存用户类型供MyRealm获取
try {
// 跳转到MyRealm 做登录用户名和密码验证
subject.login(token);
session.setAttribute(“num”, num);
session.setAttribute(“role”, “2”);
System.out.println(“ManagerController–>>findManagerByNum–>>登录成功”);
return true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println(“ManagerController–>>findManagerByNum–>>登录失败”);
return false;
// Manager manager=managerService.findManagerByNum(num);
// System.out.println(“manager:”+manager.getMA_pwd());
// String MA_pwd=manager.getMA_pwd();
// session.setAttribute(“num”, num);
// session.setAttribute(“role”, “2”);
// if(MA_pwd.equals(pwd)){
// System.out.println(“返回值是真”);
// return true;
// }else{
// return false;
// }
// 登出
@RequestMapping(“/logout”)
public String logout(Model model) {
try {
Subject subject = SecurityUtils.getSubject();
System.out.println(“==========>>>>>>>>logout>>>>>>======”+subject.getPrincipal().toString());
subject.logout();
System.out.println(“****logout成功*****“);
} catch (Exception e) {
return “/jsp/sonpage/login”;
//9修改密码
@RequestMapping(“/updateManagerPwd”)
public @ResponseBody boolean updateManagerPwd(Model model,String num,String oldPwd,String newPwd){
System.out.println(“===============updateManagerPwd=================”);
System.out.println(“旧密码:”+oldPwd);
System.out.println(“新密码:”+newPwd);
String MA_pwd=newPwd;
String MA_num=num;
Manager manager=managerService.findManagerByNum(num);
String pwd=manager.getMA_pwd();
if(pwd.equals(oldPwd)){
managerService.updateManagerPwd(MA_pwd,MA_num);
return true;
}else{
return false;
社团信息详情控制层:
@Controller
@RequestMapping(value = “/Community”)
public class CommunityController {
@Autowired
private CommunityService communityService;
// 1根据id查询
@RequestMapping(“/findCommunityById”)
public @ResponseBody Community findCommunityById(Model model, String c_id) {
System.out.println(“===============findMemberById=================”);
System.out.println(“c_id:” + c_id);
int id = Integer.parseInt(c_id);
Community community = communityService.findCommunityById(id);
System.out.println(“community:” + community.getC_name());
// model.addAttribute(“member”, member);
return community;
// 2查询所有(分页查询)
@RequestMapping(“/findAllCommunity”)
public String findAllCommunity(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========findAllAdmin==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllCommunity(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“communityList”, communityList);
if (type.equals(“show1”)) {
System.out.println(“===========进入删除社团联系人页面===========”);
return “jsp/sonpage/community/communityson/delcommunity”;
if (type.equals(“show2”)) {
return “jsp/sonpage/community/communityson/updatecommunity”;
if (type.equals(“show4”)) {
return “jsp/sonpage/member/memberson/addMember”;
return “jsp/sonpage/community/communityson/findcommunity”;
@RequestMapping(“/findAllCu”)
public String findAllCu(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========findAllAdmin==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllCommunity(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“communityList”, communityList);
return “jsp/sonpage/community/communityson/findcommunity”;
// 3模糊查询
@RequestMapping(“/findLikeNameCommunity”)
public String findLikeNameCommunity(String c_name, String c_people, Model model,
String type) {
System.out.println(“===========模糊查询===========”);
//String a_id = id;
//String a_name = name;
System.out.println(“c_name:” + c_name);
System.out.println(“c_people:” + c_people);
Map map = new HashMap();
map.put(“c_name”, c_name);
map.put(“c_people”, c_people);
List
model.addAttribute(“communityList”, communityList);
// 修改联系人(页面)
if (type.equals(“show2”)) {
if ((“”).equals(c_name) && (“”).equals(c_people)) {
System.out.println(“2没有传值”);
return “forward:findAllCommunity.action?type”;
System.out.println(“=====================”);
return “forward:findAllCommunity.action?type”;
// 删除联系人(页面)
if (type.equals(“show1”)) {
if ((“”).equals(c_name) && (“”).equals(c_people)) {
System.out.println(“1没有传值”);
return “forward:findAllCommunity.action?type”;
System.out.println(“=========返回删除联系人页面============”);
return “forward:findAllCommunity.action?type”;
// 查询联系人(页面)
if (type.equals(“show”)) {
if ((“”).equals(c_name) && (“”).equals(c_people)) {
System.out.println(“没有传值”);
return “forward:findAllCommunity.action?type”;
System.out.println(“=========返回删除联系人页面============”);
return “jsp/sonpage/community/communityson/findcommunity”;
return “”;
// 4添加社团信息
@RequestMapping(“/addCommunity”)
public String addCommunity(Community community) {
System.out.println(“===========添加社团信息=============”);
communityService.addCommunity(community);
return “jsp/sonpage/community/communityson/addcommunity”;
// 5删除社团
@RequestMapping(“/delCommunity”)
public String delCommunity(String c_id) {
System.out.println(“========删除社团联系人========”);
System.out.println(“页面传值:” + c_id);
int id = Integer.parseInt(c_id);
communityService.delCommunity(id);
return “forward:findAllCommunity.action?type=show1”;
// 6修改社团联系人
@RequestMapping(“/updateCommunity”)
public String updateCommunity(Community community) {
System.out.println(“==========修改社团联系人==========”);
communityService.updateCommunity(community);
return “forward:findAllCommunity.action?type=show2”;
// 7批量删除社团联系人
@RequestMapping(“/delItem”)
public @ResponseBody boolean delItem(Model model, String ids) {
System.out.println(“==========批量删除已审批活动信息==========”);
System.out.println(“ids:” + ids);
// 用数组接收获取的选中集合
String[] str = ids.split(“_”);
for (int i = 0; i < str.length; i++) {
int id = Integer.parseInt(str[i]);
communityService.delCommunity(id);
System.out.println(“删除的方法执行了”);
// return “forward:findAllMember.action?type=show2”;
return true;
// 8登陆(根据学号查找)
@RequestMapping(“/findCommunityByNum”)
public @ResponseBody boolean findCommunityByNum(HttpSession session, String num,String pwd) {
System.out.println(“===============findAdminByNum=================”);
System.out.println(“num:” + num);
Subject subject = SecurityUtils.getSubject();
subject.getSession().setAttribute(“userType”, “Community”);
// 保存至令牌环中,供MyRealm做验证
UsernamePasswordToken token = new UsernamePasswordToken(num, pwd);
// 保存用户类型供MyRealm获取
try {
// 跳转到MyRealm 做登录用户名和密码验证
subject.login(token);
session.setAttribute(“num”, num);
session.setAttribute(“role”, “1”);
System.out.println(“CommunityController–>>findCommunityByNum–>>登录成功”);
return true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println(“CommunityController–>>findCommunityByNum–>>登录失败”);
return false;
// Community community=communityService.findCommunityByNum(num);
// System.out.println(“manager:” + community.getC_name());
// session.setAttribute(“num”, num);
// session.setAttribute(“role”, “2”);
// String a_pwd=community.getC_pwd();
// if(a_pwd.equals(pwd)){
// return true;
// }else{
// return false;
// }
//9修改密码
@RequestMapping(“/updateCommunityPwd”)
public @ResponseBody boolean updateCommunityPwd(Model model,String num,String oldPwd,String newPwd){
System.out.println(“===============updateCommunityPwd=================”);
System.out.println(“新密码:”+newPwd);
System.out.println(“num:”+num);
Community community=communityService.findCommunityByNum(num);
String pwd=community.getC_pwd();
if(pwd.equals(oldPwd)){
communityService.updateCommunityPwd(newPwd,num);
return true;
}else{
return false;
//查询所有
@RequestMapping(“/findAllCommunity1”)
public String findAllCommunity1(Model model, String type) {
System.out.println(“===========findAllAdmin==============”);
System.out.println(“传到type的值:” + type);
List
model.addAttribute(“communityList”, communityList);
if(type.equals(“show2”)){
return “jsp/sonpage/member/memberson/addMember”;
if(type.equals(“show1”)){
return “jsp/sonpage/manager/managerson/addManager”;
return “”;
// 查询所有协会(分页查询)
@RequestMapping(“/findCommunity”)
public String findCommunity(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========findAllAdmin==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findCommunity(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“communityList”, communityList);
return “jsp/sonpage/member/memberson/inCommunity”;
活动信息管理控制层:
@Controller
@RequestMapping(value = “/Activity”)
public class ActivityController {
@Autowired
private ActivityService activityService;
// 1根据id查询
@RequestMapping(“/findActivityById”)
public @ResponseBody Activity findActivityById(Model model, String AC_id) {
System.out.println(“用户传过来的id值:” + AC_id);
int id = Integer.parseInt(AC_id);
Activity activity = activityService.findActivityById(id);
System.out.println(“查到的值:”+activity.getAC_theme());
return activity;
// 2查询所有未审核活动信息(分页)
@RequestMapping(“/findAllActivity”)
public String findAllActivity(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========查询所有未审核活动信息==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllActivity(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“activityList”, activityList);
return “jsp/sonpage/activity/activityson/findActivity”;
// 3模糊查询未审核活动信息
@RequestMapping(“/findLikeNameActivity”)
public String findLikeNameActivity(String AC_id, String AC_theme,
Model model, String type) {
System.out.println(“===========模糊查询未审核活动信息============”);
System.out.println(“AC_id:” + AC_id);
System.out.println(“AC_theme:” + AC_theme);
//String AC_id=ac_id;
//String AC_theme=ac_theme;
Map map = new HashMap();
map.put(“AC_id”, AC_id);
map.put(“AC_theme”, AC_theme);
List
model.addAttribute(“activityList”, activityList);
if (type.equals(“show”)) {
if ((“”).equals(AC_id) && (“”).equals(AC_theme)) {
System.out.println(“========输入为空跳转查询所有的方法=========”);
return “forward:findAllActivity.action?type”;
return “jsp/sonpage/activity/activityson/findActivity”;
return “jsp/sonpage/activity/activityson/findActivity”;
// 4添加活动信息
@RequestMapping(“/addActivity”)
public String addActivity(HttpServletRequest request, Activity activity) {
System.out.println(“=========添加活动信息==========”);
activityService.addActivity(activity);
// 查询所有物品
List
request.getSession().setAttribute(“goodsList”, goodsList);
// 将刚添加的活动id保存,供添加活动物品时使用
request.getSession().setAttribute(“AC_id”, activity.getAC_id());
// 跳转到添加物品
return “redirect:../jsp/sonpage/activity/activityson/addActivityGoods.jsp”;
// 5删除活动信息
@RequestMapping(“/delActivity”)
public String delActivity(int AC_id) {
System.out.println(“============根据id删除活动信息============”);
System.out.println(“页面传值:” + AC_id);
activityService.delActivity(AC_id);
return “forward:findAllCActivity.action?type=show1”;
// 6修改活动信息
@RequestMapping(“/updateActivity”)
public String updateActivity(Activity activity){
System.out.println(“===========updateActivity==============”);
System.out.println(“活动编号:”+activity.getAC_theme());
activityService.updateActivity(activity);
return “forward:findAllCActivity.action?type=show”;
// 7查询所有已审核活动信息(分页)
@RequestMapping(“/findAllCActivity”)
public String findAllCActivity(Model model, String type, Integer pageNo,
Integer pageSize) {
System.out.println(“===========查询所有已审核活动信息==============”);
System.out.println(“传到type的值:” + type);
PagedResult
.findAllCActivity(pageNo, pageSize);
model.addAttribute(“pagedResult”, pagedResult);
List
System.out.println(“当前页码:” + pageNo);
System.out.println(“总页数:” + pageSize);
System.out.println(pagedResult.getPages());
model.addAttribute(“activityList”, activityList);
if (type.equals(“show1”)) {
return “jsp/sonpage/activity/activityson/delActivity”;
if (type.equals(“show”)) {
return “jsp/sonpage/activity/activityson/findCActivity”;
return “jsp/sonpage/activity/activityson/findCActivity”;
// 8模糊查询已审核活动信息
@RequestMapping(“/findLikeNameCActivity”)
public String findLikeNameCActivity(String AC_id, String AC_theme,
Model model, String type) {
System.out.println(“===========模糊查询已审核活动信息============”);
//String AC_id=id;
//String AC_theme=theme;
System.out.println(“AC_id:” + AC_id);
System.out.println(“AC_theme:” + AC_theme);
Map map = new HashMap();
map.put(“AC_id”, AC_id);
map.put(“AC_theme”, AC_theme);
List
.findLikeNameCActivity(map);
model.addAttribute(“activityList”, activityList);
if (type.equals(“show”)) {
if ((“”).equals(AC_id) && (“”).equals(AC_theme)) {
return “forward:findAllCActivity.action?type”;
return “jsp/sonpage/activity/activityson/findCActivity”;
if (type.equals(“show1”)) {
if ((“”).equals(AC_id) && (“”).equals(AC_theme)) {
return “forward:findAllCActivity.action?type”;
return “jsp/sonpage/activity/activityson/delActivity”;
return “”;
// 8批量删除已审批活动信息
@RequestMapping(“/delItem”)
public @ResponseBody boolean delItem(Model model, String ids) {
System.out.println(“==========批量删除已审批活动信息==========”);
System.out.println(“ids:” + ids);
// 用数组接收获取的选中集合
String[] str = ids.split(“_”);
for (int i = 0; i < str.length; i++) {
int id = Integer.parseInt(str[i]);
activityService.delActivity(id);
System.out.println(“删除的方法执行了”);
// return “forward:findAllMember.action?type=show2”;
return true;
//审批(同意)
@RequestMapping(“/updateActivityById”)
public @ResponseBody boolean updateActivityById(String id){
System.out.println(“===========updateActivityById==============”);
int AC_id=Integer.parseInt(id);
activityService.updateActivityById(AC_id);
return true;
//审批(不同意)
@RequestMapping(“/updateActivityNById”)
public @ResponseBody boolean updateActivityNById(String id,String AC_remark){
System.out.println(“===========updateActivityNById==============”);
int AC_id=Integer.parseInt(id);
activityService.updateActivityNById(AC_remark,AC_id);
return true;
//首页显示
@RequestMapping(“/show”)
public String show(HttpServletRequest request,Model model){
System.out.println(“===========show==============”);
List
request.getSession().setAttribute(“activityList”, activityList);
return “redirect:../jsp/sonpage/index.jsp”;
// 添加活动物品
@RequestMapping(“/addActivityGoods”)
@ResponseBody
public boolean addActivityGoods(HttpServletRequest request, String strnums, String strids) {
System.out.println(“数量:” + strnums);
System.out.println(“ID:” + strids);
String[] arrNums = strnums.split(“,”);
String[] arrIds = strids.split(“,”);
if (arrNums.length < 1 || arrIds.length < 1) {
return false;
} else {
// 获取活动ID
System.out.println(request.getSession().getAttribute(“AC_id”));
Integer AC_id = (Integer) request.getSession().getAttribute(“AC_id”);
boolean result = activityService.addActivityGoods(AC_id, arrNums, arrIds);
return result;
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=171524180701201hz
https://javayms.pages.dev?id=171524180701201hz