springboot项目使用Layui作为前端UI的一系列前后端交互的解决方法

背景: 因为比较喜欢Layui,因为多个项目都是从零开始就使用的layui开发的,并且开发过程中借鉴了很多其他项目(如Ruoyi、Pear Admin),因此最终选用大部分Pear Admin的项目中使用的一系列解决方案,并再次记录一些对开发非常有帮助的一些用例

  1. layui框架表格默认接收格式,以及默认的分页规则(为了方便开发,节省代码,因此统一列表返回值,为了节省代码使用 PageHelper作为分页插件)

Controller.java

java 复制代码
@SysLogAnnotation(operModul = "日志查询", operType = "查询", operDesc = "操作日志查询")
	@RequestMapping("/getSysLog")
	public ResultTable getSysLog(SysLog log) {
		PageInfo<SysLog> pageInfo = logService.getLogList(log);
		return pageTable(pageInfo.getList(), pageInfo.getTotal());
	}

serviceImpl.java

java 复制代码
public PageInfo<SysLog> getLogList(SysLog s) {
        PageHelper.startPage(s.getPage(), s.getLimit());
        List<SysLog> list = logDao.getLogList(s);
        return new PageInfo<>(list); //操作日志中专门解析了分页插件获取的数据
    }

mapper.java

java 复制代码
import java.util.List;

@Mapper   //要在java中写sql就需要这个注解, 如果使用mybatis plus的基础方法那 @Repository一个注解就搞定
@Repository
public interface LogMapper{

    @Select({"<script>select * from sys_log where 1=1  "
            + " <if test='createTime !=null and createTime != \"\" '>"
            + "    AND substring(createTime::text, 0, 11) &gt;= substring(#{createTime}, 0, 11)" //数据库中的时间10位之前即可,前台传的有空格所以是11
            + "    AND substring(createTime::text, 0, 11) &lt;= substring(#{createTime}, 14)"
            + " </if>"
            + " <if test='type !=null and type != \"\" '> AND type = #{type} </if> "
            + " <if test='result !=null and result != \"\" '> AND result like '%'|| #{result}||'%' </if> "
            + "<if test='username !=null and username != \"\" '> AND username like '%'|| #{username}||'%' </if> "
            + "order by createtime desc </script>"})
    List<SysLog> getLogList(SysLog l);  //查询操作日志

}
  1. 操作日志(获取接口返回值时,因为等保的原因公司规定需要把每一项操作的结果返回,因此这时就体现出了统一返回值的好处了)
java 复制代码
if (result instanceof ResultTable) {//分页插件返回layui 格式数据
            returnResult = operType+"了" + ((ResultTable) result).getCount()+"条数据" ;
}
复制代码
这样在操作日志切入类中根据返回值类型就能拿到实际的操作结果
相关推荐
weixin_4365250735 分钟前
Spring Boot 集成 EasyExcel 的最佳实践:优雅实现 Excel 导入导出
java·spring boot·后端
ChinaRainbowSea38 分钟前
9. LangChain4j + 整合 Spring Boot
java·人工智能·spring boot·后端·spring·langchain·ai编程
武昌库里写JAVA1 小时前
Mac下Python3安装
java·vue.js·spring boot·sql·学习
Light601 小时前
领码方案|Linux 下 PLT → PDF 转换服务超级完整版:异步、权限、进度(一气呵成)
linux·spring boot·pdf·gpcl6/ghostpcl·s3/oss·权限与审计·异步与进度
shengjk11 小时前
一文搞懂 Flink2.x 分离式状态管理
后端
程序员清风1 小时前
滴滴三面:ZGC垃圾收集器了解吗?
java·后端·面试
WWZZ20251 小时前
视觉SLAM第10讲:后端2(滑动窗口与位子图优化)
c++·人工智能·后端·算法·ubuntu·机器人·自动驾驶
在逃牛马2 小时前
【Uni-App+SSM 宠物项目实战】Day12:宠物信息添加
后端
muchan922 小时前
为什么“它”在业务逻辑上是最简单的?
前端·后端·面试