【开源】SpringBoot框架开发软件学院思政案例库系统

news2024/9/30 19:32:36

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 系统管理员
    • 2.2 普通教师
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询思政案例
    • 4.2 审核思政案例
    • 4.3 查询思政课程
    • 4.4 思政案例点赞
    • 4.5 新增思政案例评语
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的软件学院思政案例库系统,包含了新闻资讯、特色专区、院系专区、热门专题、热门课程、思政课程、思政案例、案例点赞、案例打分模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,软件学院思政案例库系统基于角色的访问控制,给系统管理员、普通教师使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

2.1 系统管理员

按照软件工程规范描述管理员端需求,细化用例规约,合理设计数据库,实现管理员端以下功能。

  1. 配置系统中各项基础数据,包括教师、课程及用户权限等。
  2. 设计平台首页,包括新闻资讯、特色专区、院系专区、热点专题、热门课程思政资源等板块。
  3. 课程思政展示区,包括课程介绍、教学设计、教学视频、教学说课、教学课件、授课教师、课程分享、学习人数统计等。
  4. 对教师提交的信息进行审核,审核通过后在门户发布,审核不通过的说明原因并允许教师进行修改。
  5. 对平台中的思政案例按浏览和点赞等数据进行统计和排序展示。

2.2 普通教师

按照软件工程规范描述普通教师端需求,细化用例规约,合理设计数据库,实现普通教师端以下功能。

  1. 学习观摩网站平台上所有的思政资源,可以按需求、按类别(人格培养类、家国情怀类、中国自信类、大国工匠类、科技报国类、职业伦理类等)搜索感兴趣的思政案例,对别人发布的资源进行点赞和评分。
  2. 系统注册和登录。
  3. 修改个人基本信息.。
  4. 上传思政案例,对个人的思政资源进行修改再提交及删除等管理操作。
  5. 查看个人已发布思政资源的浏览量、点赞和评分等数据。

三、系统展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


四、核心代码

4.1 查询思政案例

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询思政案例")
public Result<IPage<ThoCase>> getByPage(@ModelAttribute ThoCase thoCase ,@ModelAttribute PageVo page){
    QueryWrapper<ThoCase> qw = new QueryWrapper<>();
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<User> userQw = new QueryWrapper<>();
    userQw.eq("id",currUser.getId());
    userQw.inSql("id","SELECT user_id FROM a_user_role WHERE del_flag = 0 AND role_id = '1536606659751841799'");
    if(iUserService.count(userQw) < 1L) {
        qw.eq("status","审核通过");
    }
    if(!ZwzNullUtils.isNull(thoCase.getTitle())) {
        qw.like("title",thoCase.getTitle());
    }
    if(!ZwzNullUtils.isNull(thoCase.getQues())) {
        qw.like("ques",thoCase.getQues());
    }
    if(!ZwzNullUtils.isNull(thoCase.getType())) {
        qw.like("type",thoCase.getType());
    }
    IPage<ThoCase> data = iThoCaseService.page(PageUtil.initMpPage(page),qw);
    for (ThoCase c : data.getRecords()) {
        QueryWrapper<ThoZan> zanQw = new QueryWrapper<>();
        zanQw.eq("case_id",c.getId());
        zanQw.eq("user_id",currUser.getId());
        c.setZanFlag(iThoZanService.count(zanQw));
    }
    return new ResultUtil<IPage<ThoCase>>().setData(data);
}

4.2 审核思政案例

@RequestMapping(value = "/audit", method = RequestMethod.POST)
@ApiOperation(value = "审核思政案例")
public Result<Object> audit(@RequestParam String id,@RequestParam String type,@RequestParam String msg){
    ThoCase c = iThoCaseService.getById(id);
    if(c == null) {
        return ResultUtil.error("案例不存在");
    }
    c.setStatus(type);
    c.setAuditMsg(msg);
    iThoCaseService.saveOrUpdate(c);
    return ResultUtil.success();
}

4.3 查询思政课程

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询思政课程")
public Result<IPage<ThoCurriculum>> getByPage(@ModelAttribute ThoCurriculum thoCurriculum ,@ModelAttribute PageVo page){
    QueryWrapper<ThoCurriculum> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(thoCurriculum.getTitle())) {
        qw.like("title",thoCurriculum.getTitle());
    }
    if(!ZwzNullUtils.isNull(thoCurriculum.getContent())) {
        qw.like("content",thoCurriculum.getContent());
    }
    IPage<ThoCurriculum> data = iThoCurriculumService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<ThoCurriculum>>().setData(data);
}

