私信或留言即免费送开题报告和任务书(可指定任意题目)
一、摘要
随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。本次开发的文档管理系统有管理员和用户两个角色。管理员功能有论坛管理,公告管理,资料管理,用户管理等。用户可以注册登录,可以上传资料信息,管理员审核后其他用户就可以进行下载,还可以在论坛里面发信息以及查看相关公告信息。开发本程序后台用到了Spring Boot开发技术,页面设计采用VUE框架和layui样式。数据库采用关系数据库市场占有率最高的MySQL作为本程序使用的数据库,完全符合程序使用并且有丰富的拓展余地。程序从需求到设计,从开发到测试,都在功能上和性能上都不断的进行了调试,让开发的程序在使用上用户体验更美好。
关键词:文档管理系统;Spring Boot;MySQL;VUE;Layui
二、相关技术
java、tomcat、mysql、spring、springBoot、mybatis、query、vue
三、系统设计
3.1 整体功能设计图
程序的功能在系统分析这部分已经确定了,这部分主要还是针对程序功能进行更加详细的设计,设计成果使用结构图展示直观明了,也更容易让人理解。绘制结构图采用的工具是Visio,使用它可以快速绘制出不同角色拥有的功能结构。
3.2 功能具体细节设计
1、管理员功能实现
用户管理
管理员可以对用户信息进行添加,修改,删除,查询操作。
资料类型管理
管理员可以对资料类型信息进行添加,修改,删除,查询操作。
公告信息管理
管理员可以对公告信息进行添加,修改,删除,查询操作。
2、用户功能实现
资料信息添加
用户登录后可以在资料管理里面添加资料信息。
资料信息管理
用户可以看到自己添加的资料信息,包含是否审核状态以及可以对自己添加的资料信息进行添加,修改,删除,查询操作。
论坛管理
用户可以在论坛管理里面查和回复相关论坛信息。
资料信息
用户可以在首页的资料信息里面查看和下载资料信息。
四、数据库设计
(1)下图是论坛实体和其具备的属性。
(2)下图是用户实体和其具备的属性。
(3)下图是公告信息实体和其具备的属性。
(4)下图是字典表实体和其具备的属性。
五、核心代码
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
NewsEntity news = newsService.selectById(id);
if(news !=null){
//entity转view
NewsView view = new NewsView();
BeanUtils.copyProperties( news , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody NewsEntity news, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,news:{}",this.getClass().getName(),news.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isEmpty(role))
return R.error(511,"权限为空");
Wrapper<NewsEntity> queryWrapper = new EntityWrapper<NewsEntity>()
.eq("news_name", news.getNewsName())
.eq("news_types", news.getNewsTypes())
.eq("news_delete", news.getNewsDelete())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
NewsEntity newsEntity = newsService.selectOne(queryWrapper);
if(newsEntity==null){
news.setInsertTime(new Date());
news.setNewsDelete(1);
news.setCreateTime(new Date());
newsService.insert(news);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody NewsEntity news, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,news:{}",this.getClass().getName(),news.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(StringUtil.isEmpty(role))
// return R.error(511,"权限为空");
//根据字段查询是否有相同数据
Wrapper<NewsEntity> queryWrapper = new EntityWrapper<NewsEntity>()
.notIn("id",news.getId())
.andNew()
.eq("news_name", news.getNewsName())
.eq("news_types", news.getNewsTypes())
.eq("news_delete", news.getNewsDelete())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
NewsEntity newsEntity = newsService.selectOne(queryWrapper);
if("".equals(news.getNewsPhoto()) || "null".equals(news.getNewsPhoto())){
news.setNewsPhoto(null);
}
if(newsEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// news.set
// }
newsService.updateById(news);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
六、论文参考
七、源码获取
点赞、收藏、关注、评论啦。
联系即送开题报告和任务书,欢迎咨询