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()+"条数据" ;
}
复制代码
这样在操作日志切入类中根据返回值类型就能拿到实际的操作结果
相关推荐
m0_748256143 小时前
SpringBoot
java·spring boot·后端
Mr.朱鹏4 小时前
针对Feign客户端请求体参数处理问题
java·jvm·spring boot·spring·spring cloud·maven·intellij-idea
多想和从前一样4 小时前
Django 创建表时 “__str__ ”方法的使用
后端·python·django
涛粒子6 小时前
Spring Bean 生命周期的执行流程
java·后端·spring
钝挫力PROGRAMER6 小时前
SpringBoot中Mybatis记录执行sql日志
spring boot·sql·mybatis
赵琳琅6 小时前
Java语言的云计算
开发语言·后端·golang
赵琳琅6 小时前
MDX语言的安全开发
开发语言·后端·golang
林林总肿7 小时前
Mybatis后端数据库查询多对多查询解决方案
数据库·spring boot·mybatis
夏梓蕙8 小时前
Elixir语言的软件开发工具
开发语言·后端·golang
夏梓蕙8 小时前
R语言的Web开发
开发语言·后端·golang