基于javaweb+mysql的springboot健身管理系统(java+springboot+mysql+jsp)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot健身管理系统(java+springboot+mysql+jsp)
主要技术:springmvc、 springboot 、jpa、mysql 、jQuery、layui、css、jsp shiro权限控制
主要功能截图如下:
用户登录、首页主要功能有:会员信息管理、会员到期续费管理、充值管理、教练课程管理、私教管理、器材管理、小商品售卖管理、信息统计、修改密码等主要功能:
会员管理、续卡、会员卡类型管理:
教练列表展示和添加修改删除教练信息:
会员私教课程管理:
添加私教信息:
健身课程列表展示查询和添加修改:
健身器材列表展示查询和添加修改:
物品遗失管理、归还、添加丢失物品、查询、取回丢失物品等:
健身房小商品售卖管理:列表数据展示、查询、进货、售卖 退货等操作
简单的树状图统计:
代码:
数据库表:
*/
@Controller
@RequestMapping("/goodinfo")
public class GoodInfoController {@Autowiredprivate GoodInfoDao goodInfoDao;@Autowiredprivate GoodsDao goodsDao;@Autowiredprivate GoodInfoDaoImpl goodInfoDaoImpl;@Autowiredprivate MenberDao menberDao;@Autowiredprivate GoodsDaoImpl goodsDaoImpl;@Autowiredprivate MenberDaoImpl menberDaoImpl;/*** @Description: 商品售卖信息管理-进入商品售卖信息界面* xiaoc*/@RequestMapping("/spinfo")public String spinfo(){return "WEB-INF/jsp/GoodInfo";}/*** @Description: 商品售卖信息管理-根据商品id,会员id查询商品售卖信息* xiaoc*/@RequestMapping("/query")@ResponseBodypublic Map<String,Object> query(Integer goodsid,Integer memberid, int pageSize, int pageNumber){Map<String,Object> map1=new HashMap<String,Object>();map1.put("goodsid",goodsid);map1.put("memberid",memberid);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return goodInfoDaoImpl.query(map1);}/*** @Description: 商品售卖信息管理-根据商品id,会员id删除信息* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long id,Integer goodsid,Integer memberid,int pageSize, int pageNumber){
/*** @Description: 商品售卖信息管理Controller控制层* xiaoc*/
@Controller
@RequestMapping("/goodinfo")
public class GoodInfoController {@Autowiredprivate GoodInfoDao goodInfoDao;@Autowiredprivate GoodsDao goodsDao;@Autowiredprivate GoodInfoDaoImpl goodInfoDaoImpl;@Autowiredprivate MenberDao menberDao;@Autowiredprivate GoodsDaoImpl goodsDaoImpl;@Autowiredprivate MenberDaoImpl menberDaoImpl;/*** @Description: 商品售卖信息管理-进入商品售卖信息界面* xiaoc*/@RequestMapping("/spinfo")public String spinfo(){return "WEB-INF/jsp/GoodInfo";}/*** @Description: 商品售卖信息管理-根据商品id,会员id查询商品售卖信息* xiaoc*/@RequestMapping("/query")@ResponseBody
@RequestMapping("/count")@ResponseBodypublic Long count (Integer memid){unt(memid);return unt(memid);}/*** @Description: 会员私教详情-根据会员id在会员私教信息表中查询信息* xiaoc*/@RequestMapping("/byid")@ResponseBodypublic List<PrivateCoachInfo> queryid(Long memberid){return privateCoachInfoDaoImpl.ByMemberid(memberid);}
}
package ller;/*** @Description: 商品管理Controller控制层* xiaoc*/
@Controller
@RequestMapping("/goods")
public class GoodsController {@Autowired
/*** @Description: 会员充值管理Controller控制层* xiaoc*/
@Controller
@RequestMapping("/cz")
public class chongzhiController {@Autowiredprivate chongzhiDao chongzhiDao;@Autowiredprivate MenberDao menberDao;@Autowiredprivate MenberDaoImpl menberDaoImpl;@PersistenceContextprivate EntityManager entityManager;/*** @Description: 会员充值管理-进入会员充值记录界面
/*** @Description: 教练管理-进入教练列表界面* xiaoc*/@RequestMapping("/jin3")public String jin3(){return "WEB-INF/jsp/coach";}/*** @Description: 教练管理-根据教练姓名分页查询* xiaoc*/@RequestMapping("/query")@ResponseBodypublic Map<String,Object> query(String coachname, int pageSize, int pageNumber){Map<String,Object> map1=new HashMap<String,Object>();map1.put("coachname",coachname);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return coachDaoImpl.query(map1);}/*** @Description: 教练管理-根据教练id删除教练信息* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long id,String coachname, int pageSize, int pageNumber){//先根据教练id在私教信息表里查询是否有其信息List<PrivateCoachInfo> privateCoachInfoList = privateCoachInfoDao.queryByCoachIdNative(id);if(privateCoachInfoList !=null && privateCoachInfoList.size() > 0){//如果有,先循环删除for(PrivateCoachInfo privateCoachInfo : privateCoachInfoList){if(id == Coach().getCoachId()){privateCoachInfoDao.delete(privateCoachInfo);}}}coachDao.deleteById(id);Map<String,Object> map1=new HashMap<String,Object>();map1.put("coachname",coachname);
}/*** @Description: 课程管理-根据课程名称分页查询* xiaoc*/@RequestMapping("/query")@ResponseBodypublic Map<String,Object> query(String subname, int pageSize, int pageNumber){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: 课程管理-根据课程id删除课程* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long subId,String subname, int pageSize, int pageNumber){//先根据教练id在私教信息表里查询是否有其信息List<PrivateCoachInfo> privateCoachInfoList = privateCoachInfoDao.queryBySubjectIdNative(subId);if(privateCoachInfoList !=null && privateCoachInfoList.size() > 0){//如果有,先循环删除for(PrivateCoachInfo privateCoachInfo : privateCoachInfoList){if(subId == Subject().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);
/*** @Description: 退出登录后清楚session* xiaoc*/@RequestMapping("/logout")public String logout(){Subject subject = Subject();subject.logout();return "redirect:/login";}/*** @Description: 跳转到修改密码界面* xiaoc*/@RequestMapping("/updPassword")public String updPassword(){return "WEB-INF/jsp/updPassword";}/*** @Description: 修改密码* xiaoc*/@RequestMapping("/upd/updPassword")public String updPasswordConfirm(String oldPassword,String newPassword,String newPasswordAgain,HttpSession httpSession,Model model){Pattern p = Patternpile("^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!.%*#?&])[A-Za-z\d$@$!.%*#?&]{8,}$");Matcher m = p.matcher(newPassword);if(!m.matches()){model.addAttribute("msg","新密码最少为8位并为字母+数字+特殊字符");return "WEB-INF/jsp/updPassword";}if(!newPassword.equals(newPasswordAgain)){model.addAttribute("msg","两次输入新密码不一致,请重新输入");return "WEB-INF/jsp/updPassword";
map.put("goods",goodsDao.findAll());return map ;}
}
package ller;/*** @Description: 管理员登录Controller控制层* xiaoc*/
@Controller
@RequestMapping("/")
public class AdminuserConntroller {@Autowiredprivate AdminuserDao adminuserDao;/*** @Description: 输入端口号直接跳转登录界面* xiaoc*/@RequestMapping("/")public String beforeLogin(){return "login";}/**
/*** @Description: 教练管理Controller控制层* xiaoc*/
@Controller
@RequestMapping("/coach")
public class CoachController {@Autowiredprivate CoachDao coachDao;@Autowiredprivate PrivateCoachInfoDao privateCoachInfoDao;@Autowiredprivate CoachDaoImpl coachDaoImpl;/*** @Description: 教练管理-进入教练列表界面* xiaoc*/@RequestMapping("/jin3")public String jin3(){return "WEB-INF/jsp/coach";}/*** @Description: 教练管理-根据教练姓名分页查询* xiaoc*/@RequestMapping("/query")@ResponseBodypublic Map<String,Object> query(String coachname, int pageSize, int pageNumber){Map<String,Object> map1=new HashMap<String,Object>();map1.put("coachname",coachname);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return coachDaoImpl.query(map1);}/**
*/
@Controller
@RequestMapping("/privateinfo")
public class PrivateCoachInfoController {@Autowiredprivate CoachDao coachDao;@Autowiredprivate SubjectDao subjectDao;@Autowiredprivate MenberDao menberDao;@Autowiredprivate PrivateCoachInfoDao privateCoachInfoDao;@Autowiredprivate PrivateCoachInfoDaoImpl privateCoachInfoDaoImpl;/*** @Description: 会员私教课程-进入会员私教课程界面* xiaoc*/@RequestMapping("/jin3")public String jin3(){return "WEB-INF/jsp/privatecoach";}/*** @Description: 会员私教详情-查询所有会员私教信息* xiaoc*/@RequestMapping("/ddaa")@ResponseBodypublic List<PrivateCoachInfo> query(){List<PrivateCoachInfo> list=privateCoachInfoDao.findAll();
// for (PrivateCoachInfo li:list){
// System.out.Member().getMemberName());
// }return privateCoachInfoDao.findAll();
/*** @Description: 会员卡类型Controller控制层* xiaoc*/
@Controller
@RequestMapping("/ktype")
public class MembertypeController {@Autowiredprivate MembertypeDaoImpl membertypeDaoImpl;/*** @Description: 会员卡类型-进入jsp页面* xiaoc*/@RequestMapping("/jin5")public String jin5(){return "WEB-INF/jsp/Membertype";}/*** @Description: 会员卡类型-查询所有数据* xiaoc*/@RequestMapping("/query")@ResponseBodypublic List<Membertype> query(){return membertypeDaoImpl.cha();}/*** @Description: 会员卡类型-分页查询* xiaoc*/@RequestMapping("/queryq")@ResponseBodypublic Map<String,Object> query(String typeName, int pageSize, int pageNumber){Map<String,Object> map1=new HashMap<String,Object>();map1.put("typeName",typeName);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return membertypeDaoImpl.query(map1);
@RequestMapping("/cha")@ResponseBodypublic Optional<PrivateCoachInfo> one(long id){return privateCoachInfoDao.findById(id);}/*** @Description: 会员私教详情-删除会员私教信息* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long id,Integer coachid,Integer subjectid, Integer memberid, int pageSize, int pageNumber){privateCoachInfoDao.deleteById(id);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: 会员私教详情-修改会员私教信息* xiaoc*/@RequestMapping("/upd")@ResponseBodypublic void upd(PrivateCoachInfo privateCoachInfo){privateCoachInfoDaoImpl.update(privateCoachInfo);}/*** @Description: 会员私教详情-根据会员id查询所有会员私教信息的数量* xiaoc*/@RequestMapping("/count")@ResponseBodypublic Long count (Integer memid){unt(memid);return unt(memid);}/*** @Description: 会员私教详情-根据会员id在会员私教信息表中查询信息
/*** @Description: 会员余额充值* xiaoc*/@RequestMapping("/xin")@ResponseBodypublic Map<String,Object> cye(Chongzhi chongzhi){//充值moneyMember member=menberDao.Member().getMemberId()).get();member.Memberbalance()Money());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")@ResponseBodypublic 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>() {
private PrivateCoachInfoDao privateCoachInfoDao;@Autowiredprivate CoachDaoImpl coachDaoImpl;/*** @Description: 教练管理-进入教练列表界面* xiaoc*/@RequestMapping("/jin3")public String jin3(){return "WEB-INF/jsp/coach";}/*** @Description: 教练管理-根据教练姓名分页查询* xiaoc*/@RequestMapping("/query")@ResponseBodypublic Map<String,Object> query(String coachname, int pageSize, int pageNumber){Map<String,Object> map1=new HashMap<String,Object>();map1.put("coachname",coachname);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return coachDaoImpl.query(map1);}/*** @Description: 教练管理-根据教练id删除教练信息* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long id,String coachname, int pageSize, int pageNumber){//先根据教练id在私教信息表里查询是否有其信息
String jpa="select ) from Chongzhi as a where Date like('%"+array[i]+"%')";Query queryateQuery(jpa);Object obj = SingleResult();if(obj==null){intar[i]=0;}else{intar[i]=((Long)obj).intValue();}}return intar;}
}
package ller;/*** @Description: 商品售卖信息管理Controller控制层* xiaoc*/
@Controller
@RequestMapping("/goodinfo")
public class GoodInfoController {@Autowiredprivate GoodInfoDao goodInfoDao;@Autowiredprivate GoodsDao goodsDao;@Autowiredprivate GoodInfoDaoImpl goodInfoDaoImpl;@Autowiredprivate MenberDao menberDao;
privateCoachInfoDao.deleteById(id);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: 会员私教详情-修改会员私教信息* xiaoc*/@RequestMapping("/upd")@ResponseBodypublic void upd(PrivateCoachInfo privateCoachInfo){privateCoachInfoDaoImpl.update(privateCoachInfo);}/*** @Description: 会员私教详情-根据会员id查询所有会员私教信息的数量* xiaoc*/@RequestMapping("/count")@ResponseBodypublic Long count (Integer memid){unt(memid);return unt(memid);}/*** @Description: 会员私教详情-根据会员id在会员私教信息表中查询信息* xiaoc*/@RequestMapping("/byid")@ResponseBodypublic List<PrivateCoachInfo> queryid(Long memberid){return privateCoachInfoDaoImpl.ByMemberid(memberid);}
}
package ller;
/*** @Description: 会员卡类型信息Controller控制层* xiaoc*/
@Controller
@RequestMapping("/metype")
public class MetypeController {@Autowiredprivate MembertypeDaoImpl membertypeDaoImpl;@Autowiredprivate MemberttypeDao memberttypeDao;/*** @Description: 会员卡类型-删除* xiaoc*/@RequestMapping("/del")@ResponseBodypublic Map<String,Object> del(long typeId,String typeName, int pageSize, int pageNumber){memberttypeDao.deleteById(typeId);Map<String,Object> map1=new HashMap<String,Object>();map1.put("typeName",typeName);map1.put("qi",(pageNumber-1)*pageSize);map1.put("shi",pageSize);return membertypeDaoImpl.query(map1);}/*** @Description: 会员卡类型-添加会员卡类型* xiaoc*/@RequestMapping("/add")@ResponseBodypublic void save(Membertype membertype){memberttypeDao.save(membertype);
}
package ller;/*** @Description: 管理员登录Controller控制层* xiaoc*/
@Controller
@RequestMapping("/")
public class AdminuserConntroller {@Autowiredprivate AdminuserDao adminuserDao;/*** @Description: 输入端口号直接跳转登录界面* xiaoc*/@RequestMapping("/")public String beforeLogin(){return "login";}/*** @Description: 管理员登录验证方法* xiaoc*/@RequestMapping("/dl/yz")public String login(String username, String password,HttpSession httpSession,Model model){
本文发布于:2024-01-29 14:01:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650808215785.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |