|
@@ -10,6 +10,7 @@ package cn.com.qmth.examcloud.app.service;
|
|
|
import cn.com.qmth.examcloud.app.model.DeviceRecord;
|
|
|
import cn.com.qmth.examcloud.app.model.Result;
|
|
|
import cn.com.qmth.examcloud.app.repository.DeviceRecordRepository;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -21,6 +22,13 @@ 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;
|
|
|
+
|
|
|
/**
|
|
|
* 设备访问记录Service
|
|
|
*/
|
|
@@ -30,9 +38,56 @@ public class DeviceRecordService {
|
|
|
@Autowired
|
|
|
private DeviceRecordRepository deviceRecordRepository;
|
|
|
|
|
|
- public Result<Page<DeviceRecord>> getDeviceRecordList(DeviceRecord params) {
|
|
|
- Specification<DeviceRecord> spec = null;
|
|
|
- Pageable pageable = new PageRequest(0, 10);
|
|
|
+ public Result<Page<DeviceRecord>> getDeviceRecordList(DeviceRecord params, Integer pageNo, Integer pageSize) {
|
|
|
+ Specification<DeviceRecord> 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()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getDeviceId())) {
|
|
|
+ predicates.add(builder.equal(root.get("deviceId"), params.getDeviceId()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getNetType())) {
|
|
|
+ predicates.add(builder.equal(root.get("netType"), params.getNetType()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getBrand())) {
|
|
|
+ predicates.add(builder.equal(root.get("brand"), params.getBrand()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getModel())) {
|
|
|
+ predicates.add(builder.equal(root.get("model"), params.getModel()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getSysVersion())) {
|
|
|
+ predicates.add(builder.equal(root.get("sysVersion"), params.getSysVersion()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getAppVersion())) {
|
|
|
+ predicates.add(builder.equal(root.get("appVersion"), params.getAppVersion()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getAppCode())) {
|
|
|
+ predicates.add(builder.equal(root.get("appCode"), params.getAppCode()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getPatchCode())) {
|
|
|
+ predicates.add(builder.equal(root.get("patchCode"), params.getPatchCode()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getAccount())) {
|
|
|
+ predicates.add(builder.equal(root.get("account"), params.getAccount()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getLoginKey())) {
|
|
|
+ predicates.add(builder.equal(root.get("loginKey"), params.getLoginKey()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getLoginToken())) {
|
|
|
+ predicates.add(builder.equal(root.get("loginToken"), params.getLoginToken()));
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(params.getUrl())) {
|
|
|
+ predicates.add(builder.equal(root.get("url"), params.getUrl()));
|
|
|
+ }
|
|
|
+ return builder.and(predicates.toArray(new Predicate[predicates.size()]));
|
|
|
+ }
|
|
|
+ };
|
|
|
+ if (pageNo < 1) pageNo = 1;
|
|
|
+ if (pageSize < 1) pageSize = 1;
|
|
|
+ Pageable pageable = new PageRequest(pageNo - 1, pageSize);
|
|
|
Page<DeviceRecord> page = deviceRecordRepository.findAll(spec, pageable);
|
|
|
return new Result<>().success(page);
|
|
|
}
|