TRX преди 1 година
родител
ревизия
c84a499567
променени са 16 файла, в които са добавени 300 реда и са изтрити 50 реда
  1. 63 0
      FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/userCache/UserCacheModel.java
  2. 14 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/UserPermissDataCacheDao.java
  3. 9 21
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/impl/PermissSettingListDaoImpl.java
  4. 3 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/dataConfig/TtlConfig.java
  5. 1 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/PermissTimeSlot.java
  6. 34 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/UserPermissDataCache.java
  7. 5 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/event/UserInfoChangeSyncEvent.java
  8. 4 4
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/DevicePermissEventService.java
  9. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/DevicePermissService.java
  10. 7 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/DevicePermissVerifyService.java
  11. 2 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/PermissSettingService.java
  12. 135 0
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/UserPermissDataCacheService.java
  13. 14 13
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/gateDoor/GateDoorService.java
  14. 1 1
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationUserServiceImpl.java
  15. 6 6
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/CardInfoServiceImpl.java
  16. 1 2
      FullCardServer/src/main/java/com/zhongshu/card/server/core/service/projectAbout/OrgUserFaceService.java

+ 63 - 0
FullCardClient/src/main/java/com/zhongshu/card/client/model/devices/userCache/UserCacheModel.java

@@ -0,0 +1,63 @@
+package com.zhongshu.card.client.model.devices.userCache;
+
+import com.github.microservice.models.type.DeviceType;
+import com.zhongshu.card.client.type.Sex;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.ObjectUtils;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author TRX
+ * @date 2024/12/27
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserCacheModel implements Serializable {
+
+    private Sex sex;
+
+    private DeviceType deviceType;
+
+    private List<String> dataIds = new ArrayList<>();
+
+    private boolean hasPermiss = false;
+
+    private String msg = "没有权限";
+
+    public void setFailed(String msg) {
+        hasPermiss = false;
+        this.msg = msg;
+    }
+
+    public void add(String dataId) {
+        if (ObjectUtils.isEmpty(dataIds)) {
+            dataIds = new ArrayList<>();
+        }
+        dataIds.add(dataId);
+    }
+
+    public void addAll(List<String> dataIds) {
+        if (ObjectUtils.isEmpty(this.dataIds)) {
+            this.dataIds = new ArrayList<>();
+        }
+        if (ObjectUtils.isNotEmpty(dataIds)) {
+            this.dataIds.addAll(dataIds);
+        }
+    }
+
+    public void setSuccess(String msg) {
+        hasPermiss = true;
+        this.msg = msg;
+    }
+
+    public void setSuccess() {
+        hasPermiss = true;
+        this.msg = "成功";
+    }
+}

+ 14 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/UserPermissDataCacheDao.java

@@ -0,0 +1,14 @@
+package com.zhongshu.card.server.core.dao.devices;
+
+import com.github.microservice.components.data.mongo.mongo.dao.MongoDao;
+import com.zhongshu.card.server.core.domain.devices.permiss.UserPermissDataCache;
+
+/**
+ * @author TRX
+ * @date 2024/3/21
+ */
+public interface UserPermissDataCacheDao extends MongoDao<UserPermissDataCache> {
+
+    UserPermissDataCache findTopByDataIdAndProjectOid(String dataId, String projectOid);
+
+}

+ 9 - 21
FullCardServer/src/main/java/com/zhongshu/card/server/core/dao/devices/impl/PermissSettingListDaoImpl.java

