随着健康生活的理念越来越深入人们的心中,为了适应这种人民日益增长的健身与自我保健的需求,各种性质的健身俱乐部如雨后春笋般应运而生。经调查,我国当前健身房拥有超过数万家,规模有大也有小,相对比较出名有中体倍力,青鸟等健身房,他们拥有学习国外的先进健身房管理经验以及利用Inter网等先进计算机技术,使得自己的业务由单一的通过健身房平台面向广大客户上升到了客户足不出户就可以享受到专业新闻的指导和科学健身知识,方便了客户的利益也在同行业中成为了佼佼者,他们的成功不仅归功于科学管理还要归功于计算机网络带来的便利,这是利用计算机软件及网络技术扩大其业务成功的典范,但是国内健身房应用这种模式的运营的又有多少呢?其实并不多,大多健身房的管理模式和业务交流还停留在传统的,低效率的用人管理的阶段,人工管理模式已经越来越不能适应现代管理的需求,一方面由于每天的客户量特别大,手工方式难免会在业务及财务上出现漏洞,给客户带来了不必要的麻烦,同时也给健身房的经营带来了种种弊端;另一方面管理者也经常因为会员管理和财务管理而“头痛”,随着健身房的规模不断扩大,以上问题会越来越突出,必将会成为健身房发展的绊脚石。无论规模大小,各个健身房为了更好的生存和发展就必须在管理模式上引进先进的管理软件系统,从而在会员管理,健身资讯管理,场地管理,课程管理,以及器械管理等方面改善和提高了手工方式所不能达到的效果和价值。 目前健身房的计算机管理水平还是很低,我也曾实地走访过几家健身房,他们的计算机应用是处在刚开始使用阶段,但是健身房采用电脑管理业务,财务,活动记录等诸多环节已经成为健身房的必然趋势和必不可少的工具。 |
毕 业 论 文 开 题 报 告
2.本课题的文献综述(不少于1500字) |
一.国内健身行业巨头——青鸟健身 2000年起初,我国科技和信息发展尚不够全面,我国早期兴起的健身行业巨头——青鸟,在刚开始发展的阶段并没有充分意识到利用计算机来提升管理水平的重要性,后来吃了大亏,在不断反思和创新之后,目前全国有16家分店,单店的规模很大,每一个单店投资规模超过500万元。这兴衰历程要从青鸟健身成立于2000年初说起。 青鸟是中国最早采用连锁商业化经营的健身俱乐部,应该说像青鸟这样的定位高端的健身房是有野心和实力结束健身行业最初的“乱世”,然后成为稳坐一方的巨头,再谋求全国霸业。可是青鸟发现自身被巨头的潮流裹挟着身不由己,举步维艰。在北京,上海等城市繁华商圈的三公里之内,通常都有5~6家健身中心。这样密集的分布让各大健身房只能“贴身近战”,几乎没有闪躲腾挪的余地。 价格低,服务内容简单的低端健身俱乐部分流走对价格更为敏感的低端客户,要留住高端客户对青鸟等高端健身房仍不时易事。青鸟健身的会员数从兴盛时的6万人一度下降到去年年底的2万人。青鸟也知道,健身房硬件设施基本趋于一致的时候,竞争的关键就在于管理水平的提升,以及为企业建立标准化流程。 据文献了解,目前国内健身行业有两大急需改造的现状。(1)国内盈利模式:在国外成熟地区,健身会所的收入中只有50%来自会员费,另外一半收入则来自会员另外聘请的教练和购买相关产品。而在中国,目前健身馆90%的收入都是卖卡所得,这大大限制了健身房的发展。(2)国内健身行业标准:所谓预付费制度,就是先预存费用在享受服务。为了防止企业收了预付费后跑路,在美国等发达国家,会员预付款管理非常严格,有严格的准入门槛,专门银行账户进行托管,除此之外,还需要有健全的保证金制度,确保商家撤离时能有一笔资金补偿消费者。可是在中国,消费性预付款的管理还没有监管规定,所以消费者很难保障自己的权利。一个初开业的俱乐部店面规模,器械方面都没有行业标准。健身行业主管机构为国家体育局,它并不是一个 商业部门的主管机构,所以对种种乱象,想整治也力有不逮。 二.技术方案研究 Spring Boot框架采用“约定大于配置”的原则体现出两大优点:(1)Spring框架整合:它整合了许多优秀的框架或组件,官方提供了很多starter pom将这些框架和组件的依赖库进行了整合,当需要某个框架或组件时,只要选取对应的pom就能完成配置,也不用关系版本问题。(2)自动配置Spring :以往搭建一个基于Spring的Web应用需要完成很多配置工作,而用Spring boot后,一切变得简便快速。它采用基于java代码方式和注解方式,以代替传统的xml配置,按照“约定和习惯”原则在Spring容器中进行自动配置。如果有特定要求,可以在后缀为.yml或.properties文件中作相应设置。 Ajax开发技术主要功能是实现客户端与服务器之间消息的异步交互,其实现的原理是基于Ajax技术,使客户端的JavaScript脚本代码能够通过XMLHttp Request对象与服务器直接通信。浏览器的内容显示不需要再从服务 |
【580】基于springboot健身俱乐部管理系统含支付宝沙箱支付源码和论文开题报告任务书
package cn.dgut.jsf.controller;
import cn.dgut.jsf.bean.*;
import cn.dgut.jsf.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
private String sb;
//查询所有课程(前台)
@ResponseBody
@RequestMapping("/myMp4Form")
public List<ClassHour> myMp4Form(){
List<ClassHour> chs=adminService.findMp4();
return chs;
}
// 查询所有课程信息(系统管理员)
@RequestMapping("/findAllClassHour")
public String findAllClassHour(Model model) {
List<ClassHour> chs = adminService.findAllClassHour();
System.out.println("课程");
//System.out.println("课程视频名::"+chs.get(0).getCh_name());
model.addAttribute("ch", chs);
sb="classHour";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除课程
@ResponseBody
@RequestMapping("/deleteClassHour")
public int deleteClassHour(int ch_id) {
int i;
try {
i = adminService.deleteClassHour(ch_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到增加课程页面
@RequestMapping("/toAddClassHour")
public String toAddClassHour(Model model) {
sb="classHour-add";
model.addAttribute("sb", sb);
return "show";
}
// 增加课程
@RequestMapping("/addClassHour")
public String addClassHour(Model model ,ClassHour classHour) {
try {
String url=classHour.getCh_url();
System.out.println("URL公共:"+url);
//String ext=url.substring(url.indexOf("."),url.length());
//System.out.println("课程后缀名:"+ext);
//String[] str =url.split("/");
//classHour.setCh_name(str[str.length-1]);
//System.out.println("课程视频名:"+classHour.getCh_name());
int i = adminService.addClassHour(classHour);
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("msg", "课程添加失败");
toAddClassHour(model);
}
return "redirect:/admin/findAllClassHour";
}
// 跳转到增加课程页面
@RequestMapping("/toUpdateClassHour")
public String toUpdateClassHour(Model model,int ch_id) {
ClassHour chs = adminService.findChById(ch_id);
System.out.println("ch_url:"+chs.getCh_url()+"ch_name:"+chs.getCh_name());
/*
String[] str=chs.getCh_url().split("/");
if(str[str.length-1]!=chs.getCh_name()){
}
*/
model.addAttribute("ch", chs);
sb="classHour-edit";
model.addAttribute("sb", sb);
return "show";
}
// 增加课程页面
@RequestMapping("/updateClassHour")
public String updateClassHour(Model model,ClassHour classHour) {
try{
String url=classHour.getCh_url();
System.out.println("URL公共:"+url);
int i=0;
/*
List<String> str=adminService.findAllUrl();
while(i<str.size()){
//String[] strstr= str.get(i).split("/");
if(str.get(i)==url){
int maxno=adminService.findMaxchid();
String[] strstr= url.split("/");
str.get(i).replace(strstr[strstr.length-1],(maxno+1)+strstr[strstr.length-1]);
}
i++;
}*/
i=0;
i = adminService.updateClassHour(classHour);
if (i == 1) {
model.addAttribute("msg", "修改成功!");
} else
model.addAttribute("msg", "修改失败!");
} catch (Exception e) {
e.printStackTrace();
}
return "msg";
}
// 查询所有会员卡信息(系统管理员)
@RequestMapping("/findAllMemberCard")
public String findAllMemberCard(Model model) {
List<MemberCard> mcs = adminService.findAllMemberCard();
System.out.println("会员卡");
model.addAttribute("mc", mcs);
sb="memberCard";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除课程
@ResponseBody
@RequestMapping("/deleteMemberCard")
public int deleteMemberCard(int mc_id) {
int i;
try {
i = adminService.deleteMemberCard(mc_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到增加课程页面
@RequestMapping("/toAddMemberCard")
public String toAddMemberCard(Model model) {
sb="memberCard-add";
model.addAttribute("sb", sb);
return "show";
}
// 增加课程
@RequestMapping("/addMemberCard")
public String addMemberCard(Model model ,MemberCard memberCard) {
try {
int i = adminService.addMemberCard(memberCard);
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("msg", "会员卡添加失败");
toAddMemberCard(model);
}
return "redirect:/admin/findAllMemberCard";
}
// 跳转到增加课程页面
@RequestMapping("/toUpdateMemberCard")
public String toUpdateMemberCard(Model model,int mc_id) {
System.out.println("修改的会员卡id:"+mc_id);
MemberCard mcs = adminService.findMcById(mc_id);
model.addAttribute("mc", mcs);
sb="memberCard-edit";
model.addAttribute("sb", sb);
return "show";
}
// 增加课程页面
@RequestMapping("/updateMemberCard")
public String updateMemberCard(Model model,MemberCard memberCard) {
try{
int i = adminService.updateMemberCard(memberCard);
if (i == 1) {
model.addAttribute("msg", "修改成功!");
} else
model.addAttribute("msg", "修改失败!");
} catch (Exception e) {
e.printStackTrace();
}
return "msg";
}
// 查询所有场地设备信息(系统管理员)
@RequestMapping("/findAllEqu")
public String findAllEqu(Model model) {
List<FacilityEquipment> equs = adminService.findAllEqu();
System.out.println("会员卡");
model.addAttribute("equ", equs);
sb="equ";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除场地设备
@ResponseBody
@RequestMapping("/deleteEqu")
public int deleteEqu(int equ_id) {
int i;
try {
i = adminService.deleteEqu(equ_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到增加场地设备页面
@RequestMapping("/toAddEqu")
public String toAddEqu(Model model) {
sb="equ-add";
model.addAttribute("sb", sb);
return "show";
}
// 增加场地设备
@RequestMapping("/addEqu")
public String addEqu(Model model ,FacilityEquipment equ) {
try {
int i = adminService.addEqu(equ);
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("msg", "场地设备添加失败");
toAddEqu(model);
}
return "redirect:/admin/findAllEqu";
}
// 跳转到修改场地设备页面
@RequestMapping("/toUpdateEqu")
public String toUpdateEqu(Model model,int equ_id) {
System.out.println("修改的会员卡id:"+equ_id);
FacilityEquipment equs = adminService.findEquById(equ_id);
model.addAttribute("equ", equs);
sb="equ-edit";
model.addAttribute("sb", sb);
return "show";
}
// 修改场地设备页面
@RequestMapping("/updateEqu")
public String updateEqu(Model model,FacilityEquipment equ) {
try{
int i = adminService.updateEqu(equ);
if (i == 1) {
model.addAttribute("msg", "修改成功!");
} else
model.addAttribute("msg", "修改失败!");
} catch (Exception e) {
e.printStackTrace();
}
return "msg";
}
// 根据id展示教练内容
@RequestMapping("/toShowCoa")
public String toShowCh(Model model,Coach coa) {
System.out.println("教练:"+coa.getCoach_id());
coa = adminService.findCoaById(coa.getCoach_id());
model.addAttribute("coa", coa);
sb="coa";
model.addAttribute("sb", sb);
return "show-byid";
}
// 教练时间安排1
@RequestMapping("/coachTime")
public String coachTime(Model model,int coach_id) {
System.out.println("安排时间的教练id:"+coach_id);
Coach coachs = adminService.findCoachById(coach_id);
model.addAttribute("coa", coachs);
sb="coa-time";
model.addAttribute("sb", sb);
return "show";
}
// 跳转msg
@RequestMapping("/toMsg")
public String toMsg(Model model) {
return "msg";
}
// 查询所有教练信息(系统管理员)
@RequestMapping("/findAllCoach")
public String findAllCoach(Model model) {
List<Coach> coachs = adminService.findAllCoach();
List<CoachAppoint> results=adminService.findcoacatime();
//List<Coach> nullchCoachs=adminService.findNullchCoach();
System.out.println("教练");
model.addAttribute("coa", coachs);
model.addAttribute("result", results);
//model.addAttribute("nullchcoa", nullchCoachs);
sb="coach";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除教练
@ResponseBody
@RequestMapping("/deleteCoach")
public int deleteCoach(int coach_id) {
int i;
try {
i = adminService.deleteCoach(coach_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到增加教练页面
@RequestMapping("/toAddCoach")
public String toAddCoach(Model model) {
List<ClassHour> chs=adminService.findcAllCh();
model.addAttribute("ch", chs);
sb="coa-add";
model.addAttribute("sb", sb);
return "show";
}
// 增加教练
@RequestMapping("/addCoach")
public String addCoach(Model model ,Coach coach) {
try {
int i = adminService.addCoach(coach);
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("msg", "教练添加失败");
toAddCoach(model);
}
return "redirect:/admin/findAllCoach";
}
// 跳转到修改教练页面
@RequestMapping("/toUpdateCoach")
public String toUpdateCoach(Model model,int coach_id) {
System.out.println("修改的教练id:"+coach_id);
Coach coachs = adminService.findCoachById(coach_id);
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
System.out.println(df.format(new Date()));// new Date()为获取当前系统时间
/*
if(adminService.findCa(coach_id,df.format(new Date()))==true){
model.addAttribute("msg","提示:该教练未来已有人预约,不能修改所授课程!");
}
else {*/
model.addAttribute("msg",1);
List<ClassHour> chs = adminService.findcAllCh();
model.addAttribute("ch", chs);
model.addAttribute("coa", coachs);
sb="coa-edit";
model.addAttribute("sb", sb);
return "show";
}
//通过id发现课程
@ResponseBody
@RequestMapping("/findChById")
public ClassHour findChById(Model model,int ch_id) {
ClassHour chs=adminService.findChById(ch_id);
model.addAttribute("msg",2);
return chs;
}
// 修改教练页面
@RequestMapping("/updateCoach")
public String updateCoach(Model model, Coach coach) {
try{
int i=0;
i= adminService.updateCoach(coach);
if (i == 1) {
model.addAttribute("msg", "修改成功!");
} else
model.addAttribute("msg", "修改失败!");
} catch (Exception e) {
e.printStackTrace();
}
return "msg";
}
// 修改教练状态页面
@ResponseBody
@RequestMapping("/updateCoachState")
public int updateCoachState(Coach coach) {
int i;
try{
System.out.println(coach.getCoach_state()+coach.getCoach_id());
i= adminService.updateCoachState(coach);
} catch (Exception e) {
e.printStackTrace();
i=0;
}
return i;
}
// 查询所有会员信息(系统管理员)
@RequestMapping("/findAllMember")
public String findAllMember(Model model) {
List<Member> members;
members = adminService.findAllMember();
System.out.println("会员");
model.addAttribute("m", members);
sb="member";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除会员
@ResponseBody
@RequestMapping("/deleteMember")
public int deleteMember(int member_id) {
int i;
try {
i = adminService.deleteMember(member_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到修改会员页面
@RequestMapping("/toUpdateMember")
public String toUpdateMember(Model model,int member_id) {
System.out.println("修改的会员id:"+member_id);
Member members = adminService.findMemberById(member_id);
List<ClassHour> ch =members.getClassHourList();
if(ch.equals(null)){
model.addAttribute("msg","没有私教");
}else{
model.addAttribute("msg","有私教");
}
model.addAttribute("ch", ch);
model.addAttribute("m", members);
sb="m-edit";
model.addAttribute("sb", sb);
return "show";
}
//日期相减
public static long getDaySub(String beginDateStr,String endDateStr) {
long day = 0;
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date beginDate;
Date endDate;
try {
beginDate = format.parse(beginDateStr);
endDate = format.parse(endDateStr);
day = (endDate.getTime()-beginDate.getTime())/(24*60*60*1000);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("day:"+day);
return day;
}
// 修改会员页面
@RequestMapping("/updateMember")
public String updateMember(Model model, Member member) {
try{
int i=0;
// MemberCard mc=member.getMemberCard();
long days = getDaySub(member.getMember_mcStart(), member.getMember_mcEnd());
MemberCard mcids=adminService.findMcId(days);
member.getMemberCard().setMc_id(mcids.getMc_id());
/*if (days < 90) member.getMemberCard().setMc_id(1);//设置会员卡id为1
if (days >= 90) member.getMemberCard().setMc_id(2);//设置会员卡id为2
if (days >= 365)member.getMemberCard().setMc_id(3);//设置会员卡id为3*/
i= adminService.updateMember(member);
if (i == 1) {
model.addAttribute("msg", "修改成功!");
} else
model.addAttribute("msg", "修改失败!");
} catch (Exception e) {
e.printStackTrace();
}
return "msg";
}
// 根据id展示会员卡内容
@RequestMapping("/toShowMc")
public String toShowMc(Model model,int mc_id) {
MemberCard mcs = adminService.findMcById(mc_id);
model.addAttribute("mc", mcs);
sb="mc";
model.addAttribute("sb", sb);
return "show-byid";
}
// 根据id展示私教内容
@RequestMapping("/toShowCh")
public String toShowCh(Model model,MemberClassHour mch) {
ClassHour chs = adminService.findChById(mch.getCh_id());
System.out.println("会员:"+mch.getMember_id()+"课时:"+mch.getCh_id());
if(mch.getMember_id()==0){
model.addAttribute("msg", "会员才可显示");
}
mch=adminService.findMchById(mch);
model.addAttribute("ch", chs);
model.addAttribute("mch", mch);
sb="ch";
model.addAttribute("sb", sb);
return "show-byid";
}
// 查询指定账户的信息跳转到修改密码页面
@RequestMapping("/toUpdatePassword")
public String toUpdatePassword(Model model) {
sb="pwd";
model.addAttribute("sb", sb);
return "welcome";
}
// 管理员更改个人密码
@RequestMapping("/updatePassword")
@ResponseBody
public int updatePassword(Model model, User user, HttpSession session) {
int i;
try {
System.out.println(user.getUser_id()+user.getUser_pwd());
i = adminService.updatePassword(user);
if (i == 1) {
session.setAttribute("a_pwd",user.getUser_pwd());
}
} catch (Exception e) {
i = 0;
}
return i;
}
// 套餐id找时间
@RequestMapping("/findsendsmch")
@ResponseBody
public int findsendsmch(Model model,int ch_id,int sm_id) {
int i;
try {
System.out.println(ch_id+""+sm_id);
i=adminService.findsendsmch(sm_id,ch_id);
} catch (Exception e) {
i = 0;
}
return i;
}
// 查询所有套餐信息(系统管理员)
@RequestMapping("/findAllSm")
public String findAllSm(Model model) {
adminService.updateSmmcId();
List<SetMeal> sms = adminService.findAllSm();
System.out.println("套餐");
model.addAttribute("sm", sms);
// List<SetMeal> onlysms = adminService.findAllChSm();
// model.addAttribute("onlysm", onlysms);
sb="sm";
model.addAttribute("sb", sb);
return "welcome";
}
// 删除套餐
@ResponseBody
@RequestMapping("/deleteSm")
public int deleteSm(int sm_id) {
int i;
try {
//还要删除t_setmealclasshour的关系
adminService.deleteSmch(sm_id);
i = adminService.deleteSm(sm_id);
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return i;
}
// 跳转到增加套餐页面
@RequestMapping("/toAddSm")
public String toAddSm(Model model) {
List<ClassHour> chs=adminService.findcAllCh();
List<MemberCard> mcs=adminService.findAllMemberCard();
model.addAttribute("ch", chs);
model.addAttribute("mc", mcs);
sb="sm-add";
model.addAttribute("sb", sb);
return "show";
}
// 增加套餐
@RequestMapping("/addSm")
public String addSm(Model model ,SetMeal sm) {
try {
System.out.println("mc_id:"+sm.getMemberCard().getMc_id()+sm.getSmch_quantity());
System.out.println("sm_price:"+sm.getSm_price()+sm.getSm_name());
int i=0;
if(sm.getMemberCard().getMc_id()==0){
i=adminService.addnullMcSm(sm);
}
else {
i= adminService.addSm(sm);
}
//还要增加t_setmealclasshour的关系
System.out.println(sm.getClassHourList().get(0));
sm.setSm_id(adminService.findSmId(sm));
if(sm.getClassHourList()!=null) {
for (ClassHour ch : sm.getClassHourList()) {
System.out.println("ch_id:"+ch.getCh_id()+"ch_time:"+ch.getSmch_quantity());
if(ch.getCh_id()!=0) {
adminService.addSmClasshour(sm.getSm_id(), ch.getCh_id(), ch.getSmch_quantity());
}
}
}
} catch (Exception e) {
e.printStackTrace();
model.addAttribute("msg", "套餐添加失败");
toAddSm(model);
}
return "redirect:/admin/findAllSm";
}
// 跳转到修改套餐页面(还没做到这!!)
@RequestMapping("/toUpdateSm")
public String toUpdateSm(Model model,int sm_id) {
System.out.println("修改的教练id:"+sm_id);
SetMeal sms = adminService.findSmById(sm_id);
List<ClassHour> chs=adminService.findcAllCh();
List<MemberCard> mcs=adminService.findAllMemberCard();
model.addAttribute("ch", chs);
model.addAttribute("mc", mcs);
model.addAttribute("sm", sms);
sb="sm-edit";
model.addAttribute("sb", sb);
return "show";
}
//通过id发现会员卡
@ResponseBody
@RequestMapping("/findMcById")
public MemberCard findMcById(Model model,int mc_id) {
MemberCard mcs=adminService.findMcById(mc_id);
return mcs;
}
}