TRX vor 1 Jahr
Ursprung
Commit
fca93b9ad4

+ 2 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/projectAbout/OrgUserFaceDao.java

@@ -2,6 +2,7 @@ package com.zhongshu.card.server.core.dao.projectAbout;
 
 import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
 import com.github.microservice.types.payment.PaymentType;
+import com.zhongshu.card.client.type.common.AuditState;
 import com.zhongshu.card.server.core.dao.projectAbout.extend.OrgUserFaceDaoExtend;
 import com.zhongshu.card.server.core.domain.paySetting.OrgPayAccount;
 import com.zhongshu.card.server.core.domain.projectAbout.OrgUserFace;
@@ -23,7 +24,7 @@ public interface OrgUserFaceDao extends MongoDao<OrgUserFace>, OrgUserFaceDaoExt
 
     List<OrgUserFace> findByUserIdAndProjectOid(String userId, String projectOid);
 
-    List<OrgUserFace> findByProjectOidAndUserIdIn(String projectOid, List<String> userIds);
+    List<OrgUserFace> findByProjectOidAndUserIdInAndAuditState(String projectOid, List<String> userIds, AuditState auditState);
 
     List<OrgUserFace> findByUserIdAndProjectOidOrderByCreateTimeDesc(String userId, String projectOid);
 }

+ 6 - 6
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/DevicePermissEventService.java

