基于JAVA+Vue+SpringBoot+MySQL的课程案例资源库系统,包含了案例资源模块、用户交流模块、意见反馈模块、敏感信息模块、举报信息模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,课程案例资源库系统基于角色的访问控制,给管理员、学生使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。
本节主要是在系统开发前所必须要进行的需求分析,需求分析是开发研究人员通过深入细微的调研和分析,准确理解用户和项目的功能、性能、可行性等具体要求,将用户非形式化的需求表述转化为系统完整的需求定义,从而确定该系统必须做什么的过程。
管理员主要是实现对用户注册、用户信息、系统站内咨询、用户交流板块、案例资源发表、敏感信息、举报信息、意见反馈等方面进行管理。
用户存在两种形态,即未进行注册操作的游客形态和进行注册操作之后的教师和学习两种身份的用户形态。未注册用户拥有用户注册、搜索案例资源、查看案例资源、浏览交流区、查看用户信息等模块的功能。
已经进行注册操作的用户将拥有更多功能,这些功能包括发表案例资源、修改案例资源、搜索案例资源、查看案例资源、删除案例资源、发布交流信息、查看用户信息、举报案例资源、信息反馈等模块功能。具体功能如图
管理员通过自己的管理员账号登录课程案例资源系统后,可以对用户信息、案例资源的增删改查、反馈信息和举报信息等功能模块做出相应操作。
用户登录课程案例资源库时需要甄别是否进行注册操作,未注册的游客身份与已注册的用户身份的操作业务亦有所不同。
首页主要是众多功能集合在一个界面的面板,理应包含该系统的所有功能或功能集合的集成化板块。
用户点击这个案例资源中心模块后,可以针对案例资源进行相关操作,比如创建案例资源、搜索查看案例资源等操作。
用户点击用户信息中心后,即可对该系统中关于自己账号的基本信息、关注用户、屏蔽用户、私信管理等模块进行操作。
用户在主页点击意见用户中心后,即可对自己所发布的评论信息、反馈信息、举报信息进行处理操作。
通过对整体流程的了解,我们将具体化的操作细分化并分类处理,即可绘制出具体的数据流程图。用户可以对案例资源进行增删改查等、与其他用户交流、意见反馈等操作,管理员能够对案例资源信息、意见反馈信息等进行管理。
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询案例资源")
public Result<IPage<CaseResources>> getByPage(@ModelAttribute CaseResources caseResources ,@ModelAttribute PageVo page){
QueryWrapper<CaseResources> qw = new QueryWrapper<>();
User currUser = securityUtil.getCurrUser();
QueryWrapper<User> userQw = new QueryWrapper<>();
userQw.eq("id",currUser.getId());
userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841795'");
if(iUserService.count(userQw) < 1L) {
qw.eq("status","审核通过");
}
List<SensitiveData> sensitiveDataList = iSensitiveDataService.list();
if(!ZwzNullUtils.isNull(caseResources.getTitle())) {
qw.like("title",caseResources.getTitle());
}
if(!ZwzNullUtils.isNull(caseResources.getStatus())) {
qw.eq("status",caseResources.getStatus());
}
if(!ZwzNullUtils.isNull(caseResources.getContent())) {
qw.like("content",caseResources.getContent());
}
IPage<CaseResources> data = iCaseResourcesService.page(PageUtil.initMpPage(page),qw);
for (CaseResources cr : data.getRecords()) {
for (SensitiveData sd : sensitiveDataList) {
if(cr.getTitle().indexOf(sd.getTitle()) > -1 || cr.getContent().indexOf(sd.getTitle()) > -1) {
cr.setSensitive(true);
break;
}
}
}
return new ResultUtil<IPage<CaseResources>>().setData(data);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增案例资源")
public Result<CaseResources> insert(CaseResources caseResources){
User currUser = securityUtil.getCurrUser();
caseResources.setUserId(currUser.getId());
caseResources.setUserName(currUser.getNickname());
caseResources.setStatus("未审核");
iCaseResourcesService.saveOrUpdate(caseResources);
return new ResultUtil<CaseResources>().setData(caseResources);
}
@RequestMapping(value = "/insert", method = RequestMethod.POST)
@ApiOperation(value = "新增用户交流")
public Result<Message> insert(Message message){
User currUser = securityUtil.getCurrUser();
message.setUserId(currUser.getId());
message.setUserName(currUser.getNickname());
message.setTime(DateUtil.now());
message.setReplyId("");
message.setReplyName("");
message.setReplyContent("");
message.setReplyTime("");
iMessageService.saveOrUpdate(message);
return new ResultUtil<Message>().setData(message);
}
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询意见反馈")
public Result<IPage<ReplyOpinion>> getByPage(@ModelAttribute ReplyOpinion replyOpinion ,@ModelAttribute PageVo page){
QueryWrapper<ReplyOpinion> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(replyOpinion.getContent())) {
qw.like("content",replyOpinion.getContent());
}
if(!ZwzNullUtils.isNull(replyOpinion.getUserName())) {
qw.like("user_name",replyOpinion.getUserName());
}
IPage<ReplyOpinion> data = iReplyOpinionService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<ReplyOpinion>>().setData(data);
}
@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询敏感信息")
public Result<IPage<SensitiveData>> getByPage(@ModelAttribute SensitiveData sensitiveData ,@ModelAttribute PageVo page){
QueryWrapper<SensitiveData> qw = new QueryWrapper<>();
if(!ZwzNullUtils.isNull(sensitiveData.getTitle())) {
qw.like("title",sensitiveData.getTitle());
}
if(!ZwzNullUtils.isNull(sensitiveData.getStatus())) {
qw.eq("status",sensitiveData.getStatus());
}
IPage<SensitiveData> data = iSensitiveDataService.page(PageUtil.initMpPage(page),qw);
return new ResultUtil<IPage<SensitiveData>>().setData(data);
}
下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!