package com.ars.controller;
import com.ars.entity.*;
import com.ars.service.AirportService;
import com.ars.service.BookingService;
import com.ars.service.FlightService;
import com.ars.service.TransactionService;
import com.ars.utils.FlightPresentation;
import com.ars.utils.FlightRecommendation;
import com.ars.utils.FlightSort;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpSession;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@Controller
public class flightController {
@Autowired
private AirportService airportService;
@Autowired
private FlightService flightService;
@Autowired
private BookingService bookService;
@Autowired
private TransactionService transactionService;
@Autowired
private FlightPresentation flightPresentation;
@Autowired
private FlightRecommendation flightRecommendation;
@RequestMapping(value="/flight", method = RequestMethod.GET)
public String getList(@RequestParam(value="departure") String dp, @RequestParam(value="arrival") String ap, @RequestParam(value="departure-time") String dt, HttpSession session, Model model){
ArrayList<FlightBean> flightList = new ArrayList<FlightBean>();
ArrayList<Airport> departureAirport = airportService.selectByName("%"+dp+"%");
ArrayList<Airport> arrivalAirport = airportService.selectByName("%"+ap+"%");
for(Airport d : departureAirport){
for(Airport a : arrivalAirport){
ArrayList<Flight> flight;
flight = flightService.selectBySearch(d.getId(), a.getId(), "%"+dt+"%");
if(flight != null && flight.size() != 0) {
flightList.addAll(flightPresentation.transfer(flight));
}
}
}
User user= (User)session.getAttribute("user");
if(flightList.size()!=0){
FlightSort flightSort = new FlightSort();
flightList = flightRecommendation.initRecommendation(flightList);
if(user != null){
flightList = flightRecommendation.cfRecommendation(flightList, user.getId());
}
flightList = flightSort.sortBySimilarity(flightList);
for(FlightBean flightBean : flightList){
System.out.println(flightBean.getSort());
}
}
session.setAttribute("flightList", flightList);
model.addAttribute("list", flightList);
return "list";
}
@RequestMapping(value="/flight/price/low", method = RequestMethod.GET)
public String getListSortByLowPrice(HttpSession session, Model model){
ArrayList<FlightBean> flightList = (ArrayList<FlightBean>)session.getAttribute("flightList");
FlightSort flightSort = new FlightSort();
flightList = flightSort.sortByLowPrice(flightList);
model.addAttribute("list", flightList);
return "list";
}
@RequestMapping(value="/flight/price/high", method = RequestMethod.GET)
public String getListSortByHighPrice(HttpSession session, Model model){
ArrayList<FlightBean> flightList = (ArrayList<FlightBean>)session.getAttribute("flightList");
FlightSort flightSort = new FlightSort();
flightList = flightSort.sortByHighPrice(flightList);
model.addAttribute("list", flightList);
return "list";
}
@RequestMapping(value="/flight/time", method = RequestMethod.GET)
public String getListSortByTime(HttpSession session, Model model){
ArrayList<FlightBean> flightList = (ArrayList<FlightBean>)session.getAttribute("flightList");
FlightSort flightSort = new FlightSort();
flightList = flightSort.sortByTime(flightList);
model.addAttribute("list", flightList);
return "list";
}
@RequestMapping(value="/flight/clazz", method = RequestMethod.GET)
public String getListEconomy(@RequestParam(value="clazz") String clazz, HttpSession session, Model model){
ArrayList<FlightBean> flightList = (ArrayList<FlightBean>)session.getAttribute("flightList");
model.addAttribute("clazz", clazz);
model.addAttribute("list", flightList);
return "list";
}
@RequestMapping(value="/flight/connect", method = RequestMethod.GET)
public String getListConnect(HttpSession session, Model model){
ArrayList<FlightBean> flightList = (ArrayList<FlightBean>)session.getAttribute("flightList");
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ArrayList<Flight> flights = new ArrayList<>();
String airportName1 = flightList.get(0).getDepartureAirport();
String airportName2 = flightList.get(0).getArrivalAirport();
Airport airport1 = airportService.selectByAirport(airportName1);
Airport airport2 = airportService.selectByAirport(airportName2);
double distance_d = Math.sqrt((airport1.getLatitude()-airport2.getLatitude())*(airport1.getLatitude()-airport2.getLatitude())+(airport1.getLongitude()-airport2.getLongitude())*(airport1.getLongitude()-airport2.getLongitude()));
ArrayList<Airport> airportList = airportService.selectAll();
ArrayList<Integer> airportId = new ArrayList();
for(Airport a : airportList){
double distance1 = Math.sqrt((airport1.getLatitude()-a.getLatitude())*(airport1.getLatitude()-a.getLatitude())+(airport1.getLongitude()-a.getLongitude())*(airport1.getLongitude()-a.getLongitude()));
double distance2 = Math.sqrt((a.getLatitude()-airport2.getLatitude())*(a.getLatitude()-airport2.getLatitude())+(a.getLongitude()-airport2.getLongitude())*(a.getLongitude()-airport2.getLongitude()));
if((distance1+distance2)<distance_d*2){
airportId.add(a.getId());
}
}
for(int a: airportId){
ArrayList<Flight> flight1 = flightService.selectBySearch(airport1.getId(), a, flightList.get(0).getDepartureDate());
ArrayList<Flight> flight2 = flightService.selectBySearch(a, airport2.getId(), flightList.get(0).getDepartureDate());
for(Flight f1 : flight1)
for(Flight f2 : flight2){
int t1 = Integer.parseInt(format.format(f1.getArrivalTime()).split(" ")[1].subSequence(0,2).toString());
int t2 = Integer.parseInt(format.format(f2.getDepartureTime()).split(" ")[1].subSequence(0,2).toString());
if(t2 > t1+1){
flights.add(f1);
flights.add(f2);
}
}
}
model.addAttribute("list", flightList);
model.addAttribute("list_connect", flightPresentation.transfer(flights));
return "list";
}
@RequestMapping(value="/flight/user", method = RequestMethod.GET)
public String getUserList(HttpSession session, Model model){
User user = (User)session.getAttribute("user");
ArrayList<Booking> bookingList = bookService.selectByUserId(user.getId());
ArrayList<Flight> flightList = new ArrayList<Flight>();
ArrayList<Transaction> transactionList = transactionService.selectByUserIdQueue(user.getId());
ArrayList<Flight> flightListQueue = new ArrayList<Flight>();
for(Booking booking : bookingList){
flightList.add(flightService.selectByPrimaryKey(booking.getFlightId()));
}
for(Transaction transaction : transactionList){
flightListQueue.add(flightService.selectByPrimaryKey(transaction.getFlightId()));
}
ArrayList<FlightBean> flightBean = flightPresentation.transfer(flightList);
ArrayList<FlightBean> flightBe
没有合适的资源?快使用搜索试试~ 我知道了~
基于SSM框架和推荐算法的机票预订系统.zip
共361个文件
class:70个
jpg:70个
jar:44个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 71 浏览量
2023-05-31
14:02:46
上传
评论
收藏 15.33MB ZIP 举报
温馨提示
基于ssm框架开发的java系统,可以作为计算机专业学生的毕业设计或者是课程设计,包含数据库文件
资源推荐
资源详情
资源评论
收起资源包目录
基于SSM框架和推荐算法的机票预订系统.zip (361个子文件)
flightController.class 9KB
flightController.class 9KB
FlightBean.class 5KB
FlightBean.class 5KB
FlightRecommendation.class 5KB
FlightRecommendation.class 5KB
bookingController.class 4KB
bookingController.class 4KB
FlightPresentation.class 4KB
FlightPresentation.class 4KB
Flight.class 3KB
Flight.class 3KB
Maths.class 3KB
Maths.class 3KB
userController.class 3KB
userController.class 3KB
UserFilter.class 2KB
UserFilter.class 2KB
FlightSort.class 2KB
FlightSort.class 2KB
Similarity.class 2KB
Similarity.class 2KB
BookingServiceImpl.class 2KB
BookingServiceImpl.class 2KB
Airport.class 2KB
Airport.class 2KB
AirportServiceImpl.class 1KB
AirportServiceImpl.class 1KB
Transaction.class 1KB
Transaction.class 1KB
TransactionServiceImpl.class 1KB
TransactionServiceImpl.class 1KB
FlightServiceImpl.class 1KB
FlightServiceImpl.class 1KB
Booking.class 1KB
Booking.class 1KB
UserServiceImpl.class 1KB
UserServiceImpl.class 1KB
BookingMapper.class 1KB
BookingMapper.class 1KB
Airline.class 976B
Airline.class 976B
User.class 970B
User.class 970B
AirlineServiceImpl.class 946B
AirlineServiceImpl.class 946B
BookingService.class 891B
BookingService.class 891B
FlightMapper.class 870B
FlightMapper.class 870B
AirportMapper.class 812B
AirportMapper.class 812B
TransactionMapper.class 702B
TransactionMapper.class 702B
UserMapper.class 655B
UserMapper.class 655B
AirportService.class 585B
AirportService.class 585B
FlightService.class 491B
FlightService.class 491B
Vector.class 482B
Vector.class 482B
AirlineMapper.class 476B
AirlineMapper.class 476B
TransactionService.class 448B
TransactionService.class 448B
UserService.class 354B
UserService.class 354B
AirlineService.class 249B
AirlineService.class 249B
style.css 363KB
style.css 363KB
jock-citypicker-2.0.css 2KB
jock-citypicker-2.0.css 2KB
fontawesome-webfont.eot 162KB
fontawesome-webfont.eot 162KB
ionicons.eot 118KB
ionicons.eot 118KB
preloader.gif 866B
preloader.gif 866B
ars.iml 80B
jackson-databind-2.7.1.jar 1.14MB
spring-context-4.2.5.RELEASE.jar 1.05MB
spring-core-4.2.5.RELEASE.jar 1.03MB
spring-webmvc-4.2.5.RELEASE.jar 856KB
mysql-connector-java-5.1.29.jar 856KB
spring-web-4.2.5.RELEASE.jar 749KB
spring-beans-4.2.5.RELEASE.jar 714KB
mybatis-3.2.4.jar 699KB
spring-test-4.2.5.RELEASE.jar 549KB
commons-collections-3.1.jar 546KB
spring-jdbc-4.2.5.RELEASE.jar 414KB
jstl-1.2.jar 405KB
standard-1.1.2.jar 384KB
spring-aop-4.2.5.RELEASE.jar 361KB
log4j-1.2.12.jar 350KB
commons-httpclient-3.1.jar 298KB
spring-tx-4.2.5.RELEASE.jar 259KB
commons-codec-1.9.jar 258KB
spring-expression-4.2.5.RELEASE.jar 257KB
共 361 条
- 1
- 2
- 3
- 4
资源评论
我慢慢地也过来了
- 粉丝: 5924
- 资源: 3776
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 111111111111111111
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
- 基于ultralytics-yolov8, 将其检测/分类/分割/姿态等任务移植到rk3588上
- Screenshot_2024-04-30-21-47-24-26.jpg
- 基于matlab实现波束形成,包括线阵、平面阵和圆阵
- Python自动生成excel周期报告源码
- 基于matlab实现DOA 估计和自适应波束形成.rar
- 一个基于yolov8的火灾检测部署
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功