fanxw пре 5 година
родитељ
комит
bbe0356b91
1 измењених фајлова са 76 додато и 13 уклоњено
  1. 76 13
      src/main/java/com/chinaitop/depot/LogercostInterceptor.java

+ 76 - 13
src/main/java/com/chinaitop/depot/LogercostInterceptor.java

@@ -1,5 +1,6 @@
1
 package com.chinaitop.depot;
1
 package com.chinaitop.depot;
2
 
2
 
3
+import java.io.IOException;
3
 import java.util.Date;
4
 import java.util.Date;
4
 import java.util.HashMap;
5
 import java.util.HashMap;
5
 import java.util.Iterator;
6
 import java.util.Iterator;
@@ -12,6 +13,12 @@ import javax.servlet.http.HttpServletRequest;
12
 import javax.servlet.http.HttpServletResponse;
13
 import javax.servlet.http.HttpServletResponse;
13
 
14
 
14
 import org.apache.commons.lang.ObjectUtils;
15
 import org.apache.commons.lang.ObjectUtils;
16
+import org.apache.http.HttpResponse;
17
+import org.apache.http.HttpStatus;
18
+import org.apache.http.client.HttpClient;
19
+import org.apache.http.client.methods.HttpGet;
20
+import org.apache.http.impl.client.DefaultHttpClient;
21
+import org.apache.http.util.EntityUtils;
15
 import org.springframework.beans.factory.annotation.Autowired;
22
 import org.springframework.beans.factory.annotation.Autowired;
16
 import org.springframework.lang.Nullable;
23
 import org.springframework.lang.Nullable;
17
 import org.springframework.web.method.HandlerMethod;
24
 import org.springframework.web.method.HandlerMethod;
@@ -53,10 +60,7 @@ public class LogercostInterceptor implements HandlerInterceptor {
53
     	if ("/userInfo/exitLogin".equals(url)) {
60
     	if ("/userInfo/exitLogin".equals(url)) {
54
     		loginLogger(request, response, url);
61
     		loginLogger(request, response, url);
55
     	}
62
     	}
56
-    	
57
-        //System.out.println(butn_list);
58
-        
59
-        //System.out.println("Interception cost="+(System.currentTimeMillis()-start));
63
+
60
         return true;//返回true,postHandler和afterCompletion方法才能执行,否则false为拒绝执行,起到拦截器控制作用
64
         return true;//返回true,postHandler和afterCompletion方法才能执行,否则false为拒绝执行,起到拦截器控制作用
61
     }
65
     }
62
 
66
 
