jidj hace 5 años
padre
commit
f86f46cc6d

+ 27 - 0
src/main/java/com/chinaitop/InterceptorConfig.java

@@ -0,0 +1,27 @@
1
+package com.chinaitop;
2
+
3
+import org.springframework.context.annotation.Bean;
4
+import org.springframework.context.annotation.Configuration;
5
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
6
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
7
+
8
+@Configuration
9
+public class InterceptorConfig extends WebMvcConfigurationSupport {
10
+
11
+	@Bean
12
+	public LogercostInterceptor getInterceptor() {
13
+		return new LogercostInterceptor();
14
+	}
15
+	/**
16
+     * interceptor配置
17
+     */
18
+    @Override
19
+    public void addInterceptors(InterceptorRegistry registry) {
20
+
21
+    	//添加需要验证登录用户操作权限的请求
22
+        registry.addInterceptor(getInterceptor()).addPathPatterns("/**");
23
+
24
+        //这里可以用registry.addInterceptor添加多个拦截器实例,后面加上匹配模式
25
+        //super.addInterceptors(registry);//最后将register往这里塞进去就可以了
26
+    }
27
+}

+ 301 - 0
src/main/java/com/chinaitop/LogercostInterceptor.java

@@ -0,0 +1,301 @@
1
+package com.chinaitop;
2
+
3
+import com.alibaba.fastjson.JSONArray;
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.chinaitop.depot.storage.mapper.SystemLogMapper;
6
+import com.chinaitop.depot.storage.model.SystemLog;
7
+import com.chinaitop.depot.storage.model.SystemLogExample;
8
+import com.chinaitop.depot.storage.utils.RedisUtil;
9
+import org.apache.commons.lang.ObjectUtils;
10
+import org.springframework.beans.factory.annotation.Autowired;
11
+import org.springframework.lang.Nullable;
12
+import org.springframework.web.method.HandlerMethod;
13
+import org.springframework.web.servlet.HandlerInterceptor;
14
+import org.springframework.web.servlet.ModelAndView;
15
+
16
+import javax.servlet.http.HttpServletRequest;
17
+import javax.servlet.http.HttpServletResponse;
18
+import java.util.*;
19
+
20
+/**
21
+ * 功能日志拦截器
22
+ * 
23
+ * @author fanxiongwei
24
+ *
25
+ */
26
+public class LogercostInterceptor implements HandlerInterceptor {
27
+
28
+	private static String system_index = "库级系统";
29
+
30
+	@Autowired
31
+	private RedisUtil redisUtil;
32
+	
33
+	@Autowired
34
+	private SystemLogMapper systemLogMapper;
35
+
36
+	/**
37
+     * preHandle是在请求执行前执行的
38
+     */
39
+    @Override
40
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
41
+
42
+    	//获取URL
43
+        String url = request.getRequestURI();
44
+    	//注销日志
45
+    	if ("/userInfo/exitLogin".equals(url)) {
46
+    		loginLogger(request, response, url);
47
+    	}
48
+    	
49
+        //System.out.println(butn_list);
50
+        
51
+        //System.out.println("Interception cost="+(System.currentTimeMillis()-start));
52
+        return true;//返回true,postHandler和afterCompletion方法才能执行,否则false为拒绝执行,起到拦截器控制作用
53
+    }
54
+
55
+    /**
56
+     * postHandler是在请求结束之后,视图渲染之前执行的,但只有preHandle方法返回true的时候才会执行
57
+     */
58
+    @Override
59
+    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
60
+    	//获取URL
61
+        String url = request.getRequestURI();
62
+        //获取用户信息和单位信息
63
+        String userJson = ObjectUtils.toString(request.getSession().getAttribute("userInfo"),"");
64
+        String orgInfoJson = ObjectUtils.toString(request.getSession().getAttribute("orgInfo"),"");
65
+        //登录日志
66
+    	if (("/userInfo/login".equals(url) || "/userInfo/exitLogin".equals(url))
67
+    			&& !"".equals(userJson) && !"".equals(orgInfoJson)
68
+    			&& null != userJson && null != orgInfoJson) {
69
+    		loginLogger(request, response, url);
70
+    	}
71
+    	//功能操作和访问日志
72
+    	if (!"/userInfo/login".equals(url) && !"/userInfo/exitLogin".equals(url)
73
+    			&& !"".equals(userJson) && !"".equals(orgInfoJson)
74
+    			&& null != userJson && null != orgInfoJson) {
75
+    		operationLogger(request, response, url, handler);
76
+    	}
77
+    }
78
+
79
+    /**
80
+     * 封装登录信息
81
+     * 
82
+     * @param userJson
83
+     * @param orgInfoJson
84
+     * @return
85
+     */
86
+    private Map<String, String> getUserOrgInfo(String userJson, String orgInfoJson) {
87
+    	Map<String, String> user_map = new HashMap<String, String>();
88
+    	JSONObject userinfo = JSONObject.parseObject(userJson);
89
+    	JSONObject orginfo = JSONObject.parseObject(orgInfoJson);
90
+    	user_map.put("userId", userinfo == null ? "" : userinfo.get("userId")+"");
91
+    	user_map.put("username", userinfo == null ? "" : userinfo.get("username")+"");
92
+    	user_map.put("realName", userinfo == null ? "" : userinfo.get("realName")+"");
93
+    	user_map.put("orgId", userinfo == null ? "" : userinfo.get("orgId")+"");
94
+    	user_map.put("roleName", userinfo == null ? "" : userinfo.get("roleNames")+"");
95
+    	user_map.put("areaName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("areaName")+"",""));
96
+    	user_map.put("orgName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("orgName")+"",""));
97
+		return user_map;
98
+	}
99
+
100
+    /**
101
+     * 登录日志(包含登录与注销)
102
+     * @param request
103
+     * @param response
104
+     */
105
+    private void loginLogger(HttpServletRequest request, HttpServletResponse response, String url) {
106
+    	//获取用户信息和单位信息
107
+        String userJson = ObjectUtils.toString(request.getSession().getAttribute("userInfo"),"");
108
+        String orgInfoJson = ObjectUtils.toString(request.getSession().getAttribute("orgInfo"),"");
109
+    	//登录
110
+        if ("/userInfo/login".equals(url)) {
111
+	    	SystemLog log = new SystemLog();
112
+	    	Map<String, String> user_map = getUserOrgInfo(userJson, orgInfoJson);
113
+			log.setSystemIdentify(system_index);
114
+			log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
115
+			log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
116
+			log.setDeviceIp(getClientIpAddress(request));
117
+			log.setDlTime(new Date());
118
+			log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
119
+			log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
120
+			log.setUserAddress(user_map.get("areaName"));//行政区划
121
+			log.setId(UUID.randomUUID().toString().replace("-", ""));
122
+			log.setUserId(Integer.parseInt(user_map.get("userId")));
123
+			log.setOperationTime(new Date());//操作时间
124
+			log.setType("1");
125
+
126
+			//添加保存日志
127
+			systemLogMapper.insert(log);
128
+    	}
129
+
130
+        //注销
131
+        if ("/userInfo/exitLogin".equals(url)) {
132
+        	if (null != userJson && null != orgInfoJson
133
+        			&& !"".equals(userJson) && !"".equals(orgInfoJson)) {
134
+        		Map<String, String> user_map = getUserOrgInfo(userJson, orgInfoJson);
135
+        		//修改条件
136
+        		SystemLogExample example = new SystemLogExample();
137
+        		SystemLogExample.Criteria criteria = example.createCriteria();
138
+        		criteria.andUserZhEqualTo(ObjectUtils.toString(user_map.get("username"),""));
139
+        		criteria.andOrgIdEqualTo(Integer.parseInt(user_map.get("orgId")));
140
+        		criteria.andTypeEqualTo("1");
141
+        		example.setOrderByClause(" dl_time desc");
142
+        		List<SystemLog> list = systemLogMapper.selectByExample(example);
143
+
144
+        		if (null != list && list.size() > 0) {
145
+        			//注销时间
146
+        			list.get(0).setZxTime(new Date());
147
+        			list.get(0).setOperationTime(new Date());//操作时间
148
+
149
+        			//修改登录日志信息
150
+        			systemLogMapper.updateByPrimaryKey(list.get(0));
151
+        		}
152
+        	}
153
+    		
154
+    	}
155
+    }
156
+    
157
+    /**
158
+     * 操作日志实现思路:
159
+     * 1、URL要是可以在菜单里面找到对应菜单,那么当前这个操作属于功能操作日志
160
+     * 2、如果没在菜单里面找到对应菜单,却在按钮中找到了,那么就是功能访问日志
161
+     * 3、如果菜单和按钮中都没有找到对应的URL,那么说明当前这个方位没在功能管理里面配置正确,或者没有加入到功能管理中
162
+     * 
163
+     * @param request
164
+     * @param response
165
+     * @param url
166
+     */
167
+    private void operationLogger(HttpServletRequest request, HttpServletResponse response, String url, Object handler) {
168
+    	//获取用户信息和单位信息
169
+        String userJson = ObjectUtils.toString(request.getSession().getAttribute("userInfo"),"");
170
+        String orgInfoJson = ObjectUtils.toString(request.getSession().getAttribute("orgInfo"),"");
171
+        Map<String, String> user_map = getUserOrgInfo(userJson, orgInfoJson);
172
+
173
+        //是否还需要继续往下执行
174
+        boolean flag = false;
175
+
176
+    	//获取菜单权限并且组装功能日志
177
+    	String func_list = (String) redisUtil.get("hasFuncList");
178
+    	JSONArray array = JSONArray.parseArray(func_list);
179
+    	if (null != array && array.size() > 4) {
180
+    		JSONObject object = null;
181
+    		SystemLog log = new SystemLog();
182
+    		for (Iterator iterator = array.iterator(); iterator.hasNext();) {
183
+    			object = (JSONObject) iterator.next();
184
+    			String func_url = ObjectUtils.toString(object.get("funcUrl"));
185
+    			if (url.equals(func_url)) {
186
+    				log.setId(UUID.randomUUID().toString().replace("-", ""));
187
+    				log.setType("3");//功能操作日志
188
+    				log.setSystemIdentify(system_index);//标识
189
+    				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
190
+    				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
191
+    				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
192
+    				log.setDeviceIp(getClientIpAddress(request));//操作IP
193
+    				log.setFuncName(ObjectUtils.toString(object.get("funcName")));//功能名称
194
+    				log.setOperationTime(new Date());//操作时间
195
+    				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
196
+    				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
197
+    				log.setUserAddress(user_map.get("areaName"));//行政区划
198
+
199
+    				//添加保存日志
200
+    				systemLogMapper.insert(log);
201
+
202
+    				//已经是操作日志了,那么没必要在遍历按钮了
203
+    				flag = true;
204
+    				//也不用继续当前循环了
205
+    				break;
206
+    			}
207
+    		}
208
+    	}
209
+        //获取按钮权限并且组装访问日志
210
+    	if (!flag) {
211
+    		String perm_list = (String) redisUtil.get("permissionList");
212
+    		JSONArray but_array = JSONArray.parseArray(perm_list);
213
+        	if (null != but_array && but_array.size() > 4) {
214
+        		JSONObject but_object = null;
215
+        		SystemLog log = new SystemLog();
216
+        		for (Iterator iterator = but_array.iterator(); iterator.hasNext();) {
217
+        			but_object = (JSONObject) iterator.next();
218
+        			if (but_object == null) {
219
+        				continue;
220
+        			}
221
+        			String but_url = ObjectUtils.toString(but_object.get("btnUrl"), "");
222
+        			if (url.equals(but_url)) {
223
+        				log.setId(UUID.randomUUID().toString().replace("-", ""));
224
+        				log.setType("2");//功能访问日志
225
+        				log.setSystemIdentify(system_index);//标识
226
+        				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
227
+        				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
228
+        				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
229
+        				log.setDeviceIp(getClientIpAddress(request));//操作IP
230
+        				String f_name = ObjectUtils.toString(but_object.get("funcName"), "");
231
+        				String b_name = ObjectUtils.toString(but_object.get("btnName"), "");
232
+        				String ramark = ObjectUtils.toString(but_object.get("remark"), "");
233
+        				StringBuffer sbf = new StringBuffer();
234
+        				if (!"".equals(ramark)) {
235
+        					sbf.append(f_name).append("功能").append(ramark).append("操作");
236
+        				} else {
237
+        					sbf.append(f_name).append("功能").append(b_name).append("操作");
238
+        				}
239
+        				log.setFuncName(ObjectUtils.toString(sbf.toString(), ""));//菜单名称
240
+        				HandlerMethod h = (HandlerMethod) handler;  
241
+        				log.setMethodName(h.getMethod().getName());//方法名
242
+        				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
243
+        				log.setOperationTime(new Date());//操作时间
244
+        				StringBuilder param = new StringBuilder();
245
+                        Map<String,String[]> map = request.getParameterMap();
246
+                        Set<String> key = map.keySet();
247
+                        for (String eachKey: key) {
248
+                            param.append(eachKey+"="+map.get(eachKey)[0]+"; ");
249
+                        }
250
+        				log.setParameter(param.toString());//传入参数
251
+
252
+        				String status = ObjectUtils.toString(response.getStatus(), "");
253
+        				log.setOperResult(status);//操作结果状态
254
+        				if ("200".equals(status)) {
255
+        					log.setRtnParam("请求成功");//返回参数
256
+        				} else {
257
+        					log.setRtnParam("请求失败");//返回参数
258
+        				}
259
+        				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//所属机构
260
+        				log.setUserAddress(user_map.get("areaName"));//行政区划
261
+
262
+        				//添加保存日志
263
+        				systemLogMapper.insert(log);
264
+
265
+        				//中断本次循环
266
+        				break;
267
+        			}
268
+        		}
269
+        	}
270
+    	}
271
+    }
272
+
273
+	/**
274
+     * afterCompletion是视图渲染完成之后才执行,同样需要preHandle返回true,
275
+     */
276
+    @Override
277
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
278
+        //该方法通常用于清理资源等工作
279
+    }
280
+
281
+    /**
282
+     * 获取客户端IP
283
+     * 
284
+     * @param request
285
+     * @return
286
+     */
287
+    private String getClientIpAddress(HttpServletRequest request) {  
288
+        String clientIp = request.getHeader("x-forwarded-for");  
289
+        if(clientIp == null || clientIp.length() == 0 || "unknown".equalsIgnoreCase(clientIp)) {  
290
+            clientIp = request.getHeader("Proxy-Client-IP");  
291
+        }  
292
+        if(clientIp == null || clientIp.length() == 0 || "unknown".equalsIgnoreCase(clientIp)) {  
293
+            clientIp = request.getHeader("WL-Proxy-Client-IP");  
294
+        }  
295
+        if(clientIp == null || clientIp.length() == 0 || "unknown".equalsIgnoreCase(clientIp)) {  
296
+            clientIp = request.getRemoteAddr();  
297
+        }  
298
+        return "0:0:0:0:0:0:0:1".equals(clientIp) ? "127.0.0.1" : clientIp;  
299
+    }
300
+
301
+}

