TRX 1 éve
szülő
commit
ed12bd27bb

+ 9 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/DeviceInfoSearch.java

@@ -6,6 +6,7 @@ import com.zhongshu.card.client.model.base.SuperSearch;
 import com.zhongshu.card.client.type.OnLineState;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -70,4 +71,12 @@ public class DeviceInfoSearch extends SuperSearch {
 
     @Schema(description = "别名")
     private String nickName;
+
+    public boolean hasSearchFilter() {
+        if (StringUtils.isNotEmpty(keyWord) || deviceType != null || StringUtils.isNotEmpty(areaId)
+                || onLineState != null) {
+            return true;
+        }
+        return false;
+    }
 }

+ 7 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/controller/projectAbout/OrgUserFaceController.java

@@ -114,6 +114,13 @@ public class OrgUserFaceController {
         return orgUserFaceService.getUserAllFace(param.getUserId(), param.getProjectOid());
     }
 
+    @ResourceAuth(value = "user", type = AuthType.User)
+    @Operation(summary = "得到指定用户人脸信息列表(已审核通过的)", description = "得到指定用户人脸信息列表")
+    @RequestMapping(value = "getUserAllFacePass", method = {RequestMethod.POST})
+    public ResultContent<List<OrgUserFaceModel>> getUserAllFacePass(@RequestBody @Valid UserIdAndOidModel param) {
+        return orgUserFaceService.getUserAllFacePass(param.getUserId(), param.getProjectOid());
+    }
+
     @ResourceAuth(value = "user", type = AuthType.User)
     @Operation(summary = "人脸信息详情", description = "人脸信息详情")
     @RequestMapping(value = "getDetail", method = {RequestMethod.POST})

+ 5 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/impl/DeviceGroupToDeviceDaoImpl.java

@@ -6,6 +6,7 @@ import com.zhongshu.card.server.core.dao.BaseImpl;
 import com.zhongshu.card.server.core.dao.devices.extend.DeviceGroupToDeviceDaoExtend;
 import com.zhongshu.card.server.core.domain.devices.DeviceGroup;
 import com.zhongshu.card.server.core.domain.devices.DeviceGroupToDevice;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -49,6 +50,10 @@ public class DeviceGroupToDeviceDaoImpl extends BaseImpl implements DeviceGroupT
             criteria.and("deviceGroup").is(DeviceGroup.build(param.getGroupId()));
         }
 
+        if (ObjectUtils.isNotEmpty(param.getDeviceIds())) {
+            criteria.and("deviceId").in(param.getDeviceIds());
+        }
+
         // 模糊搜索
         List<Criteria> criterias = new ArrayList<>();
 

+ 4 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/impl/DeviceInfoDaoImpl.java

@@ -144,7 +144,10 @@ public class DeviceInfoDaoImpl extends BaseImpl implements DeviceInfoDaoExtend {
 
         if (StringUtils.isNotEmpty(param.getKeyWord())) {
             Pattern pattern = Pattern.compile("^.*" + param.getKeyWord() + ".*$");
-            criteria.orOperator(Criteria.where("deviceId").regex(pattern), Criteria.where("deviceName").regex(pattern), Criteria.where("gateWayId").regex(pattern), Criteria.where("ip").regex(pattern));
+            criteria.orOperator(Criteria.where("deviceId").regex(pattern),
+                    Criteria.where("deviceName").regex(pattern),
+                    Criteria.where("gateWayId").regex(pattern),
+                    Criteria.where("ip").regex(pattern));
         }
         return criteria;
     }

+ 21 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceGroupService.java

@@ -4,6 +4,7 @@ import com.github.microservice.components.data.base.util.PageEntityUtil;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.net.ResultMessage;
 import com.zhongshu.card.client.model.base.IDsParam;
+import com.zhongshu.card.client.model.devices.DeviceInfoSearch;
 import com.zhongshu.card.client.model.devices.deviceGroup.*;
 import com.zhongshu.card.client.type.DataState;
 import com.zhongshu.card.server.core.dao.devices.DeviceGroupDao;
@@ -17,11 +18,13 @@ import com.zhongshu.card.server.core.domain.org.Organization;
 import com.zhongshu.card.server.core.service.base.SuperService;
 import com.zhongshu.card.server.core.service.devices.permiss.DevicePermissEventService;
 import com.zhongshu.card.server.core.util.BeanUtils;
+import com.zhongshu.card.server.core.util.CommonUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
@@ -215,7 +218,24 @@ public class DeviceGroupService extends SuperService {
         if (ObjectUtils.isEmpty(organization)) {
             return ResultContent.buildFail("projectOid不存在");
         }
-        Page<DeviceGroupToDevice> page = deviceGroupToDeviceDao.page(pageable, param);
+
+        Page<DeviceGroupToDevice> page = null;
+        boolean isSearch = true;
+        // 先筛选用户
+        DeviceInfoSearch search = param;
+        if (search.hasSearchFilter()) {
+            Pageable pageable1 = PageRequest.of(0, 1000);
+            List<DeviceInfo> list = deviceInfoService.list(param, pageable1);
+            if (ObjectUtils.isEmpty(list)) {
+                page = CommonUtil.buildEmptyPage(pageable, DeviceGroupToDevice.class);
+                isSearch = false;
+            } else {
+                param.setDeviceIds(list.stream().map(it -> it.getDeviceId()).collect(Collectors.toList()));
+            }
+        }
+        if (isSearch) {
+            page = deviceGroupToDeviceDao.page(pageable, param);
+        }
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toDeviceModel));
     }
 

+ 12 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/DeviceInfoServiceImpl.java

@@ -191,6 +191,18 @@ public class DeviceInfoServiceImpl extends SuperService implements DeviceInfoSer
         return ResultContent.buildSuccess(PageEntityUtil.concurrent2PageModel(page, this::toModel));
     }
 
+    public List<DeviceInfo> list(DeviceInfoSearch param, Pageable pageable) {
+        // 完善所属项目
+        String projectOid = param.getProjectOid();
+        if (StringUtils.isNotEmpty(projectOid)) {
+            Organization organization = organizationDao.findTopByOid(projectOid);
+            //TODO 放开查询所有的设备
+            param.setProjectInfoCode(organization.getCode());
+        }
+        Page<DeviceInfo> page = deviceInfoDao.page(pageable, param);
+        return page.getContent();
+    }
+
     /**
      * 产品绑定设备(可见的设备列表)
      *

+ 10 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/OrgUserFaceService.java

@@ -416,6 +416,16 @@ public class OrgUserFaceService extends SuperService {
         return ResultContent.buildSuccess(models);
     }
 
+    public ResultContent<List<OrgUserFaceModel>> getUserAllFacePass(String userId, String projectOid) {
+        List<OrgUserFace> list = orgUserFaceDao.findByProjectOidAndUserIdInAndAuditState(
+                projectOid, List.of(userId), AuditState.Audited);
+        List<OrgUserFaceModel> models = new ArrayList<>();
+        if (ObjectUtils.isNotEmpty(list)) {
+            models = list.stream().map(this::toModel).collect(Collectors.toList());
+        }
+        return ResultContent.buildSuccess(models);
+    }
+
     /**
      * 得到用户的人脸信息
      *