From 4db93360932dcee2efddae48152a4ba1f9d7f28b Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 19 一月 2021 12:02:20 +0800
Subject: [PATCH] 优化业主查询报错问题

---
 service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java |  113 +++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 91 insertions(+), 22 deletions(-)

diff --git a/service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java b/service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java
index df27d52..42b09df 100644
--- a/service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java
+++ b/service-job/src/main/java/com/java110/job/adapt/hcIot/OpenDoorAdapt.java
@@ -17,13 +17,25 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
-import com.java110.entity.order.Business;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.machine.MachineDto;
+import com.java110.dto.machine.MachineTranslateDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.*;
+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.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
 
 import java.util.List;
@@ -40,33 +52,90 @@
     @Autowired
     RestTemplate outRestTemplate;
 
-    @Override
-    public void execute(Business business, List<Business> businesses) {
+    @Autowired
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
 
-    }
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
 
+    @Autowired
+    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    /**
+     * 寮�闂ㄥ疄鐜版柟娉�
+     *
+     * @param paramIn 涓氬姟淇℃伅
+     * @return
+     */
     @Override
     public ResultVo openDoor(JSONObject paramIn) {
-        MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
 
-        postParameters.add("extCommunityUuid", paramIn.getString("communityId"));
-        //postParameters.add("devSn", machinePo.getMachineCode());
-        postParameters.add("devSn", paramIn.getString("machineCode"));
-        postParameters.add("empType", paramIn.getString("userType"));
-        postParameters.add("empUuid", paramIn.getString("userId"));
+        MachineDto machineDto = new MachineDto();
+        machineDto.setMachineCode(paramIn.getString("machineCode"));
+        machineDto.setCommunityId(paramIn.getString("communityId"));
+        List<MachineDto> machineDtos = machineInnerServiceSMOImpl.queryMachines(machineDto);
 
-        postParameters.add("accessToken", GetToken.get(outRestTemplate));
-        HttpHeaders httpHeaders = new HttpHeaders();
-        httpHeaders.add("Content-Type", "application/x-www-form-urlencoded");
+        Assert.listOnlyOne(machineDtos, "璁惧涓嶅瓨鍦�");
+        String userId = "";
+        String userName = "";
 
-        HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity(postParameters, httpHeaders);
-        ResponseEntity<String> responseEntity = outRestTemplate.exchange(IotConstant.OPEN_DOOR, HttpMethod.POST, httpEntity, String.class);
-
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
-            return new ResultVo(ResultVo.CODE_ERROR, responseEntity.getBody());
+        if (!"owner".equals(paramIn.getString("userRole"))) {
+            UserDto userDto = new UserDto();
+            userDto.setUserId(paramIn.getString("userId"));
+            List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+            Assert.listOnlyOne(userDtos, "鐢ㄦ埛涓嶅瓨鍦�");
+            userId = userDtos.get(0).getUserId();
+            userName = userDtos.get(0).getUserName();
+        } else {
+            OwnerDto ownerDto = new OwnerDto();
+            ownerDto.setMemberId(paramIn.getString("userId"));
+            ownerDto.setCommunityId(paramIn.getString("communityId"));
+            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+            Assert.listOnlyOne(ownerDtos, "涓氫富涓嶅瓨鍦�");
+            userId = ownerDtos.get(0).getMemberId();
+            userName = ownerDtos.get(0).getName();
         }
+        MachineTranslateDto machineTranslateDto = new MachineTranslateDto();
+        machineTranslateDto.setMachineTranslateId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId));
+        machineTranslateDto.setCommunityId(paramIn.getString("communityId"));
+        machineTranslateDto.setMachineCmd(MachineTranslateDto.CMD_OPEN_DOOR);
+        machineTranslateDto.setMachineCode(machineDtos.get(0).getMachineCode());
+        machineTranslateDto.setMachineId(machineDtos.get(0).getMachineId());
+        machineTranslateDto.setObjId(userId);
+        machineTranslateDto.setObjName(userName);
+        machineTranslateDto.setTypeCd(MachineTranslateDto.TYPE_COMMUNITY);
+        machineTranslateDto.setState(MachineTranslateDto.STATE_SUCCESS);
+        machineTranslateDto.setRemark("鍚屾鐗╄仈缃戠郴缁熸垚鍔�");
 
-        JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
-        return new ResultVo(paramOut.getInteger("code"), paramOut.getString("msg"));
+        try {
+            JSONObject postParameters = new JSONObject();
+            postParameters.put("taskId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineTranslateId));
+            postParameters.put("machineCode", paramIn.getString("machineCode"));
+            HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders(outRestTemplate));
+            ResponseEntity<String> responseEntity = outRestTemplate.exchange(IotConstant.getUrl(IotConstant.OPEN_DOOR), HttpMethod.POST, httpEntity, String.class);
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark("寮�闂ㄥけ璐�");
+                return new ResultVo(ResultVo.CODE_ERROR, responseEntity.getBody());
+            }
+            JSONObject paramOut = JSONObject.parseObject(responseEntity.getBody());
+            if (!paramOut.containsKey("code") || ResultVo.CODE_OK != paramOut.getInteger("code")) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark(paramOut.getString("msg"));
+            } else {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_SUCCESS);
+                machineTranslateDto.setRemark("鍚屾鐗╄仈缃戠郴缁熸垚鍔�");
+            }
+            return new ResultVo(paramOut.getInteger("code"), paramOut.getString("msg"));
+        } finally {
+            machineTranslateDto.setbId("-1");
+            machineTranslateDto.setObjBId("-1");
+            machineTranslateDto.setUpdateTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+            machineTranslateInnerServiceSMOImpl.saveMachineTranslate(machineTranslateDto);
+        }
     }
+
 }

--
Gitblit v1.8.0