+ 32 - 0
src/main/java/com/chinaitop/depot/storage/mapper/SystemLogMapper.java

@@ -0,0 +1,32 @@
1
+package com.chinaitop.depot.storage.mapper;
2
+
3
+
4
+import com.chinaitop.depot.storage.model.SystemLog;
5
+import com.chinaitop.depot.storage.model.SystemLogExample;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+import java.util.List;
9
+
10
+public interface SystemLogMapper {
11
+    int countByExample(SystemLogExample example);
12
+
13
+    int deleteByExample(SystemLogExample example);
14
+
15
+    int deleteByPrimaryKey(String id);
16
+
17
+    int insert(SystemLog record);
18
+
19
+    int insertSelective(SystemLog record);
20
+
21
+    List<SystemLog> selectByExample(SystemLogExample example);
22
+
23
+    SystemLog selectByPrimaryKey(String id);
24
+
25
+    int updateByExampleSelective(@Param("record") SystemLog record, @Param("example") SystemLogExample example);
26
+
27
+    int updateByExample(@Param("record") SystemLog record, @Param("example") SystemLogExample example);
28
+
29
+    int updateByPrimaryKeySelective(SystemLog record);
30
+
31
+    int updateByPrimaryKey(SystemLog record);
32
+}

+ 465 - 0
src/main/java/com/chinaitop/depot/storage/mapper/SystemLogMapper.xml