4.4 思政案例点赞

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增点赞")
public Result<Object> addOne(@RequestParam String id){
    ThoCase c = iThoCaseService.getById(id);
    if(c == null) {
        return ResultUtil.error("案例不存在");
    }
    User currUser = securityUtil.getCurrUser();
    ThoZan z = new ThoZan();
    z.setCaseId(c.getId());
    z.setTitle(c.getTitle());
    z.setUserId(currUser.getId());
    iThoZanService.saveOrUpdate(z);
    return ResultUtil.success();
}

4.5 新增思政案例评语

@RequestMapping(value = "/addOne", method = RequestMethod.GET)
@ApiOperation(value = "新增评语")
public Result<Object> addOne(@RequestParam String id,@RequestParam String value,@RequestParam String content){
    ThoCase c = iThoCaseService.getById(id);
    if(c == null) {
        return ResultUtil.error("案例不存在");
    }
    User currUser = securityUtil.getCurrUser();
    ThoScore z = new ThoScore();
    z.setCaseId(c.getId());
    z.setTitle(c.getTitle());
    z.setValue(value);
    z.setContent(content);
    z.setUserId(currUser.getId());
    iThoScoreService.saveOrUpdate(z);
    return ResultUtil.success();
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

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

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

相关文章

OCP Java17 SE Developers 复习题09

答案 A, E. For the first scenario, the answer needs to implement List because the scenario allows duplicates, narrowing it down to options A and D. Option A is a better answer than option D because LinkedList is both a List and a Queue, and you just nee…

2024年【化工自动化控制仪表】新版试题及化工自动化控制仪表考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 化工自动化控制仪表新版试题是安全生产模拟考试一点通总题库中生成的一套化工自动化控制仪表考试试题&#xff0c;安全生产模拟考试一点通上化工自动化控制仪表作业手机同步练习。2024年【化工自动化控制仪表】新版试…

Go语言必知必会100问题-20 切片操作实战

前言 有很多gopher将切片的length和capacity混淆&#xff0c;没有彻底理清这两者的区别和联系。理清楚切片的长度和容量这两者的关系&#xff0c;有助于我们合理的对切片进行初始化、通过append追加元素以及进行复制等操作。如果没有深入理解它们&#xff0c;缺少高效操作切片…

如何查看centos7中启动了几个nginx

在 CentOS 7 中&#xff0c;最常用的几种方法如下&#xff1a; 1. 使用 ps 命令 ps 命令可以用来显示当前系统中正在运行的进程。要查看所有 Nginx 进程&#xff0c;可以使用以下命令&#xff1a; ps -ef | grep nginx这个命令会列出所有包含“nginx”字符串的进程。输出中会…

SDM450核心板_高通SDM450安卓核心板模块性能参数

高通SDM450核心板是基于SDM450移动平台开发的一款高性能核心板。采用领先的14纳米技术&#xff0c;该核心板为高端智能设备提供了卓越的性能和优质的体验。板载2GB16GB的内存(可选配4GB32GB)&#xff0c;双 ISP(图像传感器处理器)支持丰富的照片细节和双摄像头体验&#xff0c;…

设计模式:观察者模式 ⑧

一、思想 观察者模式是一种常见的设计模式&#xff0c;也称作发布-订阅模式。它主要解决了对象之间的通知依赖关系问题。在这种模式中&#xff0c;一个对象&#xff08;称作Subject&#xff09;维护着一个对象列表&#xff0c;这些对象&#xff08;称作Observers&#xff09;都…

每日学习笔记:C++ STL 的Array

Array定义 Array模板有两个参数&#xff0c;一个是元素类型&#xff0c;一个是数组大小 Array初始化 Array的操作 Array当作C数组 Array的Tuple接口

NLP:文本相似度计算

前面我们已经实现了把长段的句子&#xff0c;利用HanLP拆分成足够精炼的分词&#xff0c;后面我们要实现“联想”功能&#xff0c;我这里初步只能想到通过文本相似度计算来实现。下面介绍一下文本相似度计算 &#xff08;当然HanLP也有文本相似度计算的方法&#xff0c;这里我…

Day33-计算机基础3

Day33-计算机基础3 1.根据TCP/IP进行Linux内核参数优化1.1 例1&#xff1a;调整访问服务端的【客户端】的动态端口范围 &#xff0c;LVS&#xff08;10-50万并发&#xff09;&#xff0c;NGINX负载&#xff0c;SQUID缓存服务,1.2 企业案例&#xff1a;DOS攻击的案例&#xff1a…

第五十三天| 1143.最长公共子序列、1035.不相交的线、53. 最大子序和

Leetcode 1143.最长公共子序列 题目链接&#xff1a;1143 最长公共子序列 题干&#xff1a;给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0 。 一个字符串的 子序列 是指这样一个新的字符串&…

no main manifest attribute,in xxx.jar(关于Spring项目,无法在云服务器上运行jar包的解决方法)

目录 问题详情 解决方法 问题详情 项目可以打包正常&#xff0c;但是云服务器上无法运行&#xff0c;报错&#xff1a;no main manifest attribute&#xff0c;in xxx.jar 解决方法 1.查看pom.xml配置文件&#xff0c;检查以下代码&#xff0c;没有则加上&#xff1a; <…

基于springboot+vue实现高校学生党员发展管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现高校学生党员发展管理系统演示 摘要 随着高校学生规模的不断扩大&#xff0c;高校内的党员统计及发展管理工作面临较大的压力&#xff0c;高校信息化建设的不断优化发展也进一步促进了系统平台的应用&#xff0c;借助系统平台可以实现更加高效便捷的党员信息…

P8680 [蓝桥杯 2019 省 B] 特别数的和:做题笔记

目录 思路 代码 题目链接&#xff1a; P8680 [蓝桥杯 2019 省 B] 特别数的和 思路 最开始我思路主要是从数字转字符串上想的。因为我们需要判断每一位是否是特殊数&#xff0c;字符串很容易做到这一点&#xff0c;只是在数字相加这一步不好实现。 需要用到字符串与数字的…

复盘-word

word-大学生网络创业交流会 设置段落&#xff0c;段后行距才有分 word-选中左边几行字进行操作 按住alt键进行选中 word复制excel随excel改变&#xff08;选择性粘贴&#xff09; 页边距为普通页边距定义 ##### word 在内容控件里面填文字&#xff08;调属性&#xff09…

会话_过滤器_监听器笔记

一&#xff1a;会话 1&#xff1a;Cookie&#xff1a; cookie是一种客户端会话技术,cookie由服务端产生,它是服务器存放在浏览器的一小份数据,浏览器以后每次访问该服务器的时候都会将这小份数据携带到服务器去。 服务端创建cookie,将cookie放入响应对象中,Tomcat容器将cookie…

缓解LLM的局限性:微调 VS RAG

原文地址&#xff1a;Knowledge Graphs & LLMs: Fine-Tuning Vs. Retrieval-Augmented Generation 2023 年 6 月 6 日 GitHub&#xff1a;https://github.com/neo4j/NaLLM 大型语言模型 (LLM) 的第一波炒作来自 ChatGPT 和类似的基于网络的聊天机器人&#xff0c;相信在…

Kap - macOS 开源录屏工具

文章目录 关于 Kap 关于 Kap Kap 是一个使用web技术的开源的屏幕录制工具 官网&#xff1a;https://getkap.cogithub : https://github.com/wulkano/Kap 目前只支持 macOS 12 以上&#xff0c;支持 Intel 和 Apple silicon 你可以前往官网&#xff0c;右上方下载 你也可以使…

Spring Boot 中使用 Redis + Aop 进行限流

Spring Boot 中使用 Redis 进行限流&#xff0c;通常你可以采用如下几种方式&#xff1a; 令牌桶算法&#xff08;Token Bucket&#xff09;漏桶算法&#xff08;Leaky Bucket&#xff09;固定窗口计数器&#xff08;Fixed Window Counter&#xff09;滑动日志窗口&#xff08…

自然语言发展历程

一、基础知识 自然语言处理&#xff1a;能够让计算理解人类的语言。 检测计算机是否智能化的方法&#xff1a;图灵测试 自然语言处理相关基础点&#xff1a; 基础点1——词表示问题&#xff1a; 1、词表示&#xff1a;把自然语言中最基本的语言单位——词&#xff0c;将它转…

docker学习(十四)docker搭建私服

docker私服搭建&#xff0c;配置域名访问&#xff0c;设置访问密码 启动registry docker run -d \-p 5000:5000 \-v /opt/data/registry:/var/lib/registry \registrydocker pull hello-world docker tag hello-world 127.0.0.1:5000/hello-world docker push 127.0.0.1:5000…