|
@@ -177,27 +177,17 @@ public class AudioController {
|
|
|
return;
|
|
|
}
|
|
|
for(int i=0; i<audio.getClass().getDeclaredFields().length; i++){
|
|
|
-// try {
|
|
|
-// System.out.println(audio.getClass().getDeclaredFields()[i].getName());
|
|
|
-// String fieldName = audio.getClass().getDeclaredFields()[i].getName();
|
|
|
-// System.out.println(audio.getClass().getDeclaredField(fieldName));
|
|
|
-// audio.getClass().getDeclaredField(fieldName).get(fieldName).;
|
|
|
-//// Field f = audio.getClass().getDeclaredField(fieldName);
|
|
|
-//// f.setAccessible(true);
|
|
|
-//// f.set(audio, "1");
|
|
|
-////
|
|
|
-//// String firstWord = fieldName.substring(0, 1).toUpperCase();
|
|
|
-//// String methodName = String.format("set%s%s", firstWord, fieldName.substring(1));
|
|
|
-//// Method method = audio.getClass().getMethod(methodName, value.getClass());
|
|
|
-//// method.invoke(obj, value);
|
|
|
-// }catch (NoSuchFieldException e){
|
|
|
-// System.out.println(e.getMessage());
|
|
|
-// }
|
|
|
-// catch (IllegalAccessException e){
|
|
|
-// System.out.println(e.getMessage());
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
+ try {
|
|
|
+ String fieldName = audio.getClass().getDeclaredFields()[i].getName();
|
|
|
+ System.out.println(fieldName);
|
|
|
+ String value = GetFieldValueByName(fieldName, audio)==null?"":GetFieldValueByName(fieldName, audio).toString();
|
|
|
+ System.out.println(value);
|
|
|
+ if(null==GetFieldValueByName(fieldName, audio) && null!=GetFieldValueByName(fieldName, audioOld))
|
|
|
+ SetFieldValueByName(audio, fieldName, GetFieldValueByName(fieldName, audioOld));
|
|
|
+ }
|
|
|
+ catch (Exception e){
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
audio = audioService.Insert(audio);
|
|
|
|
|
@@ -206,6 +196,44 @@ public class AudioController {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 根据属性名获取属性值
|
|
|
+ * */
|
|
|
+ private 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) {
|
|
|
+ log.error(e.getMessage(),e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用反射设置对象的属性值
|
|
|
+ * @param obj 需要設置值的對象
|
|
|
+ * @param fieldName 需要設置值的屬性
|
|
|
+ * @param value 需要设置的值
|
|
|
+ * @return 设置值后的对象
|
|
|
+ */
|
|
|
+ private Object SetFieldValueByName(Object obj, String fieldName, Object value) {
|
|
|
+ try{
|
|
|
+ String firstWord = fieldName.substring(0, 1).toUpperCase();
|
|
|
+ String methodName = String.format("set%s%s", firstWord, fieldName.substring(1));
|
|
|
+ Method method = obj.getClass().getMethod(methodName, value.getClass());
|
|
|
+ method.invoke(obj, value);
|
|
|
+ }catch (Exception e) {
|
|
|
+ System.out.println(e.getMessage());
|
|
|
+ log.error(e.getMessage(), e);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ return obj;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 过滤出渠道有访问权限的音频列表
|
|
|
* @param audioList
|
|
|
* @param rightsList
|