基于微信小程序的民宿短租系统小程序

一、前言介绍

随着社会的发展,出差、旅游成为常态,也就造成民宿短租市场的兴起。人们新到陌生的环境里找民宿一般都是通过中介。中介虽然可以快速找到合适的民宿但会收取大量的中介费用,这对刚到新环境里的人们来说是一笔大的资金支出。也有一些人通过自己去物业找民宿,但这种民宿出租信息非常有限,不能快速的找到合适的民宿。还有一部分会去网上平台找民宿,这种方式里的民宿大多都是中介。随着网络的快速发展,网上平台成为新的途径。本基于微信小程序民宿短租系统减少中间商,并且民宿信息齐全,价格透明,更受人们喜爱。

本基于微信小程序民宿短租系统采用Java语言进行开发,数据库采用Mysql,小型轻便,使系统中的数据更为安全,技术采用微信小程序。本系统实现了民宿信息的网上宣传,用户可以随时浏览和预订。管理员可以管理民宿信息和订单信息。房主可以管理自己的民宿和订单。本系统提高了用户预订民宿的效率,同时也帮助房主更快的找到租客。

二、数据库设计

2.1数据E-R图

数据ER图就是把抽象的数据进行建模,通过不同的图形来清晰化的表示数据。数据库设计的第一步就是数据ER图的设计。本系统中主要的数据为管理员信息、用户信息、民宿信息.和预订信息等。 

(1)管理员信息为管理员身份的资料,包括编号和密码、账号。管理员信息ER图如下图所示:

(2)民宿信息可由房主进行发布,民宿信息包括面积、价格,装修等,民宿信息ER图如下图所示:

(3)预订信息也是由用户产生,管理员审核,房主管理。预订信息包括类型、民宿户型、民宿面积等。预订信息.ER图如下图所示:

(5)系统全局EER图如下图所示:

三、小程序端

3.1用户登录功能模块的实现界面

本系统需要登录才可以使用相关功能。用户登录功能的操作步骤为,用户点击用户登录功能,可以跳转到用户登录的窗口界面里,在用户登录的窗口界面里输入账号和密码,然后点击登录按钮。用户登录窗口的界面实现如下图所示: 

3.2用户注册模块功能的实现

用户注册功能可以实现成为本系统用户的作用。当用户点击用户注册功能时界面会进入新的注册界面。注册的流程为用户填写注册信息,数据库先进行判断数据是否正确,如果正确可以在数据库中插入用户信息,如果信息错误,则会提示注册失败。用户注册功能的流程如下图所示:

用户注册的实现界面如下图所示:

3.3评价功能模块的界面实现

用户评价的流程为用户点击评价功能,然后输入评价信息,当评价信息为有效时,可以评价成功,当评价信息为无效时,需要重新评价。用户评价的流程如下图所示:

用户评价的实现界面如下图所示:

3.4新闻公告功能模块的实现界面

公告信息是由管理员负责管理的,用户可以在前台看到公告的详细信息,在公告功能里,公告可以由列表进行标题、时间的展示。当想了解具体的公告信息时,可以点击标题进入公告详情界面。公告功能的实现界面如下图所示:

3.5民宿详情的功能实现界面

在民宿详情界面里可以看到详细的民宿信息,包括类型、户型、面积、价格等。民宿详情里有联系方式,用户可以实现在线预订。民宿详情的实现界面如下图所示: 

3.6在线预订功能模块的实现界面

用户在预订民宿时需要填写入住日期、入住天数和订单备注。在线预订信息的实现界面如下图所示: 

3.7民宿预订管理功能界面的实现

用户预订成功后可以管理预订信息。民宿预订管理功能的实现果面如下图所示: 

3.8我的管理功能界面的实现

四、系统后台管理员功能实现

4.1管理员功能的实现界面

管理员的功能为用户管理、房主管理、民宿管理、房间类型管理、预订管理和系统管理等。实现界面如下图所示: 

五、系统后台房主功能实现

5.1房主注册功能的实现界面

房主也可以通过注册实现系统的使用。实现界面如下图所示: 

5.2房主功能界面的实现

本界面分为图片、文字、标题、按键、列表等。房主可以发布民宿和管理预订信息以及个人信息。房主界面的实现效果如下图所示: 

六、部分核心代码

6.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);}

6.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://my.lmcjl.com/post/9677.html

展开阅读全文

4 评论

留下您的评论.