第四章关键模块的设计与实现
基于前期对springboot人脸识别交流论坛网站系统的需求分析以及整体架构,我们精心设计了一个页面,以便更好地展示出用户的行为,并且能够更加有效地实现业务逻辑。本文将重点介绍springboot人脸识别交流论坛网站系统界面和业务逻辑。
第一节后台首页模块
该项目的首页页面包含导航栏:用于导航系统的各个板块,其中有后台首页、系统用户、交流论坛管理、节日祝福管理、系统管理、通知公告管理、资源管理、这几个板块。
首页主要分别展示各个模块的最新动态,浏览者可以很清楚地看到不同模块的最新更新内容。并且系统首页每个部分可以跳转到相对应的模块,方便浏览者选择感兴趣的地方。
首页载入流程图如4-1所示。
图4-1首页载入流程
首页界面如下图4-2所示。
图4-2首页界面图
第二节注册模块
springboot人脸识别交流论坛网站系统的注册登录操作,普通用户都是从同一个注册登录页面进行注册登录,若是还未有系统账号,则进行注册操作;若是已注册账号,则用户在操作时,输入账号、密码,再选择相应的角色,如“用户”等。
用户注册流程图如下4-3所示。
图4-3用户注册流程
普通用户注册界面如下图4-4所示。
图4-4普通用户注册界面
/**
*注册
*@param user
*@return
*/
@PostMapping("register")
public Map<String,Object>signUp(@RequestBody User user){
//查询用户
Map<String,String>query=new HashMap<>();
Map<String,Object>map=JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
List list=service.selectBaseList(service.select(query,new HashMap<>()));
if(list.size()>0){
return error(30000,"用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
注册页password则使用了MD5加密,代码如下:
public String encryption(String plainText){
String re_md5=new String();
try{
MessageDigest md=MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[]=md.digest();
int i;
StringBuffer buf=new StringBuffer("");
for(int offset=0;offset<b.length;offset++){
i=b[offset];
if(i<0)
i+=256;
if(i<16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5=buf.toString();
}catch(Exception e){
e.printStackTrace();
}
return re_md5;
}
第三节登录模块
在springboot人脸识别交流论坛网站系统模块输入账号+密码,点击“登录”按钮,系统在用户数据库表中会对管理员的账号进行匹配,账号+密码正确的话,就会登录到系统中各个用户的主管理界面,否则提示对应的信息,返回到登录的界面。
用户登录流程图如下4-5所示。
图4-5登录流程图
登录界面如下图4-6所示。
图4-6登录界面图
登录代码如下:
/**
*登录
*@param data
*@param httpServletRequest
*@return
*/
@PostMapping("login")
public Map<String,Object>login(@RequestBody Map<String,String>data,HttpServletRequest httpServletRequest){
log.info("[执行登录接口]");
String username=data.get("username");
String email=data.get("email");
String phone=data.get("phone");
String password=data.get("password");
List resultList=null;
Map<String,String>map=new HashMap<>();
if(username!=null&&"".equals(username)==false){
map.put("username",username);
resultList=service.selectBaseList(service.select(map,new HashMap<>()));
}
else if(email!=null&&"".equals(email)==false){
map.put("email",email);
resultList=service.selectBaseList(service.select(map,new HashMap<>()));
}
else if(phone!=null&&"".equals(phone)==false){
map.put("phone",phone);
resultList=service.selectBaseList(service.select(map,new HashMap<>()));
}else{
return error(30000,"账号或密码不能为空");
}
if(resultList==null||password==null){
return error(30000,"账号或密码不能为空");
}
//判断是否有这个用户
if(resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername=(User)resultList.get(0);
Map<String,String>groupMap=new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList=userGroupService.selectBaseList(userGroupService.select(groupMap,new HashMap<>()));
if(groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup=(UserGroup)groupList.get(0);
//查询用户审核状态
if(!StringUtils.isEmpty(userGroup.getSourceTable())){
String res=service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if(res==null){
return error(30000,"用户不存在");
}
if(!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if(byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password=service.encryption(password);
if(byUsername.getPassword().equals(md5password)){
//存储Token到数据库
AccessToken accessToken=new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-",""));
accessToken.setUser_id(byUsername.getUserId());
Duration duration=Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(),accessToken,duration);
//返回用户信息
JSONObject user=JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token",accessToken.getToken());
JSONObject ret=new JSONObject();
ret.put("obj",user);
return success(ret);
}else{
return error(30000,"账号或密码不正确");
}
}
第四节普通用户模块
一、新闻资讯界面
新闻资讯:用户点击“文化资讯”可查看管理员和其他用户发布的关于交流论坛的相关信息,用户可以进行点赞、收藏,如图4-7和4-8所示。
图4-7文化资讯界面图
二、交流论坛界面
交流论坛:用户可以通过关键字搜索或者它通过分类列表查看交流论坛信息,可以查看交流论坛推荐,对喜欢的交流论坛内容进行点赞收藏和评论等操作。如图4-9所示。
图4-9交流论坛界面图
二、用户私信界面
用户私信:用户可以添加论坛账户用户进行私信聊天。如图4-10所示。
图4-10用户私信界面图
第五节管理员模块
一、系统用户界面
登录系统用户管理界面:管理员可以对系统中所有的用户角色进行管控,包含了管理员、普通用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。如图4-10所示。
图4-10系统用户界面图
系统用户代码如下:
package com.project.demo.constant;
public class FindConfig{
public static String PAGE="page";
public static String SIZE="size";
public static String LIKE="like";
public static String ORDER_BY="orderby";
public static String FIELD="field";
public static String GROUP_BY="groupby";
public static String MIN_="_min";
public static String MAX_="_max";
public static String SQLHWERE="sqlwhere";
}
二、交流论坛管理界面
交流论坛管理:管理员可以查看交流论坛列表,包括添加、修改、删除论坛信息,包括论坛标题、交流分类、论坛标签、论坛描述、论坛内容、封面图片等。如图4-11所示。
图4-11交流论坛管理界面图
三、系统管理界面
登录系统管理界面:可以插入轮播图图片、填写标题进行提交,如图4-12所示。
- 资源管理界面
- 资源管理:管理员可以对网站的资讯列表、资讯分类还有问答测试进行管理,包括添加题目、修改、删除等操作,如图4-13所示。
图4-13资源管理界面
第五章系统测试
在系统开发的最后阶段,系统测试显得尤为重要,它不仅可以帮助我们更好地理解软件的设计,还能提高开发效率。由于系统开发过程中可能存在诸多缺陷,即使是最优秀的系统开发工程师也无法避免这些缺陷。因此,通过进行系统测试,我们可以有效地纠正这些bug,从而为后续的系统维护和升级提供有力的支持。经过严格的系统测试,开发者们能够更加坚定地认识到系统的性能,从而更有动力去推动后续的系统更新。
系统测试包括:用户登录功能测试、交流论坛查看测试、添加交流论坛、密码修改功能测试,如表5-1、5-2、5-3所示:
表5-1用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1)进入登录页面 2)输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
管理员添加人脸识别交流论坛界面测试:
表5-2管理员添加人脸识别交流论坛界面测试表
用例名称 | 交流论坛发布测试用例 |
目的 | 测试交流论坛发布功能 |
前提 | 用户正常登录情况下 |
测试流程 | 1)点击交流论坛管理,然后点击添加后并填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,页面首页会显示新的交流论坛 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-3密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
经过对springboot人脸识别交流论坛网站系统的测试,我们已经完成了三大模块的检测,包括用户登录功能测试、添加交流论坛、密码修改功能测试,这些功能为后续的推广运营提供了强有力的技术支持。
经过长时间的努力,我终于完成了这项系统设计。在此期间,我深入研究了系统开发中所涉及的相关知识,并且发现了自身的不足,从而更好地掌握了必要的应用技能,进一步的学习使我的知识储备更加丰富,最终完成了这项艰巨的任务。当面临挑战时,我会立即向老师寻求帮助,并利用专业的网络资源和论坛平台,以期望能够一步步地克服困境。系统设计过程不容易,你需要不断充实自己,有勇气克服困难。尽管系统开发的一些功能尚未完善,但我仍然会尽最大努力去改进,以便让用户体验更加出色。这次成功的尝试,让我感到无比欣慰,因为它是我第一次尝试,而且我会继续努力,打造出更加出色的系统。
当初,因为对一些编程语言的系统实施方法并不十分精通,使得开发变得极其艰巨。然而,最终,我成功利用一款特定的字典软件,克服了这一重重挑战。从而,我也深刻认识到,只要努力,才能够改善自身的英语水平,从而为未来的职业及生涯打下坚实的基础。经历了毕业设计的挑战,让我收获颇丰。最初,由于缺乏相关的开发知识,只能逐步尝试,但随着时间的推移,越来越了解了相关的文献与资料,并且能够成功地将其应用到实践当中。此外,该系统也为网络学习提供了强大的支持,让我能够更好地完成论文的撰写,并且拥抱挑战,以及探索生活中的各种未知。通过毕业设计,我深刻地体验到了如何把所掌握的理论转化为可行的行动。这使得我明白,要想取得成功,就需要不断努力,坚定地走下去。
公司网址正确格式百度站长平台链接提交香港免费空间狮山网站建设有什么推广的平台海口网站制作案例网页在线代理武汉百度推广公司怎么样开发微信小程序群站优化之链轮模式成都手机建站江苏建设工程网怎么做网络营销推广3万元简装修大全珠海网站公司哪家好北京昨天出啥大事了网站系统维护一般多久成品网站前台源码网站设计毕业设计靠谱吗购物网站哪个好专业建设目标深圳哪个区最好免费app开发平台网页设计图片大小怎么改六安网站软件商店正版下载武汉营销推广软件开发工程师工作条件怎么申请公司注册免费服务器网址