@@ -0,0 +1,465 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3
+<mapper namespace="com.chinaitop.depot.storage.mapper.SystemLogMapper" >
4
+  <resultMap id="BaseResultMap" type="com.chinaitop.depot.storage.model.SystemLog" >
5
+    <id column="id" property="id" jdbcType="VARCHAR" />
6
+    <result column="org_id" property="orgId" jdbcType="INTEGER" />
7
+    <result column="user_id" property="userId" jdbcType="INTEGER" />
8
+    <result column="user_zh" property="userZh" jdbcType="VARCHAR" />
9
+    <result column="user_name" property="userName" jdbcType="VARCHAR" />
10
+    <result column="user_role" property="userRole" jdbcType="VARCHAR" />
11
+    <result column="user_address" property="userAddress" jdbcType="VARCHAR" />
12
+    <result column="dl_time" property="dlTime" jdbcType="TIMESTAMP" />
13
+    <result column="zx_time" property="zxTime" jdbcType="TIMESTAMP" />
14
+    <result column="func_id" property="funcId" jdbcType="INTEGER" />
15
+    <result column="func_name" property="funcName" jdbcType="VARCHAR" />
16
+    <result column="btn_id" property="btnId" jdbcType="INTEGER" />
17
+    <result column="method_name" property="methodName" jdbcType="VARCHAR" />
18
+    <result column="oper_result" property="operResult" jdbcType="VARCHAR" />
19
+    <result column="parameter" property="parameter" jdbcType="VARCHAR" />
20
+    <result column="rtn_param" property="rtnParam" jdbcType="VARCHAR" />
21
+    <result column="describes" property="describes" jdbcType="VARCHAR" />
22
+    <result column="type" property="type" jdbcType="VARCHAR" />
23
+    <result column="device_ip" property="deviceIp" jdbcType="VARCHAR" />
24
+    <result column="system_identify" property="systemIdentify" jdbcType="VARCHAR" />
25
+    <result column="operation_time" property="operationTime" jdbcType="TIMESTAMP" />
26
+  </resultMap>
27
+  <sql id="Example_Where_Clause" >
28
+    <where >
29
+      <foreach collection="oredCriteria" item="criteria" separator="or" >
30
+        <if test="criteria.valid" >
31
+          <trim prefix="(" suffix=")" prefixOverrides="and" >
32
+            <foreach collection="criteria.criteria" item="criterion" >
33
+              <choose >
34
+                <when test="criterion.noValue" >
35
+                  and ${criterion.condition}
36
+                </when>
37
+                <when test="criterion.singleValue" >
38
+                  and ${criterion.condition} #{criterion.value}
39
+                </when>
40
+                <when test="criterion.betweenValue" >
41
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
42
+                </when>
43
+                <when test="criterion.listValue" >
44
+                  and ${criterion.condition}
45
+                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
46
+                    #{listItem}
47
+                  </foreach>
48
+                </when>
49
+              </choose>
50
+            </foreach>
51
+          </trim>
52
+        </if>
53
+      </foreach>
54
+    </where>
55
+  </sql>
56
+  <sql id="Update_By_Example_Where_Clause" >
57
+    <where >
58
+      <foreach collection="example.oredCriteria" item="criteria" separator="or" >
59
+        <if test="criteria.valid" >
60
+          <trim prefix="(" suffix=")" prefixOverrides="and" >
61
+            <foreach collection="criteria.criteria" item="criterion" >
62
+              <choose >
63
+                <when test="criterion.noValue" >
64
+                  and ${criterion.condition}
65
+                </when>
66
+                <when test="criterion.singleValue" >
67
+                  and ${criterion.condition} #{criterion.value}
68
+                </when>
69
+                <when test="criterion.betweenValue" >
70
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
71
+                </when>
72
+                <when test="criterion.listValue" >
73
+                  and ${criterion.condition}
74
+                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
75
+                    #{listItem}
76
+                  </foreach>
77
+                </when>
78
+              </choose>
79
+            </foreach>
80
+          </trim>
81
+        </if>
82
+      </foreach>
83
+    </where>
84
+  </sql>
85
+  <sql id="Base_Column_List" >
86
+    id, org_id, user_id, user_zh, user_name, user_role, user_address, dl_time, zx_time, 
87
+    func_id, func_name, btn_id, method_name, oper_result, parameter, rtn_param, describes, 
88
+    type, device_ip, system_identify, operation_time
89
+  </sql>
90
+  <select id="selectByExample" resultMap="BaseResultMap" parameterType="com.chinaitop.depot.storage.model.SystemLogExample" >
91
+    select
92
+    <if test="distinct" >
93
+      distinct
94
+    </if>
95
+    <include refid="Base_Column_List" />
96
+    from system_log
97
+    <if test="_parameter != null" >
98
+      <include refid="Example_Where_Clause" />
99
+    </if>
100
+    <if test="orderByClause != null" >
101
+      order by ${orderByClause}
102
+    </if>
103
+  </select>
104
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
105
+    select 
106
+    <include refid="Base_Column_List" />
107
+    from system_log
108
+    where id = #{id,jdbcType=VARCHAR}
109
+  </select>
110
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
111
+    delete from system_log
112
+    where id = #{id,jdbcType=VARCHAR}
113
+  </delete>
114
+  <delete id="deleteByExample" parameterType="com.chinaitop.depot.storage.model.SystemLogExample" >
115
+    delete from system_log
116
+    <if test="_parameter != null" >
117
+      <include refid="Example_Where_Clause" />
118
+    </if>
119
+  </delete>
120
+  <insert id="insert" parameterType="com.chinaitop.depot.storage.model.SystemLog" >
121
+    insert into system_log (id, org_id, user_id, 
122
+      user_zh, user_name, user_role, 
123
+      user_address, dl_time, zx_time, 
124
+      func_id, func_name, btn_id, 
125
+      method_name, oper_result, parameter, 
126
+      rtn_param, describes, type, 
127
+      device_ip, system_identify, operation_time
128
+      )
129
+    values (#{id,jdbcType=VARCHAR}, #{orgId,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, 
130
+      #{userZh,jdbcType=VARCHAR}, #{userName,jdbcType=VARCHAR}, #{userRole,jdbcType=VARCHAR}, 
131
+      #{userAddress,jdbcType=VARCHAR}, #{dlTime,jdbcType=TIMESTAMP}, #{zxTime,jdbcType=TIMESTAMP}, 
132
+      #{funcId,jdbcType=INTEGER}, #{funcName,jdbcType=VARCHAR}, #{btnId,jdbcType=INTEGER}, 
133
+      #{methodName,jdbcType=VARCHAR}, #{operResult,jdbcType=VARCHAR}, #{parameter,jdbcType=VARCHAR}, 
134
+      #{rtnParam,jdbcType=VARCHAR}, #{describes,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, 
135
+      #{deviceIp,jdbcType=VARCHAR}, #{systemIdentify,jdbcType=VARCHAR}, #{operationTime,jdbcType=TIMESTAMP}
136
+      )
137
+  </insert>
138
+  <insert id="insertSelective" parameterType="com.chinaitop.depot.storage.model.SystemLog" >
139
+    insert into system_log
140
+    <trim prefix="(" suffix=")" suffixOverrides="," >
141
+      <if test="id != null" >
142
+        id,
143
+      </if>
144
+      <if test="orgId != null" >
145
+        org_id,
146
+      </if>
147
+      <if test="userId != null" >
148
+        user_id,
149
+      </if>
150
+      <if test="userZh != null" >
151
+        user_zh,
152
+      </if>
153
+      <if test="userName != null" >
154
+        user_name,
155
+      </if>
156
+      <if test="userRole != null" >
157
+        user_role,
158
+      </if>
159
+      <if test="userAddress != null" >
160
+        user_address,
161
+      </if>
162
+      <if test="dlTime != null" >
163
+        dl_time,
164
+      </if>
165
+      <if test="zxTime != null" >
166
+        zx_time,
167
+      </if>
168
+      <if test="funcId != null" >
169
+        func_id,
170
+      </if>
171
+      <if test="funcName != null" >
172
+        func_name,
173
+      </if>
174
+      <if test="btnId != null" >
175
+        btn_id,
176
+      </if>
177
+      <if test="methodName != null" >
178
+        method_name,
179
+      </if>
180
+      <if test="operResult != null" >
181
+        oper_result,
182
+      </if>
183
+      <if test="parameter != null" >
184
+        parameter,
185
+      </if>
186
+      <if test="rtnParam != null" >
187
+        rtn_param,
188
+      </if>
189
+      <if test="describes != null" >
190
+        describes,
191
+      </if>
192
+      <if test="type != null" >
193
+        type,
194
+      </if>
195
+      <if test="deviceIp != null" >
196
+        device_ip,
197
+      </if>
198
+      <if test="systemIdentify != null" >
199
+        system_identify,
200
+      </if>
201
+      <if test="operationTime != null" >
202
+        operation_time,
203
+      </if>
204
+    </trim>
205
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
206
+      <if test="id != null" >
207
+        #{id,jdbcType=VARCHAR},
208
+      </if>
209
+      <if test="orgId != null" >
210
+        #{orgId,jdbcType=INTEGER},
211
+      </if>
212
+      <if test="userId != null" >
213
+        #{userId,jdbcType=INTEGER},
214
+      </if>
215
+      <if test="userZh != null" >
216
+        #{userZh,jdbcType=VARCHAR},
217
+      </if>
218
+      <if test="userName != null" >
219
+        #{userName,jdbcType=VARCHAR},
220
+      </if>
221
+      <if test="userRole != null" >
222
+        #{userRole,jdbcType=VARCHAR},
223
+      </if>
224
+      <if test="userAddress != null" >
225
+        #{userAddress,jdbcType=VARCHAR},
226
+      </if>
227
+      <if test="dlTime != null" >
228
+        #{dlTime,jdbcType=TIMESTAMP},
229
+      </if>
230
+      <if test="zxTime != null" >
231
+        #{zxTime,jdbcType=TIMESTAMP},
232
+      </if>
233
+      <if test="funcId != null" >
234
+        #{funcId,jdbcType=INTEGER},
235
+      </if>
236
+      <if test="funcName != null" >
237
+        #{funcName,jdbcType=VARCHAR},
238
+      </if>
239
+      <if test="btnId != null" >
240
+        #{btnId,jdbcType=INTEGER},
241
+      </if>
242
+      <if test="methodName != null" >
243
+        #{methodName,jdbcType=VARCHAR},
244
+      </if>
245
+      <if test="operResult != null" >
246
+        #{operResult,jdbcType=VARCHAR},
247
+      </if>
248
+      <if test="parameter != null" >
249
+        #{parameter,jdbcType=VARCHAR},
250
+      </if>
251
+      <if test="rtnParam != null" >
252
+        #{rtnParam,jdbcType=VARCHAR},
253
+      </if>
254
+      <if test="describes != null" >
255
+        #{describes,jdbcType=VARCHAR},
256
+      </if>
257
+      <if test="type != null" >
258
+        #{type,jdbcType=VARCHAR},
259
+      </if>
260
+      <if test="deviceIp != null" >
261
+        #{deviceIp,jdbcType=VARCHAR},
262
+      </if>
263
+      <if test="systemIdentify != null" >
264
+        #{systemIdentify,jdbcType=VARCHAR},
265
+      </if>
266
+      <if test="operationTime != null" >
267
+        #{operationTime,jdbcType=TIMESTAMP},
268
+      </if>
269
+    </trim>
270
+  </insert>
271
+  <select id="countByExample" parameterType="com.chinaitop.depot.storage.model.SystemLogExample" resultType="java.lang.Integer" >
272
+    select count(*) from system_log
273
+    <if test="_parameter != null" >
274
+      <include refid="Example_Where_Clause" />
275
+    </if>
276
+  </select>
277
+  <update id="updateByExampleSelective" parameterType="map" >
278
+    update system_log
279
+    <set >
280
+      <if test="record.id != null" >
281
+        id = #{record.id,jdbcType=VARCHAR},
282
+      </if>
283
+      <if test="record.orgId != null" >
284
+        org_id = #{record.orgId,jdbcType=INTEGER},
285
+      </if>
286
+      <if test="record.userId != null" >
287
+        user_id = #{record.userId,jdbcType=INTEGER},
288
+      </if>
289
+      <if test="record.userZh != null" >
290
+        user_zh = #{record.userZh,jdbcType=VARCHAR},
291
+      </if>
292
+      <if test="record.userName != null" >
293
+        user_name = #{record.userName,jdbcType=VARCHAR},
294
+      </if>
295
+      <if test="record.userRole != null" >
296
+        user_role = #{record.userRole,jdbcType=VARCHAR},
297
+      </if>
298
+      <if test="record.userAddress != null" >
299
+        user_address = #{record.userAddress,jdbcType=VARCHAR},
300
+      </if>
301
+      <if test="record.dlTime != null" >
302
+        dl_time = #{record.dlTime,jdbcType=TIMESTAMP},
303
+      </if>
304
+      <if test="record.zxTime != null" >
305
+        zx_time = #{record.zxTime,jdbcType=TIMESTAMP},
306
+      </if>
307
+      <if test="record.funcId != null" >
308
+        func_id = #{record.funcId,jdbcType=INTEGER},
309
+      </if>
310
+      <if test="record.funcName != null" >
311
+        func_name = #{record.funcName,jdbcType=VARCHAR},
312
+      </if>
313
+      <if test="record.btnId != null" >
314
+        btn_id = #{record.btnId,jdbcType=INTEGER},
315
+      </if>
316
+      <if test="record.methodName != null" >
317
+        method_name = #{record.methodName,jdbcType=VARCHAR},
318
+      </if>
319
+      <if test="record.operResult != null" >
320
+        oper_result = #{record.operResult,jdbcType=VARCHAR},
321
+      </if>
322
+      <if test="record.parameter != null" >
323
+        parameter = #{record.parameter,jdbcType=VARCHAR},
324
+      </if>
325
+      <if test="record.rtnParam != null" >
326
+        rtn_param = #{record.rtnParam,jdbcType=VARCHAR},
327
+      </if>
328
+      <if test="record.describes != null" >
329
+        describes = #{record.describes,jdbcType=VARCHAR},
330
+      </if>
331
+      <if test="record.type != null" >
332
+        type = #{record.type,jdbcType=VARCHAR},
333
+      </if>
334
+      <if test="record.deviceIp != null" >
335
+        device_ip = #{record.deviceIp,jdbcType=VARCHAR},
336
+      </if>
337
+      <if test="record.systemIdentify != null" >
338
+        system_identify = #{record.systemIdentify,jdbcType=VARCHAR},
339
+      </if>
340
+      <if test="record.operationTime != null" >
341
+        operation_time = #{record.operationTime,jdbcType=TIMESTAMP},
342
+      </if>
343
+    </set>
344
+    <if test="_parameter != null" >
345
+      <include refid="Update_By_Example_Where_Clause" />
346
+    </if>
347
+  </update>
348
+  <update id="updateByExample" parameterType="map" >
349
+    update system_log
350
+    set id = #{record.id,jdbcType=VARCHAR},
351
+      org_id = #{record.orgId,jdbcType=INTEGER},
352
+      user_id = #{record.userId,jdbcType=INTEGER},
353
+      user_zh = #{record.userZh,jdbcType=VARCHAR},
354
+      user_name = #{record.userName,jdbcType=VARCHAR},
355
+      user_role = #{record.userRole,jdbcType=VARCHAR},
356
+      user_address = #{record.userAddress,jdbcType=VARCHAR},
357
+      dl_time = #{record.dlTime,jdbcType=TIMESTAMP},
358
+      zx_time = #{record.zxTime,jdbcType=TIMESTAMP},
359
+      func_id = #{record.funcId,jdbcType=INTEGER},
360
+      func_name = #{record.funcName,jdbcType=VARCHAR},
361
+      btn_id = #{record.btnId,jdbcType=INTEGER},
362
+      method_name = #{record.methodName,jdbcType=VARCHAR},
363
+      oper_result = #{record.operResult,jdbcType=VARCHAR},
364
+      parameter = #{record.parameter,jdbcType=VARCHAR},
365
+      rtn_param = #{record.rtnParam,jdbcType=VARCHAR},
366
+      describes = #{record.describes,jdbcType=VARCHAR},
367
+      type = #{record.type,jdbcType=VARCHAR},
368
+      device_ip = #{record.deviceIp,jdbcType=VARCHAR},
369
+      system_identify = #{record.systemIdentify,jdbcType=VARCHAR},
370
+      operation_time = #{record.operationTime,jdbcType=TIMESTAMP}
371
+    <if test="_parameter != null" >
372
+      <include refid="Update_By_Example_Where_Clause" />
373
+    </if>
374
+  </update>
375
+  <update id="updateByPrimaryKeySelective" parameterType="com.chinaitop.depot.storage.model.SystemLog" >
376
+    update system_log
377
+    <set >
378
+      <if test="orgId != null" >
379
+        org_id = #{orgId,jdbcType=INTEGER},
380
+      </if>
381
+      <if test="userId != null" >
382
+        user_id = #{userId,jdbcType=INTEGER},
383
+      </if>
384
+      <if test="userZh != null" >
385
+        user_zh = #{userZh,jdbcType=VARCHAR},
386
+      </if>
387
+      <if test="userName != null" >
388
+        user_name = #{userName,jdbcType=VARCHAR},
389
+      </if>
390
+      <if test="userRole != null" >
391
+        user_role = #{userRole,jdbcType=VARCHAR},
392
+      </if>
393
+      <if test="userAddress != null" >
394
+        user_address = #{userAddress,jdbcType=VARCHAR},
395
+      </if>
396
+      <if test="dlTime != null" >
397
+        dl_time = #{dlTime,jdbcType=TIMESTAMP},
398
+      </if>
399
+      <if test="zxTime != null" >
400
+        zx_time = #{zxTime,jdbcType=TIMESTAMP},
401
+      </if>
402
+      <if test="funcId != null" >
403
+        func_id = #{funcId,jdbcType=INTEGER},
404
+      </if>
405
+      <if test="funcName != null" >
406
+        func_name = #{funcName,jdbcType=VARCHAR},
407
+      </if>
408
+      <if test="btnId != null" >
409
+        btn_id = #{btnId,jdbcType=INTEGER},
410
+      </if>
411
+      <if test="methodName != null" >
412
+        method_name = #{methodName,jdbcType=VARCHAR},
413
+      </if>
414
+      <if test="operResult != null" >
415
+        oper_result = #{operResult,jdbcType=VARCHAR},
416
+      </if>
417
+      <if test="parameter != null" >
418
+        parameter = #{parameter,jdbcType=VARCHAR},
419
+      </if>
420
+      <if test="rtnParam != null" >
421
+        rtn_param = #{rtnParam,jdbcType=VARCHAR},
422
+      </if>
423
+      <if test="describes != null" >
424
+        describes = #{describes,jdbcType=VARCHAR},
425
+      </if>
426
+      <if test="type != null" >
427
+        type = #{type,jdbcType=VARCHAR},
428
+      </if>
429
+      <if test="deviceIp != null" >
430
+        device_ip = #{deviceIp,jdbcType=VARCHAR},
431
+      </if>
432
+      <if test="systemIdentify != null" >
433
+        system_identify = #{systemIdentify,jdbcType=VARCHAR},
434
+      </if>
435
+      <if test="operationTime != null" >
436
+        operation_time = #{operationTime,jdbcType=TIMESTAMP},
437
+      </if>
438
+    </set>
439
+    where id = #{id,jdbcType=VARCHAR}
440
+  </update>
441
+  <update id="updateByPrimaryKey" parameterType="com.chinaitop.depot.storage.model.SystemLog" >
442
+    update system_log
443
+    set org_id = #{orgId,jdbcType=INTEGER},
444
+      user_id = #{userId,jdbcType=INTEGER},
445
+      user_zh = #{userZh,jdbcType=VARCHAR},
446
+      user_name = #{userName,jdbcType=VARCHAR},
447
+      user_role = #{userRole,jdbcType=VARCHAR},
448
+      user_address = #{userAddress,jdbcType=VARCHAR},
449
+      dl_time = #{dlTime,jdbcType=TIMESTAMP},
450
+      zx_time = #{zxTime,jdbcType=TIMESTAMP},
451
+      func_id = #{funcId,jdbcType=INTEGER},
452
+      func_name = #{funcName,jdbcType=VARCHAR},
453
+      btn_id = #{btnId,jdbcType=INTEGER},
454
+      method_name = #{methodName,jdbcType=VARCHAR},
455
+      oper_result = #{operResult,jdbcType=VARCHAR},
456
+      parameter = #{parameter,jdbcType=VARCHAR},
457
+      rtn_param = #{rtnParam,jdbcType=VARCHAR},
458
+      describes = #{describes,jdbcType=VARCHAR},
459
+      type = #{type,jdbcType=VARCHAR},
460
+      device_ip = #{deviceIp,jdbcType=VARCHAR},
461
+      system_identify = #{systemIdentify,jdbcType=VARCHAR},
462
+      operation_time = #{operationTime,jdbcType=TIMESTAMP}
463
+    where id = #{id,jdbcType=VARCHAR}
464
+  </update>
465
+</mapper>

