基于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.mzph.cn/news/644154.shtml

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

相关文章

thinkphp5向数据表插入数据并且获得id

$id db(数据表名)->insertGetId([status>1]); 直接...打印$id就是这条插入的数据的id了

微信小程序跳转第三方网站链接

很简单&#xff0c;先定义一个跳转外网的页面&#xff0c;利用 web-view 标签&#xff0c;通过src设置你要跳转的外网地址 <web-view src"https://www.baidu.com"></web-view>然后在你的跳转按钮写跳转函数即可 wx.navigateTo({url: /pages/webView/inde…

【Py/Java/C++三种语言详解】LeetCode每日一题240122【贪心】LeetCode670、最大交换

文章目录 题目链接题目描述解题思路为什么是贪心一个带图的例子 代码pythonjavacpp时空复杂度 华为OD算法/大厂面试高频题算法练习冲刺训练 题目链接 LeetCode670、最大交换 题目描述 给定一个非负整数数组 nums 和一个整数 k &#xff0c;你需要将这个数组分成 k 个非空的连…

电信联通5G共建共享方案实施及验证

一、情况概述 随着2019年9月9日中国电信集团与联通签署《5G网络共建共享框架合作协议书》&#xff0c;电信与联通在全国范围内合作共建5G接入网络。根据合作协议&#xff0c;联通运营公司将与中国电信在全国范围内合作共建一张5G接入网络, 双方划定区域&#xff0c;分区建设&a…

C++-QT-QString -CString -string 互转

网上常用的函数在环境&#xff08;VS2022 ATL包含QT库的项目&#xff09;中转换不了。 1.QString 转String std::string str qstr.toStdString(); //不行 QString qstr "Hello, world!";//1. 将QString转换为std::string 不行 //std::string str qstr.toSt…

分享多种vcruntime140_1.dll丢失修复办法,vcruntime140_1.dll文件下载

vcruntime140_1.dll是Windows操作系统中的一个重要系统文件&#xff0c;它与C运行库相关。当计算机上缺少或损坏了vcruntime140_1.dll文件时&#xff0c;可能会导致一系列问题和错误。出现这文件错误&#xff0c;应该很多小伙伴都会想到重新下载vcruntime140_1.dll&#xff0c;…

GitHub 打不开问题解决

1、找到记事本&#xff0c;以管理员身份运行 2、打开记事本后点击左上角文件下的打开&#xff0c;然后找到 C:\Windows\System32\drivers\etc 文件夹下的 hosts 文件 这里需要注意的是右下角文件类型要选择所有文件类型才能看到 hosts 文件。 3、打开文件后&#xff0c;在最下…

AI智能绘图

AI智能绘图是一种创新的图像生成技术&#xff0c;它使用人工智能算法来根据用户输入的文本描述或参考图片自动生成艺术作品。这种技术分为两个方面&#xff1a;文生图和图生图。 首先我们需要浏览器搜索“固乔科技”官网&#xff0c;先下载并安装固乔智创助手软件。完成后&…

【vueCms】vuecms_xg安装与使用视频讲解【视频讲解】

克隆项目 gitee项目地址:https://gitee.com/derekgo/vue-cms_xg git clone gitgitee.com:derekgo/vue-cms_xg.git开启自动化脚本 点击后&#xff0c;运行http://localhost:3002 本地配置 开启本地redis 开启redis redis-server.exe redis.windows.conf重启redis 注意:…

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)

注意我是用的是matlab2019b 1&#xff0c;输入标定量&#xff0c;使用constant&#xff0c;用cal函数包裹 2&#xff0c;输出显示量&#xff0c;在划线上标注&#xff0c;然后用display函数包裹&#xff0c; 第一步和第二步完成以后&#xff0c;生产标定量a2l 3&#xff0c;输入…

什么是护网行动?

护网&#xff0c;也称“网络保护”&#xff0c;是指网络安全人员对企业或组织的网络进行检查、维护和保护&#xff0c;以防止网络受到黑客攻击、病毒、木马或其它恶意程序的侵入和损害。护网工作包括&#xff1a;网络安全规划、网络配置和控制、漏洞发现和修复、入侵检测和防范…