@@ -100,6 +104,7 @@ public class LogercostInterceptor implements HandlerInterceptor {
100
     	user_map.put("realName", userinfo == null ? "" : userinfo.get("realName")+"");
104
     	user_map.put("realName", userinfo == null ? "" : userinfo.get("realName")+"");
101
     	user_map.put("orgId", userinfo == null ? "" : userinfo.get("orgId")+"");
105
     	user_map.put("orgId", userinfo == null ? "" : userinfo.get("orgId")+"");
102
     	user_map.put("roleName", userinfo == null ? "" : userinfo.get("roleNames")+"");
106
     	user_map.put("roleName", userinfo == null ? "" : userinfo.get("roleNames")+"");
107
+    	user_map.put("areaCode", orginfo == null ? "":ObjectUtils.toString(orginfo.get("areaCode")+"",""));
103
     	user_map.put("areaName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("areaName")+"",""));
108
     	user_map.put("areaName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("areaName")+"",""));
104
     	user_map.put("orgName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("orgName")+"",""));
109
     	user_map.put("orgName", orginfo == null ? "":ObjectUtils.toString(orginfo.get("orgName")+"",""));
105
 		return user_map;
110
 		return user_map;
@@ -121,11 +126,20 @@ public class LogercostInterceptor implements HandlerInterceptor {
121
 			log.setSystemIdentify(system_index);
126
 			log.setSystemIdentify(system_index);
122
 			log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
127
 			log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
123
 			log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
128
 			log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
124
-			log.setDeviceIp(getClientIpAddress(request));
129
+			String device_ip = getClientIpAddress(request);
130
+			log.setDeviceIp(device_ip);
125
 			log.setDlTime(new Date());
131
 			log.setDlTime(new Date());
126
 			log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
132
 			log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
127
 			log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
133
 			log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
128
-			log.setUserAddress(user_map.get("areaName"));//行政区划
134
+			String enumid = ObjectUtils.toString(user_map.get("areaCode"), "0");
135
+			if (!"0".equals(enumid)) {
136
+				String httpurl = "http://"+device_ip+":9022/Enum/findByEnum?id="+Integer.parseInt(enumid);
137
+				String strResult = doGet(httpurl);
138
+				if (!"".equals(strResult)) {
139
+					JSONObject enum_obj = JSONObject.parseObject(strResult);
140
+					log.setUserAddress(ObjectUtils.toString(enum_obj.get("gbcode"), ""));//行政区划
141
+				}
142
+			}
129
 			log.setId(UUID.randomUUID().toString().replace("-", ""));
143
 			log.setId(UUID.randomUUID().toString().replace("-", ""));
130
 			log.setUserId(Integer.parseInt(user_map.get("userId")));
144
 			log.setUserId(Integer.parseInt(user_map.get("userId")));
131
 			log.setOperationTime(new Date());//操作时间
145
 			log.setOperationTime(new Date());//操作时间
@@ -163,6 +177,32 @@ public class LogercostInterceptor implements HandlerInterceptor {
163
     }
177
     }
164
     
178
     
165
     /**
179
     /**
180
+     * get请求
181
+     * @return
182
+     */
183
+    public static String doGet(String url) {
184
+        try {
185
+            HttpClient client = new DefaultHttpClient();
186
+            //发送get请求
187
+            HttpGet request = new HttpGet(url);
188
+            HttpResponse response = client.execute(request);
189
+
190
+            /**请求发送成功,并得到响应**/
191
+            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
192
+                /**读取服务器返回过来的json字符串数据**/
193
+                String strResult = EntityUtils.toString(response.getEntity());
194
+
195
+                return strResult;
196
+            }
197
+        }
198
+        catch (IOException e) {
199
+            e.printStackTrace();
200
+        }
201
+
202
+        return null;
203
+    }
204
+    
205
+    /**
166
      * 操作日志实现思路:
206
      * 操作日志实现思路:
167
      * 1、URL要是可以在菜单里面找到对应菜单,那么当前这个操作属于功能操作日志
207
      * 1、URL要是可以在菜单里面找到对应菜单,那么当前这个操作属于功能操作日志
168
      * 2、如果没在菜单里面找到对应菜单,却在按钮中找到了,那么就是功能访问日志
208
      * 2、如果没在菜单里面找到对应菜单,却在按钮中找到了,那么就是功能访问日志
@@ -172,7 +212,8 @@ public class LogercostInterceptor implements HandlerInterceptor {
172
      * @param response
212
      * @param response
173
      * @param url
213
      * @param url
174
      */
214
      */
175
-    private void operationLogger(HttpServletRequest request, HttpServletResponse response, String url, Object handler) {
215
+    @SuppressWarnings("all")
216
+	private void operationLogger(HttpServletRequest request, HttpServletResponse response, String url, Object handler) {
176
     	//获取用户信息和单位信息
217
     	//获取用户信息和单位信息
177
         String userJson = ObjectUtils.toString(request.getSession().getAttribute("userInfo"),"");
218
         String userJson = ObjectUtils.toString(request.getSession().getAttribute("userInfo"),"");
178
         String orgInfoJson = ObjectUtils.toString(request.getSession().getAttribute("orgInfo"),"");
219
         String orgInfoJson = ObjectUtils.toString(request.getSession().getAttribute("orgInfo"),"");
@@ -192,17 +233,28 @@ public class LogercostInterceptor implements HandlerInterceptor {
192
     			String func_url = ObjectUtils.toString(object.get("funcUrl"));
233
     			String func_url = ObjectUtils.toString(object.get("funcUrl"));
193
     			if (url.equals(func_url)) {
234
     			if (url.equals(func_url)) {
194
     				log.setId(UUID.randomUUID().toString().replace("-", ""));
235
     				log.setId(UUID.randomUUID().toString().replace("-", ""));
195
-    				log.setType("3");//功能操作日志
236
+    				log.setType("3");//功能访问日志
196
     				log.setSystemIdentify(system_index);//标识
237
     				log.setSystemIdentify(system_index);//标识
197
     				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
238
     				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
198
     				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
239
     				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
199
     				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
240
     				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
200
-    				log.setDeviceIp(getClientIpAddress(request));//操作IP
241
+    				String device_ip = getClientIpAddress(request);
242
+    				log.setDeviceIp(device_ip);//操作IP
243
+    				log.setFuncId(Integer.parseInt(object.get("funcId").toString()));//功能ID
201
     				log.setFuncName(ObjectUtils.toString(object.get("funcName")));//功能名称
244
     				log.setFuncName(ObjectUtils.toString(object.get("funcName")));//功能名称
202
     				log.setOperationTime(new Date());//操作时间
245
     				log.setOperationTime(new Date());//操作时间
203
     				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
246
     				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
204
     				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
247
     				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//单位
205
-    				log.setUserAddress(user_map.get("areaName"));//行政区划
248
+    				
249
+    				String enumid = ObjectUtils.toString(user_map.get("areaCode"), "0");
250
+    				if (!"0".equals(enumid)) {
251
+    					String httpurl = "http://"+device_ip+":9022/Enum/findByEnum?id="+Integer.parseInt(enumid);
252
+    					String strResult = doGet(httpurl);
253
+    					if (!"".equals(strResult)) {
254
+    						JSONObject enum_obj = JSONObject.parseObject(strResult);
255
+    						log.setUserAddress(ObjectUtils.toString(enum_obj.get("gbcode"), ""));//行政区划
256
+    					}
257
+    				}
206
 
258
 
207
     				//添加保存日志
259
     				//添加保存日志
208
     				systemLogMapper.insert(log);
260
     				systemLogMapper.insert(log);
@@ -229,12 +281,13 @@ public class LogercostInterceptor implements HandlerInterceptor {
229
         			String but_url = ObjectUtils.toString(but_object.get("btnUrl"), "");
281
         			String but_url = ObjectUtils.toString(but_object.get("btnUrl"), "");
230
         			if (url.equals(but_url)) {
282
         			if (url.equals(but_url)) {
231
         				log.setId(UUID.randomUUID().toString().replace("-", ""));
283
         				log.setId(UUID.randomUUID().toString().replace("-", ""));
232
-        				log.setType("2");//功能访问日志
284
+        				log.setType("2");//功能操作日志
233
         				log.setSystemIdentify(system_index);//标识
285
         				log.setSystemIdentify(system_index);//标识
234
         				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
286
         				log.setUserId(Integer.parseInt(user_map.get("userId")));//用户ID
235
         				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
287
         				log.setUserZh(ObjectUtils.toString(user_map.get("username"),""));//账号
236
         				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
288
         				log.setUserName(ObjectUtils.toString(user_map.get("realName"),""));//名称
237
-        				log.setDeviceIp(getClientIpAddress(request));//操作IP
289
+        				String device_ip = getClientIpAddress(request);
290
+        				log.setDeviceIp(device_ip);//操作IP
238
         				String f_name = ObjectUtils.toString(but_object.get("funcName"), "");
291
         				String f_name = ObjectUtils.toString(but_object.get("funcName"), "");
239
         				String b_name = ObjectUtils.toString(but_object.get("btnName"), "");
292
         				String b_name = ObjectUtils.toString(but_object.get("btnName"), "");
240
         				String ramark = ObjectUtils.toString(but_object.get("remark"), "");
293
         				String ramark = ObjectUtils.toString(but_object.get("remark"), "");
@@ -244,9 +297,11 @@ public class LogercostInterceptor implements HandlerInterceptor {
244
         				} else {
297
         				} else {
245
         					sbf.append(f_name).append("功能").append(b_name).append("操作");
298
         					sbf.append(f_name).append("功能").append(b_name).append("操作");
246
         				}
299
         				}
300
+        				log.setFuncId(Integer.parseInt(but_object.get("funcId").toString()));//功能ID
247
         				log.setFuncName(ObjectUtils.toString(sbf.toString(), ""));//菜单名称
301
         				log.setFuncName(ObjectUtils.toString(sbf.toString(), ""));//菜单名称
248
         				HandlerMethod h = (HandlerMethod) handler;  
302
         				HandlerMethod h = (HandlerMethod) handler;  
249
         				log.setMethodName(h.getMethod().getName());//方法名
303
         				log.setMethodName(h.getMethod().getName());//方法名
304
+        				log.setBtnId(Integer.parseInt(but_object.get("btnId").toString()));//按钮ID
250
         				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
305
         				log.setUserRole(ObjectUtils.toString(user_map.get("roleName"),""));//角色
251
         				log.setOperationTime(new Date());//操作时间
306
         				log.setOperationTime(new Date());//操作时间
252
         				StringBuilder param = new StringBuilder();
307
         				StringBuilder param = new StringBuilder();
@@ -265,7 +320,15 @@ public class LogercostInterceptor implements HandlerInterceptor {
265
         					log.setRtnParam("请求失败");//返回参数
320
         					log.setRtnParam("请求失败");//返回参数
266
         				}
321
         				}
267
         				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//所属机构
322
         				log.setOrgId(Integer.parseInt(user_map.get("orgId")));//所属机构
268
-        				log.setUserAddress(user_map.get("areaName"));//行政区划
323
+        				String enumid = ObjectUtils.toString(user_map.get("areaCode"), "0");
324
+        				if (!"0".equals(enumid)) {
325
+        					String httpurl = "http://"+device_ip+":9022/Enum/findByEnum?id="+Integer.parseInt(enumid);
326
+        					String strResult = doGet(httpurl);
327
+        					if (!"".equals(strResult)) {
328
+        						JSONObject enum_obj = JSONObject.parseObject(strResult);
329
+        						log.setUserAddress(ObjectUtils.toString(enum_obj.get("gbcode"), ""));//行政区划
330
+        					}
331
+        				}
269
 
332
 
270
         				//添加保存日志
333
         				//添加保存日志
271
         				systemLogMapper.insert(log);
334
         				systemLogMapper.insert(log);