项目介绍
随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开始的群众不信任,到现在的离不开,中间经历了很多挫折。本次开发的多维分类的知识管理系统有管理员和用户两个角色。管理员可以管理用户信息,知识分类,知识信息等,用户可以查看和下载管理员发布的各种知识信息,还可以进行评论操作。开发本程序后台用到了Spring Boot开发技术,页面设计采用VUE框架和layui样式。数据库采用关系数据库市场占有率最高的MySQL作为本程序使用的数据库,完全符合程序使用并且有丰富的拓展余地。程序从需求到设计,从开发到测试,都在功能上和性能上都不断的进行了调试,让开发的程序在使用上用户体验更美好。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SpringBoot
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net
系统实现
5.1 管理员功能实现
5.1.1 用户管理
管理员可以对用户信息进行添加,修改,删除,查询操作。
图5.1 用户管理页面
5.1.2 知识分类管理
管理员可以对知识分类信息进行添加,修改,删除,查询操作。
图5.2 知识分类管理页面
5.1.3 知识信息管理
管理员可以对知识信息进行添加,修改,删除,查询操作。
图5.3 知识信息管理页面
5.1.4 知识信息添加
管理员可以对知识信息进行添加操作。
图5.4 知识信息添加管理页面
5.2 用户功能实现
5.2.1 首页
用户可以在首页查看多维分类的知识管理系统所有信息,可以看到有导航栏,点击就可以跳转到导航的项目。
图5.5 首页页面
5.2.2 知识信息
用户可以查看知识信息,也可以下载,评论,收藏知识信息。
图5.6 知识信息管理页面
5.2.1 个人中心
用户可以在个人中心修改自己的个人信息。
图5.7 个人中心页面
5.2.2 我的收藏
用户可以在个人中心里面点击我的收藏,可以看到自己收藏过的知识信息,还可以进行取消收藏操作。
图5.8 我的收藏页面
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.ZhishifenleiEntity;
import com.entity.view.ZhishifenleiView;
import com.service.ZhishifenleiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 知识分类
* 后端接口
* @author
* @email
* @date
*/
@RestController
@RequestMapping("/zhishifenlei")
public class ZhishifenleiController {
@Autowired
private ZhishifenleiService zhishifenleiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,ZhishifenleiEntity zhishifenlei,
HttpServletRequest request){
EntityWrapper<ZhishifenleiEntity> ew = new EntityWrapper<ZhishifenleiEntity>();
PageUtils page = zhishifenleiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhishifenlei), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,ZhishifenleiEntity zhishifenlei,
HttpServletRequest request){
EntityWrapper<ZhishifenleiEntity> ew = new EntityWrapper<ZhishifenleiEntity>();
PageUtils page = zhishifenleiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zhishifenlei), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( ZhishifenleiEntity zhishifenlei){
EntityWrapper<ZhishifenleiEntity> ew = new EntityWrapper<ZhishifenleiEntity>();
ew.allEq(MPUtil.allEQMapPre( zhishifenlei, "zhishifenlei"));
return R.ok().put("data", zhishifenleiService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(ZhishifenleiEntity zhishifenlei){
EntityWrapper< ZhishifenleiEntity> ew = new EntityWrapper< ZhishifenleiEntity>();
ew.allEq(MPUtil.allEQMapPre( zhishifenlei, "zhishifenlei"));
ZhishifenleiView zhishifenleiView = zhishifenleiService.selectView(ew);
return R.ok("查询知识分类成功").put("data", zhishifenleiView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
ZhishifenleiEntity zhishifenlei = zhishifenleiService.selectById(id);
return R.ok().put("data", zhishifenlei);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
ZhishifenleiEntity zhishifenlei = zhishifenleiService.selectById(id);
return R.ok().put("data", zhishifenlei);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody ZhishifenleiEntity zhishifenlei, HttpServletRequest request){
zhishifenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhishifenlei);
zhishifenleiService.insert(zhishifenlei);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody ZhishifenleiEntity zhishifenlei, HttpServletRequest request){
zhishifenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(zhishifenlei);
zhishifenleiService.insert(zhishifenlei);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody ZhishifenleiEntity zhishifenlei, HttpServletRequest request){
//ValidatorUtils.validateEntity(zhishifenlei);
zhishifenleiService.updateById(zhishifenlei);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
zhishifenleiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<ZhishifenleiEntity> wrapper = new EntityWrapper<ZhishifenleiEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = zhishifenleiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目 录
1 绪论 1
1.1 研究背景 1
1.2 研究意义 1
1.3 研究内容 1
2 开发技术 3
2.1 VUE框架 3
2.2 Mysql数据库 3
2.3 Spring Boot框架 3
2.4 layui介绍 4
3 系统分析 5
3.1可行性研究 5
3.2系统性能分析 6
3.3 系统流程分析 6
3.3.1 系统开发流程 6
3.3.2 系统注册流程 7
3.3.3 系统登录流程 8
4 系统设计 10
4.1 系统结构设计 10
4.2系统功能模块设计 11
4.3数据库设计 11
4.3.1数据库E-R图 11
4.3.2 数据库表结构 14
5 系统实现 17
5.1 管理员功能实现 17
5.1.1 用户管理 17
5.1.2 知识分类管理 17
5.1.3 知识信息管理 18
5.1.4 知识信息添加 18
5.2 用户功能实现 19
5.2.1 首页 19
5.2.2 知识信息 19
5.2.1 个人中心 20
5.2.2 我的收藏 20
6系统测试 22
6.1 测试的基本概念 22
6.2 测试的任务和目的 22
6.2.1测试的任务 22
6.2.2测试的目的 23
6.3 测试结果分析 23
结 论 24
参考文献 25
致 谢 26