ApiUtil.java 7.6 KB
package com.topdraw.resttemplate;

import com.alibaba.fastjson.JSONObject;
import com.topdraw.business.basicdata.member.address.domain.MemberAddress;
import com.topdraw.business.basicdata.member.domain.Member;
import com.topdraw.business.basicdata.member.relatedinfo.domain.MemberRelatedInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;

import javax.annotation.PostConstruct;
import java.util.Map;

@Slf4j
@Component
public class ApiUtil {

    private static RestTemplate restTemplate;

    private static String BASE_URL;

    @Autowired
    private Environment environment;

    @PostConstruct
    private void init() {
        BASE_URL = environment.getProperty("api.baseUrl");
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        // 设置连接超时
        factory.setConnectTimeout(5000);
        // 设置读取超时
        factory.setReadTimeout(8000);
        restTemplate = new RestTemplate(factory);
    }

    public static JSONObject getMemberInfo(Long memberId) {
        JSONObject resultSet = null;
        String url = BASE_URL + "/api/member/findById/" + memberId;
        log.info("request uc : url is " + url + ", memberId is " + memberId);
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            String entityBody = responseEntity.getBody();
            JSONObject jsonObject = JSONObject.parseObject(entityBody);
            if (jsonObject.getInteger("businessCode").equals(200)) {
                resultSet = jsonObject.getJSONArray("resultSet").getJSONObject(0);
            }
        }
        log.info("uc response: " + resultSet.toJSONString());
        return resultSet;
    }

    public static String createMember(Member member) {
        String entityBody = "";
        String url = BASE_URL + "/api/member/create";
        log.info("request uc : url is " + url + ", memberId is " + com.alibaba.fastjson.JSONObject.toJSONString(member));
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, member, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            entityBody  = responseEntity.getBody();

        }
        return entityBody;
    }

    public static String updateMember(Member member) {
        String entityBody = "";
        String url = BASE_URL + "/api/member/update";
        log.info("request uc : url is " + url + ", memberId is " + com.alibaba.fastjson.JSONObject.toJSONString(member));
        restTemplate.put(url, member);

        return entityBody;
    }

    public static String createMemberAddress(MemberAddress member) {
        JSONObject resultSet = null;
        String url = BASE_URL + "/api/MemberAddress/create";
        log.info("request uc : url is " + url + ", memberId is " + com.alibaba.fastjson.JSONObject.toJSONString(member));
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, member, String.class);
        String entityBody = "";
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            entityBody = responseEntity.getBody();
        }
        log.info("uc response: " + entityBody);
        return entityBody;
    }

    public static void updateMemberAddress(MemberAddress member) {
        String url = BASE_URL + "/api/MemberAddress/update";
        log.info("request uc : url is " + url + ", memberId is " + com.alibaba.fastjson.JSONObject.toJSONString(member));
        restTemplate.put(url, member);

    }

    public static void deleteMemberAddress(Long id) {
        String url = BASE_URL + "/api/MemberAddress/delete/" + id;
        log.info("request uc : url is " + url + ", memberId is " + id);
        restTemplate.delete(url);

    }

    public static JSONObject getMemberProfile(Long memberId) {
        JSONObject resultSet = null;
        String url = BASE_URL + "/api/MemberRelatedInfo/getMemberRelatedInfos";
        log.info("request uc : url is " + url + ", memberId is " + memberId);
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            String entityBody = responseEntity.getBody();
            JSONObject jsonObject = JSONObject.parseObject(entityBody);
            if (jsonObject.getInteger("businessCode").equals(200)) {
                resultSet = jsonObject.getJSONArray("resultSet").getJSONObject(0);
            }
        }
        log.info("uc response: " + resultSet.toJSONString());
        return resultSet;
    }

    public static String getMemberAddress(Map<String, Object> param) {
        String entityBody = "";
        String url = BASE_URL + "/api/MemberAddress/pageMemberAddress?page=" + param.get("page") + "&size=" + param.get("size") + "&memberId=" + param.get("memberId");
        log.info("request uc : url is " + url + ", param is " + param);
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            entityBody = responseEntity.getBody();
        }
        log.info("uc response: " + entityBody);
        return entityBody;
    }

    public static String getMemberRelatedInfo(Map<String, Object> param) {
        String entityBody = "";
        String url = BASE_URL + "/api/MemberRelatedInfo/pageMemberRelatedInfos?page=" + param.get("page") + "&size=" + param.get("size") + "&memberId=" + param.get("memberId");
        log.info("request uc : url is " + url + ", memberId is " + param);
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            entityBody = responseEntity.getBody();
        }
        log.info("uc response: " + entityBody);
        return entityBody;
    }

    public static void deleteMemberRelatedInfo(Long memberRelatedId) {
        String url = BASE_URL + "/api/MemberRelatedInfo/delete/" + memberRelatedId;
        log.info("request uc : url is " + url + ", memberId is " + memberRelatedId);
        restTemplate.delete(url, String.class);
    }

    public static String addMemberRelatedInfo(MemberRelatedInfo resources) {
        String entityBody = null;
        String url = BASE_URL + "/api/MemberRelatedInfo/create";
        log.info("request uc : url is " + url + ", memberRelatedId is " + com.alibaba.fastjson.JSONObject.toJSONString(resources));
        ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, resources, String.class);
        if (responseEntity.getStatusCode().is2xxSuccessful()) {
            entityBody = responseEntity.getBody();
//            JSONObject jsonObject = JSONObject.parseObject(entityBody);
//            if (jsonObject.getInteger("businessCode").equals(200)) {
//                resultSet = jsonObject.getJSONArray("resultSet").getJSONObject(0);
//            }
        }
        log.info("uc response: " + entityBody);
        return entityBody;
    }

    public static String updateMemberRelatedInfo(MemberRelatedInfo resources) {
        String resultSet = "";
        String url = BASE_URL + "/api/MemberRelatedInfo/update";
        log.info("request uc : url is " + url + ", memberRelatedId is " + com.alibaba.fastjson.JSONObject.toJSONString(resources));
        restTemplate.put(url, resources);

        return resultSet;
    }
}