Java项目:酒店管理系统(java+SSM+jsp+mysql+maven)——计算机毕业设计

这是一个基于Java、SSM框架和Maven的酒店管理系统毕业设计,包含管理员和用户功能,如酒店预订、管理、员工管理等。项目运行需Jdk1.8、Tomcat8.5和MySQL环境,技术栈包括JSP、Spring、SpringMVC、MyBatis等。

一、项目简述
功能包括(管理员和用户角色): 酒店预订,酒店管理,员工管理,入住原理,订单管理, 楼层管理,退房管理,营业额报表等等。

二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
管理员控制器层:/**

  • 控制器层
  • @author Administrator

*/
@Controller
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {

@Autowired
private AdminService adminService;

@Autowired
BCryptPasswordEncoder encoder;

/**
 * 查询全部数据
 * @return
 */
@ResponseBody
@RequestMapping(method= RequestMethod.GET)
public Result findAll(){
	return new Result(true, StatusCode.OK,"查询成功",adminService.findAll());
}

/**
 * 根据ID查询
 * @param id ID
 * @return
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.GET)
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()) );
}

/**
 * 根据条件查询
 * @param searchMap
 * @return
 */
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
    return new Result(true,StatusCode.OK,"查询成功",adminService.findSearch(searchMap));
}

/**
 * 增加
 * @param admin
 */
@ResponseBody
@RequestMapping(method=RequestMethod.POST)
public Result add(@RequestBody Admin admin  ){
	adminService.add(admin);
	return new Result(true,StatusCode.OK,"增加成功");
}

/**
 * 修改
 * @param admin
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.PUT)
public Result update(@RequestBody Admin admin, @PathVariable Long id ){
	admin.setId(id);
	adminService.update(admin);		
	return new Result(true,StatusCode.OK,"修改成功");
}

/**
 * 删除
 * @param id
 */
@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
 * @param request
 * @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,"账号密码错误");
	}
}

/**
 * 管理员登录成功
 * @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 String logout(HttpSession session){
	session.removeAttribute("admin");
	return "admin/login/login";
}


/**
 * 管理员修改密码
 * @return
 */
@ResponseBody
@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,"更新失败");
	}
}

轮播内容控制器层:/**

  • 轮播内容控制器层
  • @author Administrator

*/
@Controller
@CrossOrigin
@RequestMapping("/carousel")
public class CarouselController {

@Autowired
private CarouselService carouselService;


/**
 * 查询全部数据
 * @return
 */
@ResponseBody
@RequestMapping(value = "/list",method= RequestMethod.GET)
public Result findAll(){
	List<Carousel> all = carouselService.findAll();
	return new Result(true, StatusCode.OK,"查询成功",all,all.size());
}

/**
 * 根据ID查询
 * @param id ID
 * @return
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.GET)
public Result findById(@PathVariable Long id){
	return new Result(true,StatusCode.OK,"查询成功",carouselService.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<Carousel> pageList = carouselService.findSearch(searchMap, page, size);
	return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Carousel>(pageList.getTotalElements(), pageList.getContent()) );
}

/**
 * 根据条件查询
 * @param searchMap
 * @return
 */
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
    return new Result(true,StatusCode.OK,"查询成功",carouselService.findSearch(searchMap));
}

/**
 * 轮播内容添加
 * @param carousel
 */
@ResponseBody
@RequestMapping(value = "/add",method=RequestMethod.POST)
public Result add(Carousel carousel){
	if(StringUtils.isEmpty(carousel.getTitle())){
		return new Result(false,StatusCode.ERROR,"请填写第一行内容");
	}
	if(StringUtils.isEmpty(carousel.getScenictime())){
		return new Result(false,StatusCode.ERROR,"请填写第二行内容");
	}
	if(StringUtils.isEmpty(carousel.getComment())){
		return new Result(false,StatusCode.ERROR,"请填写第三行内容");
	}
	if(carouselService.add(carousel)==null){
		return new Result(false,StatusCode.ERROR,"轮播信息添加失败");
	}
	return new Result(true,StatusCode.OK,"添加成功");
}

/**
 * 轮播内容修改
 * @param carousel
 */
@ResponseBody
@RequestMapping(value="/edit",method= RequestMethod.PUT)
public Result update(Carousel carousel){
	if(StringUtils.isEmpty(carousel.getTitle())){
		return new Result(false,StatusCode.ERROR,"请填写第一行内容");
	}
	if(StringUtils.isEmpty(carousel.getScenictime())){
		return new Result(false,StatusCode.ERROR,"请填写第二行内容");
	}
	if(StringUtils.isEmpty(carousel.getComment())){
		return new Result(false,StatusCode.ERROR,"请填写第三行内容");
	}
if(carouselService.update(carousel)==null){
	return new Result(false,StatusCode.ERROR,"轮播信息修改成功!");
}
	return new Result(true,StatusCode.OK,"修改成功");
}

