Commit 12e9ee7e by fsn

日志模块完善

parent 6129ac35
package com.stylefeng.guns.common.constant.factory;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.core.support.HttpKit;
import javax.servlet.http.HttpServletRequest;
/**
* BootStrap Table默认的分页参数创建
*
* @author fengshuonan
* @date 2017-04-05 22:25
*/
public class PageFactory<T> {
public Page<T> defaultPage() {
HttpServletRequest request = HttpKit.getRequest();
int limit = Integer.valueOf(request.getParameter("limit"));
int offset = Integer.valueOf(request.getParameter("offset"));
return new Page<>((offset/limit + 1), limit);
}
}
...@@ -34,5 +34,5 @@ public abstract class BaseControllerWarpper { ...@@ -34,5 +34,5 @@ public abstract class BaseControllerWarpper {
} }
} }
public abstract void warpTheMap(Map<String, Object> map); protected abstract void warpTheMap(Map<String, Object> map);
} }
package com.stylefeng.guns.modular.system.controller; package com.stylefeng.guns.modular.system.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.common.constant.factory.PageFactory;
import com.stylefeng.guns.common.controller.BaseController; import com.stylefeng.guns.common.controller.BaseController;
import com.stylefeng.guns.modular.system.warpper.LogWarpper;
import com.stylefeng.guns.persistence.dao.OperationLogMapper; import com.stylefeng.guns.persistence.dao.OperationLogMapper;
import org.apache.ibatis.session.RowBounds; import com.stylefeng.guns.persistence.model.OperationLog;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/** /**
* 日志管理的控制器 * 日志管理的控制器
...@@ -38,6 +44,18 @@ public class LogController extends BaseController { ...@@ -38,6 +44,18 @@ public class LogController extends BaseController {
@RequestMapping("/list") @RequestMapping("/list")
@ResponseBody @ResponseBody
public Object list(){ public Object list(){
return operationLogMapper.selectPage(new RowBounds(10,2), null); Page<OperationLog> page = new PageFactory<OperationLog>().defaultPage();
List<Map<String, Object>> operationLogs = operationLogMapper.selectMapsPage(page, null);
page.setRecords((List<OperationLog>) new LogWarpper(operationLogs).warp());
return super.packForBT(page);
}
/**
* 查询操作日志详情
*/
@RequestMapping("/detail/{id}")
@ResponseBody
public Object detail(@PathVariable Integer id){
return operationLogMapper.selectById(id);
} }
} }
package com.stylefeng.guns.modular.system.warpper;
import com.stylefeng.guns.common.warpper.BaseControllerWarpper;
import com.stylefeng.guns.core.util.ToolUtil;
import java.util.List;
import java.util.Map;
/**
* 日志列表的包装类
*
* @author fengshuonan
* @date 2017年4月5日22:56:24
*/
public class LogWarpper extends BaseControllerWarpper {
public LogWarpper(List<Map<String, Object>> list) {
super(list);
}
@Override
public void warpTheMap(Map<String, Object> map) {
String message = (String) map.get("message");
if (ToolUtil.isNotEmpty(message) && message.length() >= 100) {
message = message.substring(0, 100) + "...";
} else {
message = null;
}
map.put("message", message);
}
}
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* @author fengshuonan * @author fengshuonan
*/ */
(function () { (function () {
var BSTable = function (bstableId , url, columns){ var BSTable = function (bstableId, url, columns) {
this.btInstance = null; //jquery和BootStrapTable绑定的对象 this.btInstance = null; //jquery和BootStrapTable绑定的对象
this.bstableId = bstableId; this.bstableId = bstableId;
this.url = Feng.ctxPath + url; this.url = Feng.ctxPath + url;
...@@ -22,25 +22,26 @@ ...@@ -22,25 +22,26 @@
/** /**
* 初始化bootstrap table * 初始化bootstrap table
*/ */
init : function () { init: function () {
var tableId = this.bstableId; var tableId = this.bstableId;
this.btInstance = this.btInstance =
$('#'+tableId).bootstrapTable({ $('#' + tableId).bootstrapTable({
contentType: "application/x-www-form-urlencoded",
url: this.url, //请求地址 url: this.url, //请求地址
method: this.method, //ajax方式,post还是get method: this.method, //ajax方式,post还是get
ajaxOptions:{ //ajax请求的附带参数 ajaxOptions: { //ajax请求的附带参数
data:this.data data: this.data
}, },
toolbar: "#"+this.toolbarId,//顶部工具条 toolbar: "#" + this.toolbarId,//顶部工具条
striped: true, //是否显示行间隔色 striped: true, //是否显示行间隔色
cache: false, //是否使用缓存,默认为true cache: false, //是否使用缓存,默认为true
pagination: true, //是否显示分页(*) pagination: true, //是否显示分页(*)
sortable: false, //是否启用排序 sortable: false, //是否启用排序
sortOrder: "desc", //排序方式 sortOrder: "desc", //排序方式
pageNumber:1, //初始化加载第一页,默认第一页 pageNumber: 1, //初始化加载第一页,默认第一页
pageSize: 14, //每页的记录行数(*) pageSize: 14, //每页的记录行数(*)
pageList: [14, 50, 100], //可供选择的每页的行数(*) pageList: [14, 50, 100], //可供选择的每页的行数(*)
queryParamsType:'limit', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort queryParamsType: 'limit', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
sidePagination: this.paginationType, //分页方式:client客户端分页,server服务端分页(*) sidePagination: this.paginationType, //分页方式:client客户端分页,server服务端分页(*)
search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端 search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端
strictSearch: true, //设置为 true启用 全匹配搜索,否则为模糊搜索 strictSearch: true, //设置为 true启用 全匹配搜索,否则为模糊搜索
...@@ -50,14 +51,14 @@ ...@@ -50,14 +51,14 @@
clickToSelect: true, //是否启用点击选中行 clickToSelect: true, //是否启用点击选中行
searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法 searchOnEnterKey: true, //设置为 true时,按回车触发搜索方法,否则自动触发搜索方法
columns: this.columns, //列数组 columns: this.columns, //列数组
pagination:true, //是否显示分页条 pagination: true, //是否显示分页条
height:this.height, height: this.height,
icons : { icons: {
refresh : 'glyphicon-repeat', refresh: 'glyphicon-repeat',
toggle : 'glyphicon-list-alt', toggle: 'glyphicon-list-alt',
columns : 'glyphicon-list' columns: 'glyphicon-list'
}, },
iconSize : 'outline' iconSize: 'outline'
}); });
return this; return this;
}, },
...@@ -65,14 +66,14 @@ ...@@ -65,14 +66,14 @@
/** /**
* 设置分页方式:server 或者 client * 设置分页方式:server 或者 client
*/ */
setPaginationType : function(type){ setPaginationType: function (type) {
this.paginationType = type; this.paginationType = type;
}, },
/** /**
* 设置ajax post请求时候附带的参数 * 设置ajax post请求时候附带的参数
*/ */
set : function (key, value){ set: function (key, value) {
if (typeof key == "object") { if (typeof key == "object") {
for (var i in key) { for (var i in key) {
if (typeof i == "function") if (typeof i == "function")
...@@ -88,7 +89,7 @@ ...@@ -88,7 +89,7 @@
/** /**
* 设置ajax post请求时候附带的参数 * 设置ajax post请求时候附带的参数
*/ */
setData : function(data){ setData: function (data) {
this.data = data; this.data = data;
return this; return this;
}, },
...@@ -96,7 +97,7 @@ ...@@ -96,7 +97,7 @@
/** /**
* 清空ajax post请求参数 * 清空ajax post请求参数
*/ */
clear : function (){ clear: function () {
this.data = {}; this.data = {};
return this; return this;
}, },
...@@ -108,10 +109,10 @@ ...@@ -108,10 +109,10 @@
* and set {url: newUrl} to change the url. * and set {url: newUrl} to change the url.
* To supply query params specific to this request, set {query: {foo: 'bar'}} * To supply query params specific to this request, set {query: {foo: 'bar'}}
*/ */
refresh : function(parms){ refresh: function (parms) {
if(typeof parms != "undefined"){ if (typeof parms != "undefined") {
this.btInstance.bootstrapTable('refresh',parms); this.btInstance.bootstrapTable('refresh', parms);
}else{ } else {
this.btInstance.bootstrapTable('refresh'); this.btInstance.bootstrapTable('refresh');
} }
} }
...@@ -119,4 +120,4 @@ ...@@ -119,4 +120,4 @@
window.BSTable = BSTable; window.BSTable = BSTable;
} ()); }());
\ No newline at end of file \ No newline at end of file
...@@ -2,16 +2,16 @@ ...@@ -2,16 +2,16 @@
* 日志管理初始化 * 日志管理初始化
*/ */
var OptLog = { var OptLog = {
id : "OptLogTable", //表格id id: "OptLogTable", //表格id
seItem : null, //选中的条目 seItem: null, //选中的条目
table : null, table: null,
layerIndex : -1 layerIndex: -1
}; };
/** /**
* 初始化表格的列 * 初始化表格的列
*/ */
OptLog.initColumn = function(){ OptLog.initColumn = function () {
return [ return [
{field: 'selectItem', radio: true}, {field: 'selectItem', radio: true},
{title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'}, {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
...@@ -27,7 +27,7 @@ OptLog.initColumn = function(){ ...@@ -27,7 +27,7 @@ OptLog.initColumn = function(){
/** /**
* 绑定表格的事件 * 绑定表格的事件
*/ */
OptLog.bindEvent = function(){ OptLog.bindEvent = function () {
$('#' + this.id).on('click-row.bs.table', function (e, row) { $('#' + this.id).on('click-row.bs.table', function (e, row) {
OptLog.seItem = row; OptLog.seItem = row;
}); });
...@@ -36,11 +36,11 @@ OptLog.bindEvent = function(){ ...@@ -36,11 +36,11 @@ OptLog.bindEvent = function(){
/** /**
* 检查是否选中 * 检查是否选中
*/ */
OptLog.check = function(){ OptLog.check = function () {
if(this.seItem == null){ if (this.seItem == null) {
Feng.info("请先选中表格中的某一记录!"); Feng.info("请先选中表格中的某一记录!");
return false; return false;
}else{ } else {
return true; return true;
} }
}; };
...@@ -48,14 +48,21 @@ OptLog.check = function(){ ...@@ -48,14 +48,21 @@ OptLog.check = function(){
/** /**
* 查看日志详情 * 查看日志详情
*/ */
OptLog.detail = function(){ OptLog.detail = function () {
if (this.check()) {
var ajax = new $ax(Feng.ctxPath + "/log/detail/" +this.seItem.id, function (data) {
}, function (data) {
});
ajax.start();
}
}; };
$(function(){ $(function () {
var defaultColunms = OptLog.initColumn(); var defaultColunms = OptLog.initColumn();
var table = new BSTable(OptLog.id,"/log/list",defaultColunms); var table = new BSTable(OptLog.id, "/log/list", defaultColunms);
table.setPaginationType("client"); table.setPaginationType("server");
table.init(); table.init();
OptLog.bindEvent(); OptLog.bindEvent();
OptLog.table = table; OptLog.table = table;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment