文末获取源码
开发语言:Java
框架:springboot
JDK版本:JDK1.8
数据库:mysql 5.7
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.5.4
小程序框架:uniapp
小程序开发软件:HBuilder X
小程序运行软件:微信开发者
目录
前言
通过移动互联网这几年的发展,单独的开发某些APP已经到了日暮西山的地步,原因不在于单个的APP功能丰富与否,而是因为用户生态体系的问题。使用智能手机的用户经过多年的使用习惯,已经越来越不喜欢安装各种的APP,除了正常生活和工作所必须的APP,不喜欢因为喜欢某些内容而被强制安装APP软件了。最近几年,随着微信生态的布局,通过开发微信小程序接口,让广大用户可以通过微信直接访问小程序,不需要去专门安装那些APP,这一点让很多用户喜爱,基本上只要能转向微信生态的业务,许多企业都已经开始拥抱微信小程序。本课题就是研究和实现一款校园资料分享微信小程序。
校园资料分享微信小程序可以实现论坛管理,教师管理,公告信息管理,文件信息管理,文件收藏管理等功能。该系统采用了SpringBoot框架,Mysql数据库,Java语言等技术实现管理员后台,采用微信开发者工具来对用户小程序端进行了开发。
校园资料分享微信小程序让文件信息,论坛信息等相关信息集中在后台让管理员管理,让用户在小程序端下载文件,分享文件,参与信息交流,该系统让信息管理变得高效,也让用户下载文件,查看交流信息等变得越来越方便。
系统展示
管理员功能实现
教师管理
图5.1 即为编码实现的教师管理界面,教师信息需要管理员添加,管理员也能使用修改功能对教师的联系方式,身份证号等信息进行更正。
论坛管理
图5.2 即为编码实现的论坛管理界面,管理员可以使用修改功能对有错误数据的论坛帖子进行更正,可以直接删除传播不良信息的论坛帖子,以及对论坛帖子的回复进行查看。
文件收藏管理
图5.3 即为编码实现的文件收藏管理界面,用户收藏的文件信息,管理员可以查看,管理员也能使用删除功能对需要删除的文件收藏信息进行删除。
公告信息管理
图5.4 即为编码实现的公告信息管理界面,管理员对公告增删改查管理。
教师功能实现
文件信息管理
图5.5 即为编码实现的文件信息管理界面,教师下载管理员上传的文件,教师可以把文件标识为重点,也能取消文件的重点标识信息,教师查询文件信息,需要根据文件状态或文件名称查询文件。
论坛管理
图5.6 即为编码实现的论坛管理界面,教师新增论坛帖子,教师对自己的帖子进行跟踪,包括随时查看论坛帖子的回复,以及删除论坛帖子的回复或对论坛帖子发布回复信息。
用户功能实现
文件信息
图5.7 即为编码实现的文件信息界面,用户查看文件的标识信息,查看文件状态,下载文件,收藏喜欢的文件。
论坛信息
图5.8 即为编码实现的论坛信息界面,用户查看论坛信息界面展示的所有的帖子,每当用户查看完帖子内容之后,都可以评论帖子。
我发布的文件
图5.9 即为编码实现的我发布的文件界面,用户也能发布文件,点击新增按钮就可以登记文件信息,上传文件,最后提交。用户自己发布的文件,用户也可以删除。
我的发帖
图5.10 即为编码实现的我的发帖界面,用户点击新增按钮即可发布帖子,我的发帖界面展示的帖子都是用户自己发布的帖子,所以用户可以删除帖子,也能对自己的帖子的内容以及回复信息进行查看。
代码实现
登录功能实现代码
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
注册功能实现代码
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
密码重置功能实现代码
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
修改信息功能实现代码
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
删除信息功能实现代码
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
保存信息功能实现代码
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}