文末联系获取源码
开发语言:Java
框架:ssm
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
目前想要旅游的人选择最多的方式为自驾游,自驾游时间宽松、自由。但单人购买景点门票费用昂贵,如果可以参与别人的旅行团就可以买到便宜的团购票。但一般的团体票都是需要报名旅行社才可以享受,想只享受团体价非常困难。本系统就是针对自驾旅的拼团而设计,拼团可以实现旅游的高性价比。
本自驾游拼团小程序采用Java语言和Eclipse+微信小程序软件进行设计,数据库采用Mysql。本系统实现了旅游的拼团,包括前台和后台两部分。在前台展示旅游景点、拼团信息、论坛。用户注册登录后可以参与拼团和了解景点信息以及发布帖子和评论,发起人登录后可以发起拼团和管理拼团订单。在后台展示个人中心管理、用户管理、发起人管理、景点管理、分类管理、拼团旅游管理、拼团订单管理、评论信息管理和论坛管理、系统管理。本系统实现了旅游拼团的网上参与,帮助想要旅游的用户预约拼团,同时帮助管理员管理订单信息和景点信息等。
二、系统功能分析
本系统的功能包括前台和后台两方面,前台的功能为旅游景点信息、拼团信息、旅游资讯信息、论坛信息等,用户可以参与拼团,发起者可以发起拼团和管理拼团订单、参团信息。后台的功能为用户管理、评价管理、景点信息管理、拼团旅游管理等。在前台的主要操作人员为注册用户和发起人,都可以发布帖子参与讨论,在后台的主要操作人员为管理员,负责用户信息、发起人信息和前台信息的管理。
三、小程序端
3.1小程序首页
在前台界面里的主要使用人员为用户、发起人,游客可以通过注册成为用户和发起人,在前台里展示的信息有资讯信息、旅游景点信息、论坛信息等。前台界面的实现效果如下图

3.2发起拼团功能的实现界面
发起人填写具体的资料后就可以实现拼团的发起。发起拼团功能的实现界面如下图

3.3参与拼团功能的实现
用户可以参与拼团,参与拼团功能的实现界面如下图

3.4我的功能界面实现
我的功能里可以管理参团信息、拼团订单、评价信息、收藏信息、帖子信息、拼团旅游等。我的功能实现界面如下图

四、管理员功能模块
4.1管理员登录功能的实现界面
管理员登录功能设计在前台界面里,管理员点击后台管理功能可以进入管理员登录功能界面里,在此界面里可以看到所有元素,管理员输入必要的信息完成验证后就可以进入自己的操作界面。管理员登录界面的设计效果如下图

4.2个人中心管理功能的界面实现
管理员可以管理个人资料和密码。管理员修改密码的实现界面如下图

4.3论坛管理功能的界面实现
本功能可以实现审核论坛和帖子的目的,管理员在本功能里可以实现帖子的回复和册除、修改等。管理员查询论坛的实现界面如下图

4.4拼团旅游管理功能的实现界面
本功能可以实现拼团旅游的更新管理,拼团旅游可以使用户参团。管理员查询拼团旅游功能的实现界面如下图

4.5评价信息管理功能的界面实现
管理员在此功能里可以查看到用户的评价内容和进行回复、删除。管理员查询评价信息的实现界面如下图

4.6用户管理功能的界面实现
游客注册后的信息都会流动到本功能里,管理员需要审核用户的注册资料后才可以正式成为用户,管理员审核用户信息的实现界面如下图

4.7参团信息管理功能的界面实现
管理员也可以查看具体的参团信息,管理员负责删除参团信息。管理员查询参团信息功能的实现界面如下图

4.7拼团订单管理功能的实现界面
管理员可以查询拼团的组织情况以及参团的用户详情,并对拼团订单信息进行删除、查询。拼团订单功能的实现界面如下图

五、部分核心代码
5.1登录系统主要代码
  
   - 
    
     
    
    
     
      /**
     
    
- 
    
     
    
    
     
       * 登录
     
    
- 
    
     
    
    
     
       */
     
    
- 
    
     
    
    
     	
      @IgnoreAuth
     
    
- 
    
     
    
    
     	
      @RequestMapping(value = 
      "/login")
     
    
