基于SpringBoot常州地方旅游管理系统的设计与实现

博主主页:一点源码
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:毕业设计,SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Python、Nodejs、小程序、安卓app、大数据等设计与开发

🍅文末获取联系🍅

项目介绍

本论文首先对常州地方旅游管理系统进行需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,开发出本基于Bootstrap的常州地方旅游管理系统,主要实现了用户功能模块和管理员功能模块两大部分,用户可查看景点信息、景点资讯等,注册登录后可进行景点订票操作,同时管理员可进入系统后台对系统进行全面管理操作。通过对系统的功能进行测试,测试结果证明该系统界面友好、功能完善,有着较高的使用价值,具有庞大的潜在用户群体和较广阔的应用前景。

本常州地方旅游管理系统基于Springboot+Bootstrap框架、JAVA编程语言、MYSQL数据库开发完成,“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。

系统主要技术

开发语言:Java
 
使用框架:spring boot
 
前端技术:Vue 、css、element-ui、js、html
 
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
 
数据库:MySQL 5.7/8.0
 
数据库管理工具:phpstudy/Navicat
 
JDK版本:jdk1.8
 
Maven: apache-maven 3.8.1-bin

系统结构设计 

对于本系统的开发设计,先自上向下,将一个完整的系统分解成许多个小系统来进行实现;再自下向上,将所有的“零件”组装成一个大的、完整的系统。因此这里面的许多个小功能块都要对将要实现的功能进行划分,同时还要给其他的小功能模块提供调用的接口,以便于最后将所有的功能块组合起来。

本基于Bootstrap的常州地方旅游管理系统主要实现了用户功能模块和管理员功能模块两大部分,系统结构图如图4-1所示。

部分功能展示

登录模块的实现

用户要想进入本系统,必须通过正确的用户名和密码,选择登录类型进行登录操作,在登录时系统会以用户名、密码和登录类型为参数进行登录信息的验证,信息正确则登录进入对应用户功能界面可进行功能处理,反之登录失败,系统登录界面展示如图5.1所示。

5.1  系统登录界面

5.2管理员功能模块的实现

5.2.1景点信息管理界面

管理员可添加、修改和删除景点信息信息,景点信息管理界面展示如图5.2所示,添加景点信息信息界面展示如图5.3所示。

5.2 景点信息管理界面

5.3  添加景点信息信息界面

5.2.2订票信息管理界面

管理员可查看所有订票信息,并可的前进行修改和删除操作,订票信息管理界面展示如图5.4所示。

5.4  订票信息管理界面

5.2.3用户评价管理界面

管理员可查看用户评价信息,并可对其进行审核、修改和删除操作,用户评价管理界面展示如图5.5所示。

5.5  用户评价管理界面

5.2.4用户管理界面

管理员可查看、添加、修改和删除用户信息,用户管理界面展示如图5.6所示。

5.6  用户管理界面

5.2.5景点资讯界面

管理员可增删改查景点资讯信息,景点资讯界面展示如图5.7所示。

5.7 景点资讯界面

5.3用户功能模块的实现

5.3.1系统主界面

用户进入本系统可查看系统信息,包括网站首页、景点信息以及景点资讯等,系统主界面展示如图5.8所示。

5.8 系统主界面

5.3.2用户注册界面

未有账号的用户可进入注册界面进行注册操作,用户注册界面展示如图5.9所示。

5.9 用户注册界面

5.3.3景点信息详情界面

用户可选择景点信息查看景点信息详情信息,登录后可进行订票操作,景点信息详情界面展示如图5.10所示。

5.10景点信息详情界面

5.3.4订票信息界面

用户可查看个人订票信息,并可选择进行支付或者评价操作,订票信息界面展示如图5.11所示,评价界面展示如图5.13所示。

5.11订票信息界面

图5.12 评价界面

文章目录

目  录    I
摘  要    III
ABSTRACT    IV
第一章 绪论    1
1.1 研究现状    1
1.2 设计原则    1
1.3 研究内容    2
第二章 相关技术简介    1
2.1 JAVA技术    1
2.2 MYSQL数据库    1
2.3 B/S结构    2
2.4 SPRING BOOT框架    2
第三章 系统分析    4
3.1可行性分析    4
3.1.1技术可行性    4
3.1.2 操作可行性    4
3.1.3 经济可行性    4
3.1.4 法律可行性    4
3.2系统性能分析    5
3.3系统功能分析    5
3.4系统流程分析    6
3.4.1注册流程    6
3.4.2 登录流程    7
3.5系统架构分析    7
第四章 系统设计    9
4.1系统结构设计    9
4.2系统顺序图设计    9
4.3数据库设计    10
4.3.1 数据库实体(E-R图)    10
4.3.2 数据库表设计    12
第五章 系统实现    15
5.1登录模块的实现    15
5.2管理员功能模块的实现    15
5.2.1景点信息管理界面    15
5.2.2订票信息管理界面    16
5.2.3用户评价管理界面    17
5.2.4用户管理界面    17
5.2.5景点资讯界面    18
5.3用户功能模块的实现    18
5.3.1系统主界面    18
5.3.2用户注册界面    19
5.3.3景点信息详情界面    19
5.3.4订票信息界面    20
第六章 系统测试    22
6.1测试环境    22
6.2测试方法    22
6.3测试计划    23
6.4测试结论    23
第七章 结论    24
参考文献    25
致  谢    26
 

部分代码实现 


 * @author 
 * @email 
 * @date 2021-03-05 14:09:24
 */
@RestController
@RequestMapping("/tuihuantushu")
public class TuihuantushuController {
    @Autowired
    private TuihuantushuService tuihuantushuService;
    
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,TuihuantushuEntity tuihuantushu, HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			tuihuantushu.setXuehao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
		PageUtils page = tuihuantushuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tuihuantushu), params), params));
 
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,TuihuantushuEntity tuihuantushu, HttpServletRequest request){
        EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
		PageUtils page = tuihuantushuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, tuihuantushu), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( TuihuantushuEntity tuihuantushu){
       	EntityWrapper<TuihuantushuEntity> ew = new EntityWrapper<TuihuantushuEntity>();
      	ew.allEq(MPUtil.allEQMapPre( tuihuantushu, "tuihuantushu")); 
        return R.ok().put("data", tuihuantushuService.selectListView(ew));
    }
 
	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(TuihuantushuEntity tuihuantushu){
        EntityWrapper< TuihuantushuEntity> ew = new EntityWrapper< TuihuantushuEntity>();
 		ew.allEq(MPUtil.allEQMapPre( tuihuantushu, "tuihuantushu")); 
		TuihuantushuView tuihuantushuView =  tuihuantushuService.selectView(ew);
		return R.ok("查询退换图书成功").put("data", tuihuantushuView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        TuihuantushuEntity tuihuantushu = tuihuantushuService.selectById(id);
        return R.ok().put("data", tuihuantushu);
    }
 
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        TuihuantushuEntity tuihuantushu = tuihuantushuService.selectById(id);
        return R.ok().put("data", tuihuantushu);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
    	tuihuantushu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.insert(tuihuantushu);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
    	tuihuantushu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.insert(tuihuantushu);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody TuihuantushuEntity tuihuantushu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(tuihuantushu);
        tuihuantushuService.updateById(tuihuantushu);//全部更新
        return R.ok();
    }
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        tuihuantushuService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<TuihuantushuEntity> wrapper = new EntityWrapper<TuihuantushuEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}
 
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
		}
 
		int count = tuihuantushuService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
 
 
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值