25 Star 505 Fork 139

杨有旺 / 简约后台管理系统

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 6.67 KB
一键复制 编辑 原始数据 按行查看 历史
杨有旺 提交于 2023-11-06 17:11 . 操作日志管理表

简约后台管理系统

logo

项目介绍

1.需求定义:外包项目如雨后春笋,开发工期被迫压缩,为了开发人员专注开发项目业务,早点下班能陪老婆、孩子。
2.产品定位: 简约后台管理系统
3.项目特点:此项目代码清晰、界面简洁、springboot + layuiadmin 构建的单体后台管理系统。

在线体验

  • 平台演示地址:预览
  • 账号:admin
  • 密码:123456

软件架构

  • 核心框架:Spring Boot
  • 权限框架:SpringSecurity
  • 模板引擎:Thymeleaf
  • 持久层框架:Mybatis-Plus
  • 日志管理:LogBack
  • 工具类:Apache Commons、Hutool
  • 视图框架:Spring MVC
  • 定时器:Quartz
  • 数据库连接池:Druid
  • 页面交互:layuiAdmin
  • 验证框架:hibernate-Validation
  • 接口文档:Swagger

环境需求

JDK >= 1.8
MySQL >= 5.7
Maven >= 3.0
redis >= 6.0.6
minio 版本无要求

项目搭建

1、推荐使用IDEA开发工具运行此项目
2、在mysql中创建crud数据库后,项目启动时候表结构会自动创建
3、针对各环境修改对应配置文件:application-dev.yml开发环境、application-prod.yml生产环境、application-test.yml测试环境

配置截图 4、运行项目中CrudApplication.java启动类 配置截图

使用说明

1.控制层接口版本管理、包装响应Result返回值进行全局处理,使用@ResponseResultBody注解

2.定义接口版本,在方法中配置@ApiVersion注解

3.想要实现客户端不需要登录就可以访问后端接口,只需要在控制层的JAVA方法中加入@PassToken注解,然后该接口可以跳过jwt安全认证

4.在JAVA方法中加入@CrudLog注解可以将用户操作后台管理系统中操作日志记录到数据库sys_log日志表中
// BusinessType.INSERT 新增操作
// BusinessType.UPDATE 更新操作
// BusinessType.DELETE 删除操作
@CrudLog(title = "详细描述",businessType = BusinessType.INSERT) 
5.代码中设置Security权限
@PreAuthorize("hasAuthority('权限标识')") // JAVA代码方法上加入注解
sec:authorize="hasAuthority('权限标识')" // thymeleaf声明
6.客户端向header处放入token值后发起请求,后端拦截客户端请求,获取并解析header中token,拿到用户的userId放入Map中,然后通过以下方法可以获取用户ID。
 Long userId = ApiContext.getUserId();
7.将list转化tree结构方法
 ListToTree treeBuilder = new ListToTreeImpl();
 treeBuilder.toTree(menus);
8.调用发送阿里云Email邮件方法
 SampleEmail.sample(邮件地址,标题,内容);
9.调用上传文件到阿里云oss或minio服务器方法
 SampleOSS.upload(文件流, 自定义上传路径);
10.调用发送阿里云短信方法
 SampleSms.sendSms(手机号,模版号,签名); 
11.导出Excel文件
   //导出Excel
   EasyExcel.write(response.getOutputStream())
              //自动关闭流
              .autoCloseStream(Boolean.FALSE)
              //指定excel文件的type
              .excelType(ExcelTypeEnum.XLSX)
              // 标题头
              .head(导出类.class)
              //给定工作表名称
              .sheet(fileName)
              //给定样式
              .registerWriteHandler(EasyExcelUtil.getStyleStrategy())
              //给定导出数据
              .doWrite(datas);
              
   // excel数据转换成系统字典
   @ExcelProperty(value = {"用户性别"}, index = 0, converter = BaseDictDataConverter.class)
   // key = 字典KEY
   @DictType(key = ConfigConsts.DICT_KEY_SEX)
12.字典组件
   layui.config({
        base: '/static/layuiadmin/' //静态资源所在路径
    }).extend({
      index: 'lib/index' //主入口模块
   }).use(["crud"],function(){
    let crud = layui.crud; 
     // 获取枚举
     crud.getDictValue('字典类型',枚举值);
     // radio赋值
     crud.setRadio("id节点","字典类型","默认值");
     // select赋值
     crud.setSelect("id节点","字典类型",'默认值');
  })
13.下拉框多选组件
   crud.initXmSelect("自定义select接口","id节点");
14.图片上传组件
    crud.uploadImg("id节点");
15.向导页面组件
   按钮设置点击事件
   $('按钮ID节点').on('click', function () {
      // 树结构向导
      crud.treeWizard("自定义select接口",function (result) {
        form.val('表单的lay-filter属性值', {
          赋值id值: result.id,
          赋值name值: result.name
        });
      });
   });

部分截图

登陆功能
账号:admin 密码:123456

运行截图

首页

运行截图

用户管理模块

运行截图

角色管理模块

运行截图

部门管理

运行截图

岗位管理

运行截图

菜单管理模块

运行截图

swagger接口文档

运行截图

druid监控
账号:admin 密码:admin

运行截图

定时任务

运行截图

字典管理

运行截图

登录日志管理

运行截图

操作日志管理

运行截图

Java
1
https://gitee.com/yangyouwang/crud.git
git@gitee.com:yangyouwang/crud.git
yangyouwang
crud
简约后台管理系统
master

搜索帮助