基于springboot+vue的IT技术交流和分享平台系统(前后端分离)

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

研究背景: 

一个行业发展起来,自然会诞生相关的交流和分享网站,随着计算机技术的发展,IT技术学习的人越来越多,人们在进行IT技术交流和分享的时候,都是基于线下好友间的沟通交流、互相分享,有时间地点的限制,在当今社会已经无法满足用户的需求,针对这一情况,结合目前计算机技术的发展,特开发了本基于Spring BootIT技术交流和分享平台。IT技术交流和分享平台与传统的交流和分享方式相比,有着无法比拟的优点,网络共享、传播速度快的特点,用户可以随时随地进行IT技术交流和分享,同时管理员通过计算机对系统信息进行管理,大大提高了IT技术交流和分享效率。 

功能介绍:

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

用户在系统前台可查看系统信息,系统前台主界面展示如图所示。 

没有账号的用户可进行注册操作,用户注册界面展示如图所示。 

用户在登录界面可输入登录信息,点击登录按钮进行登录系统,用户登录界面展示如图所示。

用户可选择笔记分享查看详情信息,笔记分享详情界面展示如图所示。 

管理员要想进入系统后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图所示。 

管理员在用户管理界面可查看所有用户信息,并可对其进行编辑和删除操作,用户管理界面展示如图所示。

管理员可增删改查笔记类型信息,笔记类型管理界面展示如图所示。

管理员可增删改查笔记分享信息,笔记分享管理界面展示如图所示。 

部分代码: 