/**
 * 删除
 * @param id
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable Long id ){
	try{
		carouselService.deleteById(id);
	}catch (Exception e){
		e.printStackTrace();
		new Result(false,StatusCode.ERROR,"删除失败");
	}
	return new Result(true,StatusCode.OK,"删除成功");
}

/**
 * 后台轮播列表
 * @return
 */
@RequestMapping(value = "/carouselList")
public String carouselList(){
	return "admin/carouselmanage/carouselList";
}

景点控制器层:/**

  • 景点控制器层

*/
@Controller
@CrossOrigin
@RequestMapping("/scenic")
public class ScenicController {

@Autowired
private ScenicService scenicService;


/**
 * 查询全部数据
 * @return
 */
@ResponseBody
@RequestMapping(value = "list",method= RequestMethod.GET)
public Result findAll(){
	List<Scenic> all = scenicService.findAll();
	return new Result(true, StatusCode.OK,"查询成功",all,all.size());
}

/**
 * 根据ID查询
 * @param id ID
 * @return
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.GET)
public Result findById(@PathVariable Long id){
	return new Result(true,StatusCode.OK,"查询成功",scenicService.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<Scenic> pageList = scenicService.findSearch(searchMap, page, size);
	return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Scenic>(pageList.getTotalElements(), pageList.getContent()) );
}


/**
 * 根据条件查询
 * @param searchMap
 * @return
 */
@ResponseBody
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
    return new Result(true,StatusCode.OK,"查询成功",scenicService.findSearch(searchMap));
}

/**
 * 景点添加操作
 * @param scenic
 */
@ResponseBody
@RequestMapping(method=RequestMethod.POST)
public Result add(@RequestBody Scenic scenic){
	if(StringUtils.isEmpty(scenic.getName())){
		return new Result(false,StatusCode.ERROR,"请填写景点名称");
	}
	if(StringUtils.isEmpty(scenic.getContry())){
		return new Result(false,StatusCode.ERROR,"请填写景点所在地");
	}
	if(StringUtils.isEmpty(scenic.getComment())){
		return new Result(false,StatusCode.ERROR,"请填写景点概述");
	}
	if(StringUtils.isEmpty(scenic.getMiaoshu())){
		return new Result(false,StatusCode.ERROR,"请填写详细描述");
	}
	scenic.setCommentCount(0);
	scenic.setStart(0);
	if(scenicService.add(scenic)==null){
		return new Result(false,StatusCode.ERROR,"景点添加失败");
	}
	return new Result(true,StatusCode.OK,"景点添加成功");
}

/**
 * 景点修改操作
 * @param scenic
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.PUT)
public Result update(@RequestBody Scenic scenic, @PathVariable Long id ){
	if(StringUtils.isEmpty(scenic.getName())){
		return new Result(false,StatusCode.ERROR,"请填写景点名称");
	}
	if(StringUtils.isEmpty(scenic.getContry())){
		return new Result(false,StatusCode.ERROR,"请填写景点所在地");
	}
	if(StringUtils.isEmpty(scenic.getComment())){
		return new Result(false,StatusCode.ERROR,"请填写景点概述");
	}
	if(StringUtils.isEmpty(scenic.getMiaoshu())){
		return new Result(false,StatusCode.ERROR,"请填写详细描述");
	}
	Scenic scenic1ById = scenicService.findById(id);
	if(scenic1ById==null){
		return new Result(false,StatusCode.ERROR,"该景点不存在");
	}
	BeanUtils.copyProperties(scenic,scenic1ById,"id","startdate","img","commentCount");
	if(scenicService.update(scenic1ById)==null){
		return new Result(false,StatusCode.ERROR,"景点修改失败");
	}
	return new Result(true,StatusCode.OK,"修改成功");
}

/**
 * 删除
 * @param id
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
	scenicService.deleteById(id);
	return new Result(true,StatusCode.OK,"删除成功");
}

@RequestMapping(value = "/scenicList")
public String scenicList(){
	return "admin/scenicmanage/scenicList";
}

@RequestMapping(value = "/scenicAdd")
public String scenicAdd(){
	return "admin/scenicmanage/scenicAdd";
}

用户控制器层:/**

  • 控制器层
  • @author Administrator

*/
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {

@Autowired
private UserService userService;

@Autowired
private RedisTemplate redisTemplate;

@Autowired
private HttpServletRequest request;

@Autowired
BCryptPasswordEncoder encoder;



/**
 * 查询全部数据
 *
 * @return
 */
@RequestMapping(value = "userList",method = RequestMethod.GET)
public Result findAll() {
	List<User> all = userService.findAll();
	return new Result(true, StatusCode.OK, "查询成功",all,all.size());
}

/**
 * 根据ID查询
 *
 * @param id ID
 * @return
 */
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public Result findById(@PathVariable Long id) {
    return new Result(true, StatusCode.OK, "查询成功", userService.findById(id));
}


/**
 * 分页+多条件查询
 * @param searchMap 查询条件封装
 * @param page 页码
 * @param size 页大小
 * @return 分页结果
 */
@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)
public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){
	Page<User> pageList = userService.findSearch(searchMap, page, size);
	return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<User>(pageList.getTotalElements(), pageList.getContent()) );
}

