Kaynağa Gözat

1、小程序远程开门

slowslo 4 yıl önce
ebeveyn
işleme
95d26833b1
17 değiştirilmiş dosya ile 118 ekleme ve 43 silme
  1. 2 2
      blade-service-api/device-api/src/main/java/org/springblade/device/feign/DoorDeviceClientFallback.java
  2. 2 2
      blade-service-api/device-api/src/main/java/org/springblade/device/feign/IDoorDeviceClient.java
  3. 2 8
      blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/AccessRecord.java
  4. 5 0
      blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/AccessStatistics.java
  5. 5 0
      blade-service-api/person-api/src/main/java/org/springblade/person/feign/HouseUserClientFallback.java
  6. 3 0
      blade-service-api/person-api/src/main/java/org/springblade/person/feign/IHouseUserClient.java
  7. 1 1
      blade-service/device/src/main/java/org/springblade/device/controller/DoorDeviceController.java
  8. 3 3
      blade-service/device/src/main/java/org/springblade/device/feign/DoorDeviceClient.java
  9. 1 1
      blade-service/device/src/main/java/org/springblade/device/service/IDoorDeviceService.java
  10. 1 1
      blade-service/device/src/main/java/org/springblade/device/service/impl/DoorDeviceServiceImpl.java
  11. 0 1
      blade-service/estate/src/main/java/org/springblade/estate/controller/AccessRecordController.java
  12. 17 16
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/AccessRecordServiceImpl.java
  13. 22 0
      blade-service/person/src/main/java/org/springblade/person/feign/HouseUserClient.java
  14. 2 2
      blade-service/third/src/main/java/org/springblade/datamigration/controller/EstateController.java
  15. 3 3
      blade-service/third/src/main/java/org/springblade/third/zongheng/handler/FaceCompareEventHandler.java
  16. 33 2
      community-app-gateway/src/main/java/org/springblade/app/controller/MemberController.java
  17. 16 1
      community-app-gateway/src/main/java/org/springblade/app/dto/OpenDoorDto.java

+ 2 - 2
blade-service-api/device-api/src/main/java/org/springblade/device/feign/DoorDeviceClientFallback.java

@@ -92,7 +92,7 @@ public class DoorDeviceClientFallback implements IDoorDeviceClient {
 	}
 
 	@Override
