Spring Boot学生信息管理系统项目实战-2.字典管理和模板管理
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.字典管理和模板管理的更多相关文章
- 一步一步学Spring Boot 2 微服务项目实战 - 黄文毅-2018年8月第一次印刷
properties 配置文件的优先级高于.yml .在properties文件中配置了server.port=8080 同时在.yml中配置了server.port=8090 Spring Boo ...
- C语言学生信息管理系统项目源码
#include //包含printf().scanf().gets().puts().getchar()函数 #include //包含malloc()函数 #include //包含s ...
- 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)
1.项目说明基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然 ...
- 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】
资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...
- [项目分享]JSP+Servlet+JDBC实现的学生信息管理系统
本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/liu_xu111/JavaWeb01 这次分享一个学生管理系统,我感觉这是程序员在大学时期的毕设和课程设计选择最多 ...
- Node.js小项目——学生信息管理系统
这是迄今为止第一次接触后端的东西,是一个很小的项目,但是对于前端学习入门很好.我是先学了VUE框架再学的Node,学起来比较轻松,不过每个人都有自己的学习方法️ 一.项目描述 学生信息管理系统,可以实 ...
- Spring Boot构建的Web项目如何在服务端校验表单输入
本文首发于个人网站:Spring Boot构建的Web项目如何在服务端校验表单输入 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC ...
- spring boot 和shiro的代码实战demo
spring boot和shiro的代码实战 首先说明一下,这里不是基础教程,需要有一定的shiro知识,随便百度一下,都能找到很多的博客叫你基础,所以这里我只给出代码. 官方文档:http://sh ...
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- struts2学生信息管理系统篇章①
最近在看java1234分享的一个Struts2的学生信息管理系统的知识.因为本身java没什么底子.所以就没有什么好的技术去解决问题.一直在百度,不懂就百度.这样子下来其实也能学到一些东西,过阵子等 ...
随机推荐
- 部分MySQL的SQL信息整理
模块补丁信息查看 select su as 补丁模块, count(1) as 数量 from gsppatchlog where TO_DAYS( NOW( ) ) - TO_DAYS(deploy ...
- nexus的简单安装与使用
nexus的简单安装与使用 文件下载 官网上面下载文件比较麻烦, 得科学一些 https://www.sonatype.com/download-oss-sonatype 选择oss 开源版进行下载 ...
- [转帖]SSL Certificate Exporter
https://github.com/ribbybibby/ssl_exporter Exports metrics for certificates collected from various s ...
- [转帖]金仓数据库KingbaseES V8R6 中unlogged表
KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged.和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中.在数据库异常关机或 ...
- [转帖]linux求数组的交集,shell/bash 交集、并集、差集
方法一(直接用文件名):取两个文本文件的并集.交集.差集 并: sort -m 交: sort -m 差 file1 - file2: sort -m 方法二(用变量参数):取两个文本文件的并集.交集 ...
- 公司内部自建DNS的办法 使用私有域名的方法
最近总是有一个需求,需要自己弄一些服务器域名之类的. 修改hosts总是比较麻烦,所以想了一个简单办法, 自己搭建一个dns服务器, 本来想用最简单的 dnsmasq 但是发现总是不成功, 然后找了另 ...
- 跨主机Docker容器通信的学习
背景 骨折在家找自己的人比较少. 又因为出不去也没法做运动,就不如将之前没学习深入的地方学习下 先是进行Docker 搭建 redis cluster的处理. 当时发现必须使用 --net=host进 ...
- DM启动报错的处理: 达梦数据库启动实例时报错libgcc_s.so.1
错误现象为: [root@CentOS8 opt]# /opt/dmdbms/bin/DmServiceDMSERVER startStarting DmServiceDMSERVER: libgcc ...
- React中Props的详细使用和props的校验
props中的children属性 组件标签只用有子节点的时候,props就会有该属性; children的属性跟props一样的,值可以是任意值;(文本,React元素,组件,函数) 组件: < ...
- 使用docker部署一个go应用
使用docker部署一个go应用 前言 直接部署 构建镜像 创建并运行容器 使用docker-compose部署 上传到docker-hub,然后拉取镜像,部署 参考 使用docker部署一个go应用 ...