上前端代码:
<table class="layui-table" lay-data="{url:'${base}/statistics/show', method:'post', done: function (res,curr,count) {merge(res);}, page: false, limit: 1990000000}" lay-filter="test" id="test">
<thead>
<tr>
<td lay-data="{field:'region',width:'13.3%',align:'center'}">地区</td>
<td lay-data="{field:'city',width:'13.3%',align:'center'}">部门</td>
<td lay-data="{field:'userName',width:'13.3%',align:'center'}">姓名</td>
<td lay-data="{field:'fwOA',width:'15%',align:'center'}">访问OA</td>
<td lay-data="{field:'fwOAat',width:'15%',align:'center'}">访问OA按天</td>
<td lay-data="{field:'mailSend',width:'15%',align:'center'}">邮件发</td>
<td lay-data="{field:'mailReceive',width:'16%',align:'center'}">邮件收</td>
</tr>
<tr>
<td lay-data="{width:'40%',align:'center'}" colspan="3">合计</td>
<td lay-data="{width:'15%',align:'center'}" id="allcount12">${visitOACount}</td>
<td lay-data="{width:'15%',align:'center'}" >${visitOAATCount}</td>
<td lay-data="{width:'15%',align:'center'}">${visitSMailCount}</td>
<td lay-data="{width:'16%',align:'center'}">${visitRMailCount}</td>
</tr>
</thead>
</table>
Controller层代码:
@PostMapping("show")
@ResponseBody
public LayerData<Statistics> list(@RequestParam(value = "page", defaultValue = "1") Integer page,
@RequestParam(value = "limit") Integer limit,
ServletRequest request) {
Map<String,Object> map = WebUtils.getParametersStartingWith(request, "s_");
LayerData<Statistics> layerData = new LayerData<>();
Page<Statistics> dataPage = showService.queryStatisticsOAEveryCount(map, new Page<>(page, limit));
layerData.setCount(dataPage.getTotal());
layerData.setData(dataPage.getRecords());
return layerData;
}
dao层代码:
List<Statistics> queryStatisticsOAEveryCount(Map<String, Object> map, Page<Statistics> page);
Service层:
/*用户统计表查询*/
Page<Statistics> queryStatisticsOAEveryCount(Map<String,Object> map, Page<Statistics> page);
ServiceImpl层
/*用户统计表查询*/
@Override
public Page<Statistics> queryStatisticsOAEveryCount(Map<String, Object> map, Page<Statistics> page) {
return page.setRecords(showDao.queryStatisticsOAEveryCount(map,page));
}
Mapper层
<!--用户统计表-->
<!--queryStatisticsOAEveryCount()-->
<resultMap id="showList" type="com.raising.core.entity.statistics.Statistics">
<result column="OANUM" property="fwOA"/>
<result column="OAAT" property="fwOAat"/>
<result column="NICK_NAME" property="userName"/>
<result column="RMAIL" property="mailReceive"/>
<result column="SMAIL" property="mailSend"/>
<result column="department" property="city"/>
<result column="region" property="region"/>
</resultMap>
<select id="queryStatisticsOAEveryCount" resultMap="showList">
SELECT a.NICK_NAME,nvl(h.REGION_NAME,'其他') region,nvl(b.num,0) AS oanum,nvl(c.rnum,0) rmail,nvl(d.snum,0) smail,f.NAME department,nvl(g.oant,0) oaat
FROM SYS_USER a
LEFT JOIN(
SELECT count(0) as num,l.CREATE_BY id
FROM SYS_LOG l
WHERE
l.TITLE='用户登录'
GROUP BY l.CREATE_BY
) b on a.id = b.id
LEFT JOIN(
SELECT count(0) as rnum,a.RECEIPT_ID id
FROM MAIL_RECEIPT a
GROUP BY a.RECEIPT_ID
) c ON a.ID=c.ID
LEFT JOIN(
SELECT COUNT(0) as snum,e.EMAILED_ID id
FROM MAIL_EMAILED e
GROUP BY e.EMAILED_ID
) d ON a.ID=d.ID
LEFT JOIN(
SELECT COUNT(0) oant,z.id
FROM(
select to_char(t.CREATE_DATE, 'yyyy/mm/dd') timedate,t.CREATE_BY id
from SYS_LOG t
where t.CREATE_DATE >= to_date('1980/1/1', 'yyyy/mm/dd')
and t.CREATE_DATE <= to_date('3000/1/31', 'yyyy/mm/dd')
and t.TITLE='用户登录'
group by to_char(t.CREATE_DATE, 'yyyy/mm/dd'),t.CREATE_BY
) z
GROUP BY z.id
) g ON a.id=g.id
LEFT JOIN SYS_ORG f ON a.ORG_ID=f.ID
LEFT JOIN DIC_ADMINREGION_JS h ON f.id=h.REGION_ID
WHERE 1=1
<if test="userName != null and userName != ''">
AND a.NICK_NAME LIKE '%${userName}%'
</if>
<if test="city != null and city != ''">
AND f.NAME LIKE '%${city}%'
</if>
ORDER BY f.ID
</select>
总结:
layui有自己的一套封装数据规则
本文详细介绍了如何在 layui 中进行表格数据的封装,从前端代码到后端的 Controller、DAO、Service、ServiceImpl 和 Mapper 层的实现,最后进行了总结,阐述了 layui 对数据规则的特定要求。
874