/*** 笔记分享* 后端接口* @author * @email * @date 2021-04-02 22:11:50*/
@RestController
@RequestMapping("/bijifenxiang")
public class BijifenxiangController {@Autowiredprivate BijifenxiangService bijifenxiangService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang,HttpServletRequest request){EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang, HttpServletRequest request){EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( BijifenxiangEntity bijifenxiang){EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();ew.allEq(MPUtil.allEQMapPre( bijifenxiang, "bijifenxiang")); return R.ok().put("data", bijifenxiangService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(BijifenxiangEntity bijifenxiang){EntityWrapper< BijifenxiangEntity> ew = new EntityWrapper< BijifenxiangEntity>();ew.allEq(MPUtil.allEQMapPre( bijifenxiang, "bijifenxiang")); BijifenxiangView bijifenxiangView =  bijifenxiangService.selectView(ew);return R.ok("查询笔记分享成功").put("data", bijifenxiangView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);bijifenxiang.setClicknum(bijifenxiang.getClicknum()+1);bijifenxiang.setClicktime(new Date());bijifenxiangService.updateById(bijifenxiang);return R.ok().put("data", bijifenxiang);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);bijifenxiang.setClicknum(bijifenxiang.getClicknum()+1);bijifenxiang.setClicktime(new Date());bijifenxiangService.updateById(bijifenxiang);return R.ok().put("data", bijifenxiang);}/*** 赞或踩*/@RequestMapping("/thumbsup/{id}")public R vote(@PathVariable("id") String id,String type){BijifenxiangEntity bijifenxiang = bijifenxiangService.selectById(id);if(type.equals("1")) {bijifenxiang.setThumbsupnum(bijifenxiang.getThumbsupnum()+1);} else {bijifenxiang.setCrazilynum(bijifenxiang.getCrazilynum()+1);}bijifenxiangService.updateById(bijifenxiang);return R.ok("投票成功");}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){bijifenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(bijifenxiang);bijifenxiangService.insert(bijifenxiang);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){bijifenxiang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(bijifenxiang);bijifenxiangService.insert(bijifenxiang);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody BijifenxiangEntity bijifenxiang, HttpServletRequest request){//ValidatorUtils.validateEntity(bijifenxiang);bijifenxiangService.updateById(bijifenxiang);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){bijifenxiangService.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<BijifenxiangEntity> wrapper = new EntityWrapper<BijifenxiangEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = bijifenxiangService.selectCount(wrapper);return R.ok().put("count", count);}/*** 前端智能排序*/@IgnoreAuth@RequestMapping("/autoSort")public R autoSort(@RequestParam Map<String, Object> params,BijifenxiangEntity bijifenxiang, HttpServletRequest request,String pre){EntityWrapper<BijifenxiangEntity> ew = new EntityWrapper<BijifenxiangEntity>();Map<String, Object> newMap = new HashMap<String, Object>();Map<String, Object> param = new HashMap<String, Object>();Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();while (it.hasNext()) {Map.Entry<String, Object> entry = it.next();String key = entry.getKey();String newKey = entry.getKey();if (pre.endsWith(".")) {newMap.put(pre + newKey, entry.getValue());} else if (StringUtils.isEmpty(pre)) {newMap.put(newKey, entry.getValue());} else {newMap.put(pre + "." + newKey, entry.getValue());}}params.put("sort", "clicknum");params.put("order", "desc");PageUtils page = bijifenxiangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bijifenxiang), params), params));return R.ok().put("data", page);}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/427921.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某跆拳道俱乐部数据由34个节点组成,由于管理上的分歧,俱乐部要分解成两个社团。

import networkx as nx import matplotlib.pyplot as plt# 创建一个图表示跆拳道俱乐部的网络 G nx.Graph()# 添加34个节点&#xff0c;表示俱乐部的成员或其他相关实体 nodes list(range(1, 35)) G.add_nodes_from(nodes)# 添加边表示成员之间的关系 # 这里仅是示例&#xf…

动态设置和获取类实例变量(setattr、getattr)

动态设置和获取类实例变量 写在前面的话setattr 示例代码getattr 示例代码&#xff1a; 写在前面的话 在pyqt5的界面设置中&#xff0c;有很多相同的Qlabel、Qpushbutton、Qslider的设置&#xff0c;这些具有相同属性的界面模块可能需要不同的触发方法&#xff0c;定义为self.…

R语言:资金评估

代码示例 # 1. 导入数据 fund_data <- read.csv("D:/R语言/基金.csv", sep ,, header TRUE, na.strings "--") fund_data <- fund_data[-1] fund_data[is.na(fund_data)] <- 0# 2. Z-score标准化函数 standardize <- function(x) {return…

树的学习day01

树的理解 树是一种递归形式的调用 树是由于多个结点组成的有限集合T 树中有且仅有一个结点称为根 当结点大于1的时候&#xff0c;往往其余的结点为m个互不相交的有限个集合T1,…,Tm&#xff0c;每个互不相交的有限集合本身右是一棵树&#xff0c;称为这个根的子树 空树也是树 关…

国标GB28181协议EasyCVR启动失败报错“Local Machine Check Error”的解决方法

国标GB28181安防监控系统EasyCVR平台采用了开放式的网络结构&#xff0c;可支持4G、5G、WiFi、有线等方式进行视频的接入与传输、处理和分发。安防视频监控平台EasyCVR还能支持GIS电子地图模式&#xff0c;基于监控摄像头的经纬度地理位置信息&#xff0c;将场景中的整体安防布…

git 对象压缩及垃圾对象清理

git 对象压缩及垃圾对象清理 这篇文章让我们来看看 git 的对象压缩机制&#xff0c;前面的几篇文章我们提到&#xff0c;在执行 git add 命令会会把文件先通过 zlib 压缩后放入到「暂存区」&#xff0c;我们先看看这个步骤&#xff1a; 我们这个实例中有一个 1.28m 的 index.…

CPU运行过程

取指令阶段&#xff08;①②③&#xff09;&#xff1a;①②过程指令地址寄存器&#xff08;INSTUCTION ADDRESS REGISTER&#xff09;从0地址或指定地址开始读存入RAM中的程序&#xff0c;③过程将读出的数据复制到指令寄存器&#xff08;INSTRUCTION REGISTER&#xff09;中。…

民用激光雷达行业简析

01. 激光雷达是“机器之眼” • 激光雷达是一个通过发射激光并接受发射激光同时对其进行信号处理&#xff0c;从而获得周边物体距离等信息的主动测量装置。 • 激光雷达主要由光发射、光扫描、光接收三大模块组成。光发射模块集成了驱动、开关和光源等芯片。光接收模块集成了…

Linux设备树中的 gpio 信息

一. 简介 前面几篇文章讲解了 pinctrl 子系统&#xff0c; pinctrl 子系统重点是设置 PIN( 有的 SOC 叫做 PAD) 的复用 和电气属性。 注意&#xff1a;如果 pinctrl 子系统将一个 PIN 复用为 GPIO 的话&#xff0c;那么接下来就要用到 gpio 子系统了。如果 PIN用作其他…

【SD】sadtalk

下载地址&#xff1a; 123&#xff1a;https://www.123pan.com/s/VzULVv-0OXX.html 提取码:3KhD 百度&#xff1a; https://pan.baidu.com/share/init?surlRB9oTmlbIV0pg1Th-Tdd4Q 提取码: uk87 效果不是很好&#xff0c;适合小图片。推荐&#xff1a;heygen 参考设置&…

Gold-YOLO(NeurIPS 2023)论文与代码解析

paper&#xff1a;Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism official implementation&#xff1a;https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO 存在的问题 在过去几年里&#xff0c;YOLO系列已经…

【教学类-综合练习-08】20240105 大3班 综合材料(美术类:骰子、面具、AB手环)

背景需求 年终了&#xff0c;清理库存&#xff0c;各种打印的题型纸都拿出来&#xff0c;当个别化学习材料 教学过程&#xff1a; 时间&#xff1a;2024年1月2日上午 班级&#xff1a;大3班&#xff08;2周才去一次&#xff09; 人数&#xff1a;17人