1.获取源码

源码是捐赠方式获取,详细请QQ联系我 :)

2.实现效果

3.项目源码

只挑重点讲,详细请看源码。

3.1 字典管理

字典管理这里分为字典的编码和名称和字典数据的增删改查。

  • 前端页面:
<div class="layui-row" id="editDict" style="display:none;">
<div class="layui-col-md10">
<form class="layui-form layui-from-pane" id="saveDict" style="margin-top:20px">
<input type="text" name="id" id="id" hidden="hidden"> <div class="layui-form-item">
<label class="layui-form-label">字典编码</label>
<div class="layui-input-inline">
<input type="text" name="code" id="code" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">字典名称</label>
<div class="layui-input-inline">
<input type="text" name="name" id="name" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div> <div class="layui-form-item" id="check">
<div class="layui-input-block">
<button class="layui-btn layui-btn-submit " lay-submit="" lay-filter="saveDict">保存</button>
<!--<button type="reset" class="layui-btn layui-btn-primary">重置</button>-->
</div>
</div>
</form>
</div>
</div>
  • 后端代码:

/**
* 保存(新增/修改)
*
* @param entity
* @return
*/
@PostMapping("/save")
public Result<String> modify(@RequestBody Dict entity) {
String code = entity.getCode();
int count = dictService.checkCode(entity);
if(count>0){
return ResultUtil.fail("编码重复!");
}
if(entity.getId()!=null){
dictService.modify(entity);
}else{
dictService.add(entity);
} return ResultUtil.ok();
} @Transactional
@PostMapping("/remove")
public Result<String> remove(@RequestBody Long[] ids) {
// 判断字典是否被用
Dict dict=null;
int count=0;
for (int i = 0; i < ids.length; i++) {
dict = dictService.get(ids[i]);
count = dictService.checkUsed(ids[i]);
if(count>0){
return ResultUtil.fail("字典:"+dict.getCode()+"已被模板使用,无法删除!");
}
} for (int i = 0; i < ids.length; i++) {
dictDataService.removeByDictId(ids[i]);
} dictService.removes(ids); return ResultUtil.ok();
} @GetMapping("/get")
public Result<Dict> get(@RequestParam("id") Long id) {
Dict entity = dictService.get(id); return ResultUtil.ok(entity);
} @PostMapping("/list")
public ResultBean<List<Dict>> getPageResult(
@RequestParam(required = false) String code,
@RequestParam(required = false) String name,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit) { Map<String, Object> param = new HashMap<>(); // 计算起始行号
int offset = (page - 1) * limit;
int rows = limit; param.put("code",code);
param.put("name",name);
param.put("offset", offset);
param.put("rows", rows); // 统计记录数
int totalRows = dictService.count(param); // 获取当前页结果集
List<Dict> entities = dictService.getPageResult(param); ResultBean result = new ResultBean(0, "查询成功", totalRows, entities); return result; }

3.2 模板管理

模板管理主要是定义学生信息的导入模板。支持动态扩展,注意一点需要模板列和学生信息列名保持一致。

  • 前端代码
<!--编辑表单-->
<div class="layui-row" id="editTemplate" style="display:none;">
<div class="layui-col-md10">
<form class="layui-form layui-from-pane" id="saveTemplate" style="margin-top:20px">
<input type="text" name="id" id="id" hidden="hidden"> <div class="layui-form-item">
<label class="layui-form-label">模板编码</label>
<div class="layui-input-inline">
<input type="text" name="code" id="code" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">模板名称</label>
<div class="layui-input-inline">
<input type="text" name="name" id="name" required lay-verify="required" autocomplete="off"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">内容类型</label>
<div class="layui-input-inline">
<select id="contentType" name="contentType" lay-verify="required">
<option value="学生信息">学生信息</option>
<option value="班级信息">班级信息</option>
<option value="教师信息">教师信息</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">是否默认</label>
<div class="layui-input-inline">
<input type="checkbox" id="isDefault" name="isDefault" lay-skin="switch" lay-filter="isDefaultCheck" lay-text="ON|OFF">
</div>
</div> <div class="layui-form-item" id="check">
<div class="layui-input-block">
<button class="layui-btn layui-btn-submit " lay-submit="" lay-filter="saveTemplate">保存</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</div>
</form>
</div>
</div>
  • 后端代码
/**
* 保存(新增/修改)
*
* @param entity
* @return
*/
@PostMapping("/save")
public Result<String> modify(@RequestBody Template entity) {
String code = entity.getCode();
int count = templateService.checkCode(entity);
if(count>0){
return ResultUtil.fail("编码重复!");
}
if(entity.getId()!=null){
templateService.modify(entity);
}else{
templateService.add(entity);
} return ResultUtil.ok();
} @Transactional
@PostMapping("/remove")
public Result<String> remove(@RequestBody Long[] ids) {
// 默认模板不能删除
Template template = null;
for (int i = 0; i < ids.length; i++) {
template = templateService.get(ids[i]);
if(template.getIsDefault()==1){
return ResultUtil.fail("模板:"+template.getCode()+"是默认模板,无法删除!");
}
templateDataService.removeByTemplateId(ids[i]);
}
// 继续删除
for (int i = 0; i < ids.length; i++) {
templateDataService.removeByTemplateId(ids[i]);
} templateService.removes(ids); return ResultUtil.ok();
} @GetMapping("/get")
public Result<Template> get(@RequestParam("id") Long id) {
Template entity = templateService.get(id); return ResultUtil.ok(entity);
} @PostMapping("/list")
public ResultBean<List<Template>> getPageResult(
@RequestParam(required = false) String code,
@RequestParam(required = false) String name,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit) { Map<String, Object> param = new HashMap<>(); // 计算起始行号
int offset = (page - 1) * limit;
int rows = limit; param.put("code",code);
param.put("name",name);
param.put("offset", offset);
param.put("rows", rows); // 统计记录数
int totalRows = templateService.count(param); // 获取当前页结果集
List<Template> entities = templateService.getPageResult(param); ResultBean result = new ResultBean(0, "查询成功", totalRows, entities); return result; }

