作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
项目介绍
本系统分前后台,分为管理员与普通用户两种角色;
管理员角色包含以下功能:
管理员登录,用户管理,旅游路线管理,旅游景点管理,酒店管理,旅游攻略管理,车票管理,订单管理,数据分析等功能。
用户角色包含以下功能:
用户注册,用户登录,旅游路线预定,旅游景区预定,餐饮住宿,车票预定,旅游保险预定,旅游攻略,我的订单查看,个人资料管理等功能。
环境需要
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版本;
6.是否Maven项目:是;
技术栈
1. 后端:SpringBoot
2. 前端:HTML+Thymeleaf+LayUI+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 图片路径修改:将项目中application.yml配置文件中path修改为本地项目中static的真实路径;
5. 运行项目,前台地址:http://localhost:8080/index
账号:user 密码:123456
后台地址:http://localhost:8080/login
账号:root 密码:123456
运行截图
前台-普通用户角色
管理端
代码相关
酒店预定管理系统
@Controller
public class HotelPortalController extends BaseController {
@Autowired
HotelService hotelService;
@Autowired
UserService userService;
@Autowired
OrderService orderService;
@RequestMapping("/hotelAccommodation")
public ModelAndView hotelAccommodation(PageParam pageParam){
ModelAndView mv = this.getModeAndView();
if(pageParam.getPageNumber()<1){
pageParam =new PageParam();
long count = 0;
try {
count = hotelService.count();
} catch (Exception e) {
e.printStackTrace();
}
pageParam.setCount(count);
if(count<=7){
pageParam.setSize(1);
}else{
pageParam.setSize(count%7==0?count/7:count/7+1);
}
pageParam.setPageNumber(1);
pageParam.setPageSize(7);
}
mv.addObject("pageData", hotelService.findByPage(pageParam.getPageNumber(),pageParam.getPageSize()));
mv.addObject("pageParam",pageParam);
mv.setViewName("portal/hotelAccommodation");
return mv;
}
@RequestMapping("/hotelPortalView")
public ModelAndView hotelPortalView(String id){
ModelAndView mv = this.getModeAndView();
try {
mv.addObject("entity",hotelService.findById(id));
}catch (Exception e){
e.printStackTrace();
}
mv.setViewName("portal/hotelAccommodationView");
return mv;
}
@RequestMapping("/goReserve")
public ModelAndView goReserve(String id,HttpSession httpSession){
ModelAndView mv = this.getModeAndView();
try {
mv.addObject("entity",hotelService.findById(id));
mv.addObject("user",userService.findByUserName(httpSession.getAttribute("userName").toString()));
}catch (Exception e){
e.printStackTrace();
}
mv.setViewName("portal/reserve");
return mv;
}
@RequestMapping("/hotelCreatOrder")
public ModelAndView hotelCreatOrder(String hotelId, HttpServletRequest request,HttpSession httpSession){
ModelAndView mv = this.getModeAndView();
try {
Hotel hotel = hotelService.findById(hotelId);
User user = userService.findByUserName(httpSession.getAttribute("userName").toString());
Order order = new Order();
this.bindValidateRequestEntity(request,order);
order.setId(Tools.getUUID());
order.setUserId(user.getId());
if(Tools.isEmpty(order.getUserName())){
order.setUserName(user.getUserName());
}
if(Tools.isEmpty(order.getLinkTel())){
order.setLinkTel(user.getLinkTel());
}
if(Tools.isEmpty(order.getIcCode())){
order.setIcCode(user.getIcCode());
}
order.setProductId(hotel.getId());
order.setImgUrl(hotel.getImgUrl());
order.setProductName(hotel.getHotelName());
order.setProductType(2);
order.setState(0);
order.setOrderCode("O"+Tools.getUUID().substring(0,6).toUpperCase());
order.setOrderTime(Tools.date2Str(new Date(),"yyyy-MM-dd"));
orderService.save(order);
mv.addObject("entity",hotel);
mv.addObject("CreatSuccess",true);
}catch (Exception e){
e.printStackTrace();
}
mv.setViewName("portal/hotelAccommodationView");
return mv;
}
}
订单管理控制器
@Controller
public class OrderPortalController extends BaseController {
@Autowired
UserService userService;
@Autowired
OrderService orderService;
@RequestMapping("/myOrder")
public ModelAndView myOrder(HttpSession httpSession,
@RequestParam(value = "pageNum", required = false, defaultValue = "1") int pageNum,
@RequestParam(value = "pageSize", required = false, defaultValue = "7") int pageSize
) throws Exception {
ModelAndView mv = this.getModeAndView();
User user = userService.findByUserName(httpSession.getAttribute("userName").toString());
PageParam pageParam = orderService.findByPageByUserId(pageNum,pageSize,user.getId());
mv.addObject("pageData", pageParam.getResult());
mv.addObject("pageParam",pageParam);
mv.setViewName("portal/myOrder");
return mv;
}
@RequestMapping("/payOrder")
public String payOrder(String id) throws Exception {
Order order = orderService.findById(id);
order.setState(1);
orderService.update(order);
return REDIRECT+"/myOrder";
}
@RequestMapping("/deleteOrder")
public String deleteOrder(String id) throws Exception {
Order order = orderService.findById(id);
order.setState(2);
orderService.update(order);
return REDIRECT+"/myOrder";
}
}
分页控制器
public class PageParam<T> {
//当前页面
private int pageNumber;
//一页多少条数据
private int pageSize;
//多少页
private long size;
//多少条数据
private long count;
private int offset;
private Sort sort;
private List<T> result;
public PageParam() {
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getSize() {
return size;
}
public void setSize(long size) {
this.size = size;
}
public long getCount() {
return count;
}
public void setCount(long count) {
this.count = count;
}
public int getOffset() {
return offset;
}
public void setOffset(int offset) {
this.offset = offset;
}
public Sort getSort() {
return sort;
}
public void setSort(Sort sort) {
this.sort = sort;
}
public List<T> getResult() {
return result;
}
public void setResult(List<T> result) {
this.result = result;
}
}
如果也想学习本系统,下面领取。回复:060springboot