基于javaweb的SpringBoot旅游管理系统(java+springboot+maven+vue+elementui+javascript+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

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

功能说明

121424060701

131424060701

141424060701

151424060701

161424060701

171424060701

181424060701

191424060701

201424060701

基于javaweb的SpringBoot旅游管理系统(java+springboot+maven+vue+elementui+javascript+mysql)

1
2
3
4
5
6
管理员:
admin 123456

用户:
user1 123456
user2 123456

项目介绍

系统分为前台跟后台两个项目 前台: 展示旅游新闻、景区信息、美食信息、旅游线路、在线留言

后台管理员: 账号管理、地区管理、景点信息管理、地方美食管理、旅游线路管理、订单信息管理、新闻管理、系统管理 普通用户:旅游线路、订单信息

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端框架:Springboot

前端技术:ElementUI、vue、css、JavaScript、axios

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

文档介绍(项目研究背景、研究目的及意义、开发软件介绍、技术介绍、Mysql数据库、系统分析、可行性研究、经济上的可行性、技术上的可行性、操作上的可行性、开发结构分析、功能需求分析、数据流图、业务流程分析、数据字典、旅游网站总体设计、系统功能描述、系统界面设计、系统功能结构图、系统设计目标、系统实现的软硬件平台、数据库设计、数据库概念结构设计、数据库逻辑结构设计、系统详细设计):

 景点列表展示:

人情景点列表展示: 

旅游线路列表展示:

美食列表展示: 

 新闻信息列表展示:

登录管理展示页面: 

后台功能管理-地方没事查询展示:

旅游线路查询页面展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
        return json();   // 将数据写给前端
}
/**
* 前台详情
*/
@RequestMapping("/xinwenxinxidetail")
public String detailweb()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Xinwenxinxi map = service.find(id);
Query.execute("UPDATE xinwenxinxi SET dianjilv=dianjilv+1 WHERE id="+request.getParameter("id")+"");



if(!checkLogin()){
assign("isCollect" , false);
}else{
assign("isCollect" , Query.make("shoucangjilu").where("username",session.getAttribute("username")).where("biao" , "xinwenxinxi").where("xwid",id).count()>0);
}


assign("map" , map);
return json(); // 将数据写给前端
}
/**
* 删除
*/
@RequestMapping("/xinwenxinxi_delete")
public String delete()
{
_var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("xinwenxinxi").find(id);

service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
    int charuid = post.getId().intValue();


if(isAjax()){
return jsonResult(post);

}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}

/**
* 更新内容
* @return
*/
@RequestMapping("/adminsupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Admins post = new Admins();
// 将前台表单数据填充到实体类
if(!Request.get("username").equals(""))
post.setUsername(Request.get("username"));
if(!Request.get("pwd").equals(""))
post.setPwd(Request.get("pwd"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));

post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();

if(isAjax()){
return jsonResult(post);
}
if(Request.getInt("updtself") == 1){
return showSuccess("保存成功" , "admins_updtself.do");
}

return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

}
return showSuccess("保存成功" , Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}

/**
* 更新内容
* @return
*/
@RequestMapping("/yonghuupdate")
public String update()
{
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Yonghu post = new Yonghu();
// 将前台表单数据填充到实体类
if(!Request.get("yonghuming").equals(""))
post.setYonghuming(Request.get("yonghuming"));
if(!Request.get("mima").equals(""))
post.setMima(Request.get("mima"));
if(!Request.get("xingming").equals(""))
post.setXingming(Request.get("xingming"));
if(!Request.get("xingbie").equals(""))
post.setXingbie(Request.get("xingbie"));
if(!Request.get("shouji").equals(""))
post.setShouji(Request.get("shouji"));
if(!Request.get("youxiang").equals(""))
post.setYouxiang(Request.get("youxiang"));
if(!Request.get("shenfenzheng").equals(""))
post.setShenfenzheng(Request.get("shenfenzheng"));
if(!Request.get("touxiang").equals(""))
post.setTouxiang(Request.get("touxiang"));
if(!Request.get("addtime").equals(""))
post.setAddtime(Request.get("addtime"));

post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();

if(isAjax()){
return jsonResult(post);
}
if(Request.getInt("updtself") == 1){
return showSuccess("保存成功" , "yonghu_updtself.do");
}

return showSuccess("保存成功" , Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
* 删除
*/
@RequestMapping("/yonghu_delete")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
    }
return where;
}





@RequestMapping("/yonghu_add")
public String add()
{
_var = new LinkedHashMap(); // 重置数据


return json(); // 将数据写给前端
}

@RequestMapping("/yonghu_updt")
public String updt()
{
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据,并赋值给前台jsp页面
Yonghu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 0);


return json(); // 将数据写给前端
}
@RequestMapping("/yonghu_updtself")
public String updtself()
{
_var = new LinkedHashMap(); // 重置数据
// 更新个人资料
int id = (int)request.getSession().getAttribute("id");
Yonghu mmm = service.find(id);
assign("mmm" , mmm);
assign("updtself" , 1);
return json(); // 将数据写给前端
}
/**
* 添加内容
* @return
*/
@RequestMapping("/yonghuinsert")
public String insert()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
        _var = new LinkedHashMap(); // 重置数据
if(!checkLogin()){
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
HashMap map = Query.make("xinwenfenlei").find(id);

service.delete(id);// 根据id 删除某行数据
return showSuccess("删除成功",request.getHeader("referer"));//弹出删除成功,并跳回上一页
}
}



/**
* 地区 */
@Controller
public class DiquController extends BaseController
{
@Autowired
private DiquMapper dao;
@Autowired
private DiquService service;

/**
* 后台列表页
*
*/
@RequestMapping("/diqu_list")
public String list()
{

// 检测是否有登录,没登录则跳转到登录页面
if(!checkLogin()){
return showError("尚未登录" , "./login.do");
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32



/**
* 验证码控制器
*/
@Controller
public class CaptchaController extends BaseController {
/**
* 输出验证码图片,并记录session “random” 里等待登录时写入
*/
@RequestMapping("/captcha")
public String Index()
{
// 把验证码字符串写入session 中,保存待下次验证时使用
String sRand = createRandomString(4);

try {
// 输出渲染好的内容到前端浏览器
if(isAjax()){
String result = null;
do {
try{
result = DESUtil.encrypt("CaptchControllerPassword",sRand);
}catch (Exception e){
result = null;
}
if(result!= null){
if(!sRand.equals(DESUtil.decrypt("CaptchControllerPassword" , result))){
result = null; // 解不出来所以出错
}
}


项目链接:
https://javayms.github.io?id=421524180701201iv
https://javayms.pages.dev?id=421524180701201iv