Qt 多次绘图

使用Qt 的时候发现&#xff1a; 背景&#xff1a;自己定义一个类&#xff0c;把它和某个ui文件绑定。(类似 Qt creator 默认创建的工程&#xff09;问题&#xff1a;当鼠标在窗口内单击的时候会触发2次绘图。&#xff1f;难道不应该是一次吗&#xff1f; 于是开始了如下的测试…

电源设计如果只看电压跌落,不看电流密度会怎么样?

高速先生成员--黄刚 大家知道&#xff0c;电源直流设计的理论其实非常的简单&#xff0c;归根到底就是欧姆定律&#xff0c;电源芯片给负载供给电流&#xff0c;电流经过传输路径有一定的压降&#xff0c;最终到达负载端的电压值就是我们接收芯片关注的结果。 在PCB设计中&…

新网站收录需要多长时间完成审核

新网站的收录时间因多种因素而异。 一般来说&#xff0c;新上线的网站可能在最快3-7天内被百度收录&#xff0c;尤其是那些有高质量内容的网 然而&#xff0c;通常情况下&#xff0c;新网站的收录可能会在7-15天左右发生。 有些情况下&#xff0c;如果网站的内容足够丰富和有价…

nvm 配置淘宝镜像失效,以及安装node后 npm-v 无效

win11 nvm版本 1.1.4 和1.1.7和1.1.12&#xff08;目前最新版本24年 一月二十三日&#xff09; 以上nvm版本都会出现一下问题&#xff0c; 从https://github.com/coreybutler/nvm-windows/releases 下载nvm安装包如下图 傻瓜式安装后&#xff0c;不用去配置环境变量&#…

【2023】无痕制作钓鱼邮件

当涉及到网络安全和信息保护时&#xff0c;钓鱼攻击一直是备受关注的话题。钓鱼攻击是一种利用社交工程手段欺骗用户&#xff0c;诱使其提供敏感信息或执行恶意操作的攻击方式。它不仅威胁个人用户的隐私和财产安全&#xff0c;也对组织和企业的机密信息构成严重威胁。为了增强…

Linux第35步_在“移植uboot”前安装libncurses5-dev

在“移植uboot”前&#xff0c;需要在Ubuntu中安装“libncurses5-dev”&#xff0c;否则在“编译uboot”时&#xff0c;会报错。目的是保证顺利移植“uboot”。 1、打开终端 2、输入“sudo apt-get install libncurses5-dev bison flex回车”&#xff1b; 3、输入密码“1234…

3W Star 网易云音乐第三方开源 API 仓库因侵权被要求删除

NeteaseCloudMusicApi是一个使用Node.js编写的非官方网易云音乐API&#xff0c;用于获取网易云音乐平台的歌曲信息。该项目是完全开源的&#xff0c;在GitHub上获得了超过3万的star。 根据公开信息&#xff0c;NeteaseCloudMusicApi的主要目的是整理网易云音乐公开的网页接口&a…

Linux逻辑卷创建与扩容

​ 钢铁知识库&#xff0c;一个学习python爬虫、数据分析的知识库。在职运维&#xff0c;又喜欢开发。 什么是lvm逻辑卷 ​ LVM&#xff08;逻辑卷管理&#xff09;是一种在Linux环境中广泛使用的磁盘管理技术。它允许管理员创建逻辑上的磁盘分区&#xff0c;这些分区可以跨越…

node 第二十三天 mongoDB shell 命令 CRUD 增删改查 基础

什么是 mongoDB shell 命令 mongoDB shell 命令就是在cmd窗口或者powershell窗口与mongoDB交互的命令, 以下简称mongosh 对应我们上一天安装的 mongosh 工具 有什么用 mongosh 对一般的开发者可能意义不大, 因为在开发过程中我们会基于某一款语言来使用mongoDB, 比如在node端我…