+ 383 - 0
src/main/java/com/chinaitop/depot/storage/model/SystemLog.java

@@ -0,0 +1,383 @@
1
+package com.chinaitop.depot.storage.model;
2
+
3
+import java.util.Date;
4
+
5
+public class SystemLog {
6
+    private String id;
7
+
8
+    private Integer orgId;
9
+
10
+    private Integer userId;
11
+
12
+    private String userZh;
13
+
14
+    private String userName;
15
+
16
+    private String userRole;
17
+
18
+    private String userAddress;
19
+
20
+    private Date dlTime;
21
+
22
+    private Date zxTime;
23
+
24
+    private Integer funcId;
25
+
26
+    private String funcName;
27
+
28
+    private Integer btnId;
29
+
30
+    private String methodName;
31
+
32
+    private String operResult;
33
+
34
+    private String parameter;
35
+
36
+    private String rtnParam;
37
+
38
+    private String describes;
39
+
40
+    private String type;
41
+
42
+    private String deviceIp;
43
+
44
+    private String systemIdentify;
45
+
46
+    private Date operationTime;
47
+
48
+    /**
49
+     * 主键
50
+     * @return id 主键
51
+     */
52
+    public String getId() {
53
+        return id;
54
+    }
55
+
56
+    /**
57
+     * 主键
58
+     * @param id 主键
59
+     */
60
+    public void setId(String id) {
61
+        this.id = id == null ? null : id.trim();
62
+    }
63
+
64
+    /**
65
+     * 机构id
66
+     * @return org_id 机构id
67
+     */
68
+    public Integer getOrgId() {
69
+        return orgId;
70
+    }
71
+
72
+    /**
73
+     * 机构id
74
+     * @param orgId 机构id
75
+     */
76
+    public void setOrgId(Integer orgId) {
77
+        this.orgId = orgId;
78
+    }
79
+
80
+    /**
81
+     * 用户id
82
+     * @return user_id 用户id
83
+     */
84
+    public Integer getUserId() {
85
+        return userId;
86
+    }
87
+
88
+    /**
89
+     * 用户id
90
+     * @param userId 用户id
91
+     */
92
+    public void setUserId(Integer userId) {
93
+        this.userId = userId;
94
+    }
95
+
96
+    /**
97
+     * 用户账号
98
+     * @return user_zh 用户账号
99
+     */
100
+    public String getUserZh() {
101
+        return userZh;
102
+    }
103
+
104
+    /**
105
+     * 用户账号
106
+     * @param userZh 用户账号
107
+     */
108
+    public void setUserZh(String userZh) {
109
+        this.userZh = userZh == null ? null : userZh.trim();
110
+    }
111
+
112
+    /**
113
+     * 用户名称
114
+     * @return user_name 用户名称
115
+     */
116
+    public String getUserName() {
117
+        return userName;
118
+    }
119
+
120
+    /**
121
+     * 用户名称
122
+     * @param userName 用户名称
123
+     */
124
+    public void setUserName(String userName) {
125
+        this.userName = userName == null ? null : userName.trim();
126
+    }
127
+
128
+    /**
129
+     * 用户角色
130
+     * @return user_role 用户角色
131
+     */
132
+    public String getUserRole() {
133
+        return userRole;
134
+    }
135
+
136
+    /**
137
+     * 用户角色
138
+     * @param userRole 用户角色
139
+     */
140
+    public void setUserRole(String userRole) {
141
+        this.userRole = userRole == null ? null : userRole.trim();
142
+    }
143
+
144
+    /**
145
+     * 用户所属机构行政区划
146
+     * @return user_address 用户所属机构行政区划
147
+     */
148
+    public String getUserAddress() {
149
+        return userAddress;
150
+    }
151
+
152
+    /**
153
+     * 用户所属机构行政区划
154
+     * @param userAddress 用户所属机构行政区划
155
+     */
156
+    public void setUserAddress(String userAddress) {
157
+        this.userAddress = userAddress == null ? null : userAddress.trim();
158
+    }
159
+
160
+    /**
161
+     * 登录时间
162
+     * @return dl_time 登录时间
163
+     */
164
+    public Date getDlTime() {
165
+        return dlTime;
166
+    }
167
+
168
+    /**
169
+     * 登录时间
170
+     * @param dlTime 登录时间
171
+     */
172
+    public void setDlTime(Date dlTime) {
173
+        this.dlTime = dlTime;
174
+    }
175
+
176
+    /**
177
+     * 注销时间
178
+     * @return zx_time 注销时间
179
+     */
180
+    public Date getZxTime() {
181
+        return zxTime;
182
+    }
183
+
184
+    /**
185
+     * 注销时间
186
+     * @param zxTime 注销时间
187
+     */
188
+    public void setZxTime(Date zxTime) {
189
+        this.zxTime = zxTime;
190
+    }
191
+
192
+    /**
193
+     * 功能id
194
+     * @return func_id 功能id
195
+     */
196
+    public Integer getFuncId() {
197
+        return funcId;
198
+    }
199
+
200
+    /**
201
+     * 功能id
202
+     * @param funcId 功能id
203
+     */
204
+    public void setFuncId(Integer funcId) {
205
+        this.funcId = funcId;
206
+    }
207
+
208
+    /**
209
+     * 菜单名称
210
+     * @return func_name 菜单名称
211
+     */
212
+    public String getFuncName() {
213
+        return funcName;
214
+    }
215
+
216
+    /**
217
+     * 菜单名称
218
+     * @param funcName 菜单名称
219
+     */
220
+    public void setFuncName(String funcName) {
221
+        this.funcName = funcName == null ? null : funcName.trim();
222
+    }
223
+
224
+    /**
225
+     * 按钮id
226
+     * @return btn_id 按钮id
227
+     */
228
+    public Integer getBtnId() {
229
+        return btnId;
230
+    }
231
+
232
+    /**
233
+     * 按钮id
234
+     * @param btnId 按钮id
235
+     */
236
+    public void setBtnId(Integer btnId) {
237
+        this.btnId = btnId;
238
+    }
239
+
240
+    /**
241
+     * 方法名
242
+     * @return method_name 方法名
243
+     */
244
+    public String getMethodName() {
245
+        return methodName;
246
+    }
247
+
248
+    /**
249
+     * 方法名
250
+     * @param methodName 方法名
251
+     */
252
+    public void setMethodName(String methodName) {
253
+        this.methodName = methodName == null ? null : methodName.trim();
254
+    }
255
+
256
+    /**
257
+     * 操作结果
258
+     * @return oper_result 操作结果
259
+     */
260
+    public String getOperResult() {
261
+        return operResult;
262
+    }
263
+
264
+    /**
265
+     * 操作结果
266
+     * @param operResult 操作结果
267
+     */
268
+    public void setOperResult(String operResult) {
269
+        this.operResult = operResult == null ? null : operResult.trim();
270
+    }
271
+
272
+    /**
273
+     * 请求参数
274
+     * @return parameter 请求参数
275
+     */
276
+    public String getParameter() {
277
+        return parameter;
278
+    }
279
+
280
+    /**
281
+     * 请求参数
282
+     * @param parameter 请求参数
283
+     */
284
+    public void setParameter(String parameter) {
285
+        this.parameter = parameter == null ? null : parameter.trim();
286
+    }
287
+
288
+    /**
289
+     * 返回参数
290
+     * @return rtn_param 返回参数
291
+     */
292
+    public String getRtnParam() {
293
+        return rtnParam;
294
+    }
295
+
296
+    /**
297
+     * 返回参数
298
+     * @param rtnParam 返回参数
299
+     */
300
+    public void setRtnParam(String rtnParam) {
301
+        this.rtnParam = rtnParam == null ? null : rtnParam.trim();
302
+    }
303
+
304
+    /**
305
+     * 日志描述
306
+     * @return describes 日志描述
307
+     */
308
+    public String getDescribes() {
309
+        return describes;
310
+    }
311
+
312
+    /**
313
+     * 日志描述
314
+     * @param describes 日志描述
315
+     */
316
+    public void setDescribes(String describes) {
317
+        this.describes = describes == null ? null : describes.trim();
318
+    }
319
+
320
+    /**
321
+     * 日志类型:1 登录 2 访问 3 操作
322
+     * @return type 日志类型:1 登录 2 访问 3 操作
323
+     */
324
+    public String getType() {
325
+        return type;
326
+    }
327
+
328
+    /**
329
+     * 日志类型:1 登录 2 访问 3 操作
330
+     * @param type 日志类型:1 登录 2 访问 3 操作
331
+     */
332
+    public void setType(String type) {
333
+        this.type = type == null ? null : type.trim();
334
+    }
335
+
336
+    /**
337
+     * 设备ip
338
+     * @return device_ip 设备ip
339
+     */
340
+    public String getDeviceIp() {
341
+        return deviceIp;
342
+    }
343
+
344
+    /**
345
+     * 设备ip
346
+     * @param deviceIp 设备ip
347
+     */
348
+    public void setDeviceIp(String deviceIp) {
349
+        this.deviceIp = deviceIp == null ? null : deviceIp.trim();
350
+    }
351
+
352
+    /**
353
+     * 系统标识:库级系统
354
+     * @return system_identify 系统标识:库级系统
355
+     */
356
+    public String getSystemIdentify() {
357
+        return systemIdentify;
358
+    }
359
+
360
+    /**
361
+     * 系统标识:库级系统
362
+     * @param systemIdentify 系统标识:库级系统
363
+     */
364
+    public void setSystemIdentify(String systemIdentify) {
365
+        this.systemIdentify = systemIdentify == null ? null : systemIdentify.trim();
366
+    }
367
+
368
+    /**
369
+     * 操作时间
370
+     * @return operation_time 操作时间
371
+     */
372
+    public Date getOperationTime() {
373
+        return operationTime;
374
+    }
375
+
376
+    /**
377
+     * 操作时间
378
+     * @param operationTime 操作时间
379
+     */
380
+    public void setOperationTime(Date operationTime) {
381
+        this.operationTime = operationTime;
382
+    }
383
+}

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1619 - 0
src/main/java/com/chinaitop/depot/storage/model/SystemLogExample.java