Przeglądaj źródła

将同类型的两个对象的数据进行合并,objTarget中为null的数据用objSource中的元素代替
修改数据类型

yaobo 7 lat temu
rodzic
commit
99d51d6ff8

+ 2 - 2
src/main/java/cn/efunbox/audio/config/Config.java

@@ -58,7 +58,7 @@ public class Config extends WebMvcConfigurerAdapter{
 
         registry.addInterceptor(adminInterceptor())
                 .addPathPatterns("/**")
-                .excludePathPatterns("/device/**", "/admin/login", "/audio/search");
+                .excludePathPatterns("/device/**", "/admin/*", "/audio/search");
 
         registry.addInterceptor(ignoreOptionsInterceptor())
                 .addPathPatterns("/**");
@@ -66,7 +66,7 @@ public class Config extends WebMvcConfigurerAdapter{
 //        registry.addInterceptor(allowOriginIntercepter())
 //                .addPathPatterns("/**");
     }
-//
+
 //    /**
 //     * 允许跨域访问
 //     * @param registry

+ 2 - 1
src/main/java/cn/efunbox/audio/controller/AdminController.java

@@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Timestamp;
 import java.util.Date;
 import java.util.List;
 import java.util.UUID;
@@ -141,7 +142,7 @@ public class AdminController {
                 HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
                 return;
             }
-            admin.setCreated(new Date());
+            admin.setCreated(new Timestamp(new Date().getTime()));
         }
         if(admin.getPwd()!=null){
             String pwd = admin.getPwd();

+ 6 - 53
src/main/java/cn/efunbox/audio/controller/AudioController.java

@@ -4,6 +4,7 @@ import cn.efunbox.audio.entity.*;
 import cn.efunbox.audio.service.*;
 import cn.efunbox.audio.utils.ApiCode;
 import cn.efunbox.audio.utils.HttpUtil;
+import cn.efunbox.audio.utils.Common;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -15,6 +16,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
+import java.sql.Timestamp;
 import java.util.*;
 import java.util.List;
 
@@ -116,7 +118,7 @@ public class AudioController {
         record.setIdDevice(device.getId());
         record.setIdChannel(device.getIdChannel());
         record.setIdAudio(audio.getId());
-        record.setCreated(new Date());
+        record.setCreated(new Timestamp(new Date().getTime()));
         recordService.Insert(record);
 
         HttpUtil.responseOkData(request, response, audio);
@@ -157,7 +159,7 @@ public class AudioController {
             HttpUtil.responseApiCode(request, response, ApiCode.PARAMETER_ERROR);
             return;
         }
-        audio.setCreated(new Date());
+        audio.setCreated(new Timestamp(new Date().getTime()));
         audio = audioService.Insert(audio);
 
         HttpUtil.responseOutWithJson(request, response, audio);
@@ -176,19 +178,8 @@ public class AudioController {
             HttpUtil.responseApiCode(request, response, ApiCode.NOT_FOUND);
             return;
         }
-        for(int i=0; i<audio.getClass().getDeclaredFields().length; i++){
-            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 = (Audio)Common.CopyValue(audio, audioOld);
         audio = audioService.Insert(audio);
 
         HttpUtil.responseOutWithJson(request, response, audio);
@@ -196,44 +187,6 @@ 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

+ 3 - 2
src/main/java/cn/efunbox/audio/controller/ChannelController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Timestamp;
 import java.util.Date;
 import java.util.List;
 
@@ -74,7 +75,7 @@ public class ChannelController {
             HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
             return;
         }
-        channel.setCreated(new Date());
+        channel.setCreated(new Timestamp(new Date().getTime()));
         channel = channelService.Insert(channel);
         HttpUtil.responseOutWithJson(request, response, channel);
         return;
@@ -87,7 +88,7 @@ public class ChannelController {
             HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
             return;
         }
-        channel.setCreated(new Date());
+        channel.setCreated(new Timestamp(new Date().getTime()));
         channel = channelService.Insert(channel);
         HttpUtil.responseOutWithJson(request, response, channel);
         return;

+ 2 - 1
src/main/java/cn/efunbox/audio/controller/GroupingController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Timestamp;
 import java.util.Date;
 import java.util.List;
 
@@ -90,7 +91,7 @@ public class GroupingController {
             HttpUtil.responseApiCode(request, response, ApiCode.RECORD_EXIST);
             return;
         }
-        grouping.setCreated(new Date());
+        grouping.setCreated(new Timestamp(new Date().getTime()));
         grouping = groupingService.Insert(grouping);
         HttpUtil.responseOutWithJson(request, response, grouping);
         return;

+ 2 - 1
src/main/java/cn/efunbox/audio/controller/RightsController.java

@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.sql.Timestamp;
 import java.util.Date;
 import java.util.List;
 
@@ -118,7 +119,7 @@ public class RightsController {
         }
         rights.setNameChannel(cList.get(0).getName());
         rights.setNameGroup(gList.get(0).getName());
-        rights.setCreated(new Date());
+        rights.setCreated(new Timestamp(new Date().getTime()));
         rights = rightsService.Insert(rights);
 
         HttpUtil.responseOutWithJson(request, response, rights);

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Admin.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -52,8 +53,9 @@ public class Admin implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Audio.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -72,8 +73,9 @@ public class Audio implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Channel.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -40,8 +41,9 @@ public class Channel implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 7 - 4
src/main/java/cn/efunbox/audio/entity/Device.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -55,13 +56,15 @@ public class Device implements Serializable, Cloneable{
 
     //上次更新、登陆时间
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date updated;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date updated;
+    private Timestamp updated;
 
     //创建时间
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Grouping.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -40,8 +41,9 @@ public class Grouping implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Record.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -44,8 +45,9 @@ public class Record implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 2
src/main/java/cn/efunbox/audio/entity/Rights.java

@@ -9,6 +9,7 @@ import org.hibernate.annotations.DynamicUpdate;
 
 import javax.persistence.*;
 import java.io.Serializable;
+import java.sql.Timestamp;
 import java.util.Date;
 
 /**
@@ -48,8 +49,9 @@ public class Rights implements Serializable, Cloneable {
     private int status= Status.ONLINE.getCode();
 
     @Column
-    @Temporal(TemporalType.TIMESTAMP)
-    private Date created;
+//    @Temporal(TemporalType.TIMESTAMP)
+//    private Date created;
+    private Timestamp created;
 
     public Object clone() throws CloneNotSupportedException {
         return super.clone();

+ 4 - 3
src/main/java/cn/efunbox/audio/impl/DeviceServiceImpl.java

@@ -6,6 +6,7 @@ import cn.efunbox.audio.service.DeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -37,8 +38,8 @@ public class DeviceServiceImpl implements DeviceService {
         Device device = new Device();
         device.setIdChannel(idChannel);
         device.setIdDevice(idDevice);
-        device.setCreated(new Date());
-        device.setUpdated(new Date());
+        device.setCreated(new Timestamp(new Date().getTime()));
+        device.setUpdated(new Timestamp(new Date().getTime()));
         device.setTokenOld(device.getTokenNew());
         device.setTokenNew(UUID.randomUUID().toString().replaceAll("-", ""));
         device = deviceRepo.save(device);
@@ -60,7 +61,7 @@ public class DeviceServiceImpl implements DeviceService {
             device.setTokenOld(device.getTokenNew());
             device.setTokenNew(UUID.randomUUID().toString().replaceAll("-", ""));
         }
-        device.setUpdated(new Date());
+        device.setUpdated(new Timestamp(new Date().getTime()));
         deviceRepo.save(device);
 
         return device;

+ 64 - 0
src/main/java/cn/efunbox/audio/utils/Common.java

@@ -1,5 +1,6 @@
 package cn.efunbox.audio.utils;
 
+import java.lang.reflect.Method;
 import java.security.MessageDigest;
 
 /**
@@ -7,6 +8,69 @@ import java.security.MessageDigest;
  */
 public class Common {
 
+
+    /**
+     * 将同类型的两个对象的数据进行合并,objTarget中为null的数据用objSource中的元素代替
+     * @param objTarget
+     * @param objSource
+     * @return
+     */
+    public static Object CopyValue(Object objTarget, Object objSource){
+        for(int i=0; i<objTarget.getClass().getDeclaredFields().length; i++){
+            try {
+                String fieldName = objTarget.getClass().getDeclaredFields()[i].getName();
+//                System.out.println(fieldName);
+                String value = GetFieldValueByName(fieldName, objTarget)==null?"":GetFieldValueByName(fieldName, objTarget).toString();
+//                System.out.println(value);
+                if(null==GetFieldValueByName(fieldName, objTarget) && null!=GetFieldValueByName(fieldName, objSource))
+                    SetFieldValueByName(objTarget, fieldName, GetFieldValueByName(fieldName, objSource));
+            }
+            catch (Exception e){
+                System.out.println(e.getMessage());
+            }
+        }
+
+        return  objTarget;
+    }
+
+    /**
+     * 根据属性名获取属性值
+     * */
+    public 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) {
+            System.out.println(e.getMessage());
+            return null;
+        }
+    }
+
+    /**
+     * 用反射设置对象的属性值
+     * @param obj 需要設置值的對象
+     * @param fieldName 需要設置值的屬性
+     * @param value 需要设置的值
+     * @return 设置值后的对象
+     */
+    public static 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());
+            return null;
+        }
+
+        return obj;
+    }
+
+
     //生成MD5
     public static String getMD5(String message) {
         String md5 = "";