|
@@ -1,5 +1,7 @@
|
|
|
package edu.nju.service;
|
|
|
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.lang.reflect.Method;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
|
import java.util.HashMap;
|
|
@@ -463,10 +465,14 @@ public class RecommendService {
|
|
|
|
|
|
public void createSimilarBugLog(HttpSession session,List<BugMirror> mirrorList,List<Float> scores){
|
|
|
Bug userBug=constructUserBug(session);
|
|
|
- JSONObject similarJson=new JSONObject();
|
|
|
- similarJson.put("type","similarJson");
|
|
|
- similarJson.put("userJson",new JSONObject(userBug));
|
|
|
- JSONArray similarBugJSONArray=new JSONArray();
|
|
|
+ StringBuilder log=new StringBuilder("userJson:");
|
|
|
+ log.append(objectToStr(userBug,','));
|
|
|
+ log.append("\n");
|
|
|
+ log.append("similarJson:");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -489,16 +495,46 @@ public class RecommendService {
|
|
|
|
|
|
for(int i=0;i<mirrorList.size();i++){
|
|
|
Bug similarBug=bugdao.findByid(mirrorList.get(i).getId());
|
|
|
- JSONObject similarBugJSONObject=new JSONObject();
|
|
|
- similarBugJSONObject.put("bugDetail",new JSONObject(similarBug));
|
|
|
- similarBugJSONObject.put("score",scores.get(i));
|
|
|
- similarBugJSONArray.put(similarBugJSONObject);
|
|
|
+ log.append(objectToStr(similarBug,','));
|
|
|
+ log.append("score:"+scores.get(i)+",");
|
|
|
+ log.append("\n");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- similarJson.put("similarJson",similarBugJSONArray);
|
|
|
+
|
|
|
|
|
|
Logger logger= LoggerFactory.getLogger(RecommendService.class);
|
|
|
- logger.info(String.valueOf(similarJson));
|
|
|
+ logger.info(String.valueOf(log));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private static StringBuilder objectToStr(Object o,char separator){
|
|
|
+ StringBuilder sb=new StringBuilder();
|
|
|
+ Field[] fields=o.getClass().getDeclaredFields();
|
|
|
+ String[] fieldNames=new String[fields.length];
|
|
|
+ for(int i=0;i<fields.length;i++){
|
|
|
+
|
|
|
+ fieldNames[i]=fields[i].getName();
|
|
|
+ sb.append(fieldNames[i]+":");
|
|
|
+ sb.append(getFieldValueByName(fieldNames[i],o));
|
|
|
+ sb.append(separator);
|
|
|
+ }
|
|
|
+ return sb;
|
|
|
+ }
|
|
|
+ private static Object getFieldValueByName(String fieldName, Object o) {
|
|
|
+ try {
|
|
|
+ String firstLetter = fieldName.substring(0, 1).toUpperCase();
|
|
|
+ String getter = "get" + firstLetter + fieldName.substring(1);
|
|
|
+ Method method = o.getClass().getMethod(getter, new Class[] {});
|
|
|
+ Object value = method.invoke(o, new Object[] {});
|
|
|
+ return value;
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private Bug constructUserBug( HttpSession session){
|