Java实现软件学院思政案例库系统 JAVA+Vue+SpringBoot+MySQL

在这里插入图片描述


目录

  • 一、摘要
    • 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.hqwc.cn/news/467154.html

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

相关文章

比较6*6范围内8个点425个结构的顺序

( A, B )---6*30*2---( 1, 0 )( 0, 1 ) 让网络的输入有6个节点&#xff0c;训练集AB各由6张二值化的图片组成&#xff0c;让A中有8个点&#xff0c;让B全是0&#xff0c;收敛误差7e-4&#xff0c;收敛199次&#xff0c;统计迭代次数平均值并排序。 假设这个6*6的结构的行和列都…

【C++ 02】类和对象 1:初识类和对象

文章目录 &#x1f308; Ⅰ 面向对象介绍&#x1f308; Ⅱ 类的引入&#x1f308; Ⅲ 类的定义格式1. 声明和定义不分离2. 声明和定义分离 &#x1f308; Ⅳ 类的访问限定符&#x1f308; Ⅴ 类的作用域&#x1f308; Ⅵ 类的实例化&#x1f308; Ⅶ this 指针 &#x1f308; Ⅰ…

零基础学python之高级编程(3)---面向对象多态与封装(含有代码示例)

面向对象多态与封装 文章目录 面向对象多态与封装前言一、多态方法重写&#xff08;Overriding&#xff09;方法重载(Overloading)抽象基类和接口&#xff08;Abstract Base Classes and Interfaces&#xff09; 二、封装私有变量和私有方法属性装饰器(property) 和 getter和se…

MySQL数据库-索引概念及其数据结构、覆盖索引与回表查询关联、超大分页解决思路

索引是帮助mysql高效获取数据的数据结构,主要用来提高检索的效率,降低数据库的IO成本(输入输出成本&#xff08;Input-Output Cost&#xff09;),同时通过索引对数据进行排序也能降低数据排序的成本,降低了CPU的消耗。 Mysql的默认存储引擎InnoDB&#xff0c;InnoDB采用的B树的…

算法刷题:盛水最多的容器

盛水最多的容器 .习题链接题目题目解析算法原理我的答案 . 习题链接 盛水最多的容器 题目 题目解析 VH*W h为左右两边低的一边,w为左右两边之间的距离 算法原理 定义两个指针 left0,rightn-1; left从左往右对数组进行遍历,right从右往左进行遍历 遍历的过程中,每一次都需要…

Web 扫描神器:Gobuster 保姆级教程(附链接)

一、介绍 Gobuster 是一款用于目录和文件枚举的开源工具。它主要用于在Web应用程序或网站上查找隐藏的目录和文件&#xff0c;从而进行信息收集或渗透测试。以下是 Gobuster 的一些主要特点和功能&#xff1a; 快速且高效&#xff1a; Gobuster 被设计为快速、高效的工具&…

3月第一批次❗教资认定流程简易版来啦

&#x1f4dd;材料准备 1、身份证 2、户口本/学生证/居住证/毕业证 3、考试合格证明(免试人员需要师范生职业能力证书) 4、普通话证书 5、学历证书或认证报告 6、近期一寸白底证件照 7、有效期内体检报告 8、个人承诺书(网上签署) 网上申报 1、上传个人承诺书 2、校验普通话证书…

【图论】【树形dp】【深度优先搜索】2538. 最大价值和与最小价值和的差值

作者推荐 【深度优先搜索】【树】【图论】2973. 树中每个节点放置的金币数目 本文涉及知识点 深度优先搜索 LeetCode2538. 最大价值和与最小价值和的差值 给你一个 n 个节点的无向无根图&#xff0c;节点编号为 0 到 n - 1 。给你一个整数 n 和一个长度为 n - 1 的二维整数…

算法沉淀——分治算法(leetcode真题剖析)

算法沉淀——分治算法 快排思想01.颜色分类02.排序数组03.数组中的第K个最大元素04.库存管理 III 归并思想01.排序数组02.交易逆序对的总数03.计算右侧小于当前元素的个数04.翻转对 分治算法是一种解决问题的算法范式&#xff0c;其核心思想是将一个大问题分解成若干个小问题&a…

去除vue自带的边距

使用vue时发现总有去不掉的外边距&#xff0c;在index.vue里面怎样设置样式都不管用 查阅资料后发现要在vue项目自带的index.html文件内添加下面的样式代码才行 <style>*{margin: 0;padding: 0;}body,html{margin: 0;padding: 0;} </style>

揭秘外观模式:简化复杂系统的关键设计策略

前言 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它隐藏了系统的复杂性&#xff0c;并向客户端提供了一个可以访问系统的接口。这种类型的设计模式向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性。这种模式涉及到一个单一的类…

全国计算机技术与软件专业技术资格(水平)考试软考中级高级报名步骤

第一步&#xff1a; 1、登陆全国的计算机网上报名平台 http://bm.ruankao.org.cn/sign/welcome 根据自己所在地区&#xff0c;选择报考城市入口&#xff08;例如&#xff1a;北京考区考生&#xff0c;直接选择北京就 可以&#xff09; 第二步&#xff1a;用户登录 1、已有…