文末联系获取源码
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
一、前言介绍
本基于Vue,和微信小程序的校园自助打印系统采用JAVA语言和微信小程序技术,数据库采用Mysql,运行软件为微信开发者工具。本系统实现了管理员和用户、店长三个角色的功能。管理员的功能为个人中心管理、用户管理、店长管理、打印店管理、打印服务管理、服务类型管理、预约打印管理等。用户的功能为查看打印店进行预约和了解打印服务和管理收藏信息等。店长可以管理打印店、打印服务和预约打印信息。本系统实现了网上预约打印的流程化管理,可以帮助工作人员的管理工作和帮助用户查询打印的相关信息,改变了用户打印的方式,提高了用户打印的效率。
二、功能分析
在系统实现时先进行功能的分析,可以保证系统功能实现的完整性。如果没有经过功能分析直接进行实现,难免不会在系统完成后发现需要进行完善,造成需要再次开发。功能分析可以降低系统的开发成本,提高开发效率。
本系统是针对校园自助打印开发的工作管理系统,包括到所有的工作内容。可以使自助打印的工作合理化和流程化。本系统包括手机端设计和电脑端设计,有界面和数据库。本系统的使用角色分为管理员和用户、店长三个身份。管理员可以管理系统里的所有信息。店长可以发布服务信息和查询用户的预约信息。用户可以浏览打印服务和打印店、预约打印以及管理预约信息、收藏信息。
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);
}