基于SSM实现台球厅计时收费系统
作者主页:编程千纸鹤
作者简介:Java、前端、Pythone开发多年,做过高程,项目经理,架构师
主要内容:Java项目开发、毕业设计开发、面试技术整理、最新技术分享
一,项目简介
本次设计开发的这套台球厅计时收费系统,主要基于SSM框架开发实现,前端结合JSP和Bootstrap来开发实现,系统主要实现为台球厅运营方提供一个计时收费的核心业务系统,主要包含三类用户:系统管理员,普通管理员,会员
系统管理员具有的功能: 可以管理所有的功能
- 系统管理—可以管理系统的用户系统,添加和管理管理员及普通管理员
- 球桌管理—可以管理台球室所有的球桌信息
- 订桌管理—可以根据用户需要预定球桌
- 付费管理—可以对己结束的球桌计时收费
- 活动管理—可以发布管理相关举办的台球活动信息
- 员工管理—可以管理台球室内的员工信息
普通管理员具有的功能: 主要进行业务管理
- 球桌管理—可以管理台球室所有的球桌信息
- 订桌管理—可以根据用户需要预定球桌
- 付费管理—可以对己结束的球桌计时收费
- 活动管理—可以发布管理相关举办的台球活动信息
会员用户登陆:主要实现在线订桌和付费
- 个人资料管理—管理个人资料信息
- 球桌信息查看—主要查看台球室拥有的台球桌信息
- 订桌信息管理—主要进行在线订桌操作
- 付费信息管理—个人在线付费及查看自己的付费记录
- 活动信息管理—查看系统发布的相关活动信息
二,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
开发技术:SSM框架+JSP+JQUERY+Bootstrap
三,系统展示
3.1用户登陆
3.2 系统用户管理
3.3 会员信息管理
3.4球桌信息管理
3.5订桌信息管理
3.6付费信息管理
3.7活动信息管理
3.8员工信息管理
四,核心代码展示
用户管理
package com.controller;import com.entity.Yuangong;import com.server.YuangongServer;import com.util.PageBean;import net.sf.json.JSONObject;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.io.PrintWriter;import java.sql.SQLException;import java.sql.Timestamp;import java.util.HashMap;import java.util.List;import java.util.Map;/** * 员工信息管理 */@Controllerpublic class YuangongController { @Resource private YuangongServer yuangongService; /** * 员工添加 * @param request * @param yuangong * @param session * @return * @throws SQLException */ @RequestMapping("addYuangong.do") public String addYuangong(HttpServletRequest request,Yuangong yuangong,HttpSession session) throws SQLException{ Timestamp time=new Timestamp(System.currentTimeMillis()); yuangongService.add(yuangong); session.setAttribute("backxx", "添加成功"); session.setAttribute("backurl", request.getHeader("Referer")); return "redirect:postback.jsp"; //return "redirect:yonghuzhuceList.do"; } /** * 编辑员工 * @param id * @param map * @param yuangong * @return */ @RequestMapping("doUpdateYuangong.do") public String doUpdateYuangong(int id,ModelMap map,Yuangong yuangong){ yuangong=yuangongService.getById(id); map.put("yuangong", yuangong); return "yuangong_updt"; } /** * 查看员工信息 * @param id * @param map * @param yuangong * @return */ @RequestMapping("yuangongDetail.do") public String yuangongDetail(int id,ModelMap map,Yuangong yuangong){ yuangong=yuangongService.getById(id); map.put("yuangong", yuangong); return "yuangong_detail"; } /** * 编辑员工页面跳转 * @param id * @param map * @param yuangong * @param request * @param session * @return */ @RequestMapping("updateYuangong.do") public String updateYuangong(int id,ModelMap map,Yuangong yuangong,HttpServletRequest request,HttpSession session){ yuangongService.update(yuangong); session.setAttribute("backxx", "修改成功"); session.setAttribute("backurl", request.getHeader("Referer")); return "redirect:postback.jsp"; } /** * 分页查询员工信息 * @param page * @param map * @param session * @param yuangong * @param name * @param mobile * @return */ @RequestMapping("yuangongxinxiList.do") public String yuangongxinxiList(@RequestParam(value="page",required=false)String page, ModelMap map,HttpSession session,Yuangong yuangong, String name, String mobile){ if(page==null||page.equals("")){ page="1"; } PageBean pageBean=new PageBean(Integer.parseInt(page), 5); Map pmap=new HashMap(); pmap.put("pageno", pageBean.getStart()); pmap.put("pageSize", 5); if(name==null||name.equals("")){pmap.put("name", null);}else{pmap.put("name", name);} if(mobile==null||mobile.equals("")){pmap.put("mobile", null);}else{pmap.put("mobile", mobile);} int total=yuangongService.getCount(pmap); pageBean.setTotal(total); List list=yuangongService.getByPage(pmap); map.put("page", pageBean); map.put("list", list); session.setAttribute("p", 1); return "yuangong_list"; } /** * 删除员工信息 * @param id * @param request * @return */ @RequestMapping("deleteYuangong.do") public String deleteYuangong(int id,HttpServletRequest request){ yuangongService.delete(id); String url = request.getHeader("Referer"); return "redirect:"+url; }}
订桌信息管理
package com.controller;import java.io.File;import java.io.IOException;import java.sql.Timestamp;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.io.PrintWriter;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;import com.entity.Dingzhuoxinxi;import com.server.DingzhuoxinxiServer;import com.util.PageBean;import net.sf.json.JSONObject;import com.util.db;import java.sql.SQLException;import java.sql.*;/** * 订桌信息管理 */@Controllerpublic class DingzhuoxinxiController {@Resourceprivate DingzhuoxinxiServer dingzhuoxinxiService;@RequestMapping("addDingzhuoxinxi.do")public String addDingzhuoxinxi(HttpServletRequest request,Dingzhuoxinxi dingzhuoxinxi,HttpSession session) throws SQLException{Timestamp time=new Timestamp(System.currentTimeMillis());dingzhuoxinxi.setAddtime(time.toString().substring(0, 19));dingzhuoxinxiService.add(dingzhuoxinxi);String sql="";sql="update qiuzhuoxinxi set zhuangtai='已订' where qiuzhuohao='"+dingzhuoxinxi.getQiuzhuohao()+"'";db dbo = new db();dbo.hsgexecute(sql);session.setAttribute("backxx", "添加成功");session.setAttribute("backurl", request.getHeader("Referer"));//session.setAttribute("backurl", "dingzhuoxinxiList.do");return "redirect:postback.jsp";//return "redirect:dingzhuoxinxiList.do";}//处理编辑@RequestMapping("doUpdateDingzhuoxinxi.do")public String doUpdateDingzhuoxinxi(int id,ModelMap map,Dingzhuoxinxi dingzhuoxinxi){dingzhuoxinxi=dingzhuoxinxiService.getById(id);map.put("dingzhuoxinxi", dingzhuoxinxi);return "dingzhuoxinxi_updt";}//后台详细@RequestMapping("dingzhuoxinxiDetail.do")public String dingzhuoxinxiDetail(int id,ModelMap map,Dingzhuoxinxi dingzhuoxinxi){dingzhuoxinxi=dingzhuoxinxiService.getById(id);map.put("dingzhuoxinxi", dingzhuoxinxi);return "dingzhuoxinxi_detail";}//前台详细@RequestMapping("dzxxDetail.do")public String dzxxDetail(int id,ModelMap map,Dingzhuoxinxi dingzhuoxinxi){dingzhuoxinxi=dingzhuoxinxiService.getById(id);map.put("dingzhuoxinxi", dingzhuoxinxi);return "dingzhuoxinxidetail";}//@RequestMapping("updateDingzhuoxinxi.do")public String updateDingzhuoxinxi(int id,ModelMap map,Dingzhuoxinxi dingzhuoxinxi,HttpServletRequest request,HttpSession session){dingzhuoxinxiService.update(dingzhuoxinxi);session.setAttribute("backxx", "修改成功");session.setAttribute("backurl", request.getHeader("Referer"));return "redirect:postback.jsp";//String url = request.getHeader("Referer");//return "redirect:"+url;//return "redirect:dingzhuoxinxiList.do";}//分页查询@RequestMapping("dingzhuoxinxiList.do")public String dingzhuoxinxiList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Dingzhuoxinxi dingzhuoxinxi, String qiuzhuohao, String meixiaoshijifei1,String meixiaoshijifei2, String dingzhuoshijian, String huiyuanbianhao, String xingming, String huiyuandengji, String zhekou, String beizhu){if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(meixiaoshijifei1==null||meixiaoshijifei1.equals("")){pmap.put("meixiaoshijifei1", null);}else{pmap.put("meixiaoshijifei1", meixiaoshijifei1);}if(meixiaoshijifei2==null||meixiaoshijifei2.equals("")){pmap.put("meixiaoshijifei2", null);}else{pmap.put("meixiaoshijifei2", meixiaoshijifei2);}if(dingzhuoshijian==null||dingzhuoshijian.equals("")){pmap.put("dingzhuoshijian", null);}else{pmap.put("dingzhuoshijian", dingzhuoshijian);}if(huiyuanbianhao==null||huiyuanbianhao.equals("")){pmap.put("huiyuanbianhao", null);}else{pmap.put("huiyuanbianhao", huiyuanbianhao);}if(xingming==null||xingming.equals("")){pmap.put("xingming", null);}else{pmap.put("xingming", xingming);}if(huiyuandengji==null||huiyuandengji.equals("")){pmap.put("huiyuandengji", null);}else{pmap.put("huiyuandengji", huiyuandengji);}if(zhekou==null||zhekou.equals("")){pmap.put("zhekou", null);}else{pmap.put("zhekou", zhekou);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=dingzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=dingzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "dingzhuoxinxi_list";}@RequestMapping("dingzhuoxinxiList2.do")public String dingzhuoxinxiList2(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Dingzhuoxinxi dingzhuoxinxi, String qiuzhuohao, String meixiaoshijifei1,String meixiaoshijifei2, String dingzhuoshijian, String huiyuanbianhao, String xingming, String huiyuandengji, String zhekou, String beizhu,HttpServletRequest request){/*if(session.getAttribute("user")==null){return "login";}*/if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);pmap.put("huiyuanbianhao", (String)request.getSession().getAttribute("username"));if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(meixiaoshijifei1==null||meixiaoshijifei1.equals("")){pmap.put("meixiaoshijifei1", null);}else{pmap.put("meixiaoshijifei1", meixiaoshijifei1);}if(meixiaoshijifei2==null||meixiaoshijifei2.equals("")){pmap.put("meixiaoshijifei2", null);}else{pmap.put("meixiaoshijifei2", meixiaoshijifei2);}if(dingzhuoshijian==null||dingzhuoshijian.equals("")){pmap.put("dingzhuoshijian", null);}else{pmap.put("dingzhuoshijian", dingzhuoshijian);}if(xingming==null||xingming.equals("")){pmap.put("xingming", null);}else{pmap.put("xingming", xingming);}if(huiyuandengji==null||huiyuandengji.equals("")){pmap.put("huiyuandengji", null);}else{pmap.put("huiyuandengji", huiyuandengji);}if(zhekou==null||zhekou.equals("")){pmap.put("zhekou", null);}else{pmap.put("zhekou", zhekou);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=dingzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=dingzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "dingzhuoxinxi_list2";}@RequestMapping("dzxxList.do")public String dzxxList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Dingzhuoxinxi dingzhuoxinxi, String qiuzhuohao, String meixiaoshijifei1,String meixiaoshijifei2, String dingzhuoshijian, String huiyuanbianhao, String xingming, String huiyuandengji, String zhekou, String beizhu){if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(meixiaoshijifei1==null||meixiaoshijifei1.equals("")){pmap.put("meixiaoshijifei1", null);}else{pmap.put("meixiaoshijifei1", meixiaoshijifei1);}if(meixiaoshijifei2==null||meixiaoshijifei2.equals("")){pmap.put("meixiaoshijifei2", null);}else{pmap.put("meixiaoshijifei2", meixiaoshijifei2);}if(dingzhuoshijian==null||dingzhuoshijian.equals("")){pmap.put("dingzhuoshijian", null);}else{pmap.put("dingzhuoshijian", dingzhuoshijian);}if(huiyuanbianhao==null||huiyuanbianhao.equals("")){pmap.put("huiyuanbianhao", null);}else{pmap.put("huiyuanbianhao", huiyuanbianhao);}if(xingming==null||xingming.equals("")){pmap.put("xingming", null);}else{pmap.put("xingming", xingming);}if(huiyuandengji==null||huiyuandengji.equals("")){pmap.put("huiyuandengji", null);}else{pmap.put("huiyuandengji", huiyuandengji);}if(zhekou==null||zhekou.equals("")){pmap.put("zhekou", null);}else{pmap.put("zhekou", zhekou);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=dingzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=dingzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "dingzhuoxinxilist";}@RequestMapping("deleteDingzhuoxinxi.do")public String deleteDingzhuoxinxi(int id,HttpServletRequest request){dingzhuoxinxiService.delete(id);String url = request.getHeader("Referer");return "redirect:"+url;//return "redirect:dingzhuoxinxiList.do";}}
球桌信息管理
package com.controller;import java.io.File;import java.io.IOException;import java.sql.Timestamp;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.io.PrintWriter;import javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.multipart.MultipartFile;import com.entity.Qiuzhuoxinxi;import com.server.QiuzhuoxinxiServer;import com.util.PageBean;import net.sf.json.JSONObject;import com.util.db;import java.sql.SQLException;import java.sql.*;/** * 球桌信息管理 */@Controllerpublic class QiuzhuoxinxiController {@Resourceprivate QiuzhuoxinxiServer qiuzhuoxinxiService;@RequestMapping("addQiuzhuoxinxi.do")public String addQiuzhuoxinxi(HttpServletRequest request,Qiuzhuoxinxi qiuzhuoxinxi,HttpSession session) throws SQLException{Timestamp time=new Timestamp(System.currentTimeMillis());qiuzhuoxinxi.setAddtime(time.toString().substring(0, 19));qiuzhuoxinxiService.add(qiuzhuoxinxi);session.setAttribute("backxx", "添加成功");session.setAttribute("backurl", request.getHeader("Referer"));//session.setAttribute("backurl", "qiuzhuoxinxiList.do");return "redirect:postback.jsp";//return "redirect:qiuzhuoxinxiList.do";}//处理编辑@RequestMapping("doUpdateQiuzhuoxinxi.do")public String doUpdateQiuzhuoxinxi(int id,ModelMap map,Qiuzhuoxinxi qiuzhuoxinxi){qiuzhuoxinxi=qiuzhuoxinxiService.getById(id);map.put("qiuzhuoxinxi", qiuzhuoxinxi);return "qiuzhuoxinxi_updt";}//后台详细@RequestMapping("qiuzhuoxinxiDetail.do")public String qiuzhuoxinxiDetail(int id,ModelMap map,Qiuzhuoxinxi qiuzhuoxinxi){qiuzhuoxinxi=qiuzhuoxinxiService.getById(id);map.put("qiuzhuoxinxi", qiuzhuoxinxi);return "qiuzhuoxinxi_detail";}//前台详细@RequestMapping("qzxxDetail.do")public String qzxxDetail(int id,ModelMap map,Qiuzhuoxinxi qiuzhuoxinxi){qiuzhuoxinxi=qiuzhuoxinxiService.getById(id);map.put("qiuzhuoxinxi", qiuzhuoxinxi);return "qiuzhuoxinxidetail";}//@RequestMapping("updateQiuzhuoxinxi.do")public String updateQiuzhuoxinxi(int id,ModelMap map,Qiuzhuoxinxi qiuzhuoxinxi,HttpServletRequest request,HttpSession session){qiuzhuoxinxiService.update(qiuzhuoxinxi);session.setAttribute("backxx", "修改成功");session.setAttribute("backurl", request.getHeader("Referer"));return "redirect:postback.jsp";//String url = request.getHeader("Referer");//return "redirect:"+url;//return "redirect:qiuzhuoxinxiList.do";}//分页查询@RequestMapping("qiuzhuoxinxiList.do")public String qiuzhuoxinxiList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Qiuzhuoxinxi qiuzhuoxinxi, String qiuzhuohao, String zhuangtai, String meixiaoshijifei, String beizhu){if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(zhuangtai==null||zhuangtai.equals("")){pmap.put("zhuangtai", null);}else{pmap.put("zhuangtai", zhuangtai);}if(meixiaoshijifei==null||meixiaoshijifei.equals("")){pmap.put("meixiaoshijifei", null);}else{pmap.put("meixiaoshijifei", meixiaoshijifei);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=qiuzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=qiuzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "qiuzhuoxinxi_list";}@RequestMapping("qzxxList.do")public String qzxxList(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Qiuzhuoxinxi qiuzhuoxinxi, String qiuzhuohao, String zhuangtai, String meixiaoshijifei, String beizhu){if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(zhuangtai==null||zhuangtai.equals("")){pmap.put("zhuangtai", null);}else{pmap.put("zhuangtai", zhuangtai);}if(meixiaoshijifei==null||meixiaoshijifei.equals("")){pmap.put("meixiaoshijifei", null);}else{pmap.put("meixiaoshijifei", meixiaoshijifei);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=qiuzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=qiuzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "qiuzhuoxinxilist";}@RequestMapping("qiuzhuoxinxiList2.do")public String qiuzhuoxinxiList2(@RequestParam(value="page",required=false)String page,ModelMap map,HttpSession session,Qiuzhuoxinxi qiuzhuoxinxi, String qiuzhuohao, String zhuangtai, String meixiaoshijifei, String beizhu){if(page==null||page.equals("")){page="1";}PageBean pageBean=new PageBean(Integer.parseInt(page), 15);Map pmap=new HashMap();pmap.put("pageno", pageBean.getStart());pmap.put("pageSize", 15);if(qiuzhuohao==null||qiuzhuohao.equals("")){pmap.put("qiuzhuohao", null);}else{pmap.put("qiuzhuohao", qiuzhuohao);}if(zhuangtai==null||zhuangtai.equals("")){pmap.put("zhuangtai", null);}else{pmap.put("zhuangtai", zhuangtai);}if(meixiaoshijifei==null||meixiaoshijifei.equals("")){pmap.put("meixiaoshijifei", null);}else{pmap.put("meixiaoshijifei", meixiaoshijifei);}if(beizhu==null||beizhu.equals("")){pmap.put("beizhu", null);}else{pmap.put("beizhu", beizhu);}int total=qiuzhuoxinxiService.getCount(pmap);pageBean.setTotal(total);List list=qiuzhuoxinxiService.getByPage(pmap);map.put("page", pageBean);map.put("list", list);session.setAttribute("p", 1);return "qiuzhuoxinxi_list2";}@RequestMapping("deleteQiuzhuoxinxi.do")public String deleteQiuzhuoxinxi(int id,HttpServletRequest request){qiuzhuoxinxiService.delete(id);String url = request.getHeader("Referer");return "redirect:"+url;//return "redirect:qiuzhuoxinxiList.do";}}
五,项目总结
本项目整体功能完整,用户角色齐全,符合实际运行要求,界面简洁大方,操作方便,人机交互较好,用户很容易适应系统的基本操作,可以作为毕业设计或课程设计使用。