案例051:基于微信小程序的畅阅读系统

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

目录

前言

系统展示

用户前台功能模块(前端)

管理员功能模块(后端)

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。

本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对畅阅读微信小程序进行需求分析,得出畅阅读微信小程序主要功能。接着对畅阅读微信小程序进行总体设计和详细设计。总体设计主要包括小程序功能设计、小程序总体结构设计、小程序数据结构设计和小程序安全设计等;详细设计主要包括畅阅读微信小程序数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对畅阅读微信小程序进行了功能测试,并对测试结果进行了分析总结,得出畅阅读微信小程序存在的不足及需要改进的地方,为以后的畅阅读微信小程序维护提供了方便,同时也为今后开发类似畅阅读微信小程序提供了借鉴和帮助。

畅阅读微信小程序开发使系统能够更加方便快捷,同时也促使畅阅读微信小程序变的更加系统化、有序化。系统界面较友好,易于操作。


系统展示

用户前台功能模块(前端)

畅阅读微信小程序登录界面,通过填写账号、密码、登录用户类型等信息进行登录

用户注册,通过填写用户名、密码、姓名、性别、身份证、手机等信息,输入完成后选择提交即可注册成功

用户登录进入首页,可以进行首页、书城、书架、我的等功能模块的查看与操作

书城,在书城页面可以查看书籍名称、分类、字数、章节、封面、作者、价格、上架日期、是否完结、内容1、内容2、内容3等信息,进行购买,加入书架

我的,在我的页面可以查看充值信息、扣费信息、书城、购买章节、章节信息、留言板等详细信息

留言板,在留言板页面通过填写留言内容并进行添加留言

管理员功能模块(后端)

管理员通过填写用户名、密码、角色进行登录

在管理员功能页面可以查看首页、个人中心、用户管理、分类管理、充值信息管理、扣费信息管理、书城管理、购买章节管理、章节信息管理、书架管理、留言板管理、系统管理等内容进行相对应操作

用户管理,在用户列表可以查看用户名、密码、姓名、性别、头像、身份证、手机等内容,并可根据需要进行修改或删除等详细操作

分类管理,在分类列表可以查看分类等内容,并可根据需要进行修改或删除等详细操作

充值信息管理,在充值信息列表可以查看用户名、姓名、金额、日期、是否支付等信息,并可根据需要进行修改或删除等详细操作

扣费信息管理,在扣费信息列表可以查看用户名、姓名、金额、备注、日期等内容,并可根据需要进行修改或删除等详细操作

书城管理,在书城列表可以查看书籍名称、分类、封面、字数、章节、内容1、内容2、内容3、作者、价格、上架日期、是否完结等内容,并可根据需要进行修改或删除等详细操作

购买章节管理,在购买章节列表可以查看书籍名称、分类、封面、价格、购买日期、用户名、姓名、是否支付等内容,并可根据需要进行发货,修改或删除等详细操作

章节信息管理,在章节信息列表可以查看书籍名称、分类、用户名、姓名、文件、发货日期等内容,并可根据需要进行修改或删除等详细操作

书架管理,在书架列表可以查看书籍名称、分类、字数、章节、用户名、封面等内容,并可根据需要进行修改或删除等详细操作

留言板管理,在留言板列表可以查看用户名、留言内容、回复内容等内容,并可根据需要进行回复,删除等详细操作

系统管理,在轮播图列表可以查看名称、值等内容,并可根据需要进行修改或删除等详细操作


代码实现

登录功能实现代码

java 复制代码
@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);
	}

注册功能实现代码

java 复制代码
@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();
    }

密码重置功能实现代码

java 复制代码
@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");
    }

修改信息功能实现代码

java 复制代码
 @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();
    }

删除信息功能实现代码

java 复制代码
@RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

保存信息功能实现代码

java 复制代码
@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();
    }
相关推荐
_oP_i5 分钟前
Pinpoint 是一个开源的分布式追踪系统
java·分布式·开源
mmsx8 分钟前
android sqlite 数据库简单封装示例(java)
android·java·数据库
bryant_meng10 分钟前
【python】OpenCV—Image Moments
开发语言·python·opencv·moments·图片矩
武子康33 分钟前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
若亦_Royi34 分钟前
C++ 的大括号的用法合集
开发语言·c++
资源补给站2 小时前
大恒相机开发(2)—Python软触发调用采集图像
开发语言·python·数码相机
豪宇刘2 小时前
MyBatis的面试题以及详细解答二
java·servlet·tomcat
秋恬意2 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
m0_748247552 小时前
Web 应用项目开发全流程解析与实战经验分享
开发语言·前端·php
6.942 小时前
Scala学习记录 递归调用 练习
开发语言·学习·scala