基于javaweb+mysql的ssm航班机票预订平台系统(java+ssm+js+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM航班机票预订平台系统(java+ssm+js+jsp+mysql)
项目介绍
管理员角色包含以下功能: 管理员登录,用户管理,客机管理,航班管理,机票管理,密码修改等功能。
用户角色包含以下功能: 查看所有机票,用户登录注册,机票预订,查看我的订单等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:HTML+CSS+JavaScript+jsp
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
boolean flag = false;
String flightId = "";
String message = "";
int count = 0;
try {
for (String i : split) {
flightList = flightService.selectListByAircraftId(Integer.parseInt(i));
if (flightList.size() > 0) {
flightId = flightId + i + ",";
continue;
} else {
Integer integer = aircraftService.deleteByPrimaryKey(Integer.parseInt(i));
count++;
}
}
if (count == split.length) {
flag = true;
message = "数据全部成功删除!";
} else {
message = "id为" + flightId.substring(0, flightId.length() - 1) + "的客机有航班任务,不可进行删除操作!";
}
result.put("success", flag);
result.put("message", message);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@RequestMapping("/adminAircraftList")
public String adminAircraftList(HttpServletRequest request, Aircraft aircraft, HttpServletResponse response) {
PageBean pageBean = new PageBean();
JSONObject result = new JSONObject();
String page = request.getParameter("page");
String rows = request.getParameter("rows");
if (rows != null) {
pageBean.setPageSize(Integer.parseInt(rows));
aircraft.setPageSize(pageBean.getPageSize());
}
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, jsonDateValueProcessor);
JSONArray array = JSONArray.fromObject(ticketOrderList, jsonConfig);
mav.addObject("ticketOrderList",array);
mav.setViewName("main_userCenter");
request.setAttribute("mainPage","ticket/myTicketOrderList.jsp");
return mav;
}
}
/**
* com.chen.ssm.web
* 作者 : 陈晓
* 描述 :
* 修改日期 :
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@Resource
private TicketOrderService ticketOrderService;
private User user;
private Integer currentUserId;
private List<Ticketorder> ticketorderList;
public class CookiesFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
System.out.println(request.getRequestURI());
String requestURI = request.getRequestURI();
/* if (requestURI.indexOf("index") > -1 || requestURI.indexOf("resources") > -1 || requestURI.indexOf("managerLoginPage") > -1 || requestURI.indexOf("manager/login") > -1) {
chain.doFilter(request, response);
return;
}
if (requestURI.indexOf("/flight/") > -1 || requestURI.indexOf("/ticketOrder/") > -1 || requestURI.indexOf("/aircraft/") > -1 || requestURI.indexOf("/user/") > -1) {
chain.doFilter(request, response);
return;
}*/
if (!(requestURI.indexOf("/manager/") > -1)) {
chain.doFilter(request, response);
return;
} else {
if (requestURI.indexOf("/manager/managerLoginPage") > -1 || requestURI.indexOf("/manager/login") > -1) {
chain.doFilter(request, response);
return;
}
if (request.getCookies() != null) {
Cookie[] cs = request.getCookies();
System.out.println(cs.length);
if (cs != null && cs.length > 0) {
for (Cookie c : cs) {
String cName = c.getName();
System.out.println(cName);
if (cName.equals("adminToken")) {
// String token = c.getValue();
// String userAndPwd = new DesUtil().decrypt(token, key);
// String[] uNameAndPwd = userAndPwd.split(value);
// String userName = uNameAndPwd[0];
return null;
}
@RequestMapping("/adminUserList")
public String adminUserList(User user, HttpServletResponse response, HttpServletRequest request) throws Exception {
PageBean pageBean = new PageBean();
String page = request.getParameter("page");
String rows = request.getParameter("rows");
if (rows != null) {
pageBean.setPageSize(Integer.parseInt(rows));
user.setPageSize(pageBean.getPageSize());
}
if (page != null) {
pageBean.setPage(Integer.parseInt(page));
user.setPage(pageBean.getStart());
}
List<User> userList = userService.getUserList(user);
Integer total = userService.getCount(user);
JsonConfig jsonConfig = new JsonConfig();
JSONArray array = JSONArray.fromObject(userList, jsonConfig);
JSONObject result = new JSONObject();
result.put("total", total);
result.put("rows", array);
ResponseUtil.write(response, result);
return null;
}
@RequestMapping("/deleteUser")
public String deleteUser(HttpServletResponse response, HttpServletRequest request) {
String ids = request.getParameter("ids");
String[] split = ids.split(",");
JSONObject result = new JSONObject();
String message = "用户有订单,不能进行删除操作!";
String userID = "";
boolean flag = false;
int count = 0;
try {
for (String i : split) {
ticketorderList = ticketOrderService.selectListByUserId(Integer.parseInt(i));
if (ticketorderList.size() > 0) {
userID = userID + i + ",";
continue;
} else {
Integer integer = userService.deleteByPrimaryKey(Integer.parseInt(i));
count++;
}
}
if (count == split.length) {
flag = true;
message = "数据已成功删除!";
} else {
@RequestMapping("/aircraft")
public class AircraftController /*extends BaseController*/ {
@Resource
private AircraftService aircraftService;
@Resource
private FlightService flightService;
private List<Flight> flightList;
// 定义转换日期类型的输出格式
private String format = "yyyy-MM-dd";
private boolean flag = false;
// private Aircraft aircraft;
@RequestMapping("/adminAircraftPage")
public String aircraftList() {
return "admin/aircraftManage";
}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new DateUtil());
}
@RequestMapping("/save")
@ResponseBody
public Object save(Aircraft aircraft, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
// String id = request.getParameter("id");
String buyDate = request.getParameter("buyDate");
String useDate = request.getParameter("useDate");
//String name = request.getParameter("name");
// String remark = request.getParameter("remark");
DateUtil dateUtil = new DateUtil();
aircraft.setBuydate(dateUtil.formatString(buyDate, format));
aircraft.setUsedate(dateUtil.formatString(useDate, format));
// aircraft.setName(name);
// aircraft.setRemark(remark);
Integer i = 0;
try {
if (aircraft.getId() == null) {
i = aircraftService.insertSelective(aircraft);
} else {
i = aircraftService.updateByPrimaryKeySelective(aircraft);
}
if (i > 0) {
flag = true;
}
return "admin/aircraftManage";
}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new DateUtil());
}
@RequestMapping("/save")
@ResponseBody
public Object save(Aircraft aircraft, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
// String id = request.getParameter("id");
String buyDate = request.getParameter("buyDate");
String useDate = request.getParameter("useDate");
//String name = request.getParameter("name");
// String remark = request.getParameter("remark");
DateUtil dateUtil = new DateUtil();
aircraft.setBuydate(dateUtil.formatString(buyDate, format));
aircraft.setUsedate(dateUtil.formatString(useDate, format));
// aircraft.setName(name);
// aircraft.setRemark(remark);
Integer i = 0;
try {
if (aircraft.getId() == null) {
i = aircraftService.insertSelective(aircraft);
} else {
i = aircraftService.updateByPrimaryKeySelective(aircraft);
}
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获得客机的名称
*
* @param response
* @return
*/
@RequestMapping("/comboList")
public String comboList(HttpServletResponse response) {
JSONArray jsonArray = new JSONArray();
//private PageBean pageBean;
private PageUtil pageUtil = new PageUtil();
private String format = "yyyy-MM-dd HH:mm:ss";
private boolean flag = false;
@Resource
private FlightService flightService;
/* @Resource
private AircraftService aircraftService;
@Resource
private TicketOrderService ticketOrderService;*/
@RequestMapping("/indexList")
public ModelAndView indexList() {
ModelAndView mav = new ModelAndView();
PageBean pageBean = new PageBean(1, 5);
index_flight = getFlight(pageBean);
index_flight.setFlighttype(flightType1);
flightList1 = flightService.getIndexList(index_flight);
index_flight.setFlighttype(flightType2);
flightList2 = flightService.getIndexList(index_flight);
mav.addObject("flightList1", flightList1);
mav.addObject("flightList2", flightList2);
mav.setViewName(viewName);
return mav;
}
@RequestMapping("/search")
public ModelAndView search(Flight flight, HttpServletRequest request) throws ParseException {
String page = request.getParameter("page");
String departTime = request.getParameter("departTime");
Date dateFrom = null;
Date dateTo = null;
if(departTime!=null&&!departTime.equals("")){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
dateFrom = sdf.parse(departTime+" 00:00:00");
dateTo = sdf.parse(departTime+" 23:59:59");
}
i = flightService.updateByPrimaryKeySelective(flight);
}
System.out.println("====flight====updateOrAdd===" + i);
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获得分页的信息
*
* @param total
* @param pageBean
* @param request
* @return
*/
private ModelAndView getPageCode(Integer total, PageBean pageBean, HttpServletRequest request) {
ModelAndView mav = new ModelAndView();
pageCount = total % pageBean.getPageSize() == 0 ? total / pageBean.getPageSize()
: total / pageBean.getPageSize() + 1;
request.setAttribute("mainPage", "flight/flightList.jsp");
pageCode = PageUtil.genPaginationNoParam(request.getContextPath() + "/flight/list", total, pageBean.getPage(),
pageBean.getPageSize()).toString();
mav.addObject("flightList", flightList);
mav.addObject("pageCode", pageCode + pageCount + pageLi2);
mav.setViewName(viewName);
return mav;
}
/**
* 获得实体
*
* @param pageBean
* @return
*/
private Flight getFlight(PageBean pageBean) {
Flight flight = new Flight();
flight.setPage(pageBean.getStart());
flight.setPageSize(pageBean.getPageSize());
return flight;
// list_flight = new Flight();
if (rows != null) {
pageBean.setPageSize(Integer.parseInt(rows));
flight.setPageSize(pageBean.getPageSize());
}
if (page != null) {
pageBean.setPage(Integer.parseInt(page));
flight.setPage(pageBean.getStart());
}
if (flight.getFromTime() != null) {
flight.setFromtime(DateUtil.formatString(flight.getFromTime() + " 00:00:00", format));
}
try {
Integer count = flightService.getCount(flight);
List<Flight> flightList = flightService.getIndexList(flight);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(format));
JSONArray array = JSONArray.fromObject(flightList, jsonConfig);
result.put("rows", array);
result.put("total", count);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@RequestMapping("/adminDeleteFlight")
public String adminDeleteFlight(HttpServletResponse response, HttpServletRequest request) {
String ids = request.getParameter("ids");
String[] split = ids.split(",");
JSONObject result = new JSONObject();
boolean flag = false;
String flightId = "";
String message = "";
int count = 0;
try {
for (String i : split) {
ticketorderList = ticketOrderService.selectListByFlightId(Integer.parseInt(i));
if (ticketorderList.size() > 0) {
flightId = flightId + i + ",";
continue;
} else {
Integer integer = flightService.deleteByPrimaryKey(Integer.parseInt(i));
count++;
}
}
if (count == split.length) {
/**
* com.chen.ssm.web
* 作者 : 陈晓
* 描述 :
* 修改日期 :
*/
@Controller
@RequestMapping("/aircraft")
public class AircraftController /*extends BaseController*/ {
@Resource
private AircraftService aircraftService;
@Resource
private FlightService flightService;
private List<Flight> flightList;
// 定义转换日期类型的输出格式
private String format = "yyyy-MM-dd";
private boolean flag = false;
// private Aircraft aircraft;
@RequestMapping("/adminAircraftPage")
public String aircraftList() {
return "admin/aircraftManage";
}
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Date.class, new DateUtil());
}
@RequestMapping("/save")
@ResponseBody
public Object save(Aircraft aircraft, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
// String id = request.getParameter("id");
String buyDate = request.getParameter("buyDate");
String useDate = request.getParameter("useDate");
//String name = request.getParameter("name");
// String remark = request.getParameter("remark");
/**
* com.chen.ssm.web
* 作者 : 陈晓
* 描述 :
* 修改日期 :
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@Resource
private TicketOrderService ticketOrderService;
private User user;
private Integer currentUserId;
private List<Ticketorder> ticketorderList;
private CookiesUtil cookiesUtil = new CookiesUtil();
private String cookieName = "token";
@RequestMapping("/test")
public String test() {
return "list";
}
}
if (count == split.length) {
flag = true;
message = "数据全部成功删除!";
} else {
message = "id为" + flightId.substring(0, flightId.length() - 1) + "的客机有航班任务,不可进行删除操作!";
}
result.put("success", flag);
result.put("message", message);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@RequestMapping("/adminAircraftList")
public String adminAircraftList(HttpServletRequest request, Aircraft aircraft, HttpServletResponse response) {
PageBean pageBean = new PageBean();
JSONObject result = new JSONObject();
String page = request.getParameter("page");
String rows = request.getParameter("rows");
if (rows != null) {
pageBean.setPageSize(Integer.parseInt(rows));
aircraft.setPageSize(pageBean.getPageSize());
}
if (page != null) {
pageBean.setPage(Integer.parseInt(page));
aircraft.setPage(pageBean.getStart());
}
try {
Integer count = aircraftService.getCount(aircraft);
List<Aircraft> aircraftList = aircraftService.getAircraftList(aircraft);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor(format));
JSONArray array = JSONArray.fromObject(aircraftList, jsonConfig);
result.put("rows", array);
result.put("total", count);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@RequestMapping("/managerLoginPage")
public String managerLoginPage() {
flight.setPageSize(pageBean.getPageSize());
return flight;
}
@RequestMapping("/adminFlightPage")
public String adminFlightPage() {
return "admin/flightManage";
}
}
/**
* com.chen.ssm.web
* 作者 : 陈晓
* 描述 :
* 修改日期 :
*/
* 修改日期 :
*/
public class CookiesUtil {
/**
* 添加cookies
*
* @param key
* @param value
* @param time
* @param response
*/
public void addcookie(String key, String value, int time, HttpServletResponse response) {
Cookie cookieToken = new Cookie(key, value);
cookieToken.setMaxAge(time);
cookieToken.setPath("/");
response.addCookie(cookieToken);
}
/**
* 删除对应的cookies信息
*
* @param request
* @param response
*/
public void deleteCookies(String cookieName,HttpServletRequest request, HttpServletResponse response) {
Cookie[] cookies = request.getCookies();
if (null == cookies) {
System.out.println("没有cookie==============");
} else {
for (Cookie cookie : cookies) {
if (cookie.getName().equals(cookieName)) {
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie
cookie.setPath("/");
System.out.println("被删除的cookie名字为:" + cookie.getName());
response.addCookie(cookie);
break;
}
}
}
}
}
}
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获得客机的名称
*
* @param response
* @return
*/
@RequestMapping("/comboList")
public String comboList(HttpServletResponse response) {
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", "");
jsonObject.put("name", "请选择...");
jsonArray.add(jsonObject);
List<Aircraft> aircraftList = aircraftService.getAircraftList(new Aircraft());
JsonConfig jsonConfig = new JsonConfig();
JSONArray rows = JSONArray.fromObject(aircraftList, jsonConfig);
jsonArray.addAll(rows);
ResponseUtil.write(response, jsonArray);
return null;
}
}
ModelAndView mav = getPageCode(count, pageBean, request);
return mav;
}
@RequestMapping("/list")
public ModelAndView list(HttpServletRequest request) {
PageBean pageBean = null;
Flight flight = new Flight();
String page = request.getParameter("page");
if (page != null) {
pageBean = new PageBean(Integer.parseInt(page), 10);
}
flight.setPage(pageBean.getStart());
flight.setPageSize(pageBean.getPageSize());
Integer count = flightService.getCount(flight);
flightList = flightService.getIndexList(flight);
// getPageNum(count, pageBean);
ModelAndView mav = getPageCode(count, pageBean, request);
return mav;
}
@RequestMapping("/save")
@ResponseBody
public Object save(Flight flight, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
String fromTime = request.getParameter("fromTime");
String toTime = request.getParameter("toTime");
DateUtil dateUtil = new DateUtil();
flight.setFromtime(dateUtil.formatString(fromTime, format));
flight.setTotime(dateUtil.formatString(toTime, format));
Integer i = 0;
System.out.println("=========" + flight.getId());
try {
if (flight.getId() == null) {//用户添加
String fcTicketTotal = request.getParameter("fctickettotal");
String ecTicketTotal = request.getParameter("ectickettotal");
flight.setEcticketremain(Integer.parseInt(ecTicketTotal));
flight.setFcticketremain(Integer.parseInt(fcTicketTotal));
i = flightService.insertSelective(flight);
} else {//用户修改
i = flightService.updateByPrimaryKeySelective(flight);
}
// getPageNum(count, pageBean);
ModelAndView mav = getPageCode(count, pageBean, request);
return mav;
}
@RequestMapping("/save")
@ResponseBody
public Object save(Flight flight, HttpServletResponse response, HttpServletRequest request) {
JSONObject result = new JSONObject();
String fromTime = request.getParameter("fromTime");
String toTime = request.getParameter("toTime");
DateUtil dateUtil = new DateUtil();
flight.setFromtime(dateUtil.formatString(fromTime, format));
flight.setTotime(dateUtil.formatString(toTime, format));
Integer i = 0;
System.out.println("=========" + flight.getId());
try {
if (flight.getId() == null) {//用户添加
String fcTicketTotal = request.getParameter("fctickettotal");
String ecTicketTotal = request.getParameter("ectickettotal");
flight.setEcticketremain(Integer.parseInt(ecTicketTotal));
flight.setFcticketremain(Integer.parseInt(fcTicketTotal));
i = flightService.insertSelective(flight);
} else {//用户修改
i = flightService.updateByPrimaryKeySelective(flight);
}
System.out.println("====flight====updateOrAdd===" + i);
if (i > 0) {
flag = true;
}
result.put("success", flag);
ResponseUtil.write(response, result);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
ticketRemain = flight.getFcticketremain();
singlePrice = flight.getFcprice();
if(ticketRemain>0&&ticketRemain>num){
flight.setFcticketremain(ticketRemain-num);
}
}
int totalPrice = singlePrice*num;
Ticketorder order = new Ticketorder();
order.setOrderno("NO"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"));
order.setOrdertime(new Date());
order.setPrice(flight.getEcprice());
order.setSpacetype(pricetype==1?"经济舱":"头等舱");
order.setFlightid(flightId);
order.setUserid(user.getId());
order.setNum(num);
order.setTotalprice(totalPrice);
ticketOrderService.insert(order);
flightService.updateByPrimaryKey(flight);
List<Ticketorder> ticketOrderList = ticketOrderService.getTicketOrderByUserName(currentUser);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class, jsonDateValueProcessor);
JSONArray array = JSONArray.fromObject(ticketOrderList, jsonConfig);
mav.addObject("ticketOrderList",array);
mav.setViewName("main_userCenter");
request.setAttribute("mainPage","ticket/myTicketOrderList.jsp");
return mav;
}
}