Browse Source

支持二维码开门

java110 4 years ago
parent
commit
1745de9e27

+ 3 - 0
java110-interface/src/main/java/com/java110/intf/job/IDataBusInnerServiceSMO.java

@@ -83,4 +83,7 @@ public interface IDataBusInnerServiceSMO {
      */
     @RequestMapping(value = "/customExchange", method = RequestMethod.POST)
     void customExchange(@RequestBody CustomBusinessDatabusDto customBusinessDatabusDto);
+
+    @RequestMapping(value = "/getQRcode", method = RequestMethod.POST)
+    ResultVo getQRcode(@RequestBody JSONObject reqJson);
 }

+ 17 - 0
service-common/src/main/java/com/java110/common/api/MachineApi.java

@@ -63,6 +63,23 @@ public class MachineApi {
         return machineOpenDoorBMOImpl.openDoor(reqJson);
     }
 
+    /**
+     * 设备二维码
+     *
+     * @param reqJson
+     * @return
+     * @serviceCode /machine/getQRcode
+     * @path /app/machine/getQRcode
+     */
+    @RequestMapping(value = "/getQRcode", method = RequestMethod.POST)
+    public ResponseEntity<String> getQRcode(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
+        Assert.hasKeyAndValue(reqJson, "userId", "请求报文中未包含用户信息");
+        Assert.hasKeyAndValue(reqJson, "machineCode", "请求报文中未包含设备信息");
+
+        return machineOpenDoorBMOImpl.getQRcode(reqJson);
+    }
+
     /**
      * 设备开门功能
      *

+ 7 - 0
service-common/src/main/java/com/java110/common/bmo/machine/IMachineOpenDoorBMO.java

@@ -43,4 +43,11 @@ public interface IMachineOpenDoorBMO {
      * @return
      */
     ResponseEntity<String> resendIot(JSONObject reqJson);
+
+    /**
+     * 获取二维码
+     * @param reqJson
+     * @return
+     */
+    ResponseEntity<String> getQRcode(JSONObject reqJson);
 }

+ 16 - 0
service-common/src/main/java/com/java110/common/bmo/machine/impl/MachineOpenDoorBMOImpl.java

@@ -123,4 +123,20 @@ public class MachineOpenDoorBMOImpl implements IMachineOpenDoorBMO {
         ResultVo resultVo = dataBusInnerServiceSMOImpl.resendIot(reqJson);
         return ResultVo.createResponseEntity(resultVo);
     }
+
+    @Override
+    public ResponseEntity<String> getQRcode(JSONObject reqJson) {
+        //如果是业主 限制开门次数
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(reqJson.getString("userId"));
+        ownerDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+        if (ownerDtos == null || ownerDtos.size() < 1) {
+            return ResultVo.error("没有权限开门");
+        }
+
+        ResultVo resultVo = dataBusInnerServiceSMOImpl.getQRcode(reqJson);
+        return ResultVo.createResponseEntity(resultVo);
+    }
 }

+ 5 - 0
service-job/src/main/java/com/java110/job/adapt/DatabusAdaptImpl.java

@@ -56,6 +56,11 @@ public abstract class DatabusAdaptImpl implements IDatabusAdapt {
         return new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
 
+    @Override
+    public ResultVo getQRcode(JSONObject reqJson) {
+        return new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK);
+    }
+
     /**
      * 重启设备
      *

+ 3 - 0
service-job/src/main/java/com/java110/job/adapt/IDatabusAdapt.java

@@ -46,6 +46,8 @@ public interface IDatabusAdapt {
      */
     ResultVo openDoor(JSONObject paramIn);
 
+
+    ResultVo getQRcode(JSONObject reqJson);
     /**
      * 重启设备
      *
@@ -67,4 +69,5 @@ public interface IDatabusAdapt {
      * @param customBusinessDatabusDto
      */
     void customExchange(CustomBusinessDatabusDto customBusinessDatabusDto);
+
 }

+ 57 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/GetMachineQrCodeAdapt.java

