基于javaweb+mysql的ssm+maven旅游管理系统(前台、后台)(java+jsp+ssm+maven+mysql)

基于javaweb+mysql的ssm+maven旅游管理系统(前台、后台)(java+jsp+ssm+maven+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

分为前台用户和后台管理员功能

管理员

  • 登录、管理用户、管理景点、管理酒店、管理论坛帖子、管理评论等

用户端

  • 登录、注册、景点、酒店、论坛、评论等功能的浏览和评论等

idea运行/eclipse/MyEclipse运行

前台

后台

技术框架

JavaBean MVC JSP SSM(Spring SpringMVC MyBatis) Maven MySQL jQuery JavaScript CSS

基于javaweb+mysql的SSM+Maven旅游管理系统(前台、后台)(java+jsp+ssm+maven+mysql)

	 * 跳转首页
	 */
	@RequestMapping(value = {"", "index"}, method = RequestMethod.GET)
	public String index(ViewPointExample example, Model model) {
		HotelExample hotelExample = new HotelExample();
		//显示首页的景点
		String prefix = "/static/upload/viewavatar/";
		//酒店
		String prefixHotel = "/static/upload/hotelAvatar/";
		example.setOrderByClause("tp_vid desc");
		List<ViewPoint> viewPoints = viewPointService.selectByExample(example);
		for (ViewPoint viewPoint : viewPoints) {
			String suffix = viewPoint.getTpVpic();
			viewPoint.setTpVpic(prefix + suffix);
		}

		//酒店
		hotelExample.setOrderByClause("hid desc");
		List<Hotel> hotels = hotelDao.selectByExample(hotelExample);
		for (Hotel hotel : hotels) {
			String suffix = hotel.getImgUrl();
			hotel.setImgUrl(prefixHotel + suffix);
		}

		//传送景点
		model.addAttribute("viewPoints", viewPoints);
		model.addAttribute("hotels", hotels);
		return "index";
	}

}

		model.addAttribute("msg", Msg.success(lw_id + "号删除成功!"));
		return "redirect:wordsList";
	}

	/**
	 * 跳转回复列表
	 * @return
	 */
	@RequestMapping(value = "replyList", method = RequestMethod.GET)
	public String ReplyList(Model model) {
		List<Reply> replys = viewPointService.findByReply();
		model.addAttribute("replys", replys);
		return "admin/reply_list";
	}

	/**
	 * 回复批量删除
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "replyMutiDelete", method = RequestMethod.GET)
	public String replyMutiDelete(Integer[] lr_ids, Model model) {
		for (Integer lr_id : lr_ids){
			replyDao.deleteByPrimaryKey(lr_id);

		}
		model.addAttribute("msg", Msg.success(Arrays.toString(lr_ids) + "号删除成功!"));
		return "1";
	}

	/**
	 * 单击删除
	 * @return
	 */
	@RequestMapping(value = "replyDelete", method = RequestMethod.GET)
	public String replyDelete(Integer lr_id, Model model) {
		replyDao.deleteByPrimaryKey(lr_id);
		model.addAttribute("msg", Msg.success(lr_id + "号删除成功!"));
		return "redirect:replyList";
	}

}


		Forum forum = forumDao.selectByPrimaryKey(tpFid);

		model.addAttribute("forum",forum);
		return "proscenium/forum/content";
	}

	/**
	 * 后台论坛模糊搜索
	 */
	@RequestMapping(value = "forumPointSearch", method = RequestMethod.GET)
	public String forumPointSearch(String keyword, Model model) {

		Forum forum = new Forum();

		forum.setTpTag(keyword);
		forum.setTpTitle(keyword);
		forum.setTpSubTitle(keyword);
		forum.setTpAuthor(keyword);

		List<Forum> forums = forumDao.forumPointSearch(forum);

		model.addAttribute("forums", forums);
		model.addAttribute("msg", Msg.success("论坛查询成功!"));

		return "proscenium/forum/index";
	}

	/**
	 * 发帖功能 跳转编辑页面
	 */
	@RequestMapping(value = "issue", method = RequestMethod.GET)
	public String issue(Integer uid, Model model){
		if (uid != null){
			return "proscenium/forum/edit";
		}
		example.setOrderByClause("tp_fid desc");
		List<Forum> forums = forumDao.selectByExampleWithBLOBs(example);
		model.addAttribute("forums",forums);
		model.addAttribute("msg", Msg.fail("您还未登录!"));
		return "proscenium/forum/index";
	}

	/**
	 * 编辑页面
	public String userSearch(String keyword, HttpSession session) {
		//System.out.println(keyword);
		//List<ViewPoint> users = viewPoint();
		//session.setAttribute("users", users);

		return "admin/view/user_list";
	}

	/**
	 * 景点内容 跳转
	 */
	@RequestMapping(value = "content", method = RequestMethod.GET)
	public String viewContent(Integer tpVid, Model model) {
		//封装留言信息
		List<Words> lw_list = viewPointService.findByWords();
		model.addAttribute("lw_list",lw_list);

		//封装回复信息
		List<Reply> lr_list = viewPointService.findByReply();
		model.addAttribute("lr_list",lr_list);

		ViewPoint viewPoint = viewPointService.selectByPrimaryKey(tpVid);
		model.addAttribute("viewPoint", viewPoint);

		return "proscenium/viewpoint/content";
	}

	/**
	 * 前台景点模糊搜索
	 */
	@RequestMapping(value = "viewPointSearch", method = RequestMethod.GET)
	public String viewPointSearch(String keyword, Model model) {
		String prefix = "/static/upload/viewavatar/";

		ViewPoint viewPoint = new ViewPoint();
		viewPoint.setTpVname(keyword);
		viewPoint.setTpVtype(keyword);
		viewPoint.setTpLocation(keyword);
		List<ViewPoint> viewPoints = viewPointDao.viewPointSearch(viewPoint);

		for (ViewPoint vp : viewPoints){
			String imgUrl = vp.getTpVpic();
	/**
	 * 后台酒店模糊搜索
	 */
	@RequestMapping(value = "hotelPointSearch", method = RequestMethod.GET)
	public String hotelPointSearch(String keyword, Model model) {
		String prefix = "/static/upload/hotelAvatar/";

		Hotel hotel = new Hotel();

		hotel.setLocal(keyword);
		hotel.setHouseType(keyword);
		hotel.setBedType(keyword);

		List<Hotel> hotels = hotelDao.hotelPointSearch(hotel);

		for (Hotel hotelForEach : hotels){
			String imgUrl = hotelForEach.getImgUrl();
			hotelForEach.setImgUrl(prefix + imgUrl);
		}

		model.addAttribute("hotels", hotels);
		model.addAttribute("msg", Msg.success("酒店查询成功!"));

		return "admin/hotel_list";
	}

	/**
	 * 后台论坛模糊搜索
	 */
	@RequestMapping(value = "forumPointSearch", method = RequestMethod.GET)
	public String forumPointSearch(String keyword, Model model) {

		Forum forum = new Forum();

		forum.setTpTag(keyword);
		forum.setTpTitle(keyword);
		forum.setTpSubTitle(keyword);
		forum.setTpAuthor(keyword);

		List<Forum> forums = forumDao.forumPointSearch(forum);

		model.addAttribute("forums", forums);
		model.addAttribute("msg", Msg.success("论坛查询成功!"));

		return "admin/forum_list";
	 * 登录逻辑
	 * handle
	 *
	 * @param aemail 用户邮箱
	 * @param apwd   密码
	 * @return String
	 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	// @RequestParam(required = true) 为true时意思为不可缺省
	public String login(String aemail, String apwd, HttpSession session) {
		Admin admin = adminService.login(aemail, apwd);
		String timestamp = TimeStampUtil.getTimeFormat();

		//登录失败
		if (admin == null) {
			session.setAttribute("msg", Msg.fail("邮箱或者密码错误!"));
			return login();
		}
		//登录成功
		else {

			// 将登录信息放入session
			session.setAttribute("msg", Msg.success());
			session.setAttribute("timestamp", timestamp);
			session.setAttribute("admin", admin);
			// 明日任务,获取域对象传送user信息
			return "redirect:main";
		}
	}

	/**
	 * 后台注销
	 */
	@RequestMapping(value = "loginout", method = RequestMethod.GET)
	public String loginOut(HttpSession session) {
		//销毁session
		session.invalidate();
		return login();
	}
	//**********login end***************

		} else {
			session.setAttribute("msg", Msg.fail("还未注册或邮箱密码错误,请重新输入!"));
			return "redirect:/index";
		}

	}

	/**
	 * 前台用户注销
	 *
	 * @return
	 */
	@RequestMapping(value = "loginout", method = RequestMethod.GET)
	public String loginOut() {
		session.invalidate();
		return "redirect:/index";
	}

	/**
	 * 跳转注册用户
	 *
	 * @return
	 */
	@RequestMapping(value = "regst", method = RequestMethod.GET)
	public String regst() {
		return "proscenium/user/regst";
	}

	@RequestMapping(value = "regstform", method = RequestMethod.POST)
	public String regst(String uname, String uemail, String upwd, String reupwd, Model model) {
		if (uemail == null || upwd == null || uemail.trim().equals("") || upwd.trim().equals("")) {
			model.addAttribute("msg", Msg.fail("用户名或密码不可为空,请重新输入!"));
		} else if (!reupwd.equals(upwd)) {
			model.addAttribute("msg", Msg.fail("密码不正确请重新输入!"));
		} else {
			userService.insertUser(uname, uemail, upwd);
			model.addAttribute("msg", Msg.success("用户注册成功!"));
		}
		System.out.println(!uemail.trim().equals(""));
		return "proscenium/user/regst";
	}

	/**
	 * 跳转个人信息
	 */
	@RequestMapping(value = "info", method = RequestMethod.GET)
	public String info(String uid) {
		User user = userService.userGet(uid);

	 */
	@RequestMapping(value = "viewsectiondelete", method = RequestMethod.GET)
	@ResponseBody//返回给前端
	public String viewSectionDelete(Integer[] tpVids) {
		for (Integer tpVid : tpVids) {
			viewPointService.deleteviews(tpVid);
		}
		session.setAttribute("msg", Msg.success(Arrays.toString(tpVids) + "号景点批量删除成功!"));
		return "1";
	}

	/**
	 * 景点查看
	 */
	@RequestMapping(value = "viewcontent", method = RequestMethod.GET)
	public String viewcontent(Integer tpVid, Model model) {
		ViewPoint viewPoint = viewPointService.selectByPrimaryKey(tpVid);
		String prefix = "/static/upload/viewavatar/";
		String suffix = viewPoint.getTpVpic();
		//前端img标签路径
		viewPoint.setTpVpic(prefix + suffix);
		model.addAttribute("viewPoint", viewPoint);
		return "admin/view_content";
	}

	/**
	 * 用户单个单击删除
	 */
	@RequestMapping(value = "viewdelete", method = RequestMethod.GET)
	public String viewDelete(Integer tpVid) {
		viewPointService.deleteviews(tpVid);

		session.setAttribute("msg", Msg.success(tpVid + "号用户删除成功!"));
		return "redirect:viewlist";
	}

	/**
	 * 景点新增表单跳转
	 */
	@RequestMapping(value = "viewform", method = RequestMethod.GET)
	public String viewForm() {
		return "admin/view_form";
	}

	/**
	 * 景点新增
	 */
	@RequestMapping(value = "viewinsert", method = RequestMethod.POST)
	public String viewInsert(ViewPoint viewPoint) {
		if (viewPoint.getTpVid() == null) {
		if (hotel.getHid() == null) {
			hotelDao.insertSelective(hotel);
			model.addAttribute("msg", Msg.success("新增景点成功!"));
			return "redirect:hotellist";
		}
		model.addAttribute("msg", Msg.fail("新增景点失败!"));
		return "redirect:hoteledit";
	}

	/**
	 * content
	 */
	@RequestMapping(value = "forumList", method = RequestMethod.GET)
	public String forumList(Model model) {
		ForumExample example = new ForumExample();
		example.setOrderByClause("tp_fid desc");

		List<Forum> forums = forumDao.selectByExample(example);

		model.addAttribute("forums", forums);

		return "admin/forum_list";
	}

	/**
	 *
	 * @param tpFids
	 * @param model
	 * @return
	 */
	@ResponseBody//返回给前端
	@RequestMapping(value = "forumMutiDelete", method = RequestMethod.GET)
	public String forumMutiDelete(Integer[] tpFids, Model model) {
		for (Integer tpFid : tpFids) {
			forumDao.deleteByPrimaryKey(tpFid);
		}
		session.setAttribute("msg", Msg.success(Arrays.toString(tpFids) + "号批量删除成功!"));
		return "1";
	}

	/**
	 * forummutidelete
	 */
	/**
	 * 前台用户注销
	 *
	 * @return
	 */
	@RequestMapping(value = "loginout", method = RequestMethod.GET)
	public String loginOut() {
		session.invalidate();
		return "redirect:/index";
	}

	/**
	 * 跳转注册用户
	 *
	 * @return
	 */
	@RequestMapping(value = "regst", method = RequestMethod.GET)
	public String regst() {
		return "proscenium/user/regst";
	}

	@RequestMapping(value = "regstform", method = RequestMethod.POST)
	public String regst(String uname, String uemail, String upwd, String reupwd, Model model) {
		if (uemail == null || upwd == null || uemail.trim().equals("") || upwd.trim().equals("")) {
			model.addAttribute("msg", Msg.fail("用户名或密码不可为空,请重新输入!"));
		} else if (!reupwd.equals(upwd)) {
			model.addAttribute("msg", Msg.fail("密码不正确请重新输入!"));
		} else {
			userService.insertUser(uname, uemail, upwd);
			model.addAttribute("msg", Msg.success("用户注册成功!"));
		}
		System.out.println(!uemail.trim().equals(""));
		return "proscenium/user/regst";
	}

	/**
	 * 跳转个人信息
	 */
	@RequestMapping(value = "info", method = RequestMethod.GET)
	public String info(String uid) {
		User user = userService.userGet(uid);

		String prefix = "/static/upload/useravatar/";
		String suffix = user.getUpic();

		user.setUpic(prefix+suffix);

		session.setAttribute("user", user);
		System.out.println(user);
		}

		//酒店
		hotelExample.setOrderByClause("hid desc");
		List<Hotel> hotels = hotelDao.selectByExample(hotelExample);
		for (Hotel hotel : hotels) {
			String suffix = hotel.getImgUrl();
			hotel.setImgUrl(prefixHotel + suffix);
		}

		//传送景点
		model.addAttribute("viewPoints", viewPoints);
		model.addAttribute("hotels", hotels);
		return "index";
	}

}

@Controller
@RequestMapping(value = "traffic")
public class TrafficController {
	@Autowired
    TrafficDao trafficDao;

	/**
	 *
	 * @param currentCity
	 * @param desCity
	 * @param model
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "selectByCurrentAndDestination", method = RequestMethod.GET)
		if (uid != null){
			return "proscenium/forum/edit";
		}
		model.addAttribute("msg", Msg.fail("您还未登录!"));
		return "redirect:index";
	}

	/**
	 * content
	 */
	@RequestMapping(value = "savecontent", method = RequestMethod.POST)
	public String saveContent(Forum forum, Model model){
		forumDao.insert(forum);
		model.addAttribute("msg", Msg.success("发帖成功"));
		return "redirect:index";
	}

	/*############后台开始##############*/

}

@Controller
@RequestMapping(value = "view")
public class ViewPointController {
	@Autowired
	private ViewPointService viewPointService;

	private HttpSession session;
	@Autowired
	private ViewPointExample viewPointExample;
	@Autowired
	private ViewPointDao viewPointDao;

	/**
	 * 旅游景点跳转

/**
 * 文件上传控制器
 */
@RequestMapping(value = "upload")
@Controller
public class UploadController {
	@Autowired
	private UserService userService;
	@Autowired
	private ViewPointService viewPointService;

	/**
	 * 文件上传
	 * @param dropFile
	 * @param request
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "viewAvatar", method = RequestMethod.POST)
	public Map<String, Object> viewAvatar(MultipartFile dropFile, HttpServletRequest request) {
		Map<String, Object> result = new HashMap<>();
		//文件存放路径
		String filePath = "/static/upload/viewavatar/";
		//获取文件后缀
		String fileName = dropFile.getOriginalFilename();
		String fileSuffix = fileName.substring(fileName.lastIndexOf('.'));
		//文件存放路径
		String realPath = request.getSession().getServletContext().getRealPath(filePath);
		File file = new File(realPath);
		//判断文件是否存在
		//判断文件是否存在
		if (!file.exists()){
			file.mkdir();
		}
		file = new File(realPath, UUID.randomUUID() + fileSuffix);
		try {
			dropFile.transferTo(file);

		} catch (IOException e) {
			e.printStackTrace();
		}
		//传到前端
		result.put("errno",0);
		result.put("data",new String[] {prefix + file.getName()});
		return result;
	}

}

@Controller
@RequestMapping(value = "user")
public class UserController {

	@Autowired
	private UserService userService;
	@Autowired
	private HttpSession session;
	@Autowired
	private ForumDao forumDao;
	@Autowired
		}
	}

	/**
	 * 保存论坛留言信息
	 */
	@RequestMapping(value="/saveHotelWords")
	public String saveHotelWords(Words words){
		if(words != null){
			String hid = words.getLw_hotel_id();
			viewPointService.saveWords(words);
			return "redirect:toHotelArticleView.do?hid=" + hid;
		}else{
			return null;
		}
	}

	/**
	 * 跳转到论坛
	 */

	@RequestMapping(value="/toHotelArticleView")
	public String toHotelArticleView(@RequestParam int hid, Model model){
		//封装留言信息
		lw_list = viewPointService.findByWords();
		model.addAttribute("lw_list",lw_list);

		//封装回复信息
		lr_list = viewPointService.findByReply();
		model.addAttribute("lr_list",lr_list);

		//查询文章信息
		Hotel hotel = hotelDao.selectByPrimaryKey(hid);

		System.out.println("查询到当前文章的ID值:" + hotel.getHid());

		if (hotel != null) {
			model.addAttribute("hotel", hotel);
			return "proscenium/hotel/content";
		} else {
			return null;
		}
	}

}

		if(words != null){
			String forumId = words.getLw_forumId();//获取什么类型的ID
			viewPointService.saveWords(words);
			return "redirect:toForumArticleView.do?tpFid=" + forumId;
		}else{
			return null;
		}
	}

	/**
	 * 跳转到论坛
	 */

	@RequestMapping(value="/toForumArticleView")
	public String toForumArticleView(@RequestParam int tpFid, Model model){
		//封装留言信息
		lw_list = viewPointService.findByWords();
		model.addAttribute("lw_list",lw_list);

		//封装回复信息
		lr_list = viewPointService.findByReply();
		model.addAttribute("lr_list",lr_list);

		//查询文章信息
		Forum forum = forumDao.selectByPrimaryKey(tpFid);

		System.out.println("查询到当前文章的ID值:" + forum.getTpFid());

		if (forum != null) {
			model.addAttribute("forum", forum);
			return "proscenium/forum/content";
		} else {
			return null;
		}
	}

	/**
	 * 保存论坛回复信息
	 */

		return "admin/hotel_list";
	}

	/**
	 * 跳转
	 * 酒店管理列表
	 */
	@RequestMapping(value = "hotelcontent", method = RequestMethod.GET)
	public String hotelContent(Integer hid, Model model) {

		Hotel hotel = hotelDao.selectByPrimaryKey(hid);
		String prefix = "/static/upload/hotelAvatar/";
		String suffix = hotel.getImgUrl();
		//前端img标签路径
		hotel.setImgUrl(prefix + suffix);

		model.addAttribute("hotel", hotel);

		return "admin/hotel_content";
	}

	/**
	 * 跳转
	 * 酒店编辑
	 */
	@RequestMapping(value = "hoteledit", method = RequestMethod.GET)
	public String hotelEdit(Integer hid, Model model) {

		Hotel hotel = hotelDao.selectByPrimaryKey(hid);

		model.addAttribute("hotel", hotel);
		return "admin/hotel_edit";
	}

	/**
	 * 跳转景点更新业务
	 */
	@RequestMapping(value = "hoteledithandle", method = RequestMethod.POST)
	public String hotelEditHandle(Hotel hotel) {
		hotelDao.updateByPrimaryKeySelective(hotel);
		session.setAttribute("msg", Msg.success("酒店信息保存成功!"));
		return "redirect:hotellist";
	}

	/**
	 * 跳转景点更新业务
	 */
	 */
	@RequestMapping(value = "wordsList", method = RequestMethod.GET)
	public String wordsList(Model model) {
		List<Words> byWords = viewPointService.findByWords();
		model.addAttribute("byWords", byWords);
		return "admin/words_list";
	}

	/**
	 * 留言批量删除
	 * @return
	 */
	@ResponseBody
	@RequestMapping(value = "wordsMutiDelete", method = RequestMethod.GET)
	public String wordsMutiDelete(Integer[] lw_ids, Model model) {

		for (Integer lw_id : lw_ids){
			wordsDao.deleteByPrimaryKey(lw_id);

		}
		model.addAttribute("msg", Msg.success(Arrays.toString(lw_ids) + "号删除成功!"));
		return "1";
	}

	/**
	 * 单击删除
	 * @return
	 */
	@RequestMapping(value = "wordsDelete", method = RequestMethod.GET)
	public String wordsDelete(Integer lw_id, Model model) {
		wordsDao.deleteByPrimaryKey(lw_id);
		model.addAttribute("msg", Msg.success(lw_id + "号删除成功!"));
		return "redirect:wordsList";
	}

	/**
	 * 跳转回复列表
	 * @return
	 */
	@RequestMapping(value = "replyList", method = RequestMethod.GET)
	public String ReplyList(Model model) {
		List<Reply> replys = viewPointService.findByReply();
		model.addAttribute("replys", replys);
		return "admin/reply_list";
	}

	/**
	 * 回复批量删除
	 * @return
	 */
	@ResponseBody

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值