当前位置:   article > 正文

SpringBoot+Vue项目旅游景区预约服务系统_vue 景区预约app源码

vue 景区预约app源码

文末获取源码

开发语言:Java

框架:springboot+vue

Node:node.js

JDK版本:JDK1.8

服务器:tomcat7

数据库:mysql 5.7/8.0

数据库工具:Navicat11

开发软件:eclipse/idea,Visual 

Maven包:Maven3.3.9

浏览器:谷歌浏览器

目录

一、前言介绍 

二、系统功能 

三、系统详细设计

3.1登录模块

3.2前台首页模块 

3.3景点资讯模块

3.4景点信息模块

3.5景点信息详情模块

四、管理员功能模块

4.1后台登录模块

4.2后台首页模块 

4.3轮播图模块

4.4管理员模块

4.5景点资讯模块

4.6景点信息模块

五、部分核心代码

5.1用户登录关键代码

5.2用户注册关键代码

5.3景点预约关键代码

5.4景点信息关键代码


一、前言介绍 

随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。

旅游景区预约服务系统设计,主要的模块包括查看首页、公告内容(轮播图、公告栏)系统用户(管理员、会员用户)内容管理(景点资讯、资讯分类列表)更多管理(景点信息、景点预约)等功能。系统中管理员主要是为了安全有效地存储和管理各类信息,还可以对系统进行管理与更新维护等操作,并且对后台有相应的操作权限。

要想实现旅游景区预约服务系统的各项功能,需要后台数据库的大力支持。管理员验证注册信息,收集的用户信息,并由此分析得出的关联信息等大量的数据都由数据库管理用户咨询管理。本文中数据库服务器端采用了Mysql作为后台数据库,使Web与数据库紧密联系起来。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

本系统的开发使获取旅游景区预约服务系统管理信息能够更加方便快捷,同时也使旅游景区预约服务系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作。

二、系统功能 

本旅游景区预约服务系统主要包括两大功能模块,即用户功能模块,管理员功能模块。

(1)管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员来管理后台系统。主要功能有:首页、公告内容(轮播图、公告栏)系统用户(管理员、会员用户)内容管理(景点资讯、资讯分类列表)更多管理(景点信息、景点预约)功能。 

(2)会员用户:首页、更多管理(景点预约)功能。

(3)前台用户:首页、公告消息、景点资讯、景点信息(我的账户、我的收藏、个人中心、退出)。

三、系统详细设计

3.1登录模块

3.2前台首页模块

 

3.3景点资讯模块

3.4景点信息模块

 

3.5景点信息详情模块

四、管理员功能模块

4.1后台登录模块

4.2后台首页模块 

4.3轮播图模块

4.4管理员模块

4.5景点资讯模块

4.6景点信息模块

 

五、部分核心代码

5.1用户登录关键代码

  1. /**
  2. * 登录
  3. * @param data
  4. * @param httpServletRequest
  5. * @return
  6. */
  7. @PostMapping("login")
  8. public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
  9. log.info("[执行登录接口]");
  10. String username = data.get("username");
  11. String email = data.get("email");
  12. String phone = data.get("phone");
  13. String password = data.get("password");
  14. List resultList = null;
  15. Map<String, String> map = new HashMap<>();
  16. if(username != null && "".equals(username) == false){
  17. map.put("username", username);
  18. resultList = service.select(map, new HashMap<>()).getResultList();
  19. }
  20. else if(email != null && "".equals(email) == false){
  21. map.put("email", email);
  22. resultList = service.select(map, new HashMap<>()).getResultList();
  23. }
  24. else if(phone != null && "".equals(phone) == false){
  25. map.put("phone", phone);
  26. resultList = service.select(map, new HashMap<>()).getResultList();
  27. }else{
  28. return error(30000, "账号或密码不能为空");
  29. }
  30. if (resultList == null || password == null) {
  31. return error(30000, "账号或密码不能为空");
  32. }
  33. //判断是否有这个用户
  34. if (resultList.size()<=0){
  35. return error(30000,"用户不存在");
  36. }
  37. User byUsername = (User) resultList.get(0);
  38. Map<String, String> groupMap = new HashMap<>();
  39. groupMap.put("name",byUsername.getUserGroup());
  40. List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
  41. if (groupList.size()<1){
  42. return error(30000,"用户组不存在");
  43. }
  44. UserGroup userGroup = (UserGroup) groupList.get(0);
  45. //查询用户审核状态
  46. if (!StringUtils.isEmpty(userGroup.getSourceTable())){
  47. String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
  48. String res = String.valueOf(service.runCountSql(sql).getSingleResult());
  49. if (res==null){
  50. return error(30000,"用户不存在");
  51. }
  52. if (!res.equals("已通过")){
  53. return error(30000,"该用户审核未通过");
  54. }
  55. }
  56. //查询用户状态
  57. if (byUsername.getState()!=1){
  58. return error(30000,"用户非可用状态,不能登录");
  59. }
  60. String md5password = service.encryption(password);
  61. if (byUsername.getPassword().equals(md5password)) {
  62. // 存储Token到数据库
  63. AccessToken accessToken = new AccessToken();
  64. accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
  65. accessToken.setUser_id(byUsername.getUserId());
  66. tokenService.save(accessToken);
  67. // 返回用户信息
  68. JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
  69. user.put("token", accessToken.getToken());
  70. JSONObject ret = new JSONObject();
  71. ret.put("obj",user);
  72. return success(ret);
  73. } else {
  74. return error(30000, "账号或密码不正确");
  75. }
  76. }

