deason 5 سال پیش
والد
کامیت
b7dee50ae1

+ 5 - 4
src/main/java/cn/com/qmth/examcloud/app/controller/DeviceRecordController.java

@@ -51,10 +51,11 @@ public class DeviceRecordController {
         if (StringUtils.isBlank(key) || StringUtils.isBlank(token)) {
             throw new IllegalArgumentException("[Param] key or token must be not null.");
         }
-        /*LoginInfo loginInfo = authService.getLoginInfo(key);
-        if (loginInfo == null || !token.equals(loginInfo.getToken())) {
-            throw new IllegalArgumentException("[Param] key or token is wrong.");
-        }*/
+
+        if (params == null) {
+            params = new DeviceRecordQuery();
+        }
+
         return deviceRecordService.getDeviceRecordList(params);
     }
 

+ 1 - 1
src/main/java/cn/com/qmth/examcloud/app/core/utils/StrUtils.java

@@ -13,6 +13,7 @@ import java.util.Random;
 import java.util.UUID;
 
 public class StrUtils {
+    private static Random random = new Random();
 
     public static String uuid() {
         return UUID.randomUUID().toString().replaceAll("-", "");
@@ -23,7 +24,6 @@ public class StrUtils {
     }
 
     public static int randomNumber(int min, int max) {
-        Random random = new Random();
         return random.nextInt(max) % (max - min + 1) + min;
     }
 

+ 48 - 56
src/main/java/cn/com/qmth/examcloud/app/service/impl/DeviceRecordServiceImpl.java

@@ -25,10 +25,7 @@ import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -47,60 +44,55 @@ public class DeviceRecordServiceImpl implements DeviceRecordService {
     @SuppressWarnings("unchecked")
     @Override
     public Result<Page<DeviceRecord>> getDeviceRecordList(DeviceRecordQuery params) throws Exception {
-        Specification<DeviceRecord> spec = null;
-        if (params != null) {
-            spec = new Specification<DeviceRecord>() {
-                @Override
-                public Predicate toPredicate(Root<DeviceRecord> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
-                    List<Predicate> predicates = new ArrayList<>();
-                    if (StringUtils.isNotBlank(params.getSystem())) {
-                        predicates.add(builder.equal(root.get("system"), params.getSystem().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getDeviceId())) {
-                        predicates.add(builder.equal(root.get("deviceId"), params.getDeviceId().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getNetType())) {
-                        predicates.add(builder.equal(root.get("netType"), params.getNetType().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getBrand())) {
-                        predicates.add(builder.equal(root.get("brand"), params.getBrand().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getModel())) {
-                        predicates.add(builder.equal(root.get("model"), params.getModel().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getSysVersion())) {
-                        predicates.add(builder.equal(root.get("sysVersion"), params.getSysVersion().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getAppVersion())) {
-                        predicates.add(builder.equal(root.get("appVersion"), params.getAppVersion().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getAppCode())) {
-                        predicates.add(builder.equal(root.get("appCode"), params.getAppCode().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getPatchCode())) {
-                        predicates.add(builder.equal(root.get("patchCode"), params.getPatchCode().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getAccount())) {
-                        predicates.add(builder.equal(root.get("account"), params.getAccount().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getLoginKey())) {
-                        predicates.add(builder.equal(root.get("loginKey"), params.getLoginKey().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getLoginToken())) {
-                        predicates.add(builder.equal(root.get("loginToken"), params.getLoginToken().trim()));
-                    }
-                    if (StringUtils.isNotBlank(params.getUrl())) {
-                        predicates.add(builder.like(root.get("url"), "%" + params.getUrl().trim() + "%"));
-                    }
-                    if (StringUtils.isNotBlank(params.getIp())) {
-                        predicates.add(builder.equal(root.get("ip"), params.getIp().trim()));
-                    }
-                    return builder.and(predicates.toArray(new Predicate[predicates.size()]));
-                }
-            };
-        }
+        Specification<DeviceRecord> spec = (Specification<DeviceRecord>) (root, query, builder) -> {
+            List<Predicate> predicates = new ArrayList<>();
+            if (StringUtils.isNotBlank(params.getSystem())) {
+                predicates.add(builder.equal(root.get("system"), params.getSystem().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getDeviceId())) {
+                predicates.add(builder.equal(root.get("deviceId"), params.getDeviceId().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getNetType())) {
+                predicates.add(builder.equal(root.get("netType"), params.getNetType().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getBrand())) {
+                predicates.add(builder.equal(root.get("brand"), params.getBrand().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getModel())) {
+                predicates.add(builder.equal(root.get("model"), params.getModel().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getSysVersion())) {
+                predicates.add(builder.equal(root.get("sysVersion"), params.getSysVersion().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getAppVersion())) {
+                predicates.add(builder.equal(root.get("appVersion"), params.getAppVersion().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getAppCode())) {
+                predicates.add(builder.equal(root.get("appCode"), params.getAppCode().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getPatchCode())) {
+                predicates.add(builder.equal(root.get("patchCode"), params.getPatchCode().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getAccount())) {
+                predicates.add(builder.equal(root.get("account"), params.getAccount().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getLoginKey())) {
+                predicates.add(builder.equal(root.get("loginKey"), params.getLoginKey().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getLoginToken())) {
+                predicates.add(builder.equal(root.get("loginToken"), params.getLoginToken().trim()));
+            }
+            if (StringUtils.isNotBlank(params.getUrl())) {
+                predicates.add(builder.like(root.get("url"), "%" + params.getUrl().trim() + "%"));
+            }
+            if (StringUtils.isNotBlank(params.getIp())) {
+                predicates.add(builder.equal(root.get("ip"), params.getIp().trim()));
+            }
+            return builder.and(predicates.toArray(new Predicate[predicates.size()]));
+        };
+
         Sort sort = new Sort(Sort.Direction.DESC, "id");
-        Pageable pageable = new PageRequest(params.getPageNo() - 1, params.getPageSize(), sort);
+        Pageable pageable = PageRequest.of(params.getPageNo() - 1, params.getPageSize(), sort);
         Page<DeviceRecord> page = deviceRecordRepository.findAll(spec, pageable);
         return new Result<>().success(page);
     }