@@ -0,0 +1,57 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.job.adapt.hcIot;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.client.RestTemplate;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.util.MultiValueMap;
+
+/**
+ * 开门适配器
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 15:29
+ */
+@Component(value = "getMachineQrCodeAdapt")
+public class GetMachineQrCodeAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    RestTemplate outRestTemplate;
+
+    @Override
+    public ResultVo getQRcode(JSONObject paramIn) {
+        JSONObject postParameters = new JSONObject();
+        postParameters.put("taskId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId));
+        postParameters.put("machineCode", paramIn.getString("machineCode"));
+        postParameters.put("userId", paramIn.getString("userId"));
+        HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders(outRestTemplate));
+        ResponseEntity<String> responseEntity = outRestTemplate.exchange(IotConstant.getUrl(IotConstant.GET_QRCODE), HttpMethod.POST, httpEntity, String.class);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) {
+            return new ResultVo(ResultVo.CODE_ERROR, responseEntity.getBody());
+        }
+        JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
+        return new ResultVo(paramOut.getInteger("code"), paramOut.getString("msg"));
+    }
+}

+ 3 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/IotConstant.java

@@ -74,6 +74,9 @@ public class IotConstant {
 
     //开门接口
     public static final String OPEN_DOOR = "/extApi/machine/openDoor";
+
+    //获取二维码
+    public static final String GET_QRCODE = "/extApi/machine/getQRcode";
     //重启接口
     public static final String RESTART_MACHINE = "/extApi/machine/restartMachine";
 

+ 1 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/owner/AddOwnerToIotAdapt.java

@@ -162,6 +162,7 @@ public class AddOwnerToIotAdapt extends DatabusAdaptImpl {
             postParameters.put("endTime", DateUtil.LAST_TIME);
             postParameters.put("name", ownerPo.getName());
             postParameters.put("idNumber", ownerPo.getIdCard());
+            postParameters.put("link",ownerPo.getLink());
             postParameters.put("machineCode", tmpMachineDto.getMachineCode());
             postParameters.put("extMachineId", tmpMachineDto.getMachineId());
             postParameters.put("extCommunityId", tmpMachineDto.getCommunityId());

+ 1 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/owner/EditOwnerToIotAdapt.java

@@ -162,6 +162,7 @@ public class EditOwnerToIotAdapt extends DatabusAdaptImpl {
             postParameters.put("name", ownerPo.getName());
             postParameters.put("idNumber", ownerPo.getIdCard());
             postParameters.put("machineCode", tmpMachineDto.getMachineCode());
+            postParameters.put("link",ownerPo.getLink());
             postParameters.put("extMachineId", tmpMachineDto.getMachineId());
             postParameters.put("extCommunityId", tmpMachineDto.getCommunityId());
             postParameters.put("attrs",ownerDtos.get(0).getOwnerAttrDtos());

+ 9 - 0
service-job/src/main/java/com/java110/job/smo/impl/DataBusInnerServiceSMOImpl.java

@@ -32,6 +32,7 @@ public class DataBusInnerServiceSMOImpl extends BaseServiceSMO implements IDataB
     private static final Logger logger = LoggerFactory.getLogger(DataBusInnerServiceSMOImpl.class);
 
     public static final String DEFAULT_OPEN_DOOR_PROTOCOL = "openDoorAdapt";//吸墨门禁
+    public static final String DEFAULT_GET_QRCODE_PROTOCOL = "getMachineQrCodeAdapt";//获取二维码
     public static final String DEFAULT_START_MACHINE_PROTOCOL = "restartMachineAdapt";//吸墨门禁
     public static final String DEFAULT_RESEND_IOT_PROTOCOL = "reSendIotAdapt";//重新送数据
     public static final String DEFAULT_GET_TEMP_CAR_FEE_ORDER_PROTOCOL = "getTempCarFeeOrderAdapt";//重新送数据
@@ -55,6 +56,13 @@ public class DataBusInnerServiceSMOImpl extends BaseServiceSMO implements IDataB
 
     }
 
+
+    @Override
+    public ResultVo getQRcode(@RequestBody JSONObject reqJson) {
+        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_GET_QRCODE_PROTOCOL, IDatabusAdapt.class);
+        return databusAdaptImpl.getQRcode(reqJson);
+    }
+
     @Override
     public ResultVo restartMachine(@RequestBody JSONObject reqJson) {
         IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_START_MACHINE_PROTOCOL, IDatabusAdapt.class);
@@ -103,6 +111,7 @@ public class DataBusInnerServiceSMOImpl extends BaseServiceSMO implements IDataB
         }
     }
 
+
     /**
      * 处理业务类
      *