/**
 * 根据条件查询
 * @param searchMap
 * @return
 */
@RequestMapping(value="/search",method = RequestMethod.POST)
public Result findSearch( @RequestBody Map searchMap){
    return new Result(true,StatusCode.OK,"查询成功",userService.findSearch(searchMap));
}

/**
 * 增加
 * @param user
 */
@RequestMapping(method=RequestMethod.POST)
public Result add(@RequestBody User user  ){
	userService.add(user);
	return new Result(true,StatusCode.OK,"增加成功");
}

/**
 * 修改
 * @param user
 */
@ResponseBody
@RequestMapping(value="/{id}",method= RequestMethod.PUT)
public Result update(User user, @PathVariable Long id ){
	User oldUser=userService.findById(id);
	user.setId(id);
	user.setPassword(oldUser.getPassword());
	userService.update(user);
	return new Result(true,StatusCode.OK,"修改成功");
}

/**
 * 修改
 * @param user
 */
@RequestMapping(value="/change",method= RequestMethod.POST,consumes = "application/json")
public Result update(@RequestBody User user, HttpSession session){
	User us= (User) session.getAttribute("user");
	user.setId(us.getId());
	user.setPassword(us.getPassword());
	userService.update(user);
	return new Result(true,StatusCode.OK,"修改成功");
}
/**
 * 删除
 * @param id
 */
@RequestMapping(value="/{id}",method= RequestMethod.DELETE)
public Result delete(@PathVariable String id ){
	userService.deleteById(id);
	return new Result(true,StatusCode.OK,"删除成功");
}
/**
 * 用户注册
 * @param code
 * @param user
 * @return
 */
@ResponseBody
@RequestMapping(value = "/register/",method = RequestMethod.POST)
public Result regist(@RequestParam(name = "code") String code,User user,HttpServletRequest request){
	String sCode = (String) request.getSession().getAttribute("user_register_email_code");
	if(!sCode.equalsIgnoreCase(code)){
		return new Result(false,StatusCode.ERROR,"验证码错误!");
	}
		userService.add(user);
		return new Result(true,StatusCode.OK,"注册成功");
}

/**
 *判断账号是否存在
 * @param user
 * @return
 */
@RequestMapping(value = "/checkPhone",method = RequestMethod.POST)
@ResponseBody
public Result checkPhone(User user){
	String phone = user.getMobile();
	if(!StringUtil.isMobile(phone)){
		return new Result(false,StatusCode.ERROR,"请填写正确的手机号!");
	}
	User userphone= userService.findByMobile(phone);
	if (userphone == null){
		return new Result(true,StatusCode.OK,"该手机号可以注册");
	}
	return new Result(false,StatusCode.ERROR,"该手机号已经被注册");
}


/**
 * 邮箱验证
 * @param user
 * @return
 */
@RequestMapping(value = "/email",method = RequestMethod.POST)
@ResponseBody
public Result findemail(User user){
	String email = user.getEmail();
	if(!StringUtil.emailFormat(email)){
		return new Result(true,StatusCode.ERROR,"请填写正确的邮箱格式");
	}
	User useremail= userService.findByEmail(email);
	if (useremail == null){
		return new Result(true,StatusCode.OK,"该邮箱可以注册");
	}
	return new Result(false,StatusCode.ERROR,"该邮箱已经被注册");
}





/**
 * 用户登录
 * @param loginMap
 * @return
 */
@ResponseBody
@RequestMapping(value="/login",method=RequestMethod.POST)
public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){
	  String mobile = loginMap.get("login");
	if (StringUtil.isMobile(mobile)){
		User user = userService.findByMobileAndPassword(loginMap.get("login"),loginMap.get("password"));
		if(user!=null){
			request.getSession().setAttribute("user",user);
			Map map=new HashMap();
			return new Result(true,StatusCode.OK,"登陆成功");
		}else{
			return new Result(false,StatusCode.LOGINERROR,"用户名或密码错误");
		}
	}else {
		User user =  userService.findByNameAndPassword(loginMap.get("login"),loginMap.get("password"));
		if(user!=null){
			request.getSession().setAttribute("user",user);
			Map map=new HashMap();
			map.put("name",user.getName());//姓名
			return new Result(true,StatusCode.OK,"登陆成功",map);

		}else{
			return new Result(false,StatusCode.LOGINERROR,"用户名或密码错误");
		}
	}
}


/**
 *  用户注销
 * @param request
 * @param response
 * @throws IOException
 */
@RequestMapping(value="/logout",method=RequestMethod.GET)
public void logout(HttpServletRequest request,HttpServletResponse response) throws IOException {
    request.getSession().setAttribute("user", null);
    response.sendRedirect(request.getContextPath() + "/dist/view");

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值