1. Base64 编码
解锁技能,猴子打野出装需 5 大米 ,才能真正驾驭“猴三棒”的暴力美学 鞋子/小野刀/贪婪之噬/暗影战斧/泣血之刃/名刀·司命 铭文组合为8夺萃、1狩猎、1兽痕、5祸源、5无双、10鹰眼
必备技能:Base64 编码解码
2. 项目简介
“文档管理系统” 旨在为用户提供一个在线文档或资料管理的平台。主要功能包括:用户(如学生)可以注册登录、浏览、按分类检索并上传学习资料;管理员可以对用户、资料、公告、论坛等进行后台管理。系统还集成了一个简单的论坛模块,供用户之间交流讨论。
3. 技术栈
-
后端技术:
- 核心框架: Spring Boot (版本 2.2.2.RELEASE)
- 持久层框架: MyBatis-Plus (版本 2.3) + MyBatis (版本 2.1.1)
- 安全控制: Apache Shiro (版本 1.3.2), 用于权限管理
- 数据库: MySQL (驱动版本 5.7.32-log)
- 工具库: Apache Commons Lang3, Commons IO, Hutool, Fastjson, 百度AI SDK 等
-
前端技术:
- 后台管理界面: Vue2 + Element UI
- 用户前台界面: Layui + jQuery
4. 详细介绍
4.1. 核心功能模块
- 用户: 可以查看已审核通过的资料列表,按资料类型和二级分类进行筛选,下载资料文件,并可以自己上传新的资料。
- 管理员: 可以对所有资料进行管理,包括审核用户上传的资料(审核结果:未审核、通过、拒绝),以及对资料进行增删改查。
4.2. 数据库设计
- yonghu (用户表): 存储用户账号、密码、姓名、性别、身份证、手机号、专业等。
- wendang (资料信息表): 存储资料的标题、类型、二级分类、封面图片、文件路径、所属用户、审核状态等。
- news (公告信息表): 存储公告的标题、类型、图片、内容等。
- forum (论坛表): 存储帖子的标题、内容、发布人(用户或管理员)、父ID(用于区分主题帖和回帖)、状态等。
- dictionary (字典表): 存储各类枚举值,如资料类型、专业、性别等,实现数据动态配置。
- users (管理员表): 存储管理员的账号和密码。
5. 部分代码
5.1. 后端 – 资料信息控制层 (WendangController.java)
以下代码展示了资料信息模块的后端接口实现,包括分页查询、保存(含审核状态初始化和用户关联)、更新和逻辑删除功能。
// ==== 文件引用: ./wendangguanli/src/main/java/com/controller/WendangController.java ====
package com.controller;
// … 省略导入 …
/**
* 资料信息
* 后端接口
*/
@RestController
@Controller
@RequestMapping("/wendang")
public class WendangController {
// … 省略依赖注入 …
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
// … 处理角色权限,用户只能看自己的资料 …
params.put("wendangDeleteStart",1); // 只查未删除的
PageUtils page = wendangService.queryPage(params);
// … 字典表转换 …
return R.ok().put("data", page);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody WendangEntity wendang, HttpServletRequest request){
// … 角色判断 …
// 检查是否重复
Wrapper<WendangEntity> queryWrapper = new EntityWrapper<WendangEntity>()
.eq("wendang_name", wendang.getWendangName());
// … 其他条件 …
WendangEntity wendangEntity = wendangService.selectOne(queryWrapper);
if(wendangEntity==null){
// 设置默认值:待审核状态(1),未删除(1)
wendang.setWendangYesnoTypes(1);
wendang.setWendangDelete(1);
wendang.setCreateTime(new Date());
wendangService.insert(wendang);
return R.ok();
}
return R.error(511,"表中有相同数据");
}
/**
* 删除(逻辑删除)
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
ArrayList<WendangEntity> list = new ArrayList<>();
for(Integer id:ids){
WendangEntity wendangEntity = new WendangEntity();
wendangEntity.setId(id);
wendangEntity.setWendangDelete(2); // 2代表已删除
list.add(wendangEntity);
}
wendangService.updateBatchById(list);
return R.ok();
}
// … 省略其他方法 …
}
5.2. 前端 – 资料信息列表页面 (list.html)
以下代码展示了用户前台资料列表页面的核心Vue.js逻辑,包括数据请求、分页处理和分类筛选功能。
<!– ==== 文件引用: ./wendangguanli/src/main/resources/front/front/pages/wendang/list.html ==== –>
<script type="text/javascript">
var vue = new Vue({
el: '#app',
data: {
// 查询条件模型
searchForm: {
page: 1,
limit: 8,
wendangDelete: 1,
wendangYesnoTypes: 2, // 只显示审核通过的
wendangName: "",
wendangTypes: ""
},
dataList: [], // 列表数据
},
methods: {
jump(url) { jump(url); },
// … 其他方法
}
});
layui.use(['laypage', 'http', 'jquery'], function() {
var laypage = layui.laypage;
var http = layui.http;
var jquery = layui.jquery;
// 分页列表查询函数
function pageList() {
http.request('wendang/list', 'get', vue.searchForm, function (res) {
vue.dataList = res.data.list;
// 渲染分页组件
laypage.render({
elem: 'pager',
count: res.data.total,
limit: vue.searchForm.limit,
jump: function (obj, first) {
vue.searchForm.page = obj.curr;
if (!first) { pageList(); } // 非首次加载则重新请求
}
});
});
}
// 页面初始化时调用
pageList();
});
</script>
6. 部分截图
Copy the following content and use base64 decoding to obtain the source code and files. 5aSN5Yi25omT5byA6I635Y+W5rqQ5Luj56CB77yaCmh0dHBzOi8vZmlmdGVlbi54aWFvYmlhcy5jb20vc291cmNlLzE1Ng==

7. 项目总结
该项目是一个功能较为完整的文档管理Web应用,覆盖了从用户注册登录、资料上传下载、信息公告发布到论坛交流的完整业务流程。
优点与特点:






