소스 검색

1、第三方小区注册
2、门禁设备注册到第三方

wenxgdev 5 년 전
부모
커밋
afdbad5be0

+ 4 - 2
blade-service/community/src/main/java/org/springblade/community/controller/ResidentialController.java

@@ -154,8 +154,10 @@ public class ResidentialController extends BladeController {
 		residential.setOrgPosition(agency.getOrgPosition());
 		boolean isNewResidential = residential.getId() == null? true : false;
 		boolean saveOrUpdate = residentialService.saveOrUpdateResidential(residential);
-		if(saveOrUpdate && isNewResidential){ //新添加的小区需要下发指令
-//			doorDeviceButtClient.addUser()
+		if(saveOrUpdate && isNewResidential){ //注册小区给第三方对接系统
+			R result = doorDeviceButtClient.addResidential(residential);
+			residential.setThirdResidentialId(Func.toStr(result.getData()));
+			residentialService.saveOrUpdateResidential(residential);
 		}
 		return R.status(true);
 	}

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

@@ -47,6 +47,8 @@ import org.springblade.device.wrapper.DoorDeviceWrapper;
 import org.springblade.device.service.IDoorDeviceService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -134,8 +136,12 @@ public class DoorDeviceController extends BladeController {
 		residential.setId(doorDevice.getResidentialId());
 		ResidentialVO residentialVO = residentialClient.detail(residential);
 		doorDevice.setOrgPosition(residentialVO.getOrgPosition());
-
-		return R.status(doorDeviceService.saveOrUpdate(doorDevice));
+		boolean isNewDoorDevice = doorDevice.getId() == null? true : false;
+		boolean saveOrUpdate = doorDeviceService.saveOrUpdate(doorDevice);
+		if(saveOrUpdate && isNewDoorDevice){
+			doorDeviceButtClient.addDevices(Arrays.asList(doorDevice));
+		}
+		return R.status(true);
 	}
 
 

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

@@ -324,10 +324,10 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
 					if (houseUser.getFaceEnable() == 2) {
 						// 人脸已禁用
 					} else {
-						pushFace(houseUser, 1);//2代表更新人脸
+						pushFace(houseUser, 1);
 					}
 				} else {
-					pushFace(houseUser, 1);//1代表新下发人脸
+					pushFace(houseUser, 1);
 				}
 
 			} else {//审核不通过
@@ -381,10 +381,14 @@ public class ApplyUserServiceImpl extends BaseServiceImpl<ApplyUserMapper, Apply
 		return user;
 	}
 
+	/**
+	 *
+	 * @param user
+	 * @param operType 1:新增编辑人脸、2删除人脸
+	 */
 	private void pushFace(HouseUser user, Integer operType) {
 
 		if (StringUtils.isNotBlank(user.getImageUri())) {
-
 			Conf searchConf = new Conf();
 			searchConf.setConfToken("file.server.host");
 			Conf fileConf = this.confClient.detail(searchConf);

+ 16 - 2
blade-service/third/src/main/java/org/springblade/third/doordevice/feign/DoorDeviceButtClient.java

@@ -5,6 +5,7 @@ import lombok.RequiredArgsConstructor;
 import org.springblade.common.constant.DeviceConstant;
 import org.springblade.community.entity.Residential;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.device.dto.UserInfoDto;
 import org.springblade.device.entity.DoorDevice;
 import org.springblade.third.doordevice.provider.impl.JVTMqProvider;
@@ -80,13 +81,26 @@ public class DoorDeviceButtClient implements IDoorDeviceButtClient {
 	}
 
 	@Override
+	@PostMapping("/addResidential")
 	public R addResidential(Residential residential) {
-		return null;
+		Assert.notNull(residential.getId(),"the params [residentialId] is required");
+		return qinLinMqProvider.addResidential(residential.getName());
 	}
 
 	@Override
+	@PostMapping("/addDevices")
 	public R addDevices(List<DoorDevice> doorDeviceList) {
-		return null;
+		if(doorDeviceList != null && doorDeviceList.size() > 0){
+			for(DoorDevice doorDevice : doorDeviceList){
+				switch (doorDevice.getDeviceFactory()){
+					case DeviceConstant.DEVICE_FACTORY_QINLIN://亲邻设备注册
+						qinLinMqProvider.addDevice(doorDevice);
+				}
+			}
+			return R.success("注册设备成功");
+		}else{
+			return R.success("无设备需要注册到第三方");
+		}
 	}
 
 }

+ 3 - 3
blade-service/third/src/main/java/org/springblade/third/doordevice/provider/IDoorDeviceService.java

@@ -7,19 +7,19 @@ import org.springblade.device.entity.DoorDevice;
  * @author lidexi
  * @date 2021/5/24 17:09
  */
-public interface IDoorDeviceService<T> {
+public interface IDoorDeviceService {
 
 	/**
 	 * 新增设备
 	 * @param doorDevice
 	 * @return
 	 */
-	R addDevice(DoorDevice doorDevice, T t);
+	R addDevice(DoorDevice doorDevice);
 
 	/**
 	 * 删除设备
 	 * @param doorDevice
 	 * @return
 	 */
-	R deleteDevice(DoorDevice doorDevice, T t);
+	R deleteDevice(DoorDevice doorDevice);
 }

+ 12 - 6
blade-service/third/src/main/java/org/springblade/third/doordevice/provider/impl/QinLinMqProvider.java

@@ -21,15 +21,18 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author lidexi
  * @date 2021/5/24 17:23
  */
 @Service
-public class QinLinMqProvider implements IQinLinButtService<String>, IOpenDoorService<UserInfoDto>, IDoorDeviceService<QLinCommunityDevices>, IDeviceUserService<UserInfoDto> {
+public class QinLinMqProvider implements IQinLinButtService<String>, IOpenDoorService<UserInfoDto>, IDoorDeviceService, IDeviceUserService<UserInfoDto> {
 
 	@Autowired
 	private IQinlinApiLogService qinlinApiLogService;
@@ -109,8 +112,11 @@ public class QinLinMqProvider implements IQinLinButtService<String>, IOpenDoorSe
 	}
 
 	@Override
-	public R addDevice(DoorDevice doorDevice, QLinCommunityDevices qLinCommunityDevices) {
+	public R addDevice(DoorDevice doorDevice) {
+		QLinCommunityDevices qLinCommunityDevices = new QLinCommunityDevices();
 		try{
+			qLinCommunityDevices.setCommunityId(doorDevice.getResidentialId());
+			qLinCommunityDevices.setMac(Arrays.asList(doorDevice.getMacAddress()));
 			ApiResultBean apiResultBean = qinLinHttpUtil.addDevices(qLinCommunityDevices);
 			QinlinApiLog log = BeanUtil.toBean(apiResultBean, QinlinApiLog.class);
 			log.setReqData(JsonUtil.toJson(qLinCommunityDevices));
@@ -118,23 +124,23 @@ public class QinLinMqProvider implements IQinLinButtService<String>, IOpenDoorSe
 			log.setMethod("新增设备");
 			qinlinApiLogService.recordApiLog(log);
 			if(apiResultBean.getSuccess()){
-				return R.success("新增小区成功");
+				return R.success("注册设备成功");
 			}else{
 				return R.fail(apiResultBean.getMessage());
 			}
 		}catch (Exception e){
 			QinlinApiLog log = new QinlinApiLog();
-			log.setMethod("新增设备");
+			log.setMethod("注册设备成功");
 			log.setReqData(JsonUtil.toJson(qLinCommunityDevices));
 			log.setCode(-1);
 			log.setMessage(e.getMessage());
 			qinlinApiLogService.recordApiLog(log);
-			return R.fail("新增小区异常");
+			return R.fail("注册设备异常");
 		}
 	}
 
 	@Override
-	public R deleteDevice(DoorDevice doorDevice, QLinCommunityDevices qLinCommunityDevices) {
+	public R deleteDevice(DoorDevice doorDevice) {
 		return null;
 	}
 

+ 0 - 1
blade-service/third/src/main/java/org/springblade/third/open/videocloud/MediaServerWebHookController.java

@@ -9,7 +9,6 @@ import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.device.entity.VideoCloudDevice;
 import org.springblade.device.feign.IVideoCloudDeviceClient;
 import org.springblade.third.service.IThirdVideoCloudDeviceService;
-//import org.springblade.websocket.model.ChatMessage;
 import org.springblade.websocket.model.ChatMessage;
 import org.springframework.messaging.simp.SimpMessageSendingOperations;
 import org.springframework.web.bind.annotation.PostMapping;