基于SpringBoot+微信小程序的防诈骗平台
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
社会背景随着互联网的高速发展,网络和手机的普及率也大大提高,这也衍生出一系列问题:用户信息泄露、不法分子电话诈骗等…现越来越多的老年人甚至年轻人经历过电信诈骗并被骗了大量金额。该产品正是基于这样的社会现象,为缺乏诈骗知识的人提供多种防诈保护指南,提升群众预防电信网络诈骗的意识和能力
二、项技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。
Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。 - Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
- SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
- Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
- smart:微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。
全面开放申请后,主体类型为企业、政府、媒体、其他组织或个人的开发者,均可申请注册小程序。微信小程序、微信订阅号、微信服务号、微信企业号是并行的体系。
微信小程序是一种不用下载就能使用的应用,也是一项创新,经过将近两年的发展,已经构造了新的微信小程序开发环境和开发者生态。微信小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,已经有超过150万的开发者加入到了微信小程序的开发,与我们一起共同发力推动微信小程序的发展,微信小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,微信小程序还在许多城市实现了支持地铁、公交服务。微信小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。
三、系统功能模块介绍:
四、数据库设计:
1:‘案例表’(cases)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 案例编号 |
banner_img | varchar | NULL | 案例图片 |
title | varchar | NULL | 案例标题 |
info | varchar | NULL | 案例标语 |
content | text | NULL | 案例内容 |
create_time | datetime | NULL | 创建时间 |
status | int | NULL | 状态[0:审核中,1:通过] |
2:‘专家表’(expert)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 专家编号 |
username | varchar | NULL | 账号 |
password | varchar | NULL | 密码 |
exp_name | varchar | NULL | 姓名 |
exp_age | int | NULL | 年龄 |
exp_sex | int | NULL | 性别 |
exp_info | text | NULL | 简介 |
exp_tel | varchar | NULL | 联系方式 |
exp_img | varchar | NULL | 头像 |
create_time | datetime | NULL | 创建时间 |
3:‘关键词表’(keywords)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 关键词编号 |
keyword | varchar | NULL | 关键词 |
create_time | datetime | NULL | 创建时间 |
4:‘管理员表’(manage)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | ID |
user_name | varchar | NULL | 用户名 |
pass_word | varchar | NULL | 密码 |
photo_img | varchar | NULL | 图片 |
name | varchar | NULL | 名称 |
5:‘问答表’(messages)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
expert_id | bigint | NULL | 用户ID |
stu_id | bigint | NULL | 专家ID |
create_time | datetime | NULL | 创建时间 |
answer | varchar | NULL | 回复 |
content | varchar | NULL | 留言内容 |
6:‘用户反馈表’(question)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
stu_id | bigint | NULL | 用户ID |
create_time | datetime | NULL | 创建时间 |
content | varchar | NULL | 意见内容 |
7:‘学生用户表’(student)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 学生编号 |
stu_name | varchar | NULL | 姓名 |
stu_age | int | NULL | 年龄 |
stu_sex | int | NULL | 性别[0:男,1:女] |
stu_phone | varchar | NULL | 联系方式 |
stu_address | varchar | NULL | 家庭住址 |
stu_img | varchar | NULL | 照片 |
create_time | datetime | NULL | 创建时间 |
password | varchar | NULL | 登录密码 |
五、功能模块:
-
案例查看:案例查看
-
诈骗信息辨别:用户把自己身边可能的诈骗信息输入到小程序中,依据后台的关键字来匹配信息中可能存在的诈骗关键字
-
历史问答:用户可以向专家提问,专家回答
-
诈骗举报管理 :用户举报,管理后台核实,然后向所有用户端展示举报信息)
六、代码示例:
案例查看
async casesFindList() {
let res = await caseApi.casesFindList({
status: 0
})
this.caseData = res.data
},
itemClick(item) {
uni.navigateTo({
url: '/pages/detail/detail?id=' + item.id
})
},
诈骗信息辨别
async keywordsFindList() {
let res = await keywordApi.keywordsFindList({})
console.log("页面keyword中方法keywordsFindList(根据条件全量查询关键词管理数据!)返回结果为:", res.data)
this.keywordList = res.data
},
start() {
let str = ''
for (let i in this.keywordList) {
console.log(this.content.indexOf(this.keywordList[i]))
if (this.content.indexOf(this.keywordList[i].keyword) != -1) {
str += this.keywordList[i].keyword + " "
}
}
if (str.length <= 0) Util.showMyToast("尚未发现诈骗关键字")
this.hasStr = str
},
历史问答
async messagesFindList() {
let param = {}
param.stuId = this.userInfo.id
let res = await recordsApi.messagesFindList(param)
this.messageList = res.data
console.log("页面records中方法messagesFindList(根据条件全量查询问答管理数据!)返回结果为:", res.data)
},
诈骗举报管理
@PostMapping(value = "/findList")
public ReturnMsg findList(@RequestBody QuestionDTO questionDTO) {
return ReturnMsg.ok(baseService.findList(questionDTO));
}
七、项目总结:
在设计防诈骗小程序的过程中还遇到了一些棘手的问题,那就是自己的英语水平还有待提高,很多关于网站技术开发的资料文献都是英文版的,关键词语以及技术性词汇不能很好的理解。只有在借助翻译软件的实时性翻译功能的辅助下才勉强看懂。显然英语水平的高低直接影响到系统的开发过程。还有一些错误信息、比如用户空指针异常、还有MYSQL5.7版本数据库版本5.5和5.7不一致的问题、会导致SQL语句无法正常运行、还要就是管理员用户名设置的时候,后台没有判断好、在输入错误用户密码的的时候还是可以登录。这样的错原则上是不能发生的,在返回代码检查的情况下发现是在管理员信息与数据库的DAO类代码里出现了错误,代码和数据库之间没有建立好连接。还有比如管理员添加用户的时候报java.lang.NullPointException、解决的方法:查看控制台打印信息、发现添加的时候未填写相关信息、报java.lang.NullPointException、通过断电调试发现、用户信息为空的数据项、在前端保存的时候、必须填写用户完整相关信息、或者数据库设置字段可以为空都可以解决。经过本次测试,我会更加的对代码和数据库的操作上更加细心,不再出现这种原则上的错误。