系统实现
用户前台功能模块前端
程序法律全书管理系统登录界面,通过填写账号密码等信息进行登录,如图51所示。
图51登录界面图
登录关键代码如下。
登录
param data
param httpServletRequest
PostMappinglogin
public MapString, Object loginRequestBody MapString, String data, HttpServletRequest httpServletRequest
log.info执行登录接口;
String username data.getusername;
String email data.getemail;
String phone data.getphone;
String password data.getpassword;
List resultList null;
MapString, String map new HashMap;
ifusername ! null .equalsusername false
map.putusername, username;
else ifemail ! null .equalsemail false
map.putemail, email;
else ifphone ! null .equalsphone false
map.putphone, phone;
else
if resultList null password null
判断是否有这个用户
if resultList.size0
User byUsername User resultList.get0;
MapString, String groupMap new HashMap;
groupMap.putname,byUsername.getUserGroup;
List groupList userGroupService.selectgroupMap, new HashMap.getResultList;
if groupList.size1
return error,用户组不存在;
UserGroup userGroup UserGroup groupList.get0;
查询用户审核状态
if !StringUtils.isEmptyuserGroup.getSourceTable
String sql select examinestate from userGroup.getSourceTable WHERE userid byUsername.getUserId;
String res String.valueOfservice.runCountSqlsql.getSingleResult;
if resnull
if !res.equals已通过
return error,该用户审核未通过;
查询用户状态
if byUsername.getState!1
return error,用户非可用状态,不能登录;
String md5password service.encryptionpassword;
if byUsername.getPassword.equalsmd5password
存储Token到数据库
AccessToken accessToken new AccessToken;
accessToken.setTokenUUID.randomUUID.toString.replaceAll, ;
accessToken.setUseridbyUsername.getUserId;
tokenService.saveaccessToken;
返回用户信息
JSONObject user JSONObject.parseObjectJSONObject.toJSONStringbyUsername;
user.puttoken, accessToken.getToken;
JSONObject ret new JSONObject;
ret.putobj,user;
return successret;
return error, 账号或密码不正确;
用户注册,通过填写账号密码昵称手机邮箱身份等信息,输入完成后选择提交即可注册成功,如图52所示。
图52用户注册界面图
用户注册关键代码如下。
注册
param user
PostMappingregister
public MapString, Object signUpRequestBody User user
查询用户
MapString, String query new HashMap;
query.putusername,user.getUsername;
List list service.selectquery, new HashMap.getResultList;
if list.size0
return error, 用户已存在;
user.setUserIdnull;
user.setPasswordservice.encryptionuser.getPassword;
service.saveuser;
用户ID0,07用户获取其他与用户相关的数据
Id
GeneratedValuestrategy GenerationType.IDENTITY
Columnname userid
private Integer userId;
账户状态0,101可用2异常3已冻结4已注销
Columnname state
private Integer state;
所在用户组0,决定用户身份和权限
Columnname usergroup
private String userGroup;
上次登录时间
Columnname logintime
private Timestamp loginTime;
手机号码0,11用户的手机号码,用于找回密码时或登录时
Columnname phone
private String phone;
手机认证0,10未认证1审核2已认证
Columnname phonestate
private Integer phoneState;
用户名0,16用户登录时所用的账户名称
Columnname username
private String username;
昵称0,16
Columnname nickname
private String nickname;
密码0,32用户登录所需的密码,由616位数字或英文组成
Columnname password
private String password;
邮箱0,64用户的邮箱,用于找回密码时或登录时
Columnname email
private String email;
邮箱认证0,10未认证1审核2已认证
Columnname emailstate
private Integer emailState;
头像地址0,255
Columnname avatar
private String avatar;
创建时间
Columnname createtime
JsonFormatpattern yyyyMMdd HHmmss
private Timestamp createTime;
Transient
private String code;
首页,可以进行首页交流心我的等功能模块的查看与操作,如图53所示。
图53系统首页界面图
交流心列表页面可以查看测试标题详情等信息,并可通过关键词搜索帖子,并对发布内容点赞评论收藏等操作。如图54所示。
图54交流心界面
律师信息列表页面可以搜索姓名性别律师牌照办公地址自身简介等详情等信息等操作。如图54所示。
图55律师信息界面
管理员功能模块的实现后端
法律全书展示,管理员通过输入标题封面图文章分类点击数源标签等查询添加删除操作,如图56所示
法律全书管理界面如下图所示。
图56法律全书管理界面
法律全书管理关键代码如下所示。
RequestMappingvalue del
public MapString, Object delHttpServletRequest request
service.deleteservice.readQueryrequest, service.readConfigrequest;
public void deleteMapString,String query,MapString,String config
StringBuffer sql new StringBufferDELETE FROM .append.appendtable.append.append ;
sql.appendtoWhereSqlquery, 0.equalsconfig.getFindConfig.GROUPBY;
log.info 删除操作,table,sql;
Query query1 runCountSqlsql.toString;
query1.executeUpdate;
5.2.1法律分类管理模块
法律分类展示,管理员通过输入频道名称描述等查询添加删除操作,如图57所示
法律分类管理界面如下图所示。
图57法律分类管理界面
5.2.2律师信息管理模块
律师信息展示,管理员通过输入姓名性别律师牌照自身简介办公地址头像律师等查询添加删除操作,如图58所示
律师信息管理界面如下图所示。
图58律师信息管理界面
律师信息管理关键代码如下所示。
PostMappingupload
public MapString, Object uploadRequestParamfile MultipartFile file
log.info进入方法;
if file.isEmpty
return error, 没有选择文件;
try
判断有没路径,没有则创建
String filePath System.getPropertyuser.dir targetclassesstaticupload;
File targetDir new FilefilePath;
if !targetDir.exists !targetDir.isDirectory
if targetDir.mkdirs
log.info创建目录成功;
log.error创建目录失败;
String fileName file.getOriginalFilename;
File dest new FilefilePath fileName;
log.info文件路径, dest.getPath;
log.info文件名, dest.getName;
file.transferTodest;
JSONObject jsonObject new JSONObject;
jsonObject.puturl, apiupload fileName;
return successjsonObject;
catch IOException e
log.info上传失败, e.getMessage;
return error, 上传失败;
5.2.3用户咨询管理模块
用户咨询展示,管理员通过输入律师咨询人咨询问题律师回复等查询添加删除操作,如图59所示
用户咨询界面如下图所示。
图59用户咨询界面图
用户咨询关键代码如下所示。
PostMappingadd
public MapString, Object addHttpServletRequest request throws IOException
service.insertservice.readBodyrequest.getReader;
public MapString, Object addMapMapString,Object map
service.insertmap;
public MapString,Object readBodyBufferedReader reader
BufferedReader br null;
StringBuilder sb new StringBuilder;
br reader;
String str;
while str br.readLine ! null
sb.appendstr;
String json sb.toString;
return JSONObject.parseObjectjson, Map.class;
finally
if null ! br
return null;
public void insertMapString,Object body
StringBuffer sql new StringBufferINSERT INTO ;
sql.append.appendtable.append.append ;
sql.appendhumpToLineentry.getKey.append,
sql.deleteCharAtsql.length1;
sql.append VALUES ;
Object value entry.getValue;
if value instanceof String
sql.append.appendentry.getValue.append.append,
else
sql.appendentry.getValue.append,
sql.deleteCharAtsql.length 1;
sql.append;
log.info 插入操作,table,sql;
Query query runCountSqlsql.toString;
query.executeUpdate;
5.2.3用户管理模块
普通用户展示,管理员通过查询昵称用户名姓名性别查询添加删除等操作,如图510所示
普通用户界面如下图所示。
图510普通用户界面图
普通用户关键代码如下所示。
RequestMappinggetlist
public MapString, Object getListHttpServletRequest request
MapString, Object map service.selectToPageservice.readQueryrequest, service.readConfigrequest;
return successmap;
测试
在对该系统进行完详细设计和编码之后,就要对法律全书了系统程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。
6.2测试过程
在软件的测试过程,通常测试人员需要针对不同的功能模块设计多种测试用例。通过测试用例能够及时发现代码业逻辑上是否与真实的业逻辑相对应,及时发现代码上或逻辑上的缺陷,以此完善系统,提高软件品的质量,使软件具有良好的用户体验。
注册测试用例表如下所示。
表61注册测试用例
新用户注册
测试系统新用户个人信息注册功能的功能和安全性
进入注册页面填写个人信息
各项基本信息输入不完整
不允许注册,无法点击注册按钮
填写已存在的用户名
两次密码输入不一致
填写的各项信息没有符合提示的长度和字符要求
胡乱填写电话号码
收不到验证码
填写验证码与收到的不一致
系统显示提示信息告知用户验证码错误,不予注册
登录测试用例表如下所示。
表62登录测试用例
用户或操作员登录系统
测试用户或操作员登录系统时功能是否正常
进入用户登录页面或操作员登录页面
各项信息不予填写,直接点击登陆按钮
不允许登录,提示填写账号相关信息
填写错误的登录名或密码后点击登录系统
提示用户名或密码错误,要求重新填写进行登录
填写与验证码信息不一致的信息
系统显示出提示信息,表明验证码错误,要求重新填写
律师信息测试用例表如下所示。
表63律师信息测试用例
用户进行律师信息的操作
测试用户进行律师信息操作时,该功能是否正常
用户进入律师详情页,该律师能够被受理
对着某律师点击受理按钮
界面跳转至受理界面
在受理界面,输入必填项,点击提交按钮
提示受理成功,并返回上一级界面
在受理界面,填写受理表单的时候未输入完整,点击提交按钮
提示受理失败
用户咨询测试用例表如下所示。
表64用户咨询测试用例
事故相关信息管理功能
测试系统操作者对用户咨询相关信息进行管理的功能是否正常
登录系统进入相关管理页面
进入用户咨询界面,点击录入按钮,填写所有必填项,点击提交
提示录入成功,并返回查询界面
进入用户咨询界面,点击录入按钮,未填写一个或者多个必填项,点击提交
提示录入失败,请填写必填项
进入违章记录界面,选择要修改的一条数据,点击该条数据后面的修改按钮
节目跳转至修改界面
在修改界面,修改可修改项后,点击提交按钮
提示修改成功,并返回查询界面
进入用户咨询界面,点击某条数据后面的删除按钮
提示是否要删除该数据,如果用户点击确定按钮,则成功删除该条数据,并提示删除成功,之后返回查询界面
经过对此系统的测试,得出该系统足以满足用户日常需求,在功能项目和操作等方面也能满足操作员对于其他用户的管理。但是,还有很多功能有待添加,这个系统仅能满足大部分的需求,还需要对此系统的功能更进一步的完善,这样使用起才能更加的完美。