源码是捐赠方式获取,详细请QQ联系我 :)

Spring Boot学生信息管理系统项目实战-2.字典管理和模板管理的更多相关文章

  1. 一步一步学Spring Boot 2 微服务项目实战 - 黄文毅-2018年8月第一次印刷

    properties 配置文件的优先级高于.yml .在properties文件中配置了server.port=8080 同时在.yml中配置了server.port=8090  Spring Boo ...

  2. C语言学生信息管理系统项目源码

    #include   //包含printf().scanf().gets().puts().getchar()函数 #include   //包含malloc()函数 #include   //包含s ...

  3. 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)

    1.项目说明基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然 ...

  4. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  5. [项目分享]JSP+Servlet+JDBC实现的学生信息管理系统

    本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/liu_xu111/JavaWeb01 这次分享一个学生管理系统,我感觉这是程序员在大学时期的毕设和课程设计选择最多 ...

  6. Node.js小项目——学生信息管理系统

    这是迄今为止第一次接触后端的东西,是一个很小的项目,但是对于前端学习入门很好.我是先学了VUE框架再学的Node,学起来比较轻松,不过每个人都有自己的学习方法️ 一.项目描述 学生信息管理系统,可以实 ...

  7. Spring Boot构建的Web项目如何在服务端校验表单输入

    本文首发于个人网站:Spring Boot构建的Web项目如何在服务端校验表单输入 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC ...

  8. spring boot 和shiro的代码实战demo

    spring boot和shiro的代码实战 首先说明一下,这里不是基础教程,需要有一定的shiro知识,随便百度一下,都能找到很多的博客叫你基础,所以这里我只给出代码. 官方文档:http://sh ...

  9. Python基础案例练习:制作学生信息管理系统

    一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...

  10. struts2学生信息管理系统篇章①

    最近在看java1234分享的一个Struts2的学生信息管理系统的知识.因为本身java没什么底子.所以就没有什么好的技术去解决问题.一直在百度,不懂就百度.这样子下来其实也能学到一些东西,过阵子等 ...

随机推荐

  1. 初次安装Linux 1Panel面板体验

    初次安装Linux 1Panel面板体验 1Panel是Linux下的一款服务器管理工具.和宝塔相比更加轻量化.相比之下各有优点,本文让我们一起来安装1Panel面板. 面板优势 快速建站 :深度集成 ...

  2. Go-数组-切片

  3. [转帖]你应该知道的Shell 脚本的经典十三问

    https://blog.csdn.net/wangzhicheng987/article/details/131031344 1. 为何叫做shell? 我们知道计算机的运作不能离开硬件,但使用者却 ...

  4. vCenter6.7 无法启动

    Get service 567f6edd-d4f7-4bfb-905b-1834c758a99d_com.vmware.vsphere.clientDon't update service 567f6 ...

  5. 【转帖】text-davinci-003和ChatGPT之间的不同点

    https://zhuanlan.zhihu.com/p/603709081 先看下GPT的发展时间线 InstructGPT(2022 年 1 月)是一系列 GPT-3 模型(包括 text-dav ...

  6. 【转帖】15.JVM栈帧的内部结构

    目录 1.栈中存储的是什么? 2.栈的运行原理 1.栈中存储的是什么? 1.每个线程都有自己的栈,栈中存储的是栈帧. 2.在这个线程上正在执行的每个方法都各自对应一个栈帧.方法与栈帧是一对一的关系. ...

  7. Python学习之二:不同数据库相同表是否相同的比较方法

    摘要 昨天学习了使用python进行数据库主键异常的查看. 当时想我们有跨数据库的数据同步场景. 对应的我可以对不同数据库的相同表的核心字段进行对比. 这样的话能够极大的提高工作效率. 我之前写过很长 ...

  8. [转帖]一个故事看懂CPU的TLB

    https://www.cnblogs.com/xuanyuan/p/15347054.html Hi,我是CPU一号车间的阿Q,还记得我吗,真是好久不见了- 我所在的CPU是一个八核CPU,就有八个 ...

  9. [转帖]CentOS8安装MySQL8详细教程,爬坑必备

    https://www.ab62.cn/article/23022.html 安装环境 CentOS:8.5.2111MySQL:8.0.30 MySQL Community Server 安装过程 ...

  10. UOS关闭激活提示: Your system is not activated. Please activate as soon as possible for normal use.

    最近公司里面进行UOS的兼容性验证,但是系统总是会提示: Your system is not activated. Please activate as soon as possible for n ...