Browse Source

优化 ABC问题

Your Name 3 years ago
parent
commit
3fc509eab4

+ 5 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerAttrDto.java

@@ -17,6 +17,11 @@ public class OwnerAttrDto extends PageDto implements Serializable {
 
     public static final String SPEC_CD_MACHINE_OPEN_COUNT = "7967001983";
 
+    /**
+     * 业主外部ID
+     */
+    public static final String SPEC_CD_EXT_OWNER_ID = "9329000004";
+
     private String attrId;
     private String specCd;
     private String communityId;

+ 17 - 0
service-user/src/main/java/com/java110/user/UserServiceApplicationStart.java

@@ -2,6 +2,7 @@ package com.java110.user;
 
 import com.java110.core.annotation.Java110CmdDiscovery;
 import com.java110.core.annotation.Java110ListenerDiscovery;
+import com.java110.core.client.OutRestTemplate;
 import com.java110.core.trace.Java110RestTemplateInterceptor;
 import com.java110.core.client.RestTemplate;
 import com.java110.core.event.cmd.ServiceCmdEventPublishing;
@@ -19,6 +20,7 @@ import org.springframework.cloud.client.loadbalancer.LoadBalanced;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.http.converter.StringHttpMessageConverter;
 
 import javax.annotation.Resource;
@@ -82,4 +84,19 @@ public class UserServiceApplicationStart {
         restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
         return restTemplate;
     }
+
+    @Bean
+    public OutRestTemplate outRestTemplate() {
+        StringHttpMessageConverter m = new StringHttpMessageConverter(Charset.forName("UTF-8"));
+        OutRestTemplate restTemplate = new RestTemplateBuilder().additionalMessageConverters(m).build(OutRestTemplate.class);
+        restTemplate.getInterceptors().add(java110RestTemplateInterceptor);
+
+        //设置超时时间
+        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory();
+        httpRequestFactory.setConnectionRequestTimeout(5000);
+        httpRequestFactory.setConnectTimeout(5000);
+        httpRequestFactory.setReadTimeout(5000);
+        restTemplate.setRequestFactory(httpRequestFactory);
+        return restTemplate;
+    }
 }

+ 77 - 0
service-user/src/main/java/com/java110/user/cmd/owner/SyncThridOwnerCmd.java

@@ -0,0 +1,77 @@
+package com.java110.user.cmd.owner;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.client.OutRestTemplate;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.owner.OwnerAttrDto;
+import com.java110.intf.user.IOwnerAttrInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.List;
+
+/***
+ * 特定三方平台专用
+ */
+@Java110Cmd(serviceCode = "owner.syncThridOwner")
+public class SyncThridOwnerCmd extends Cmd {
+
+    @Autowired
+    private IOwnerAttrInnerServiceSMO ownerAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private OutRestTemplate outRestTemplate;
+
+    private static final String getUserInfo = "https://lgtest.iflysec.com/visitorUser/api/user/userInfo";
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "token", "未包含token");
+        Assert.hasKeyAndValue(reqJson, "userId", "未包含userId");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        OwnerAttrDto ownerAttrDto = new OwnerAttrDto();
+        ownerAttrDto.setSpecCd(OwnerAttrDto.SPEC_CD_EXT_OWNER_ID);
+        ownerAttrDto.setValue(reqJson.getString("userId"));
+        List<OwnerAttrDto> ownerAttrDtos = ownerAttrInnerServiceSMOImpl.queryOwnerAttrs(ownerAttrDto);
+
+        String ownerId = "";
+
+        if (ownerAttrDtos == null || ownerAttrDtos.size() < 1) {
+            ownerId = saveOwner(reqJson);
+        }
+
+        context.setResponseEntity(ResultVo.createResponseEntity(ownerId));
+    }
+
+    /**
+     * 添加业主
+     * @param reqJson
+     * @return
+     */
+    private String saveOwner(JSONObject reqJson) {
+
+        HttpHeaders headers = new HttpHeaders();
+        headers.add("Authorization","Bearer "+reqJson.getString("token"));
+
+        HttpEntity httpEntity = new HttpEntity("",headers);
+
+        ResponseEntity<String> userInfo = outRestTemplate.exchange(getUserInfo+"?userId="+reqJson.getString("userId"), HttpMethod.GET,httpEntity,String.class);
+
+
+        return "";
+    }
+}