基于javaweb的SpringBoot健身管理系统(java+springboot+mysql+jsp+maven)

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

170023242402

180023242402

190023242402

200023242402

210023242402

230023242402

240023242402

250023242402

260023242402

270023242402

280023242402

290023242402

300023242402

310023242402

320023242402

340023242402

350023242402

基于javaweb的SpringBoot健身管理系统(java+springboot+mysql+jsp+maven)

主要技术:springmvc、 springboot 、jpa、mysql 、jQuery、layui、css、jsp shiro权限控制

主要功能截图如下:

用户登录、首页主要功能有:会员信息管理、会员到期续费管理、充值管理、教练课程管理、私教管理、器材管理、小商品售卖管理、信息统计、修改密码等主要功能:

会员管理、续卡、会员卡类型管理:

教练列表展示和添加修改删除教练信息:

会员私教课程管理:

添加私教信息:

健身课程列表展示查询和添加修改:

健身器材列表展示查询和添加修改:

物品遗失管理、归还、添加丢失物品、查询、取回丢失物品等:

健身房小商品售卖管理:列表数据展示、查询、进货、售卖 退货等操作

简单的树状图统计:

代码:

数据库表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.liujian.gymxmjpa.controller;


/**
* @Description: 教练管理Controller控制层
* xiaoc
*/
@Controller
@RequestMapping("/coach")
public class CoachController {
@Autowired
private CoachDao coachDao;
@Autowired
private PrivateCoachInfoDao privateCoachInfoDao;
@Autowired
private CoachDaoImpl coachDaoImpl;

/**
* @Description: 教练管理-进入教练列表界面
* xiaoc
*/
@RequestMapping("/jin3")
public String jin3(){

return "WEB-INF/jsp/coach";
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
    /**
* @Description: 会员私教详情-查询所有会员私教信息
* xiaoc
*/
@RequestMapping("/ddaa")
@ResponseBody
public List<PrivateCoachInfo> query(){
List<PrivateCoachInfo> list=privateCoachInfoDao.findAll();
// for (PrivateCoachInfo li:list){
// System.out.println(li.getMember().getMemberName());
// }
return privateCoachInfoDao.findAll();
}

/**
* @Description: 会员私教详情-查询教练,课程,会员信息
* xiaoc
*/
@ModelAttribute("a")
public Model cha(Model model){
model.addAttribute("coach",coachDao.findAll());
model.addAttribute("subject",subjectDao.findAll());
model.addAttribute("menber",menberDao.findAll());
return model;
}

/**
* @Description: 会员私教详情-根据教练id,课程id,会员id分页查询
* xiaoc
*/
@RequestMapping("/query")
@ResponseBody
public Map<String,Object> query2(Model model,Integer coachid, Integer subjectid, Integer memberid, int pageSize, int pageNumber){
Map<String,Object> map1=new HashMap<String,Object>();
map1.put("coachid",coachid);
map1.put("subjectid",subjectid);
map1.put("memberid",memberid);
map1.put("qi",(pageNumber-1)*pageSize);
map1.put("shi",pageSize);
return privateCoachInfoDaoImpl.query(map1);
}

/**
* @Description: 会员私教详情-根据id查询所有会员私教信息
* xiaoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 */
@RequestMapping("/jin3")
public String jin3(){
return "WEB-INF/jsp/HYMemberChongZhi";
}

/**
* @Description: 会员管理-进入会员余额充值界面
* xiaoc
*/
@RequestMapping("/jin11")
public String jin11(){
return "WEB-INF/jsp/HYMemberyeChongZhi";
}

/**
* @Description: 会员管理-进入会员列表界面
* xiaoc
*/
@RequestMapping("/jin")
public String jin(){

return "WEB-INF/jsp/HYMember";
}

/**
* @Description: 教练管理-进入会员私教详情界面
* xiaoc
*/
@RequestMapping("/jin4")
public String jin4(){

return "WEB-INF/jsp/privatecoachinfo";
}

/**
* @Description: 会员列表-分页查询
* xiaoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
* @Description: 管理员登录验证方法
* xiaoc
*/
@RequestMapping("/dl/yz")
public String login(String username, String password,HttpSession httpSession,Model model){


Subject subject= SecurityUtils.getSubject();
UsernamePasswordToken userToken=new UsernamePasswordToken(username,/*DigestUtils.md5Hex*/(password));
try{
subject.login(userToken);
Adminuser a= adminuserDao.findByAdminNameAndAdminPassword(username,/*DigestUtils.md5Hex*/(password));
httpSession.setAttribute("user",a);
return "WEB-INF/jsp/index";
}catch (UnknownAccountException e){
model.addAttribute("msg","用户名或密码错误,请重新输入");
return "login";
}

/*Adminuser a= adminuserDao.findByAdminNameAndAdminmima(username,password);
if(a!=null){
httpSession.setAttribute("user",a);
return "WEB-INF/jsp/index" ;
}
model.addAttribute("mag","账号或密码错误");
return "login";*/
}

/**
* @Description: 退出登录后清楚session
* xiaoc
*/
@RequestMapping("/logout")
public String logout(){
Subject subject = SecurityUtils.getSubject();
subject.logout();
return "redirect:/login";

}

/**
* @Description: 跳转到修改密码界面
* xiaoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  */
@RequestMapping("/jin2")
public String jin2(){
return "WEB-INF/jsp/ShouRuTongji";
}


/**
* @Description: 会员余额充值
* xiaoc
*/
@RequestMapping("/xin")
@ResponseBody
public Map<String,Object> cye(Chongzhi chongzhi){

//充值money
Member member=menberDao.findById(chongzhi.getMember().getMemberId()).get();
member.setMemberbalance(member.getMemberbalance()+chongzhi.getMoney());
menberDao.save(member);

//添加充值记录
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.sql.Timestamp dat=java.sql.Timestamp.valueOf(df.format(new Date()));
chongzhi.setDate(dat);
chongzhi.setCzStatic(1L);
chongzhiDao.save(chongzhi);
Map<String,Object> map1=new HashMap<String,Object>();
map1.put("hyname",null);
map1.put("ktype",0);
map1.put("qi",1);
map1.put("shi",5);
return menberDaoImpl.query(map1);
}

/**
* @Description: 续费续卡记录-根据所选日期分页查询数据记录
* xiaoc
*/
@RequestMapping("/query")
@ResponseBody
public Map<String,Object> query(int pageSize,int pageNumber,final String xdate,final String ddate) throws ParseException{
Map<String,Object> map = new HashMap();
if(xdate.equals("") || ddate.equals("")){
return map;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
final Date startTime = sdf.parse(xdate);
final Date endTime = sdf.parse(ddate);
Pageable pageable=new PageRequest(pageNumber-1,pageSize);
Specification<Chongzhi> specification=new Specification<Chongzhi>() {
@Override
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
    if(privateCoachInfoList !=null && privateCoachInfoList.size() > 0){
//如果有,先循环删除
for(PrivateCoachInfo privateCoachInfo : privateCoachInfoList){
if(subId == privateCoachInfo.getSubject().getSubId()){
privateCoachInfoDao.delete(privateCoachInfo);
}
}
}
subjectDao.deleteById(subId);
Map<String,Object> map1=new HashMap<String,Object>();
map1.put("subname",subname);
map1.put("qi",(pageNumber-1)*pageSize);
map1.put("shi",pageSize);
return subjectDaoImpl.query(map1);
}

/**
* @Description: 课程管理-添加课程
* xiaoc
*/
@RequestMapping("/add")
@ResponseBody
public void save(Subject subject){
subjectDao.save(subject);
}

/**
* @Description: 课程管理-根据课程id查询课程信息
* xiaoc
*/
@RequestMapping("/cha")
@ResponseBody
public Optional<Subject> one(long subId){
return subjectDao.findById(subId);
}

/**
* @Description: 课程管理-修改课程信息
* xiaoc
*/
@RequestMapping("/upd")
@ResponseBody
public void upd(Subject subject){
subjectDao.save(subject);


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