项目意义:
改革开放以来, 我国的旅游业发展迅速,但比较而言,我国旅游业发展的广度和深度都远远不能满足经济发展和人民生活水平提高的需要。 随着市场经济的发展和人民收入水平的进一步提高, 人民对旅游消费的需求将进一步上升, 目前旅游业在国民经济中的地位和作用越来越重要。 但我国旅游产业仍然基础薄弱, 管理手段滞后,信息化程度较低,企业效益较差;旅游行政管理部门的管理方式落后,缺乏信息化管理手段。面对困难和挑战,我国旅游业必须转变观念,创新思维,以信息化建设为突破口和新手段,整合各种资源,从而实现整个行业的新跨越。
项目意义:
本文拟设计并实现的爱游旅行平台前台+后台信息系统, 能够改变旅游企业的传统经营模式,提高各级管理部门的工作效率和管理水平,降低工作成本,加大宣传力度,提高信息实效性;能够满足游客的个性化需求,提高旅游服务质量。 旅游管理的网络化,将会进一步壮大旅游支柱产业, 提升旅游产业整体信息化水平,优化产业结构和资源配置,完善产业链,进而带动众多相关产业发展,拉动内需,扩大就业,对经济发展起到积极的推动作用,从而提高整个旅游产业素质
主要技术:spring、 springmvc、 springboot、 md5 、mybatis 、 jquery 、layui、 、bootstarp.js tomcat、富文本编译器、拦截器等
主要功能:网站首页展示、用户登录、用户注册、旅游线路、关注线路、旅游攻略、酒店预订、我发布的旅游攻略、景点预订、关键字搜索酒店和景点信息等主要功能:
主要功能介绍:
系统前台首页:
查看首页一些基本信息和功能操作、比如旅游线路、旅游攻略、酒店预订以及模糊搜索和个人信息等操作
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
* @return
*/
@RequestMapping(value = "/index")
public String success(){
return "admin/index";
}
/**
* 用户列表
* @return
*/
@RequestMapping(value = "/userList")
public String user(){
return "admin/usermanage/userList";
}
@RequestMapping(value = "/echars")
public String analysis(){
return "admin/echars/console";
}
/**
* 管理员退出登录
* @return
*/
@RequestMapping(value = "/logout")
public Result findById(@PathVariable Long id){
return new Result(true,StatusCode.OK,"查询成功",adminService.findById(id));
}
/**
* 分页+多条件查询
* @param searchMap 查询条件封装
* @param page 页码
* @param size 页大小
* @return 分页结果
*/
@ResponseBody
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
Page<Admin> pageList = adminService.findSearch(searchMap, page, size);
return new Result(true,StatusCode.OK,"查询成功", new PageResult<Admin>(pageList.getTotalElements(), pageList.getContent()) );
}
public Result updateAttractionsStatus(String id) {
return systemService.updateAttractionsStatus(id);
}
@RequestMapping("/saveAttractions")
@ResponseBody
public Result saveAttractions(Attractions attractions) {
return systemService.saveAttractions(attractions);
}
@RequestMapping("/travelRouteListUI")
public String travelRouteListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<TravelRoute> page = systemService.getTravelRoutePage(pageable);
model.addAttribute("page", page);
return "system/route/list";
}
@RequestMapping("/oneAttr")
public String One_attr(Model model,Long id){
Scenic scenic=scenicService.findById(id);
model.addAttribute("oneAttr",scenic);
return "page/product";
}
/**
* 景点模糊查询分页
* @param model
* @param start
* @param limit
* @param search_key
* @return
*/
*/
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
adminService.deleteById(id);
return new Result(true,StatusCode.OK,"删除成功");
}
/**
* 管理员跳转
* @return
*/
@RequestMapping(value = "/adminlogin")
public String adminlogin()
{
return "admin/login/login";
}
/**
* admin登录
* @param loginMap
}
@RequestMapping("/getTravelRouteById")
@ResponseBody
public Result getTravelRouteById(String id) {
return ResultGenerator.genSuccessResult(systemService.getTravelRouteById(id));
}
@RequestMapping("/updateTravelRouteStatus")
@ResponseBody
public Result updateTravelRouteStatus(String id) {
return systemService.updateTravelRouteStatus(id);
@Autowired
private HotelDao hotelDao;
/**
*查询星级
* @return
*/
@ResponseBody
@RequestMapping(value = "/star",method = RequestMethod.POST)
public Result judgeStar(String id,String start){
System.out.println(id+"===="+start);
Optional<Scenic> s = scenicDao.findById(id);
if (s.isPresent()){
Scenic scenic = s.get();
admins.setPassword(newPassd);
adminService.update(admins);
return new Result(true,StatusCode.OK,"成功");
}else {
return new Result(false,StatusCode.ERROR,"更新失败");
}
}
}
酒店信息控制层:
/**
* 控制器层
*
*/
@Controller
@CrossOrigin
@RequestMapping("/saveHotel")
@ResponseBody
public Result saveHotel(Hotel hotel) {
return systemService.saveHotel(hotel);
}
@RequestMapping("/updateStatus")
@ResponseBody
public Result updateStatus(String id) {
return systemService.updateStatus(id);
}
@RequestMapping("/getHotelById")
@ResponseBody
public Result getHotelById(String id) {
return ResultGenerator.genSuccessResult(systemService.getHotelById(id));
}
@RequestMapping("/attractionsListUI")
public String attractionsListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<Attractions> page = systemService.getAttractionsPage(pageable);
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
ROW_FORMAT=COMPACT
;
管理员控制层:
/**
* 控制器层
*/
@Controller
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AdminService adminService;
@Autowired
BCryptPasswordEncoder encoder;
/**
* 查询全部数据
* @return
@RequestMapping(value = "/passwd")
public Result passwd(HttpSession session,String passwd,String oldpad){
Admin admindmin= (Admin) session.getAttribute("admin");
Admin admins=adminService.findById(admindmin.getId());
boolean old=encoder.matches(oldpad,admins.getPassword());
if (old){
String newPassd=encoder.encode(passwd);
admins.setPassword(newPassd);
adminService.update(admins);
return new Result(true,StatusCode.OK,"成功");
}else {
return new Result(false,StatusCode.ERROR,"更新失败");
}
}
}
酒店信息控制层:
/**
* 控制器层
*
*/
package hue.edu.xiong.volunteer_travel.controller;
import hue.edu.xiong.volunteer_travel.core.Result;
import hue.edu.xiong.volunteer_travel.core.ResultGenerator;
import hue.edu.xiong.volunteer_travel.model.*;
import hue.edu.xiong.volunteer_travel.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.web.PageableDefault;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
model.addAttribute("scenics",scenics);
}
return "page/hotelDetail::table_refresh";
}
}
景点星级控制层:
/**
* 景点星级控制层
*/
@Controller
@CrossOrigin
@RequestMapping("/travel")
public class RecomTravelController {
@Autowired
private ScenicService scenicService;
@Autowired
private ScenicDao scenicDao;
@Autowired
* @return
*/
@ResponseBody
@RequestMapping(value="/login",method= RequestMethod.POST)
public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){
Admin admin = adminService.finbyNameAndPassword(loginMap.get("name"),loginMap.get("password"));
if (admin!=null){
request.getSession().setAttribute("admin",admin);
Map map=new HashMap();
map.put("name",admin.getName());
return new Result(true,StatusCode.OK,"登录成功");
}else {
return new Result(false,StatusCode.ERROR,"账号密码错误");
}
}
request.getSession().setAttribute("admin",admin);
Map map=new HashMap();
map.put("name",admin.getName());
return new Result(true,StatusCode.OK,"登录成功");
}else {
return new Result(false,StatusCode.ERROR,"账号密码错误");
}
}
/**
* 管理员登录成功
* @return
*/
@RequestMapping(value = "/index")
public String success(){
return "admin/index";
}
/**
* 用户列表
* @return
@RequestMapping("/system")
public class SystemController {
@Autowired
private SystemService systemService;
@RequestMapping("")
public String loginUI() {
return "system/login/login";
}
@RequestMapping("/login")
@ResponseBody
public Result login(SysUser sysUser, HttpServletResponse response) {
return systemService.login(sysUser,response);
}
@RequestMapping("/userListUI")
public String userListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<User> page = systemService.getUserPage(pageable);
model.addAttribute("page",page);
private HotelDao hotelDao;
/**
*查询星级
* @return
*/
@ResponseBody
@RequestMapping(value = "/star",method = RequestMethod.POST)
public Result judgeStar(String id,String start){
System.out.println(id+"===="+start);
Optional<Scenic> s = scenicDao.findById(id);
if (s.isPresent()){
Scenic scenic = s.get();
int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStart()))/2;
scenic.setStart(valuestar);
scenicDao.save(scenic);
System.out.println("数据不为空!");
return new Result(true,1,"","");
}else {
System.out.println("数据为空!");
return new Result(false,0,"","");
}
@RequestMapping("/local")
public String localRefresh(Model model,Long id) {
Hotel hotel=hotelService.findById(id);
// Sort sort=new Sort(Sort.Direction.DESC,"star");
System.out.println("1111"+hotel.toString());
List<Scenic> scenics=scenicService.findByCountryLike(hotel.getAddr());
System.out.println("2222"+scenics.toString());
Collections.sort(scenics, new Comparator<Scenic>() {
@Override
public int compare(Scenic o1, Scenic o2) {
if (o1.getStart()<o2.getStart()){
return 2;
}
* 分页+多条件查询
* @param searchMap 查询条件封装
* @param page 页码
* @param size 页大小
* @return 分页结果
*/
@ResponseBody
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
Page<Hotel> pageList = hotelService.findSearch(searchMap, page, size);
return new Result(true,StatusCode.OK,"查询成功", new PageResult<Hotel>(pageList.getTotalElements(), pageList.getContent()) );
}
/**
* 根据条件查询
* @param searchMap
* @return
*/
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
@RequestMapping("/oneAttr")
public String One_attr(Model model, Long id){
Hotel scenic=hotelService.findById(id);
model.addAttribute("oneAttr",scenic);
return "page/hotelDetail";
}
@RequestMapping("/local")
public String localRefresh(Model model,Long id) {
Hotel hotel=hotelService.findById(id);
// Sort sort=new Sort(Sort.Direction.DESC,"star");
System.out.println("1111"+hotel.toString());
List<Scenic> scenics=scenicService.findByCountryLike(hotel.getAddr());
System.out.println("2222"+scenics.toString());
Collections.sort(scenics, new Comparator<Scenic>() {
@Override
public int compare(Scenic o1, Scenic o2) {
if (o1.getStart()<o2.getStart()){
return 2;
}
if (o1.getStart().equals(o2.getStart()) ){
return ResultGenerator.genSuccessResult(systemService.getTravelRouteById(id));
}
@RequestMapping("/updateTravelRouteStatus")
@ResponseBody
public Result updateTravelRouteStatus(String id) {
return systemService.updateTravelRouteStatus(id);
}
@RequestMapping("/saveTravelRoute")
@ResponseBody
public Result saveTravelRoute(TravelRoute travelRoute) {
return systemService.saveTravelRoute(travelRoute);
}
@RequestMapping("/travelStrategyListUI")
public String travelStrategyListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<TravelStrategy> page = systemService.getTravelStrategyPage(pageable);
model.addAttribute("page", page);
return "system/strategy/list";
}
@RequestMapping("/updateTravelStrategyStatus")
@ResponseBody
public Result updateTravelStrategyStatus(String id) {
return systemService.updateTravelStrategyStatus(id);
}
@RequestMapping("/saveTravelStrategy")
@ResponseBody
public Result saveTravelStrategy(HttpServletRequest request,TravelStrategy travelStrategy) {
return systemService.saveTravelStrategy(request,travelStrategy);
}
}
酒店和景点预订:
}
@RequestMapping("/getTravelRouteById")
@ResponseBody
public Result getTravelRouteById(String id) {
return ResultGenerator.genSuccessResult(systemService.getTravelRouteById(id));
}
@RequestMapping("/updateTravelRouteStatus")
@ResponseBody
public Result updateTravelRouteStatus(String id) {
return systemService.updateTravelRouteStatus(id);
}
@RequestMapping("/saveTravelRoute")
@ResponseBody
public Result saveTravelRoute(TravelRoute travelRoute) {
return systemService.saveTravelRoute(travelRoute);
}
@RequestMapping("/travelStrategyListUI")
public String travelStrategyListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
@RequestMapping("/travel")
public class RecomTravelController {
@Autowired
private ScenicService scenicService;
@Autowired
private ScenicDao scenicDao;
@Autowired
private HotelService hotelService;
@Autowired
private HotelDao hotelDao;
/**
*查询星级
* @return
*/
@ResponseBody
@RequestMapping(value = "/star",method = RequestMethod.POST)
public Result judgeStar(String id,String start){
System.out.println(id+"===="+start);
Optional<Scenic> s = scenicDao.findById(id);
if (s.isPresent()){
Scenic scenic = s.get();
int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStart()))/2;
scenic.setStart(valuestar);
@ResponseBody
public Result saveHotel(Hotel hotel) {
return systemService.saveHotel(hotel);
}
@RequestMapping("/updateStatus")
@ResponseBody
public Result updateStatus(String id) {
return systemService.updateStatus(id);
}
@RequestMapping("/getHotelById")
@ResponseBody
public Result getHotelById(String id) {
return ResultGenerator.genSuccessResult(systemService.getHotelById(id));
systemService.logout(request,response);
return "redirect:/system";
}
@RequestMapping("/hotelListUI")
public String hotelListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<Hotel> page = systemService.getHotelPage(pageable);
model.addAttribute("page", page);
return "system/hotel/list";
}
@RequestMapping("/saveHotel")
@ResponseBody
public Result saveHotel(Hotel hotel) {
return systemService.saveHotel(hotel);
}
@RequestMapping("/updateStatus")
@ResponseBody
public Result updateStatus(String id) {
return systemService.updateStatus(id);
}
@RequestMapping("/getHotelById")
@RequestMapping("/travelRouteListUI")
public String travelRouteListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<TravelRoute> page = systemService.getTravelRoutePage(pageable);
model.addAttribute("page", page);
return "system/route/list";
}
@RequestMapping("/getTravelRouteById")
@ResponseBody
public Result getTravelRouteById(String id) {
return ResultGenerator.genSuccessResult(systemService.getTravelRouteById(id));
}
}
@RequestMapping("/travelStrategyListUI")
public String travelStrategyListUI(Model model, @PageableDefault(size = 10) Pageable pageable) {
Page<TravelStrategy> page = systemService.getTravelStrategyPage(pageable);
model.addAttribute("page", page);
return "system/strategy/list";
}
@RequestMapping("/getTravelStrategyById")
@ResponseBody
public Result getTravelStrategyById(String id) {
return ResultGenerator.genSuccessResult(systemService.getTravelStrategyById(id));
}
@RequestMapping("/updateTravelStrategyStatus")
@ResponseBody
public Result updateTravelStrategyStatus(String id) {
return systemService.updateTravelStrategyStatus(id);
}