@@ -22,7 +22,6 @@ import org.springframework.data.mongodb.core.query.Query;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @Author TRX
@@ -50,13 +49,10 @@ public class PermissSettingListDaoImpl extends BaseImpl implements PermissSettin
     public Page<PermissSettingList> page(Pageable pageable, PermissSettingListSearch param) {
         // 时段筛选出来的规则信息
         Criteria criteria = buildFilterCriteria(param);
-        if (ObjectUtils.isNotEmpty(param.getTimeSlotIds())) {
-            List<PermissSetting> permissSettingList = permissSettingDao.findByTimeSlotIdIn(param.getTimeSlotIds());
-            if (ObjectUtils.isEmpty(permissSettingList)) {
-                return CommonUtil.buildEmptyPage(pageable, PermissSettingList.class);
-            }
-            criteria.and("permissSetting").in(permissSettingList);
+        if (ObjectUtils.isEmpty(param.getPermissSettingIds())) {
+            return CommonUtil.buildEmptyPage(pageable, PermissSettingList.class);
         }
+        criteria.and("permissSettingId").in(param.getPermissSettingIds());
         Sort sort = buildSort(param);
         Query query = Query.query(criteria);
         query.with(sort);
@@ -67,13 +63,10 @@ public class PermissSettingListDaoImpl extends BaseImpl implements PermissSettin
     public long countNumber(PermissSettingListSearch param) {
         Criteria criteria = buildFilterCriteria(param);
         // 时段配置
-        if (ObjectUtils.isNotEmpty(param.getTimeSlotIds())) {
-            List<PermissSetting> permissSettingList = permissSettingDao.findByTimeSlotIdIn(param.getTimeSlotIds());
-            if (ObjectUtils.isEmpty(permissSettingList)) {
-                return 0;
-            }
-            criteria.and("permissSetting").in(permissSettingList);
+        if (ObjectUtils.isEmpty(param.getPermissSettingIds())) {
+            return 0;
         }
+        criteria.and("permissSettingId").in(param.getPermissSettingIds());
         Query query = Query.query(criteria);
         return mongoTemplate.count(query, PermissSettingList.class);
     }
@@ -81,15 +74,10 @@ public class PermissSettingListDaoImpl extends BaseImpl implements PermissSettin
     @Override
     public boolean isExit(PermissSettingListSearch param) {
         Criteria criteria = buildFilterCriteria(param);
-        // 时段配置
-        if (ObjectUtils.isNotEmpty(param.getTimeSlotIds())) {
-            // 时段对应的规则
-//            List<PermissSetting> permissSettingList = permissSettingDao.findByTimeSlotIdIn(param.getTimeSlotIds());
-//            if (ObjectUtils.isEmpty(permissSettingList)) {
-//                return false;
-//            }
-//            criteria.and("permissSettingId").in(permissSettingList.stream().map(it -> it.getId()).collect(Collectors.toUnmodifiableList()));
+        if (ObjectUtils.isEmpty(param.getPermissSettingIds())) {
+            return false;
         }
+        criteria.and("permissSettingId").in(param.getPermissSettingIds());
         Query query = Query.query(criteria);
         return mongoTemplate.exists(query, PermissSettingList.class);
     }

+ 3 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/dataConfig/TtlConfig.java

@@ -9,4 +9,7 @@ public class TtlConfig {
     // 权限下发的日志 保存时间
     public static final Long permissLogTTl = 7 * 24 * 60 * 60 * 1000L;
 
+    // 用户权限数据缓存的时间
+    public static final Long userCacheTime = 30 * 24 * 60 * 60L * 1000;
+
 }

+ 1 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/PermissTimeSlot.java

@@ -37,6 +37,7 @@ public class PermissTimeSlot extends SuperMain {
     @Schema(description = "状态")
     private DataState state;
 
+    @Schema(description = "关联的设备权限id")
     private List<String> permissSettingIds = new ArrayList<>();
 
     public static PermissTimeSlot build(String id) {

+ 34 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/domain/devices/permiss/UserPermissDataCache.java

@@ -0,0 +1,34 @@
+package com.zhongshu.card.server.core.domain.devices.permiss;
+
+import com.zhongshu.card.client.model.devices.userCache.UserCacheModel;
+import com.zhongshu.card.server.core.domain.base.SuperMain;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.Date;
+
+/**
+ * @author TRX
+ * @date 2024/12/27
+ */
+@Data
+@Document
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserPermissDataCache extends SuperMain {
+
+    @Indexed
+    @Schema(description = "关联的数据ID")
+    private String dataId;
+
+    @Schema(description = "用户数据")
+    private Object cacheData;
+
+    @Indexed(expireAfterSeconds = 0)
+    private Date TTL;
+
+}

+ 5 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/event/UserInfoChangeSyncEvent.java

@@ -23,13 +23,17 @@ public class UserInfoChangeSyncEvent extends ApplicationEvent {
     @Getter
     private String projectOid;
 
+    @Getter
+    private String from;
+
     @Getter
     private Map<String, Object> map = new HashMap<String, Object>();
 
-    public UserInfoChangeSyncEvent(Object source, List<String> userIds, String projectOid) {
+    public UserInfoChangeSyncEvent(Object source, List<String> userIds, String projectOid, String from) {
         super(source);
         this.userIds = userIds;
         this.projectOid = projectOid;
+        this.from = from;
     }
 
     public UserInfoChangeSyncEvent(Object source, List<String> userIds, String projectOid, Map<String, Object> map) {

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

@@ -83,8 +83,8 @@ public class DevicePermissEventService {
      * @param userId
      * @param projectOid
      */
-    public void sendUserInfoChangeEvent(String userId, String projectOid) {
-        UserInfoChangeSyncEvent event = new UserInfoChangeSyncEvent(this, List.of(userId), projectOid);
+    public void sendUserInfoChangeEvent(String userId, String projectOid, String from) {
+        UserInfoChangeSyncEvent event = new UserInfoChangeSyncEvent(this, List.of(userId), projectOid, from);
         applicationContext.publishEvent(event);
     }
 
@@ -100,8 +100,8 @@ public class DevicePermissEventService {
      * @param userIds
      * @param projectOid
      */
-    public void sendUserInfoChangeEvent(List<String> userIds, String projectOid) {
-        UserInfoChangeSyncEvent event = new UserInfoChangeSyncEvent(this, userIds, projectOid);
+    public void sendUserInfoChangeEvent(List<String> userIds, String projectOid, String from) {
+        UserInfoChangeSyncEvent event = new UserInfoChangeSyncEvent(this, userIds, projectOid, from);
         applicationContext.publishEvent(event);
     }
 

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

@@ -209,7 +209,7 @@ public class DevicePermissService extends SuperService {
                         devicePermissDao.saveAll(list);
                         // 通知权限下发用户信息 编辑
                         List<String> userIds = organizationUsers.stream().map(OrganizationUser::getUserId).distinct().collect(Collectors.toList());
-                        devicePermissEventService.sendUserInfoChangeEvent(userIds, projectOid);
+                        devicePermissEventService.sendUserInfoChangeEvent(userIds, projectOid, "syncOrgUserChangeInfo");
                     } else if (dataOperationType == DataOperationType.Delete) {
                         // 下发移除权限
                         devicePermissIotService.changeDeviceUser(list, 0, "");

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

@@ -132,7 +132,13 @@ public class DevicePermissVerifyService {
                 PermissSettingListSearch search = new PermissSettingListSearch();
 
                 search.setProjectOid(projectOid);
-                search.setTimeSlotIds(permissTimeSlots.parallelStream().map(PermissTimeSlot::getId).collect(Collectors.toList()));
+                List<String> permissSettingIds = new ArrayList<>();
+                permissTimeSlots.parallelStream().forEach(it -> {
+                    if (ObjectUtils.isNotEmpty(it.getPermissSettingIds())) {
+                        permissSettingIds.addAll(it.getPermissSettingIds());
+                    }
+                });
+                search.setPermissSettingIds(permissSettingIds);
 
                 if (userAccount.getSex() != null) {
                     search.setSex(userAccount.getSex());

+ 2 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/PermissSettingService.java

@@ -193,6 +193,8 @@ public class PermissSettingService extends SuperService {
         }
         permissSettingDao.delete(entity);
         permissSettingListDao.deleteByPermissSetting(entity);
+
+        // 更新时段包含的规则
         permissTimeSlotService.updateTimeSlotAboutPermiss(entity.getTimeSlot());
         return ResultContent.buildSuccess();
     }

+ 135 - 0
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/devices/permiss/UserPermissDataCacheService.java

@@ -0,0 +1,135 @@
+package com.zhongshu.card.server.core.service.devices.permiss;
+
+import com.zhongshu.card.client.model.devices.userCache.UserCacheModel;
+import com.zhongshu.card.client.type.DataState;
+import com.zhongshu.card.client.type.UserState;
+import com.zhongshu.card.server.core.dao.devices.UserPermissDataCacheDao;
+import com.zhongshu.card.server.core.dao.org.OrganizationUserDao;
+import com.zhongshu.card.server.core.dao.org.UserCountDao;
+import com.zhongshu.card.server.core.dao.org.UserGroupDao;
+import com.zhongshu.card.server.core.dao.org.UserGroupToUserDao;
+import com.zhongshu.card.server.core.dataConfig.TtlConfig;
+import com.zhongshu.card.server.core.domain.devices.permiss.UserPermissDataCache;
+import com.zhongshu.card.server.core.domain.org.OrganizationUser;
+import com.zhongshu.card.server.core.domain.org.UserAccount;
+import com.zhongshu.card.server.core.domain.org.UserGroup;
+import com.zhongshu.card.server.core.domain.org.UserGroupToUser;
+import com.zhongshu.card.server.core.event.UserInfoChangeSyncEvent;
+import com.zhongshu.card.server.core.service.base.SuperService;
+import com.zhongshu.card.server.core.service.org.OrganizationUserServiceImpl;
+import lombok.SneakyThrows;
+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.context.event.EventListener;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户权限数据  缓存
+ *
+ * @author TRX
+ * @date 2024/12/27
+ */
+@Slf4j
+@Service
+public class UserPermissDataCacheService extends SuperService {
+
+    @Autowired
+    private OrganizationUserDao organizationUserDao;
+
+    @Autowired
+    private OrganizationUserServiceImpl organizationUserService;
+
+    @Autowired
+    private UserGroupDao userGroupDao;
+
+    @Autowired
+    private UserGroupToUserDao userGroupToUserDao;
+
+    @Autowired
+    private UserCountDao userCountDao;
+
+    @Autowired
+    private UserPermissDataCacheDao userPermissDataCacheDao;
+
+    @EventListener(classes = UserInfoChangeSyncEvent.class)
+    @SneakyThrows
+    public void userPermissDataChange(UserInfoChangeSyncEvent event) {
+        log.info("userPermissDataChange: {}", event.getFrom());
+        String projectOid = event.getProjectOid();
+        List<String> userIds = event.getUserIds();
+        if (ObjectUtils.isNotEmpty(userIds) && StringUtils.isNotEmpty(projectOid)) {
+            for (String userId : userIds) {
+                updateUserDevicePermissAboutInfo(userId, projectOid);
+            }
+        }
+    }
+
+    /**
+     * 缓存用户
+     *
+     * @param userId
+     * @param projectOid
+     */
+    private UserPermissDataCache updateUserDevicePermissAboutInfo(String userId, String projectOid) {
+        UserPermissDataCache dataCache = userPermissDataCacheDao.findTopByDataIdAndProjectOid(userId, projectOid);
+        if (ObjectUtils.isEmpty(dataCache)) {
+            dataCache = new UserPermissDataCache();
+            dataCache.setTTL(new Date(System.currentTimeMillis() + TtlConfig.userCacheTime));
+        }
+
+        UserCacheModel model = new UserCacheModel();
+        UserAccount userAccount = userCountDao.findTopByUserId(userId);
+        if (ObjectUtils.isNotEmpty(userAccount)) {
+            if (userAccount.getState() != UserState.Normal) {
+                model.setFailed("用户不可用");
+            } else {
+                List<OrganizationUser> organizationUsers = organizationUserService.getUserOrgList(userId, projectOid);
+                if (ObjectUtils.isNotEmpty(organizationUsers)) {
+                    model.add(userId);
+                    model.setSex(userAccount.getSex());
+
+                    organizationUsers.parallelStream().forEach(organizationUser -> {
+                        model.add(organizationUser.getOid());
+                        if (ObjectUtils.isNotEmpty(organizationUser.getRoleIds())) {
+                            model.addAll(organizationUser.getRoleIds());
+                        }
+                    });
+
+                    // 用户分组
+                    List<UserGroupToUser> userGroupToUsers = userGroupToUserDao.findByUserIdAndProjectOid(userId, projectOid);
+                    if (ObjectUtils.isNotEmpty(organizationUsers)) {
+                        userGroupToUsers.parallelStream().forEach(userGroupToUser -> {
+                            UserGroup userGroup = userGroupToUser.getUserGroup();
+                            if (ObjectUtils.isNotEmpty(userGroup) && userGroup.getState() == DataState.Enable) {
+                                model.add(userGroup.getId());
+                            }
+                        });
+                    }
+                    model.setSuccess();
+                } else {
+                    model.setFailed("用户未加入项目");
+                }
+            }
+        } else {
+            model.setFailed("用户不存在");
+        }
+        dataCache.setCacheData(model);
+        userPermissDataCacheDao.save(dataCache);
+        return dataCache;
+    }
+
+    public UserCacheModel getUserCacheModel(String userId, String projectOid) {
+        UserCacheModel model = null;
+        UserPermissDataCache dataCache = userPermissDataCacheDao.findTopByDataIdAndProjectOid(userId, projectOid);
+        if (ObjectUtils.isNotEmpty(dataCache)) {
+            model = (UserCacheModel) dataCache.getCacheData();
+        }
+        return model;
+    }
+
+}

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

@@ -181,19 +181,20 @@ public class GateDoorService extends SuperService {
             useParam.setDeviceId(param.getDeviceId());
             useParam.setGateWayId(param.getGateWayId());
             String faceBase64Str = info.getPic();
-            // 根据人脸查找用户
-            com.github.microservice.auth.client.content.ResultContent<String> faceContent = userFaceService.matches(faceBase64Str);
-            String userId = "";
-            if (faceContent.isSuccess()) {
-                userId = faceContent.getContent();
-            } else {
-                String msg = faceContent.getMsg();
-                if (StringUtils.isEmpty(msg)) {
-                    msg = "人脸验证错误";
-                }
-//                result.setFailed(msg);
-            }
-            userId = "665fc0389083d203896d3541";
+
+//            // 根据人脸查找用户
+//            com.github.microservice.auth.client.content.ResultContent<String> faceContent = userFaceService.matches(faceBase64Str);
+//            String userId = "";
+//            if (faceContent.isSuccess()) {
+//                userId = faceContent.getContent();
+//            } else {
+//                String msg = faceContent.getMsg();
+//                if (StringUtils.isEmpty(msg)) {
+//                    msg = "人脸验证错误";
+//                }
+////                result.setFailed(msg);
+//            }
+            String userId = "665fc0389083d203896d3541";
 
             if (StringUtils.isNotEmpty(userId)) {
                 // 验证用户对设备有误权限

+ 1 - 1
FullCardServer/src/main/java/com/zhongshu/card/server/core/service/org/OrganizationUserServiceImpl.java

@@ -865,7 +865,7 @@ public class OrganizationUserServiceImpl extends SuperService {
                 try {
                     List<String> userIds = List.of(userId);
                     for (String _projectOid : projectOids) {
-                        devicePermissEventService.sendUserInfoChangeEvent(userIds, _projectOid);
+                        devicePermissEventService.sendUserInfoChangeEvent(userIds, _projectOid, "changeUserBaseInfo");
                         TimeUnit.SECONDS.sleep(1);
                     }
                 } catch (Exception e) {

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

@@ -274,7 +274,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         cardInfoPoolDao.save(cardInfoPool);
 
         // 用户卡片增多
-        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid());
+        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), "bindCardFromPoolByOrgId");
         return ResultContent.buildSuccess();
     }
 
@@ -345,7 +345,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         cardInfoPoolDao.save(cardInfoPool);
 
         // 用户卡片增多
-        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid());
+        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), "bindByCode");
         return ResultContent.buildSuccess();
     }
 
@@ -374,7 +374,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         }
 
         // 用户可用卡片减少
-        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid());
+        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), "unBindCard");
         return ResultContent.buildSuccess();
     }
 
@@ -581,7 +581,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         cardInfoLossRecord.setOperationType(CardOperationType.Enable);
         cardInfoLossRecordDao.save(cardInfoLossRecord);
         // 卡片信息发送变化
-        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid());
+        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), "cardEnableById");
         return ResultContent.buildSuccess();
     }
 
@@ -757,7 +757,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
         cardInfoLossRecord.setOperationType(CardOperationType.Enable);
         cardInfoLossRecordDao.save(cardInfoLossRecord);
 
-        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid());
+        devicePermissEventService.sendUserInfoChangeEvent(cardInfo.getUserId(), cardInfo.getProjectOid(), "enableById");
         return ResultContent.buildSuccess();
     }
 
@@ -917,7 +917,7 @@ public class CardInfoServiceImpl extends SuperService implements CardInfoService
                         bindCardFromPoolByOrgId(bind2OrgUserParam.getPoolId(), bind2OrgUserParam.getId(), bind2OrgUserParam.getRemark());
                     }
 
-                    devicePermissEventService.sendUserInfoChangeEvent(userIds, projectOid);
+                    devicePermissEventService.sendUserInfoChangeEvent(userIds, projectOid, "importCard");
                 }
                 model.setSuccess(cardInfoPools.size());
                 model.setFailDetails(failDetails);

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

@@ -98,8 +98,7 @@ public class OrgUserFaceService extends SuperService {
         // 维护管理权限中心用户的头像信息
         UserFaceUploadModel userFaceUploadModel = new UserFaceUploadModel();
         userFaceUploadModel.setUserId(userId);
-        userFaceUploadModel.setCompareFace(faceBase64);
-        userFaceUploadModel.setUserFace(faceBase64);
+        userFaceUploadModel.setFile(faceBase64);
         userFaceUploadModel.setUpdateFaceFileId(updateFaceFileId);
         com.github.microservice.auth.client.content.ResultContent<String> content = userFaceService.upload(userFaceUploadModel);
         if (content.isFailed()) {