基于微信小程序的校园自助打印系统小程序
开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 小程序框架:uniapp 小程序开发软件:HBuilder X
一、前言介绍
二、功能分析
在系统实现时先进行功能的分析,可以保证系统功能实现的完整性。如果没有经过功能分析直接进行实现,难免不会在系统完成后发现需要进行完善,造成需要再次开发。功能分析可以降低系统的开发成本,提高开发效率。
2.1系统功能结构设计
本系统的结构分为管理员和用户、店长。本系统的功能结构图如下图
三、小程序端
3.1登录功能模块的界面实现
在系统调试运行后,可以进入本界面,本界面是最基本的功能,可以保证系统的安全,采用验证的安全机制进行设计。在本界面里可以看到账号和密码的输入框。本系统中的登录权限为普通用户。必须三种信息都正确才可以验证成功进入到对应的操作界面。系统的登录功能模块的实现界面如下图所示:
3.2首页界面的操作功能实现
在首页里可以看到管理员添加和管理的信息,用户可以在首页里进行打印的预约和打印店信息的了解。首页界面的实现如下图所示:
3.3用户预约功能的测试
对于用户预约功能的测试采用用户选择打印店进行预约,填写正确的预约信息,预约完成后,查看预约记录和用户选择打印店进行错误预约,预约完成后,查看预约结果。用户预约功能的测试界面如下图所示:
3.4用户角色的操作界面实现
四、系统后台管理员功能实现
4.1个人中心功能的实现界面
本功能的设计可以保证管理员账号的安全,使用本功能可以修改管理员的登录密码。管理员修改密码功能模块的实现界面如下图所示:
4.2用户管理功能模块的界面实现
本功能可以实现用户信息的查询和删除,管理员添加用户信息功能填写正确的信息就可以实现用户信息的添加,点击用户信息管理功能可以看到系统里所有用户的信息,在添加用户信息的界面里需要填写姓名信息,当信息填写不正确就会造成用户信息添加失败。管理员管理用户信息功能的实现界面如下图所示:
4.3打印店管理功能模块的界面实现
打印店可以使用户更好的了解店铺信息。打印店信息管理的流程为,管理员点击打印店信息管理功能,查看打印店信息,点击打印店修改功能,输入打印店信息然后点击提交按钮就可以完成打印店信息的修改。管理员查询打印店信息的实现界面如下图所示:
4.4打印服务管理功能模块的界面实现
打印服务可以帮助用户了解服务内容,管理员负责审核打印店发布的打印服务。管理员查询打印服务信息功能的实现界面如下图所示:
4.5预约打印管理功能模块的界面实现
预约打印信息属于本系统里的核心数据,管理员可以对预约打印的信息进行查询。本功能设计的目的可以使预约打印进行及时的安排。管理员查询预约打印信息的实现界面如下图所示:
4.6店长管理功能模块的界面实现
管理员可以查询店长信息,可以进行修改删除。管理员查询店长信息的实现界面如下图所示;
五、店长角色功能的界面实现
店长可以发布打印店信息和打印服务信息以及管理预约打印。实现界面如下图所示:
六、部分核心代码
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); }