فهرست منبع

1、人脸权限完善

slowslo 4 سال پیش
والد
کامیت
c5ffec93af
24فایلهای تغییر یافته به همراه150 افزوده شده و 144 حذف شده
  1. 3 9
      blade-biz-common/src/main/java/org/springblade/common/constant/CommonConstant.java
  2. 1 1
      blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/AuthorizeRecordsClientFallback.java
  3. 4 1
      blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/IAuthorizeRecordsClient.java
  4. 3 0
      blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/IUserAccessPermissionsClient.java
  5. 5 1
      blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/UserAccessPermissionsClientFallback.java
  6. 5 0
      blade-service-api/third-api/src/main/java/org/springblade/third/doordevice/dto/UserDeviceDTO.java
  7. 6 26
      blade-service/enterprise/src/main/java/org/springblade/enterprise/service/impl/StaffServiceImpl.java
  8. 5 2
      blade-service/estate/src/main/java/org/springblade/estate/controller/GuestRecordController.java
  9. 6 1
      blade-service/estate/src/main/java/org/springblade/estate/controller/ServerUserController.java
  10. 1 1
      blade-service/estate/src/main/java/org/springblade/estate/controller/UserAccessPermissionsController.java
  11. 5 2
      blade-service/estate/src/main/java/org/springblade/estate/feign/AuthorizeRecordsClient.java
  12. 5 2
      blade-service/estate/src/main/java/org/springblade/estate/feign/UserAccessPermissionsClient.java
  13. 1 1
      blade-service/estate/src/main/java/org/springblade/estate/service/IAuthorizeRecordsService.java
  14. 2 0
      blade-service/estate/src/main/java/org/springblade/estate/service/IGuestRecordService.java
  15. 5 0
      blade-service/estate/src/main/java/org/springblade/estate/service/IServerUserService.java
  16. 2 2
      blade-service/estate/src/main/java/org/springblade/estate/service/IUserAccessPermissionsService.java
  17. 1 1
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/ApplyUserServiceImpl.java
  18. 6 37
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/AuthorizeRecordsServiceImpl.java
  19. 10 0
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/GuestRecordServiceImpl.java
  20. 18 0
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/ServerUserServiceImpl.java
  21. 10 9
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/UserAccessPermissionsServiceImpl.java
  22. 6 6
      blade-service/third/src/main/java/org/springblade/third/doordevice/feign/QLinClient.java
  23. 11 10
      blade-service/third/src/main/java/org/springblade/third/doordevice/provider/impl/ZHProvider.java
  24. 29 32
      blade-service/third/src/main/java/org/springblade/third/zongheng/handler/FrmFacePictureHandler.java

+ 3 - 9
blade-biz-common/src/main/java/org/springblade/common/constant/CommonConstant.java