5.2用户注册关键代码

 

  1. /**
  2. * 注册
  3. * @param user
  4. * @return
  5. */
  6. @PostMapping("register")
  7. public Map<String, Object> signUp(@RequestBody User user) {
  8. // 查询用户
  9. Map<String, String> query = new HashMap<>();
  10. query.put("username",user.getUsername());
  11. List list = service.select(query, new HashMap<>()).getResultList();
  12. if (list.size()>0){
  13. return error(30000, "用户已存在");
  14. }
  15. user.setUserId(null);
  16. user.setPassword(service.encryption(user.getPassword()));
  17. service.save(user);
  18. return success(1);
  19. }
  20. /**
  21. * 用户ID:[0,8388607]用户获取其他与用户相关的数据
  22. */
  23. @Id
  24. @GeneratedValue(strategy = GenerationType.IDENTITY)
  25. @Column(name = "user_id")
  26. private Integer userId;
  27. /**
  28. * 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
  29. */
  30. @Basic
  31. @Column(name = "state")
  32. private Integer state;
  33. /**
  34. * 所在用户组:[0,32767]决定用户身份和权限
  35. */
  36. @Basic
  37. @Column(name = "user_group")
  38. private String userGroup;
  39. /**
  40. * 上次登录时间:
  41. */
  42. @Basic
  43. @Column(name = "login_time")
  44. private Timestamp loginTime;
  45. /**
  46. * 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
  47. */
  48. @Basic
  49. @Column(name = "phone")
  50. private String phone;
  51. /**
  52. * 手机认证:[0,1](0未认证|1审核中|2已认证)
  53. */
  54. @Basic
  55. @Column(name = "phone_state")
  56. private Integer phoneState;
  57. /**
  58. * 用户名:[0,16]用户登录时所用的账户名称
  59. */
  60. @Basic
  61. @Column(name = "username")
  62. private String username;
  63. /**
  64. * 昵称:[0,16]
  65. */
  66. @Basic
  67. @Column(name = "nickname")
  68. private String nickname;
  69. /**
  70. * 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
  71. */
  72. @Basic
  73. @Column(name = "password")
  74. private String password;
  75. /**
  76. * 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
  77. */
  78. @Basic
  79. @Column(name = "email")
  80. private String email;
  81. /**
  82. * 邮箱认证:[0,1](0未认证|1审核中|2已认证)
  83. */
  84. @Basic
  85. @Column(name = "email_state")
  86. private Integer emailState;
  87. /**
  88. * 头像地址:[0,255]
  89. */
  90. @Basic
  91. @Column(name = "avatar")
  92. private String avatar;
  93. /**
  94. * 创建时间:
  95. */
  96. @Basic
  97. @Column(name = "create_time")
  98. @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  99. private Timestamp createTime;
  100. @Basic
  101. @Transient
  102. private String code;
  103. }

5.3景点预约关键代码

  1. */
  2. @Autowired
  3. public ScenicSpotReservationController(ScenicSpotReservationService service) {
  4. setService(service);
  5. }
  6. @PostMapping("/add")
  7. @Transactional
  8. public Map<String, Object> add(HttpServletRequest request) throws IOException {
  9. Map<String,Object> paramMap = service.readBody(request.getReader());
  10. this.addMap(paramMap);
  11. return success(1);
  12. }
  13. }

5.4景点信息关键代码

  1. @RequestMapping("/get_obj")
  2. public Map<String, Object> obj(HttpServletRequest request) {
  3. Query select = service.select(service.readQuery(request), service.readConfig(request));
  4. List resultList = select.getResultList();
  5. if (resultList.size() > 0) {
  6. JSONObject jsonObject = new JSONObject();
  7. jsonObject.put("obj",resultList.get(0));
  8. return success(jsonObject);
  9. } else {
  10. return success(null);
  11. }
  12. }
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号