-	public DoorDevice getBySerialNum(String serialNum) {
+	public DoorDeviceVO getBySerialNum(String serialNum) {
 		return null;
 	}
 
@@ -107,7 +107,7 @@ public class DoorDeviceClientFallback implements IDoorDeviceClient {
 	}
 
 	@Override
-	public R remoteOpenDoor(String userId, String userName, Integer userType, String serialNum, String factory, boolean isOpen) {
+	public R remoteOpenDoor(String userId, String userName, String userType, String serialNum, String factory, boolean isOpen) {
 		return null;
 	}
 

+ 2 - 2
blade-service-api/device-api/src/main/java/org/springblade/device/feign/IDoorDeviceClient.java

@@ -92,7 +92,7 @@ public interface IDoorDeviceClient  {
 	List<DoorDeviceVO> getListByAgencyAndResidential(@PathVariable("agencyId") Long agencyId,@PathVariable("residentialId") Long residentialId);
 
 	@GetMapping("/getBySerialNum")
-	DoorDevice getBySerialNum(@RequestParam String serialNum);
+	DoorDeviceVO getBySerialNum(@RequestParam String serialNum);
 
 	@GetMapping("/heartbeat")
 	R heartbeat(@RequestParam String serialNum);
@@ -101,7 +101,7 @@ public interface IDoorDeviceClient  {
 	List<DoorDevice> getListByAgencyId(@RequestParam Long agencyId);
 
 	@PostMapping("/remoteOpenDoor")
-	R remoteOpenDoor(@RequestParam String userId, @RequestParam String userName, @RequestParam Integer userType, @RequestParam String serialNum, @RequestParam String factory, @RequestParam boolean isOpen);
+	R remoteOpenDoor(@RequestParam String userId, @RequestParam String userName, @RequestParam String userType, @RequestParam String serialNum, @RequestParam String factory, @RequestParam boolean isOpen);
 
 	@PostMapping("/listByIds")
 	List<DoorDevice> listByIds(@RequestParam(value = "ids") String ids);

+ 2 - 8
blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/AccessRecord.java

@@ -119,12 +119,6 @@ public class AccessRecord extends BaseEntity {
 	*/
 		@ApiModelProperty(value = "设备序列号")
 		private String serialNum;
-	/**
-	* 机构路径
-	*/
-		@ApiModelProperty(value = "机构路径")
-		private String orgPosition;
-
 	/**
 	 * 设备名称
 	 */
@@ -149,9 +143,9 @@ public class AccessRecord extends BaseEntity {
 	@ApiModelProperty(value = "失败原因")
 	private String failReason;
 
-	//2:企业员工,3服务人员,4访客,5管理员
+	//ZH_:住户,QYYG_:企业员工,FWY_:服务员,FK_:访客,ADMIN_:管理员
 	@ApiModelProperty(value = "用户类型")
-	private Integer userType;
+	private String userType;
 
 
 }

+ 5 - 0
blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/AccessStatistics.java

@@ -49,6 +49,11 @@ public class AccessStatistics extends TenantEntity {
 		@JsonFormat(pattern = "yyyy-MM-dd")
 		@ApiModelProperty(value = "日期")
 		private Date date;
+	/**
+	 * 常住人员通行数量
+	 */
+	@ApiModelProperty(value = "常住人员通行数量")
+	private Integer houseUserCnt;
 	/**
 	* 常驻人员通行数量
 	*/

+ 5 - 0
blade-service-api/person-api/src/main/java/org/springblade/person/feign/HouseUserClientFallback.java

@@ -110,4 +110,9 @@ public class HouseUserClientFallback implements IHouseUserClient {
         return 0;
     }
 
+	@Override
+	public List<HouseUser> getListByMember(Long memberId, Long residentialId) {
+		return null;
+	}
+
 }

+ 3 - 0
blade-service-api/person-api/src/main/java/org/springblade/person/feign/IHouseUserClient.java

@@ -122,4 +122,7 @@ public interface IHouseUserClient {
 	@PostMapping("/count")
 	int count(@Valid @RequestBody HouseUser houseUser);
 
+	@GetMapping("/getListByMember")
+	List<HouseUser> getListByMember(@RequestParam(value = "memberId") Long memberId, @RequestParam(value = "residentialId", required = false) Long residentialId);
+
 }

+ 1 - 1
blade-service/device/src/main/java/org/springblade/device/controller/DoorDeviceController.java

@@ -182,7 +182,7 @@ public class DoorDeviceController extends BladeController {
 		if(doorDevice == null){
 			return fail("设备不存在");
 		}
-		return doorDeviceService.remoteOpenDoor(CommonConstant.UserFlag.ADMIN_FLAG.getValue() + String.valueOf(bladeUser.getUserId()), bladeUser.getUserName(), CommonConstant.UserType.ADMIN.getType().intValue(), doorDevice.getSerialNum(), doorDevice.getDeviceFactory(), isOpen);
+		return doorDeviceService.remoteOpenDoor(CommonConstant.UserFlag.ADMIN_FLAG.getValue() + String.valueOf(bladeUser.getUserId()), bladeUser.getUserName(), CommonConstant.UserFlag.ADMIN_FLAG.getValue(), doorDevice.getSerialNum(), doorDevice.getDeviceFactory(), isOpen);
 	}
 	/**
 	 * 获取门禁设备的经纬度坐标集合

+ 3 - 3
blade-service/device/src/main/java/org/springblade/device/feign/DoorDeviceClient.java

@@ -186,9 +186,9 @@ public class DoorDeviceClient implements IDoorDeviceClient {
 
 	@Override
 	@GetMapping("/getBySerialNum")
-	public DoorDevice getBySerialNum(@RequestParam String serialNum) {
+	public DoorDeviceVO getBySerialNum(@RequestParam String serialNum) {
 		DoorDevice doorDevice = this.doorDeviceService.getBySerialNum(serialNum);
-		return doorDevice;
+		return DoorDeviceWrapper.build().entityVO(doorDevice);
 	}
 
 	@Override
@@ -206,7 +206,7 @@ public class DoorDeviceClient implements IDoorDeviceClient {
 
 	@Override
 	@PostMapping("/remoteOpenDoor")
-	public R remoteOpenDoor(String userId, String userName, Integer userType, String serialNum, String factory, boolean isOpen) {
+	public R remoteOpenDoor(String userId, String userName, String userType, String serialNum, String factory, boolean isOpen) {
 		return this.doorDeviceService.remoteOpenDoor(userId, userName, userType, serialNum, factory, isOpen);
 	}
 

+ 1 - 1
blade-service/device/src/main/java/org/springblade/device/service/IDoorDeviceService.java

@@ -45,6 +45,6 @@ public interface IDoorDeviceService extends BaseService<DoorDevice> {
 
 	R heartbeat(String serialNum);
 
-	R remoteOpenDoor(String userId, String userName, Integer userType, String serialNum, String factory, boolean isOpen);
+	R remoteOpenDoor(String userId, String userName, String userType, String serialNum, String factory, boolean isOpen);
 
 }

+ 1 - 1
blade-service/device/src/main/java/org/springblade/device/service/impl/DoorDeviceServiceImpl.java

@@ -75,7 +75,7 @@ public class DoorDeviceServiceImpl extends BaseServiceImpl<DoorDeviceMapper, Doo
 	}
 
 	@Override
-	public R remoteOpenDoor(String userId, String userName, Integer userType, String serialNum, String factory, boolean isOpen) {
+	public R remoteOpenDoor(String userId, String userName, String userType, String serialNum, String factory, boolean isOpen) {
 		//创建开门记录
 		AccessRecordDTO accessRecord = new AccessRecordDTO();
 		accessRecord.setUserId(userId);

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

@@ -171,7 +171,6 @@ public class AccessRecordController extends BladeController {
 				ResidentialVO detail = residentialClient.detail(searchResidential);
 				if (detail != null) {
 					accessRecord.setResidentialId(detail.getId());
-					accessRecord.setOrgPosition(detail.getOrgPosition());
 					accessRecord.setAgencyId(detail.getAgencyId());
 					accessRecord.setAgencyName(detail.getAgencyName());
 					accessRecord.setResidentialName(detail.getName());

+ 17 - 16
blade-service/estate/src/main/java/org/springblade/estate/service/impl/AccessRecordServiceImpl.java

@@ -43,6 +43,9 @@ import org.springblade.estate.vo.AccessRecordVO;
 import org.springblade.estate.mapper.AccessRecordMapper;
 import org.springblade.estate.service.IAccessRecordService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.person.entity.HouseUser;
+import org.springblade.person.feign.IHouseUserClient;
+import org.springblade.person.vo.HouseUserVO;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -79,6 +82,8 @@ public class AccessRecordServiceImpl extends BaseServiceImpl<AccessRecordMapper,
 	private IUserClient userClient;
 	@Autowired
 	private IAccessStatisticsService accessStatisticsService;
+	@Autowired
+	private IHouseUserClient houseUserClient;
 
 	@Override
 	public IPage<AccessRecordVO> selectAccessRecordPage(IPage<AccessRecordVO> page, AccessRecordVO accessRecord) {
@@ -111,20 +116,13 @@ public class AccessRecordServiceImpl extends BaseServiceImpl<AccessRecordMapper,
 		Agency agency = agencyClient.getById(doorDevice.getAgencyId());
 		Residential residential = residentialClient.getById(doorDevice.getResidentialId());
 		String userId = accessRecord.getUserId();
-		if(accessRecord.getUserType().intValue() == CommonConstant.UserType.STAFF.getType().intValue()){
-			Staff staff = staffClient.getById(Long.parseLong(userId.substring(5)));
+		if(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue().equals(accessRecord.getUserType())){
+			Staff staff = staffClient.getById(Long.parseLong(userId));
 			Enterprise enterprise = enterpriseClient.getById(staff.getEnterpriseId());
 			accessRecord.setEnterpriseId(staff.getEnterpriseId());
 			accessRecord.setEnterpriseName(enterprise.getEnterpriseName());
-			accessRecord.setUserName(staff.getRealName());
-			accessRecord.setUserId(userId);
-		}else if(accessRecord.getUserType().intValue() == CommonConstant.UserType.ADMIN.getType().intValue()){
-			R<User> userR = userClient.userInfoById(Long.parseLong(userId.substring(6)));
-			User user = userR.getData();
-			accessRecord.setUserId(userId);
-			accessRecord.setUserName(user.getRealName());
-		}else if(accessRecord.getUserType().intValue() == CommonConstant.UserType.GUEST.getType().intValue()){
-			GuestRecord guestRecord = guestRecordClient.getById(Long.parseLong(userId.substring(3)));
+		}else if(CommonConstant.UserFlag.GUEST_FLAG.getValue().equals(accessRecord.getUserType())){
+			GuestRecord guestRecord = guestRecordClient.getById(Long.parseLong(userId));
 			Enterprise enterprise = enterpriseClient.getById(guestRecord.getEnterpriseId());
 			if(enterprise != null){
 				accessRecord.setEnterpriseId(guestRecord.getEnterpriseId());
@@ -150,19 +148,23 @@ public class AccessRecordServiceImpl extends BaseServiceImpl<AccessRecordMapper,
 			String date = sdf.format(accessRecord.getCreateTime());
 			AccessStatistics accessStatistics = accessStatisticsService.getByDate(date, accessRecord.getTenantId());
 			if(accessStatistics != null){
-				if(accessRecord.getUserType().intValue() == CommonConstant.UserType.STAFF.getType().intValue()){
+				if(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue().equals(accessRecord.getUserType())){
 					accessStatistics.setStaffCnt(accessStatistics.getStaffCnt() + 1);
-				}else if(accessRecord.getUserType().intValue() == CommonConstant.UserType.GUEST.getType().intValue()){
+				}else if(CommonConstant.UserFlag.GUEST_FLAG.getValue().equals(accessRecord.getUserType())){
 					accessStatistics.setGuestCnt(accessStatistics.getGuestCnt() + 1);
+				}else if(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue().equals(accessRecord.getUserType())){
+					accessStatistics.setHouseUserCnt(accessStatistics.getHouseUserCnt() + 1);
 				}
 			}else{
 				accessStatistics = new AccessStatistics();
 				accessStatistics.setDate(DateUtil.parse(date, "yyyy-MM-dd"));
 				accessStatistics.setTenantId(accessRecord.getTenantId());
-				if(accessRecord.getUserType().intValue() == CommonConstant.UserType.STAFF.getType().intValue()){
+				if(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue().equals(accessRecord.getUserType())){
 					accessStatistics.setStaffCnt(1);
-				}else if(accessRecord.getUserType().intValue() == CommonConstant.UserType.GUEST.getType().intValue()){
+				}else if(CommonConstant.UserFlag.GUEST_FLAG.getValue().equals(accessRecord.getUserType())){
 					accessStatistics.setGuestCnt(1);
+				}else if(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue().equals(accessRecord.getUserType())){
+					accessStatistics.setHouseUserCnt(1);
 				}
 			}
 			accessStatisticsService.statCount(accessStatistics);
@@ -223,7 +225,6 @@ public class AccessRecordServiceImpl extends BaseServiceImpl<AccessRecordMapper,
 		record.setDeviceAddress(doorDevice.getAddress());
 		record.setSerialNum(doorDevice.getSerialNum());
 		record.setDeviceId(doorDevice.getId());
-		record.setOrgPosition(residential.getOrgPosition());
 		record.setCommandSeq(commandSeq);
 		record.setTemperature(StringUtil.isNoneBlank(temperature) ? new BigDecimal(temperature).compareTo(BigDecimal.ZERO) == 1 ? temperature : null : null);
 		record.setOpenTime(openDate);

+ 22 - 0
blade-service/person/src/main/java/org/springblade/person/feign/HouseUserClient.java

@@ -9,12 +9,16 @@ import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 
 import javax.validation.Valid;
+
+import org.springblade.common.constant.CommonConstant;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.enterprise.entity.Staff;
+import org.springblade.estate.entity.ApplyUser;
+import org.springblade.estate.feign.IApplyUserClient;
 import org.springblade.person.dto.HouseUserDTO;
 import org.springblade.person.entity.HouseUser;
 import org.springblade.person.service.HouseUserService;
@@ -27,8 +31,10 @@ import org.springframework.cloud.openfeign.SpringQueryMap;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  *  client
@@ -46,6 +52,7 @@ public class HouseUserClient implements IHouseUserClient {
     private final HouseUserService houseUserService;
     private final IOrgPositionClient orgPositionClient;
     private final IConfClient confClient;
+    private final IApplyUserClient applyUserClient;
 
         /**
      * 详情
@@ -175,5 +182,20 @@ public class HouseUserClient implements IHouseUserClient {
 		return houseUserService.count(Condition.getQueryWrapper(houseUser));
     }
 
+	@Override
+	@GetMapping("/getListByMember")
+	public List<HouseUser> getListByMember(@RequestParam(value = "memberId") Long memberId, @RequestParam(value = "residentialId", required = false) Long residentialId) {
+		List<ApplyUser> applyUserList = applyUserClient.getListByMember(memberId, residentialId, null, CommonConstant.UserAuditStatus.pass.getValue());
+		List<HouseUser> userList = new ArrayList<>();
+		if(applyUserList.size() > 0){
+			List<Long> userIdList = applyUserList.stream().map(ApplyUser::getUserId).collect(Collectors.toList());
+			LambdaQueryWrapper<HouseUser> lambda = new LambdaQueryWrapper<>();
+			lambda.in(HouseUser::getId, userIdList);
+			userList = houseUserService.list(lambda);
+			return userList;
+		}
+		return userList;
+	}
+
 
 }

+ 2 - 2
blade-service/third/src/main/java/org/springblade/datamigration/controller/EstateController.java

@@ -98,11 +98,11 @@ public class EstateController {
 		applyUser.setIdCard(jsonObject.getStr("idCard"));
 		applyUser.setPassportImgUri(jsonObject.getStr("passportImgUri"));
 		applyUser.setEntryImgUri(jsonObject.getStr("entryImgUri"));
-		applyUser.setTel(jsonObject.getStr("tel"));
+		applyUser.setPhone(jsonObject.getStr("phone"));
 		applyUser.setSex(jsonObject.getInt("sex"));
 		applyUser.setCreateType(jsonObject.getInt("createType"));
 		applyUser.setCreateTime(jsonObject.getDate("createDate"));
-		applyUser.setImageUri(jsonObject.getStr("imageUri"));
+		applyUser.setFaceUrl(jsonObject.getStr("faceUrl"));
 		applyUser.setOldImageUri(jsonObject.getStr("oldImageUri"));
 		applyUser.setImageMd5(jsonObject.getStr("faceCode"));
 		applyUser.setRecordType(jsonObject.getInt("recordType"));

+ 3 - 3
blade-service/third/src/main/java/org/springblade/third/zongheng/handler/FaceCompareEventHandler.java

@@ -67,12 +67,12 @@ public class FaceCompareEventHandler implements IDeviceEndEventHandler{
 		accessRecord.setFaceUrl(faceUrl);
 		accessRecord.setTemperature(StringUtil.isNoneBlank(temperature) ? new BigDecimal(temperature).compareTo(BigDecimal.ZERO) == 1 ? temperature : null : null);
 		if(userId.startsWith(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue())){
-			accessRecord.setUserType(CommonConstant.UserType.STAFF.getType().intValue());
+			accessRecord.setUserType(CommonConstant.UserFlag.ENTERPRISE_STAFF_FLAG.getValue());
 		}else if(userId.startsWith(CommonConstant.UserFlag.ADMIN_FLAG.getValue())){
-			accessRecord.setUserType(CommonConstant.UserType.ADMIN.getType().intValue());
+			accessRecord.setUserType(CommonConstant.UserFlag.ADMIN_FLAG.getValue());
 		}
 		else if(userId.startsWith(CommonConstant.UserFlag.GUEST_FLAG.getValue())){
-			accessRecord.setUserType(CommonConstant.UserType.GUEST.getType().intValue());
+			accessRecord.setUserType(CommonConstant.UserFlag.GUEST_FLAG.getValue());
 		}
 		return accessRecordClient.generateAccessRecord(accessRecord);
 	}

+ 33 - 2
community-app-gateway/src/main/java/org/springblade/app/controller/MemberController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.math.NumberUtils;
+import org.springblade.app.dto.OpenDoorDto;
 import org.springblade.app.util.CommonUtil;
 import org.springblade.app.util.SendSms;
 import org.springblade.common.constant.CommonConstant;
@@ -22,7 +23,9 @@ import org.springblade.device.entity.DoorDevice;
 import org.springblade.device.feign.IDoorDeviceClient;
 import org.springblade.device.vo.DoorDeviceVO;
 import org.springblade.estate.entity.ApplyUser;
+import org.springblade.estate.entity.GuestRecord;
 import org.springblade.estate.feign.IApplyUserClient;
+import org.springblade.estate.feign.IGuestRecordClient;
 import org.springblade.estate.feign.IUserAccessPermissionsClient;
 import org.springblade.estate.vo.ApplyUserVO;
 import org.springblade.estate.vo.UserAccessPermissionsVO;
@@ -67,6 +70,7 @@ public class MemberController {
 	private final IDoorDeviceButtClient doorDeviceButtClient;
 	private final IConfClient confClient;
 	private final IUserAccessPermissionsClient userAccessPermissionsClient;
+	private final IGuestRecordClient guestRecordClient;
 
 	/**
 	 * 短信缓存名称
@@ -604,8 +608,8 @@ public class MemberController {
 	 *            }
 	 * @return ResultBean<hashMap> 返回结果
 	 */
-	@PostMapping(value = "/openDoor")
-	public Map<String, Object> openDoor(@RequestBody Map<String, String> map) {
+	@PostMapping(value = "/openDoorBak")
+	public Map<String, Object> openDoorBak(@RequestBody Map<String, String> map) {
 
 		Map<String, Object> hashMap = new HashMap<>();
 		//result_code:0-失败  1-成功
@@ -678,4 +682,31 @@ public class MemberController {
 		return hashMap;
 	}
 
+	/**
+	 * 功能描述: 一键开门
+	 *
+	 */
+	@PostMapping(value = "/openDoor")
+	public R openDoor(@RequestBody OpenDoorDto openDoorDto) {
+		Assert.notNull(openDoorDto.getMemberId(), "会员必传");
+		Assert.notNull(openDoorDto.getResidentialId(), "所在小区必传");
+		Assert.hasText(openDoorDto.getSerialNum(), "设备序列号必传");
+		Assert.hasText(openDoorDto.getDeviceFactory(), "设备厂商必传");
+		Assert.hasText(openDoorDto.getUserType(), "用户类型必传");
+		DoorDeviceVO doorDeviceVO = this.doorDeviceClient.getBySerialNum(openDoorDto.getSerialNum());
+		Assert.notNull(doorDeviceVO, "设备不存在");
+		if(CommonConstant.UserFlag.GUEST_FLAG.getValue().equals(openDoorDto.getUserType())){
+			GuestRecord guestRecord = guestRecordClient.getById(openDoorDto.getGuestId());
+			Assert.notNull(guestRecord, "访客记录不存在,请重新登记");
+			return doorDeviceClient.remoteOpenDoor(guestRecord.getId().toString(), guestRecord.getGuestName(), CommonConstant.UserFlag.GUEST_FLAG.getValue(), openDoorDto.getSerialNum(), openDoorDto.getDeviceFactory(), true);
+		}else if(CommonConstant.UserFlag.HOUSE_USER_FLAG.getValue().equals(openDoorDto.getUserType())){
+			List<HouseUser> houseUserList = houseUserClient.getListByMember(openDoorDto.getMemberId(), openDoorDto.getResidentialId());
+			Assert.notEmpty(houseUserList, "设备所在小区无住户");
+			HouseUser one = houseUserList.get(0);
+			return doorDeviceClient.remoteOpenDoor(one.getId().toString(), one.getName(), CommonConstant.UserFlag.GUEST_FLAG.getValue(), openDoorDto.getSerialNum(), openDoorDto.getDeviceFactory(), true);
+		}else{
+			return R.fail("非法用户类型,无法开门");
+		}
+	}
+
 }

+ 16 - 1
community-app-gateway/src/main/java/org/springblade/app/dto/OpenDoorDto.java

@@ -1,9 +1,24 @@
 package org.springblade.app.dto;
 
 import lombok.Data;
-import lombok.EqualsAndHashCode;
 
 @Data
 public class OpenDoorDto {
 	private static final long serialVersionUID = 1L;
+
+	private Long memberId;
+
+	private Long guestId;
+
+	private String serialNum;
+
+	private String deviceFactory;
+
+	private Long residentialId;
+
+	/**
+	 * ZH_ 住户
+	 * FK_ 访客
+	 */
+	private String userType;
 }