- 
    
     
    
    
     	
      public R 
      login(
      String username, String password, String captcha, HttpServletRequest request) {
     
    
- 
    
     
    
    
     		
      YonghuEntity user = yonghuService.
      selectOne(
      new 
      EntityWrapper<
      YonghuEntity>().
      eq(
      "yonghuzhanghao", username));
     
    
- 
    
     
    
    
     		
      if(user==
      null || !user.
      getMima().
      equals(password)) {
     
    
- 
    
     
    
    
     			
      return R.
      error(
      "账号或密码不正确");
     
    
- 
    
     
    
    
     
      		}
     
    
- 
    
     
    
    
     		
     
    
- 
    
     
    
    
     		
      String token = tokenService.
      generateToken(user.
      getId(), username,
      "yonghu",  
      "用户" );
     
    
- 
    
     
    
    
     		
      return R.
      ok().
      put(
      "token", token);
     
    
- 
    
     
    
    
     
      	}
     
    
 5.2上传文件关键代码
  
   - 
    
     
    
    
     
      @RequestMapping("/upload")
     
    
- 
    
     
    
    
     	
      public R 
      upload
      (@RequestParam("file") MultipartFile file,String type) 
      throws Exception {
     
    
- 
    
     
    
    
     		
      if (file.isEmpty()) {
     
    
- 
    
     
    
    
     			
      throw 
      new 
      EIException(
      "上传文件不能为空");
     
    
- 
    
     
    
    
     
      		}
     
    
- 
    
     
    
    
     		
      String 
      fileExt 
      = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(
      ".")+
      1);
     
    
- 
    
     
    
    
     		
      File 
      path 
      = 
      new 
      File(ResourceUtils.getURL(
      "classpath:static").getPath());
     
    
- 
    
     
    
    
     		
      if(!path.exists()) {
     
    
- 
    
     
    
    
     
      		    path = 
      new 
      File(
      "");
     
    
- 
    
     
    
    
     
      		}
     
    
- 
    
     
    
    
     		
      File 
      upload 
      = 
      new 
      File(path.getAbsolutePath(),
      "/upload/");
     
    
- 
    
     
    
    
     		
      if(!upload.exists()) {
     
    
- 
    
     
    
    
     
      		    upload.mkdirs();
     
    
- 
    
     
    
    
     
      		}
     
    
- 
    
     
    
    
     		
      String 
      fileName 
      = 
      new 
      Date().getTime()+
      "."+fileExt;
     
    
- 
    
     
    
    
     		
      File 
      dest 
      = 
      new 
      File(upload.getAbsolutePath()+
      "/"+fileName);
     
    
- 
    
     
    
    
     
      		file.transferTo(dest);
     
    
- 
    
     
    
    
     		
      /**
     
    
- 
    
     
    
    
     
       * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
     
    
- 
    
     
    
    
     
       * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
     
    
- 
    
     
    
    
     
       * 并且项目路径不能存在中文、空格等特殊字符
     
    
- 
    
     
    
    
     
       */
     
    
- 
    
     
    
    
     
      // FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
     
    
- 
    
     
    
    
     		
      if(StringUtils.isNotBlank(type) && type.equals(
      "1")) {
     
    
- 
    
     
    
    
     			
      ConfigEntity 
      configEntity 
      = configService.selectOne(
      new 
      EntityWrapper<ConfigEntity>().eq(
      "name", 
      "faceFile"));
     
    
- 
    
     
    
    
     			
      if(configEntity==
      null) {
     
    
- 
    
     
    
    
     
      				configEntity = 
      new 
      ConfigEntity();
     
    
- 
    
     
    
    
     
      				configEntity.setName(
      "faceFile");
     
    
- 
    
     
    
    
     
      				configEntity.setValue(fileName);
     
    
- 
    
     
    
    
     
      			} 
      else {
     
    
- 
    
     
    
    
     
      				configEntity.setValue(fileName);
     
    
- 
    
     
    
    
     
      			}
     
    
- 
    
     
    
    
     
      			configService.insertOrUpdate(configEntity);
     
    
- 
    
     
    
    
     
      		}
     
    
- 
    
     
    
    
     		
      return R.ok().put(
      "file", fileName);
     
    
- 
    
     
    
    
     
      	}
     
    
 转载:https://blog.csdn.net/qq_61827376/article/details/128749930
 
					