@@ -100,15 +100,9 @@ public interface CommonConstant {
 	@Getter
 	enum UserFlag {
 
-		SERVER_USER_FLAG("s_", "服务人员标识"),
-		USER_FLAG("u_", "住户标识"),
-		ADMIN_USER_FLAG("a_", "管理员标记"),
-		DEVICE_MANAGE_FLAG("设备管理机账号", "d_"),
-		TEST_USER_FLAG("t_", "测试账号表示"),
-		ADMIN_USER_NUMBER_FLAG("101", "管理员数字标记"),
-		USER_NUMBER_FLAG("102", "住户数字标记"),
-		SERVER_USER_NUMBER_FLAG("FWY_", "服务员数字标记"),
-		GUEST_FLAG("FQ_", "访客标识"),
+		HOUSE_USER_FLAG("ZH_", "住户标记"),
+		SERVER_USER_FLAG("FWY_", "服务员标记"),
+		GUEST_FLAG("FK_", "访客标识"),
 		ENTERPRISE_STAFF_FLAG("QYYG_", "企业员工标识"),
 		ADMIN_FLAG("ADMIN_", "管理员标识");
 

+ 1 - 1
blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/AuthorizeRecordsClientFallback.java

@@ -61,7 +61,7 @@ public class AuthorizeRecordsClientFallback implements IAuthorizeRecordsClient {
         }
 
 	@Override
-	public R generateAuthRecord(String serialNum, String userId, String authReqNo, String authCmd, String reqData, Integer smartDeviceType, String respMsg) {
+	public R generateAuthRecord(String serialNum, String userId, String userName, String userType, String authReqNo, String authCmd, String reqData, Integer smartDeviceType, String respMsg, String tenantId) {
 		return null;
 	}
 

+ 4 - 1
blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/IAuthorizeRecordsClient.java

@@ -67,11 +67,14 @@ public interface IAuthorizeRecordsClient  {
 	@PostMapping("/generateAuthRecord")
 	R generateAuthRecord(@RequestParam(value = "serialNum", required = true) String serialNum,
 						 @RequestParam(value = "userId", required = true) String userId,
+						 @RequestParam(value = "userName", required = false) String userName,
+						 @RequestParam(value = "userType", required = true) String userType,
 						 @RequestParam(value = "authReqNo", required = true) String authReqNo,
 						 @RequestParam(value = "authCmd", required = false) String authCmd,
 						 @RequestParam(value = "reqData", required = false) String reqData,
 						 @RequestParam(value = "smartDeviceType", required = true) Integer smartDeviceType,
-						 @RequestParam(value = "respMsg", required = false) String respMsg);
+						 @RequestParam(value = "respMsg", required = false) String respMsg,
+						 @RequestParam(value = "tenantId", required = false) String tenantId);
 
 	@PostMapping("/getAuthRecord")
 	List<AuthorizeRecords> getAuthRecord(@RequestParam(value = "serialNum", required = true)String serialNum,

+ 3 - 0
blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/IUserAccessPermissionsClient.java

@@ -69,4 +69,7 @@ public interface IUserAccessPermissionsClient  {
 
 	@GetMapping("/getUserIdsByUserType")
 	List<Long> getUserIdsByUserType(@RequestParam String userType);
+
+	@PostMapping("/deleteFace")
+	R deleteFace(@RequestParam(value = "userId") String userId, @RequestParam(value = "userType") String userType);
 }

+ 5 - 1
blade-service-api/estate-api/src/main/java/org/springblade/estate/feign/UserAccessPermissionsClientFallback.java

@@ -5,7 +5,6 @@ import org.springblade.estate.dto.AuthorizeRecordsDTO;
 import org.springblade.estate.entity.UserAccessPermissions;
 import org.springblade.estate.vo.UserAccessPermissionsVO;
 import org.springframework.stereotype.Component;
-import javax.validation.Valid;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -77,4 +76,9 @@ public class UserAccessPermissionsClientFallback implements IUserAccessPermissio
 		return new ArrayList<>();
 	}
 
+	@Override
+	public R deleteFace(String userId, String userType) {
+		return null;
+	}
+
 }

+ 5 - 0
blade-service-api/third-api/src/main/java/org/springblade/third/doordevice/dto/UserDeviceDTO.java

@@ -63,4 +63,9 @@ public class UserDeviceDTO {
 	//1:新增,2:更新
 	private Integer addOrUpdate;
 
+	@NotBlank
+	private String userType;
+
+	private String tenantId;
+
 }

+ 6 - 26
blade-service/enterprise/src/main/java/org/springblade/enterprise/service/impl/StaffServiceImpl.java

@@ -38,6 +38,7 @@ import org.springblade.enterprise.service.IStaffService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.enterprise.wrapper.StaffWrapper;
 import org.springblade.estate.entity.CarOutRecord;
+import org.springblade.estate.feign.IUserAccessPermissionsClient;
 import org.springblade.third.doordevice.dto.UserDeviceDTO;
 import org.springblade.third.doordevice.feign.IDoorDeviceButtClient;
 import org.springblade.third.dto.DeviceDTO;
@@ -64,6 +65,8 @@ public class StaffServiceImpl extends BaseServiceImpl<StaffMapper, Staff> implem
 	private IDoorDeviceClient doorDeviceClient;
 	@Autowired
 	private IDoorDeviceButtClient doorDeviceButtClient;
+	@Autowired
+	private IUserAccessPermissionsClient userAccessPermissionsClient;
 
 
 
@@ -178,32 +181,9 @@ public class StaffServiceImpl extends BaseServiceImpl<StaffMapper, Staff> implem
 
 	@Override
 	public R deleteUser(Long staffId) {
-		Staff staff = this.getById(staffId);
-		if (staff != null) {
-			List<DoorDevice> deviceList = doorDeviceClient.getListByAgencyAndResidential(staff.getAgencyId(), staff.getResidentialId());
-			if(deviceList != null && deviceList.size() > 0){
-				List<DeviceDTO> deviceDTOList = deviceList.stream().map(item -> {
-					DeviceDTO deviceDTO = new DeviceDTO();
-					deviceDTO.setSerialNum(item.getSerialNum());
-					deviceDTO.setFactory(item.getDeviceFactory());
-					return deviceDTO;
-				}).collect(Collectors.toList());
-				UserDeviceDTO userDeviceDTO = new UserDeviceDTO();
-				userDeviceDTO.setDeviceList(deviceDTOList);
-				userDeviceDTO.setUserId(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue() + staffId.toString());
-				doorDeviceButtClient.deleteFaceToDevices(userDeviceDTO);
-				boolean remove = this.removeById(staffId);
-				if(remove){
-					return R.status(true);
-				}else{
-					return R.fail("删除员工失败");
-				}
-			}else{
-				return R.fail("请先添加设备");
-			}
-		}else{
-			return R.fail("员工信息不存在");
-		}
+		userAccessPermissionsClient.deleteFace(staffId.toString(), CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue());
+		this.removeById(staffId);
+		return R.status(true);
 	}
 
 	@Override

+ 5 - 2
blade-service/estate/src/main/java/org/springblade/estate/controller/GuestRecordController.java

@@ -74,7 +74,6 @@ public class GuestRecordController extends BladeController {
 	private final IAgencyClient agencyClient;
 	private final IResidentialClient residentialClient;
 	private final IEnterpriseClient enterpriseClient;
-	private final IOrgPositionClient orgPositionClient;
 	private final IConfClient confClient;
 	private final IUserAccessPermissionsClient userAccessPermissionsClient;
 
@@ -172,7 +171,11 @@ public class GuestRecordController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(guestRecordService.deleteLogic(Func.toLongList(ids)));
+		List<Long> idList = Func.toLongList(ids);
+		for(Long id : idList){
+			return this.guestRecordService.deleteGuestRecord(id);
+		}
+		return R.status(true);
 	}
 
 

+ 6 - 1
blade-service/estate/src/main/java/org/springblade/estate/controller/ServerUserController.java

@@ -27,6 +27,8 @@ import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
 import org.springblade.common.constant.CommonConstant;
+import org.springblade.community.entity.Agency;
+import org.springblade.community.feign.IAgencyClient;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
@@ -62,6 +64,7 @@ public class ServerUserController extends BladeController {
 	private final IServerUserService serverUserService;
 	private final IUserAccessPermissionsClient userAccessPermissionsClient;
 	private final IConfClient confClient;
+	private final IAgencyClient agencyClient;
 
 	/**
 	 * 详情
@@ -127,6 +130,8 @@ public class ServerUserController extends BladeController {
 		serverUser.setCreateUser(bladeUser.getUserId());
 		serverUser.setCreateDept(Convert.toLong(bladeUser.getDeptId()));
 		serverUser.setFaceUrl(confClient.removePrefix(serverUser.getFaceUrl()));
+		Agency agency = agencyClient.getById(serverUser.getAgencyId());
+		serverUser.setTenantId(agency.getTenantId());
 		return R.status(serverUserService.saveOrUpdate(serverUser));
 	}
 
@@ -138,7 +143,7 @@ public class ServerUserController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "逻辑删除", notes = "传入ids")
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(serverUserService.deleteLogic(Func.toLongList(ids)));
+		return serverUserService.deleteServerUser(Func.toLongList(ids));
 	}
 
 	/**

+ 1 - 1
blade-service/estate/src/main/java/org/springblade/estate/controller/UserAccessPermissionsController.java

@@ -148,7 +148,7 @@ public class UserAccessPermissionsController extends BladeController {
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "禁用/删除人脸权限")
 	public R deleteFace(@RequestBody UserAccessPermissionsDTO userAccessPermissionsDTO) {
-		R result = userAccessPermissionsService.deleteFace(userAccessPermissionsDTO);
+		R result = userAccessPermissionsService.deleteFace(userAccessPermissionsDTO.getUserId(), userAccessPermissionsDTO.getUserType());
 		return result;
 	}
 

+ 5 - 2
blade-service/estate/src/main/java/org/springblade/estate/feign/AuthorizeRecordsClient.java

@@ -99,12 +99,15 @@ public class AuthorizeRecordsClient implements IAuthorizeRecordsClient {
 	@PostMapping("/generateAuthRecord")
 	public R generateAuthRecord(@RequestParam(value = "serialNum", required = true) String serialNum,
 								@RequestParam(value = "userId", required = true) String userId,
+								@RequestParam(value = "userName", required = false) String userName,
+								@RequestParam(value = "userType", required = true) String userType,
 								@RequestParam(value = "authReqNo", required = true) String authReqNo,
 								@RequestParam(value = "authCmd", required = false) String authCmd,
 								@RequestParam(value = "reqData", required = false) String reqData,
 								@RequestParam(value = "smartDeviceType", required = true) Integer smartDeviceType,
-								@RequestParam(value = "respMsg", required = false) String respMsg) {
-		return authorizeRecordsService.generateAuthRecord(serialNum, userId, authReqNo, authCmd, reqData, smartDeviceType, respMsg);
+								@RequestParam(value = "respMsg", required = false) String respMsg,
+								@RequestParam(value = "tenantId", required = false) String tenantId) {
+		return authorizeRecordsService.generateAuthRecord(serialNum, userId, userName, userType, authReqNo, authCmd, reqData, smartDeviceType, respMsg, tenantId);
 	}
 
 

+ 5 - 2
blade-service/estate/src/main/java/org/springblade/estate/feign/UserAccessPermissionsClient.java

@@ -109,8 +109,11 @@ public class UserAccessPermissionsClient implements IUserAccessPermissionsClient
 		return userAccessPermissionsService.getUserIdsByUserType(userType);
 	}
 
-
-
+	@Override
+	@PostMapping("/deleteFace")
+	public R deleteFace(@RequestParam(value = "userId") String userId, @RequestParam(value = "userType") String userType) {
+		return userAccessPermissionsService.deleteFace(userId, userType);
+	}
 
 
 }

+ 1 - 1
blade-service/estate/src/main/java/org/springblade/estate/service/IAuthorizeRecordsService.java

@@ -41,7 +41,7 @@ public interface IAuthorizeRecordsService extends BaseService<AuthorizeRecords>
 	 */
 	IPage<AuthorizeRecordsVO> selectAuthorizeRecordsPage(IPage<AuthorizeRecordsVO> page, AuthorizeRecordsVO authorizeRecords);
 
-	R generateAuthRecord(String serialNum, String userId, String authNo,  String authCmd, String reqData, Integer smartDeviceType, String reqMsg);
+	R generateAuthRecord(String serialNum, String userId, String userName, String userType, String authNo,  String authCmd, String reqData, Integer smartDeviceType, String reqMsg, String tenantId);
 
 	List<AuthorizeRecords> getAuthRecord(String serialNum, String authReqNo, String authCmd);
 }

+ 2 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/IGuestRecordService.java

@@ -56,4 +56,6 @@ public interface IGuestRecordService extends BaseService<GuestRecord> {
 	R deleteFace(Long guestId);
 
     Integer guestStat(String beginDate, String endDate);
+
+    R deleteGuestRecord(Long id);
 }

+ 5 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/IServerUserService.java

@@ -16,11 +16,14 @@
  */
 package org.springblade.estate.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.estate.entity.ServerUser;
 import org.springblade.estate.vo.ServerUserVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+
 /**
  * 服务人员 服务类
  *
@@ -39,4 +42,6 @@ public interface IServerUserService extends BaseService<ServerUser> {
 	IPage<ServerUserVO> selectServerUserPage(IPage<ServerUserVO> page, ServerUserVO serverUser);
 
 	Integer serverUserStat();
+
+	R deleteServerUser(List<Long> idList);
 }

+ 2 - 2
blade-service/estate/src/main/java/org/springblade/estate/service/IUserAccessPermissionsService.java

@@ -52,7 +52,7 @@ public interface IUserAccessPermissionsService extends BaseService<UserAccessPer
 
 	R deleteUserAccessPermissions(AuthorizeRecordsDTO authorizeRecordsDTO);
 
-	List<UserAccessPermissions> getByCondition(String serialNum, String userId, String tenantId);
+	List<UserAccessPermissions> getByCondition(String serialNum, String userId);
 
 	/**
 	 * 根据用户类型获取已下发的用户id列表
@@ -63,7 +63,7 @@ public interface IUserAccessPermissionsService extends BaseService<UserAccessPer
 
     R pushFace(UserAccessPermissionsDTO userAccessPermissionsDTO);
 
-    R deleteFace(UserAccessPermissionsDTO userAccessPermissionsDTO);
+	R deleteFace(String userId, String userType);
 
     List<UserAccessPermissions> listByUser(String userId, String userType);
 }

+ 1 - 1
blade-service/estate/src/main/java/org/springblade/estate/service/impl/ApplyUserServiceImpl.java

@@ -418,7 +418,7 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
 			userFaceList.add(map);
 			//  下发人脸-到通用设备
 			UserInfoDto dto = new UserInfoDto();
-			dto.setId(CommonConstant.UserFlag.USER_NUMBER_FLAG.getValue() + user.getId());
+			dto.setId(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue() + user.getId());
 			dto.setFaceCodeList(userFaceList);
 			dto.setFaceUrl(faceUrl);
 			dto.setBeginDate(user.getFaceBeginDate());

+ 6 - 37
blade-service/estate/src/main/java/org/springblade/estate/service/impl/AuthorizeRecordsServiceImpl.java

@@ -69,15 +69,7 @@ public class AuthorizeRecordsServiceImpl extends BaseServiceImpl<AuthorizeRecord
 	@Autowired
 	private IEnterpriseClient enterpriseClient;
 	@Autowired
-	private IStaffClient staffClient;
-	@Autowired
-	private IServerUserService serverUserService;
-	@Autowired
-	private IGuestRecordService guestRecordService;
-	@Autowired
 	private IDoorDeviceClient doorDeviceClient;
-	@Autowired
-	private IUserClient userClient;
 
 	@Override
 	public IPage<AuthorizeRecordsVO> selectAuthorizeRecordsPage(IPage<AuthorizeRecordsVO> page, AuthorizeRecordsVO authorizeRecords) {
@@ -85,7 +77,7 @@ public class AuthorizeRecordsServiceImpl extends BaseServiceImpl<AuthorizeRecord
 	}
 
 	@Override
-	public R generateAuthRecord(String serialNum, String userId, String authNo, String authCmd, String reqData, Integer smartDeviceType, String respMsg) {
+	public R generateAuthRecord(String serialNum, String userId, String userName, String userType, String authNo, String authCmd, String reqData, Integer smartDeviceType, String respMsg, String tenantId) {
 		if(StringUtil.isBlank(serialNum) || StringUtil.isBlank(userId) || StringUtil.isBlank(reqData) || smartDeviceType == null){
 			log.error("==============授权记录设备序列号|用户ID|请求数据不能为空===============");
 		}
@@ -96,7 +88,6 @@ public class AuthorizeRecordsServiceImpl extends BaseServiceImpl<AuthorizeRecord
 		authRecord.setAuthCmd(authCmd);
 		authRecord.setAuthStatus(CommonConstant.AuthStatus.WAIT.getValue());
 		authRecord.setAuthRespMsg(respMsg);
-		String userName = null;
 		String deviceName = null;
 		String deviceAddress = null;
 		String agencyName = null;
@@ -163,33 +154,11 @@ public class AuthorizeRecordsServiceImpl extends BaseServiceImpl<AuthorizeRecord
 			authRecord.setUnitId(unitId);
 			authRecord.setRoomId(roomId);
 			authRecord.setEnterpriseId(enterpriseId);
-			//处理下发人相关
-			if(userId.startsWith(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue())){
-				Staff staff = staffClient.getById(Long.parseLong(userId.substring(5)));
-				authRecord.setUserId(staff.getId().toString());
-				authRecord.setUserName(staff.getRealName());
-				authRecord.setUserType(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue());
-				authRecord.setTenantId(staff.getTenantId());
-			}else if(userId.startsWith(CommonConstant.UserFlag.GUEST_FLAG.getValue())){
-				GuestRecord guestRecord = guestRecordService.getById(Long.parseLong(userId.substring(3)));
-				authRecord.setUserId(guestRecord.getId().toString());
-				authRecord.setUserName(guestRecord.getGuestName());
-				authRecord.setUserType(CommonConstant.UserFlag.GUEST_FLAG.getValue());
-				authRecord.setTenantId(guestRecord.getTenantId());
-			}else if(userId.startsWith(CommonConstant.UserFlag.ADMIN_FLAG.getValue())){
-				R<User> userR = userClient.userInfoById(Long.parseLong(userId.substring(6)));
-				User user = userR.getData();
-				authRecord.setUserId(user.getId().toString());
-				authRecord.setUserName(user.getRealName());
-				authRecord.setUserType(CommonConstant.UserFlag.ADMIN_FLAG.getValue());
-				authRecord.setTenantId(user.getTenantId());
-			}else if(userId.startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
-				ServerUser serverUser = serverUserService.getById(Long.parseLong(userId.substring(4)));
-				authRecord.setUserId(serverUser.getId().toString());
-				authRecord.setUserName(serverUser.getName());
-				authRecord.setUserType(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue());
-				authRecord.setTenantId(serverUser.getTenantId());
-			}
+
+			authRecord.setUserId(userId);
+			authRecord.setUserName(userName);
+			authRecord.setUserType(userType);
+//			authRecord.setTenantId(tenantId);
 			return R.status(this.save(authRecord));
 		}catch (Exception e){
 			log.error(reqData);

+ 10 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/impl/GuestRecordServiceImpl.java

@@ -30,6 +30,7 @@ import org.springblade.device.entity.DoorDevice;
 import org.springblade.device.feign.IDoorDeviceClient;
 import org.springblade.enterprise.entity.Staff;
 import org.springblade.estate.entity.GuestRecord;
+import org.springblade.estate.service.IUserAccessPermissionsService;
 import org.springblade.estate.vo.GuestRecordVO;
 import org.springblade.estate.mapper.GuestRecordMapper;
 import org.springblade.estate.service.IGuestRecordService;
@@ -63,6 +64,8 @@ public class GuestRecordServiceImpl extends BaseServiceImpl<GuestRecordMapper, G
 	private IDoorDeviceClient doorDeviceClient;
 	@Autowired
 	private IDoorDeviceButtClient doorDeviceButtClient;
+	@Autowired
+	private IUserAccessPermissionsService userAccessPermissionsService;
 
 	@Override
 	public IPage<GuestRecordVO> selectGuestPage(IPage<GuestRecordVO> page, GuestRecordVO guest) {
@@ -155,4 +158,11 @@ public class GuestRecordServiceImpl extends BaseServiceImpl<GuestRecordMapper, G
 		return this.count(queryWrapper);
 	}
 
+	@Override
+	public R deleteGuestRecord(Long id) {
+		userAccessPermissionsService.deleteFace(id.toString(), CommonConstant.UserFlag.GUEST_FLAG.getValue());
+		this.removeById(id);
+		return R.status(true);
+	}
+
 }

+ 18 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/impl/ServerUserServiceImpl.java

@@ -17,20 +17,25 @@
 package org.springblade.estate.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.enterprise.entity.Staff;
 import org.springblade.estate.entity.ServerUser;
+import org.springblade.estate.service.IUserAccessPermissionsService;
 import org.springblade.estate.vo.ServerUserVO;
 import org.springblade.estate.mapper.ServerUserMapper;
 import org.springblade.estate.service.IServerUserService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.HashMap;
+import java.util.List;
 
 /**
  * 服务人员 服务实现类
@@ -41,6 +46,9 @@ import java.util.HashMap;
 @Service
 public class ServerUserServiceImpl extends BaseServiceImpl<ServerUserMapper, ServerUser> implements IServerUserService {
 
+	@Autowired
+	private IUserAccessPermissionsService userAccessPermissionsService;
+
 	@Override
 	public IPage<ServerUserVO> selectServerUserPage(IPage<ServerUserVO> page, ServerUserVO serverUser) {
 		return page.setRecords(baseMapper.selectServerUserPage(page, serverUser));
@@ -57,4 +65,14 @@ public class ServerUserServiceImpl extends BaseServiceImpl<ServerUserMapper, Ser
 		}
 	}
 
+	@Override
+	public R deleteServerUser(List<Long> idList) {
+		for(Long id : idList){
+			//删除人脸
+			userAccessPermissionsService.deleteFace(id.toString(), CommonConstant.UserFlag.SERVER_USER_FLAG.getValue());
+			removeById(id);
+		}
+		return R.status(true);
+	}
+
 }

+ 10 - 9
blade-service/estate/src/main/java/org/springblade/estate/service/impl/UserAccessPermissionsServiceImpl.java

@@ -72,7 +72,7 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
 	@Override
 	public R generateUserAccessPermissions(AuthorizeRecordsDTO authorizeRecordsDTO) {
 		UserAccessPermissions permissions = null;
-		List<UserAccessPermissions> permissionsList = this.getByCondition(authorizeRecordsDTO.getDeviceSerialNum(), authorizeRecordsDTO.getUserId(), authorizeRecordsDTO.getTenantId());
+		List<UserAccessPermissions> permissionsList = this.getByCondition(authorizeRecordsDTO.getDeviceSerialNum(), authorizeRecordsDTO.getUserId());
 		if(permissionsList.size() > 0){
 			permissions = permissionsList.get(0);
 		}else{
@@ -107,11 +107,10 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
 	}
 
 	@Override
-	public List<UserAccessPermissions> getByCondition(String serialNum, String userId, String tenantId) {
+	public List<UserAccessPermissions> getByCondition(String serialNum, String userId) {
 		LambdaQueryWrapper<UserAccessPermissions> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(UserAccessPermissions::getDeviceSerialNum, serialNum);
 		lambdaQueryWrapper.eq(UserAccessPermissions::getUserId, userId);
-		lambdaQueryWrapper.eq(UserAccessPermissions::getTenantId, tenantId);
 		lambdaQueryWrapper.orderByDesc(UserAccessPermissions::getCreateTime);
 		return this.list(lambdaQueryWrapper);
 	}
@@ -132,20 +131,21 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
 	@Override
 	public R pushFace(UserAccessPermissionsDTO userAccessPermissionsDTO) {
 		//这里的userId是拼接了用户类型的,比如QYYG_13349456569094,表示企业员工
-		String userId = userAccessPermissionsDTO.getUserType() + userAccessPermissionsDTO.getUserId();
 		List<DoorDevice> deviceList = doorDeviceClient.listByIds(userAccessPermissionsDTO.getDeviceIds());
 		if(deviceList != null && deviceList.size() > 0) {
 			for (DoorDevice doorDevice : deviceList) {
 				String serialNum = doorDevice.getSerialNum();
 				String deviceFactory = doorDevice.getDeviceFactory();
-				List<UserAccessPermissions> permissionsList = this.getByCondition(serialNum, userAccessPermissionsDTO.getUserId(), doorDevice.getTenantId());
+				List<UserAccessPermissions> permissionsList = this.getByCondition(serialNum, userAccessPermissionsDTO.getUserId());
 				UserDeviceDTO userDeviceDTO = new UserDeviceDTO();
 				userDeviceDTO.setSerialNum(serialNum);
 				userDeviceDTO.setTargetType(userAccessPermissionsDTO.getTargetType());
-				userDeviceDTO.setUserId(userId);
+				userDeviceDTO.setUserId(userAccessPermissionsDTO.getUserId());
+				userDeviceDTO.setUserType(userAccessPermissionsDTO.getUserType());
 				userDeviceDTO.setUserFaceUrl(userAccessPermissionsDTO.getUserFace());
 				userDeviceDTO.setUserName(userAccessPermissionsDTO.getUserName());
 				userDeviceDTO.setDeviceFactory(deviceFactory);
+//				userDeviceDTO.setTenantId(userAccessPermissionsDTO.getTenantId());
 				if (userAccessPermissionsDTO.getEndTime() != null && userAccessPermissionsDTO.getBeginTime() != null) {
 					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 					userDeviceDTO.setStartTime(sdf.format(userAccessPermissionsDTO.getBeginTime()));
@@ -166,15 +166,16 @@ public class UserAccessPermissionsServiceImpl extends BaseServiceImpl<UserAccess
 	}
 
 	@Override
-	public R deleteFace(UserAccessPermissionsDTO userAccessPermissionsDTO) {
-		String userId = userAccessPermissionsDTO.getUserType() + userAccessPermissionsDTO.getUserId();
-		List<UserAccessPermissions> permissionsList = this.listByUser(userAccessPermissionsDTO.getUserId(), userAccessPermissionsDTO.getUserType());
+	public R deleteFace(String userId, String userType) {
+		List<UserAccessPermissions> permissionsList = this.listByUser(userId, userType);
 		for(UserAccessPermissions permissions : permissionsList){
 			String deviceSerialNum = permissions.getDeviceSerialNum();
 			UserDeviceDTO userDeviceDTO = new UserDeviceDTO();
 			userDeviceDTO.setSerialNum(deviceSerialNum);
 			userDeviceDTO.setUserId(userId);
+			userDeviceDTO.setUserType(userType);
 			userDeviceDTO.setDeviceFactory(permissions.getDeviceFactory());
+			userDeviceDTO.setUserName(permissions.getUserName());
 			doorDeviceButtClient.deleteFace(userDeviceDTO);
 		}
 		return R.status(true);

+ 6 - 6
blade-service/third/src/main/java/org/springblade/third/doordevice/feign/QLinClient.java

@@ -84,7 +84,7 @@ public class QLinClient implements IQLinClient {
 			instructPublishLog.setStatus(OperationConstant.TWO);
 			if(addSuccess){
 				instructPublishLog.setHandleStatus(OperationConstant.TWO);
-				if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+				if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 					instructPublishLog.setErrorMsg("添加/更新服务员成功");
 					resultBean = R.success("添加服务员成功");
 				}else{
@@ -93,7 +93,7 @@ public class QLinClient implements IQLinClient {
 				}
 			}else{
 				instructPublishLog.setHandleStatus(OperationConstant.THREE);
-				if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+				if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 					instructPublishLog.setErrorMsg("添加/更新服务员失败");
 					resultBean = R.fail("添加服务员失败");
 				}else{
@@ -141,7 +141,7 @@ public class QLinClient implements IQLinClient {
 		instructPublishLog.setSerialNumber(device.getSerialNum());
 		if(deleteSuccess){
 			instructPublishLog.setHandleStatus(OperationConstant.TWO);
-			if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+			if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 				instructPublishLog.setErrorMsg("删除服务员成功");
 				resultBean = R.success("删除服务员成功");
 			}else{
@@ -150,7 +150,7 @@ public class QLinClient implements IQLinClient {
 			}
 		}else{
 			instructPublishLog.setHandleStatus(OperationConstant.THREE);
-			if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+			if(qLinUser.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 				instructPublishLog.setErrorMsg("删除服务员失败");
 				resultBean = R.fail("删除服务员失败");
 			}else{
@@ -189,7 +189,7 @@ public class QLinClient implements IQLinClient {
 		instructPublishLog.setStatus(OperationConstant.TWO);
 		if(deleteSuccess){
 			instructPublishLog.setHandleStatus(OperationConstant.TWO);
-			if(qLinUserDevice.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+			if(qLinUserDevice.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 				instructPublishLog.setErrorMsg("删除服务员人脸权限成功");
 				resultBean = R.success("删除服务员人脸权限成功");
 			}else{
@@ -198,7 +198,7 @@ public class QLinClient implements IQLinClient {
 			}
 		}else{
 			instructPublishLog.setHandleStatus(OperationConstant.THREE);
-			if(qLinUserDevice.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_NUMBER_FLAG.getValue())){
+			if(qLinUserDevice.getUserId().startsWith(CommonConstant.UserFlag.SERVER_USER_FLAG.getValue())){
 				instructPublishLog.setErrorMsg("删除服务员人脸权限失败");
 				resultBean = R.fail("删除服务员人脸权限失败");
 			}else{

+ 11 - 10
blade-service/third/src/main/java/org/springblade/third/doordevice/provider/impl/ZHProvider.java

@@ -65,7 +65,7 @@ public class ZHProvider implements IDoorDeviceService {
 		JSONArray list = new JSONArray();
 		JSONObject listData = new JSONObject();
 		listData.put("Name", userDeviceDTO.getUserName());
-		listData.put("FaceId", userDeviceDTO.getUserId());
+		listData.put("FaceId", userDeviceDTO.getUserType() + userDeviceDTO.getUserId());
 		listData.put("Enable", 1);
 		listData.put("ScheduleType", 0);
 		listData.put("WiegandAssignType", 0);
@@ -100,8 +100,8 @@ public class ZHProvider implements IDoorDeviceService {
 		//设备指令Data更新
 		String listName = serialNum + "_list";
 		this.redisTemplate.opsForList().leftPush(listName, request.toJSONString());
-		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), num, ZHConstant.I8H.add_user_face.getDesc(),
-			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null);
+		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), userDeviceDTO.getUserName(), userDeviceDTO.getUserType(), num, ZHConstant.I8H.add_user_face.getDesc(),
+			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null, userDeviceDTO.getTenantId());
 		return R.status(true);
 	}
 
@@ -120,8 +120,9 @@ public class ZHProvider implements IDoorDeviceService {
 		JSONArray list = new JSONArray();
 		JSONObject listData = new JSONObject();
 		listData.put("Name", userDeviceDTO.getUserName());
-		listData.put("SrcFaceId", userDeviceDTO.getUserId());
-		listData.put("Face", userDeviceDTO.getUserId());
+		listData.put("SrcFaceId", userDeviceDTO.getUserType() + userDeviceDTO.getUserId());
+		listData.put("FaceId", userDeviceDTO.getUserType() + userDeviceDTO.getUserId());
+		listData.put("NeedModifyFacePic", 1); //1表示允许修改图片,0表示不修改图片
 		listData.put("Enable", 1);
 		try {
 			URL url = null;
@@ -154,8 +155,8 @@ public class ZHProvider implements IDoorDeviceService {
 		//设备指令Data更新
 		String listName = serialNum + "_list";
 		this.redisTemplate.opsForList().leftPush(listName, request.toJSONString());
-		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), num, ZHConstant.I8H.update_user_face.getDesc(),
-			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null);
+		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), userDeviceDTO.getUserName(), userDeviceDTO.getUserType(), num, ZHConstant.I8H.update_user_face.getDesc(),
+			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null, userDeviceDTO.getTenantId());
 		return R.status(true);
 	}
 
@@ -172,7 +173,7 @@ public class ZHProvider implements IDoorDeviceService {
 		}
 		JSONObject request = new JSONObject();
 		JSONObject data = new JSONObject();
-		data.put("FaceId", userDeviceDTO.getUserId());
+		data.put("FaceId", userDeviceDTO.getUserType() + userDeviceDTO.getUserId());
 		request.put("Data", data);
 		request.put("Type", ZHConstant.I8H.delete_user_face.getType());
 		request.put("Command", ZHConstant.I8H.delete_user_face.getCommand());
@@ -182,8 +183,8 @@ public class ZHProvider implements IDoorDeviceService {
 		//设备指令Data更新
 		String listName = serialNum + "_list";
 		this.redisTemplate.opsForList().leftPush(listName, request.toJSONString());
-		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), num, ZHConstant.I8H.delete_user_face.getDesc(),
-			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null);
+		authorizeRecordsClient.generateAuthRecord(serialNum, userDeviceDTO.getUserId(), userDeviceDTO.getUserName(), userDeviceDTO.getUserType(), num, ZHConstant.I8H.delete_user_face.getDesc(),
+			JSONObject.toJSONString(userDeviceDTO), CommonConstant.SmartDeviceType.DOOR_DEVICE.getValue(), null, userDeviceDTO.getTenantId());
 		return R.status(true);
 	}
 

+ 29 - 32
blade-service/third/src/main/java/org/springblade/third/zongheng/handler/FrmFacePictureHandler.java

@@ -34,6 +34,8 @@ public class FrmFacePictureHandler implements IDeviceEndianCommandHandler{
 		if(list.size() > 0){
 			AuthorizeRecords authorizeRecords = list.get(0);
 			authorizeRecords.setAuthRespData(responseData.toString());
+			//更新用户人脸权限
+			AuthorizeRecordsDTO authorizeRecordsDTO = Objects.requireNonNull(BeanUtil.copy(authorizeRecords, AuthorizeRecordsDTO.class));
 			if(authorizeRecords.getAuthCmd().equals(ZHConstant.I8H.add_user_face.getDesc())){
 				try{
 					JSONObject data = responseData.getJSONObject("Data");
@@ -41,41 +43,39 @@ public class FrmFacePictureHandler implements IDeviceEndianCommandHandler{
 					JSONObject resultData = resultList.getJSONObject(0);
 					Integer result = resultData.getInteger("Result");
 					if(result == 0){
-						authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
-						authorizeRecords.setAuthRespMsg("人脸新增入库成功");
-						//更新用户人脸权限
-						AuthorizeRecordsDTO authorizeRecordsDTO = Objects.requireNonNull(BeanUtil.copy(authorizeRecords, AuthorizeRecordsDTO.class));
-						userAccessPermissionsClient.generateUserAccessPermissions(authorizeRecordsDTO);
+						authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
+						authorizeRecordsDTO.setAuthRespMsg("人脸新增入库成功");
 					}else{
-						authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
+						authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
 						switch (result){
 							case 2:
-								authorizeRecords.setAuthRespMsg("人脸库已满");
+								authorizeRecordsDTO.setAuthRespMsg("人脸库已满");
 								break;
 							case 3:
-								authorizeRecords.setAuthRespMsg("人脸分组不存在");
+								authorizeRecordsDTO.setAuthRespMsg("人脸分组不存在");
 								break;
 							case 4:
-								authorizeRecords.setAuthRespMsg("人脸 ID 冲突");
+								authorizeRecordsDTO.setAuthRespMsg("人脸 ID 冲突");
 								break;
 							case 5:
-								authorizeRecords.setAuthRespMsg("图片太大,要求(1920*1080)");
+								authorizeRecordsDTO.setAuthRespMsg("图片太大,要求(1920*1080)");
 								break;
 							case 6:
-								authorizeRecords.setAuthRespMsg("未检测到人脸");
+								authorizeRecordsDTO.setAuthRespMsg("未检测到人脸");
 								break;
 							case 7:
-								authorizeRecords.setAuthRespMsg("模板格式错误");
+								authorizeRecordsDTO.setAuthRespMsg("模板格式错误");
 								break;
 							default:
-								authorizeRecords.setAuthRespMsg("未知人脸入库异常");
+								authorizeRecordsDTO.setAuthRespMsg("未知人脸入库异常");
 						}
 					}
 				}catch (Exception e){
 					e.printStackTrace();
-					authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
-					authorizeRecords.setAuthRespMsg("未知人脸更新异常");
+					authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
+					authorizeRecordsDTO.setAuthRespMsg("未知人脸更新异常");
 				}
+				userAccessPermissionsClient.generateUserAccessPermissions(authorizeRecordsDTO);
 			}else if(authorizeRecords.getAuthCmd().equals(ZHConstant.I8H.update_user_face.getDesc())){
 				try{
 					JSONObject data = responseData.getJSONObject("Data");
@@ -83,40 +83,37 @@ public class FrmFacePictureHandler implements IDeviceEndianCommandHandler{
 					JSONObject resultData = resultList.getJSONObject(0);
 					Integer result = resultData.getInteger("Result");
 					if(result == 0){
-						authorizeRecords.setAuthRespMsg("人脸更新入库成功");
-						authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
-						//更新用户人脸权限
-						AuthorizeRecordsDTO authorizeRecordsDTO = Objects.requireNonNull(BeanUtil.copy(authorizeRecords, AuthorizeRecordsDTO.class));
-						userAccessPermissionsClient.generateUserAccessPermissions(authorizeRecordsDTO);
+						authorizeRecordsDTO.setAuthRespMsg("人脸更新入库成功");
+						authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
 					}else{
-						authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
+						authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
 						switch (result){
 							case 2:
-								authorizeRecords.setAuthRespMsg("人脸分组不存在");
+								authorizeRecordsDTO.setAuthRespMsg("人脸分组不存在");
 								break;
 							case 3:
-								authorizeRecords.setAuthRespMsg("人脸 ID 冲突");
+								authorizeRecordsDTO.setAuthRespMsg("人脸 ID 冲突");
 								break;
 							default:
-								authorizeRecords.setAuthRespMsg("未知人脸更新异常");
+								authorizeRecordsDTO.setAuthRespMsg("未知人脸更新异常");
 						}
 					}
 				}catch (Exception e){
 					e.printStackTrace();
-					authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
-					authorizeRecords.setAuthRespMsg("未知人脸更新异常");
+					authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
+					authorizeRecordsDTO.setAuthRespMsg("未知人脸更新异常");
 				}
+				userAccessPermissionsClient.generateUserAccessPermissions(authorizeRecordsDTO);
 			}else if(authorizeRecords.getAuthCmd().equals(ZHConstant.I8H.delete_user_face.getDesc())){
 				Integer result = responseData.getInteger("Result");
 				if(result == 0){
-					authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
-					authorizeRecords.setAuthRespMsg("人脸删除成功");
-					AuthorizeRecordsDTO authorizeRecordsDTO = Objects.requireNonNull(BeanUtil.copy(authorizeRecords, AuthorizeRecordsDTO.class));
-					userAccessPermissionsClient.deleteUserAccessPermissions(authorizeRecordsDTO);
+					authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.SUCCESS.getValue());
+					authorizeRecordsDTO.setAuthRespMsg("人脸删除成功");
 				}else{
-					authorizeRecords.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
-					authorizeRecords.setAuthRespMsg("未知删除人脸异常");
+					authorizeRecordsDTO.setAuthStatus(CommonConstant.AuthStatus.FAIL.getValue());
+					authorizeRecordsDTO.setAuthRespMsg("未知删除人脸异常");
 				}
+				userAccessPermissionsClient.deleteUserAccessPermissions(authorizeRecordsDTO);
 			}
 			return R.status(authorizeRecordsClient.update(authorizeRecords));
 		}