@@ -139,11 +139,11 @@ public class DevicePermissEventService {
                             while (_deviceIds.size() > 0) {
                                 // 统计网关管理的所有设备
                                 int index = Math.min(_deviceIds.size(), IotIdentifierConfig.maxNoticeSize);
-                                List<String> subList = _deviceIds.subList(0, index);
+                                List<String> subDeviceList = _deviceIds.subList(0, index);
                                 _deviceIds = _deviceIds.subList(index, _deviceIds.size());
 
-                                sendDeviceAboutUsers(gateWayId, subList, projectOid);
-                                sendDeviceAboutUserInfo(gateWayId, subList, projectOid);
+                                sendDeviceAboutUsers(gateWayId, subDeviceList, projectOid);
+                                sendDeviceAboutUserInfo(gateWayId, subDeviceList, projectOid);
                                 if (!_deviceIds.isEmpty()) {
                                     TimeUnit.SECONDS.sleep(10);
                                 }
@@ -158,7 +158,7 @@ public class DevicePermissEventService {
     }
 
     /**
-     * 用户信息发生变化
+     * 用户信息发生变化 (人脸、电话、卡片等信息)
      *
      * @param event
      */
@@ -236,7 +236,7 @@ public class DevicePermissEventService {
     public void sendDeviceAboutUsers(String gateWayId, List<String> deviceIds, String projectOid) {
         DevicePerQuery query = new DevicePerQuery();
         query.setDeviceIds(deviceIds);
-        query.setGateWayId(gateWayId);
+        query.setGatewayId(gateWayId);
         GateWayPermissModel gateWayPermissModel = devicePermissIotService.queryDevicePermissInfo(query);
         requestDeviceBindData(gateWayPermissModel, projectOid);
     }
@@ -295,7 +295,7 @@ public class DevicePermissEventService {
     public void sendDeviceAboutUserInfo(String gateWayId, List<String> deviceIds, String projectOid) {
         DevicePerQuery query = new DevicePerQuery();
         query.setDeviceIds(deviceIds);
-        query.setGateWayId(gateWayId);
+        query.setGatewayId(gateWayId);
         DeviceUsersInfo deviceUsersInfo = devicePermissIotService.queryDeviceAboutUsers(query);
         requestDevicesUsersData(deviceUsersInfo, projectOid);
     }

+ 7 - 7
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/DevicePermissIotService.java

@@ -160,7 +160,7 @@ public class DevicePermissIotService {
     public GateWayPermissModel queryDevicePermissInfo(DevicePerQuery query) {
         GateWayPermissModel permissModel = getDeviceAboutUsers(query.getDeviceIds());
         permissModel.setSuccess();
-        permissModel.setGateWayId(query.getGateWayId());
+        permissModel.setGateWayId(query.getGatewayId());
         return permissModel;
     }
 
@@ -182,7 +182,7 @@ public class DevicePermissIotService {
     public DeviceUsersInfo queryDeviceAboutUsers(DevicePerQuery query) {
         DeviceUsersInfo permissModel = getDeviceAboutUserInfos(query.getDeviceIds());
         permissModel.setSuccess();
-        permissModel.setGateWayId(query.getGateWayId());
+        permissModel.setGateWayId(query.getGatewayId());
         return permissModel;
     }
 
@@ -206,7 +206,7 @@ public class DevicePermissIotService {
             permissModel.setUsers(getUserPermiss(projectOid, query.getUserIds()));
         }
         permissModel.setSuccess();
-        permissModel.setGateWayId(query.getGateWayId());
+        permissModel.setGateWayId(query.getGatewayId());
         return ResultContent.buildSuccess(JSONUtil.toJsonStr(permissModel));
     }
 
@@ -239,7 +239,7 @@ public class DevicePermissIotService {
 
             // 人脸信息
             List<OrgUserFace> userFaces = orgUserFaceService.getUserFaces(projectOid, userIds);
-            Map<String, OrgUserFace> faceMap = userFaces.stream().collect(Collectors.toMap(it -> it.getUserId(), it -> it, (v1, v2) -> v1));
+            Map<String, List<OrgUserFace>> faceMap = userFaces.stream().collect(Collectors.groupingBy(OrgUserFace::getUserId));
 
             // 用户的卡片信息
             List<CardInfo> cardInfos = cardInfoService.getProjectCards(projectOid, userIds);
@@ -258,9 +258,9 @@ public class DevicePermissIotService {
                 if (ObjectUtils.isNotEmpty(userAccount)) {
                     permiss.setUn(userAccount.getName());
                 }
-                OrgUserFace orgUserFace = faceMap.get(userId);
-                if (ObjectUtils.isNotEmpty(orgUserFace)) {
-                    permiss.setFi(orgUserFace.getImg());
+                List<OrgUserFace> orgUserFaces = faceMap.get(userId);
+                if (ObjectUtils.isNotEmpty(orgUserFaces)) {
+                    permiss.setFi(orgUserFaces.get(0).getImg());
                 }
                 List<CardInfo> cardInfoList = cardMap.get(userId);
                 if (ObjectUtils.isNotEmpty(cardInfoList)) {

+ 2 - 2
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/gateDoor/GateDoorService.java

@@ -95,7 +95,7 @@ public class GateDoorService extends SuperService {
             DeviceUseParam useParam = new DeviceUseParam();
             useParam.setMqttDataId(param.getMqttDataId());
             useParam.setDeviceId(param.getDeviceId());
-            useParam.setGateWayId(param.getGateWayId());
+            useParam.setGateWayId(param.getGatewayId());
 
             String VerifyStatus = info.getVerifyStatus();
             if (StringUtils.isNotEmpty(VerifyStatus)) {
@@ -173,7 +173,7 @@ public class GateDoorService extends SuperService {
         log.info("闸机使用记录 gateDoorOnLineVerify...");
         if (ObjectUtils.isNotEmpty(info)) {
             String deviceId = param.getDeviceId();
-            String gateWayId = param.getGateWayId();
+            String gateWayId = param.getGatewayId();
             String mqttDataId = param.getMqttDataId();
             result.setMqttDataId(mqttDataId);
             String userId = info.getCustomId();

+ 3 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/CardInfoServiceImpl.java

@@ -544,6 +544,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         String groupId = CommonUtil.UUID();
         Map<String, Object> map = new HashMap<>();
         map.put("groupId", groupId);
+
         // 卡片信息发送变化
         devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), map);
         return ResultContent.buildSuccess();
@@ -627,7 +628,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         }
 
         if (cardInfo.getCardState() == CardState.Enable) {
-            return ResultContent.buildFail(String.format("卡片已接挂:%s", param.getCode()));
+//            return ResultContent.buildFail(String.format("卡片已接挂:%s", param.getCode()));
         }
 
         cardInfo.setCardState(CardState.Enable);
@@ -643,6 +644,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         cardInfoLossRecord.setOperationType(CardOperationType.Enable);
         cardInfoLossRecordDao.save(cardInfoLossRecord);
 
+        // 下发权限
         String groupId = CommonUtil.UUID();
         Map<String, Object> map = new HashMap<>();
         map.put("groupId", groupId);

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

@@ -187,9 +187,20 @@ public class OrgUserFaceService extends SuperService {
         }
         orgUserFace.setConfidence(configModel.getConfidence());
         orgUserFaceDao.save(orgUserFace);
+        faceChange(orgUserFace);
         return ResultContent.buildSuccess(toModel(orgUserFace));
     }
 
+    private void faceChange(OrgUserFace orgUserFace) {
+        if (ObjectUtils.isEmpty(orgUserFace)) {
+            return;
+        }
+
+        if (orgUserFace.getAuditState() == AuditState.Audited) {
+            devicePermissEventService.sendUserInfoChangeEvent(List.of(orgUserFace.getUserId()), orgUserFace.getProjectOid(), "saveFace");
+        }
+    }
+
     /**
      * 删除多个
      *
@@ -236,6 +247,7 @@ public class OrgUserFaceService extends SuperService {
             }
         }
         orgUserFaceDao.delete(orgUserFace);
+        faceChange(orgUserFace);
         return ResultContent.buildSuccess();
     }
 
@@ -320,7 +332,7 @@ public class OrgUserFaceService extends SuperService {
         orgUserFace.setAuditUserId(getCurrentUserId());
         orgUserFace.setAuditTime(System.currentTimeMillis());
         orgUserFaceDao.save(orgUserFace);
-
+        faceChange(orgUserFace);
         return ResultContent.buildSuccess();
     }
 
@@ -388,7 +400,7 @@ public class OrgUserFaceService extends SuperService {
      */
     public List<OrgUserFace> getUserFaces(String projectOid, List<String> userIds) {
         if (ObjectUtils.isNotEmpty(userIds) && StringUtils.isNotEmpty(projectOid)) {
-            return orgUserFaceDao.findByProjectOidAndUserIdIn(projectOid, userIds);
+            return orgUserFaceDao.findByProjectOidAndUserIdInAndAuditState(projectOid, userIds, AuditState.Audited);
         }
         return Lists.newArrayList();
     }