博主主页:猫头鹰源码
博主简介:Java领域优质创作者、博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战
主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询
项目介绍:
该系统创作于2022年4月,包含详细数据库设计。基于springboot技术,数据层为MyBatis,mysql数据库,页面使用html,具有完整的业务逻辑,适合选题:旅游、自助旅游、旅游服务、旅游攻略、**景点旅游平台等。
项目功能:
数据库表结构文档:
数据模型:
系统包含技术:
后端:springboot、mybatis
前端:layui,js,css等,html页面
开发工具:idea
数据库:mysql 5.7
JDK版本:jdk1.8
部分截图说明:
下面是用户首页
旅游路线,分页查询,可以筛选
旅游路线详情,可以收藏
旅游攻略查询
旅游攻略详情
导游服务查询
服务详情
登录注册
管理员-首页
管理员-对旅游路线进行管理
管理员-旅游攻略管理
管理员-帖子维护
管理员-导游管理
导游-发布帖子
部分代码:
拦截器
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session.getAttribute("userInfo") != null){
return true;
}
// 不符合条件的给出提示信息,并转发到主页面
request.setAttribute("msg", "您还没有登录,请先登录!");
request.getRequestDispatcher("/logout").forward(request, response);
//返回true通过,返回false拦截
return false;
}
美食操作
/**进入列表页面*/
@GetMapping("/foodGuild")
public String userIframe(){
return "FoodGuildList";
}
/**列表数据*/
@GetMapping("/list")
@ResponseBody
public PageResultVo findFoodGuild(FoodGuild foodGuild, Integer limit, Integer page,HttpSession session){
String type = (String)session.getAttribute("type");
if(type.equals("02")){
User user = (User)session.getAttribute("userInfo");
foodGuild.setUid(String.valueOf(user.getId()));
}
PageHelper.startPage(page,limit);
List<FoodGuild> foodGuildList = foodGuildService.selectByCondition(foodGuild);
PageInfo<FoodGuild> pages = new PageInfo<>(foodGuildList);
return JsonData.table(foodGuildList,pages.getTotal());
}
/**编辑详情*/
@GetMapping("/edit")
@ResponseBody
public FoodGuild edit(Model model, String id){
return foodGuildService.selectById(id);
}
/**编辑*/
@PostMapping("/edit")
@ResponseBody
public JsonData edit(FoodGuild foodGuild){
int a = foodGuildService.updateById(foodGuild);
if (a > 0) {
return JsonData.success(null,"编辑成功!");
} else {
return JsonData.fail("编辑失败");
}
}
/**删除*/
@PostMapping("/del")
@ResponseBody
public JsonData del(String id){
try{
foodGuildService.deleteById(Integer.parseInt(id));
}catch(Exception ex){
JsonData.fail("出现错误");
}
return JsonData.success(null,"删除成功");
}
/**审核*/
@PostMapping("/updateStatus")
@ResponseBody
public JsonData updateStatus(String id,String status){
try{
FoodGuild foodGuild = new FoodGuild();
foodGuild.setId(Integer.parseInt(id));
foodGuild.setStatus(status);
foodGuildService.updateById(foodGuild);
}catch(Exception ex){
JsonData.fail("出现错误");
}
return JsonData.success(null,"操作成功");
}
登录操作
/**
* 登录
* 将提交数据(username,password)写入Admin对象
*/
@RequestMapping(value = "/login")
@ResponseBody
public String login(String username,String password,String type, Model model, HttpSession session) {
Map mp = new HashMap();
if(username.equals("") || password.equals("")){
return "202";
}
if(type.equals("01")){
mp.put("username",username);
mp.put("password",password);
List<Admin> admins = adminService.queryFilter(mp);
if(admins!=null && admins.size()==1){
session.setAttribute("userInfo", admins.get(0));
session.setAttribute("type", "01");
}else{
return "201";
}
}else if(type.equals("02")){
mp.put("phone",username);
mp.put("password",password);
mp.put("type","01");
List<User> users = userService.queryFilter(mp);
if(users!=null && users.size()==1){
session.setAttribute("userInfo", users.get(0));
session.setAttribute("type", "02");
}else{
return "201";
}
}else{
mp.put("phone",username);
mp.put("password",password);
mp.put("type","02");
List<User> users = userService.queryFilter(mp);
if(users!=null && users.size()==1){
session.setAttribute("userInfo", users.get(0));
session.setAttribute("type", "03");
}else{
return "201";
}
}
return "200";
}
以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~