| | |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.core.context.Environment; |
| | | import com.java110.core.context.IPageData; |
| | | import com.java110.core.context.PageData; |
| | | import com.java110.core.log.LoggerFactory; |
| | | import com.java110.dto.app.AppDto; |
| | | import com.java110.utils.constant.CommonConstant; |
| | | import com.java110.utils.exception.SMOException; |
| | |
| | | import com.java110.utils.util.StringUtil; |
| | | import com.java110.vo.ResultVo; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.http.*; |
| | | import org.springframework.web.client.HttpStatusCodeException; |
| | |
| | | public class CallApiServiceFactory { |
| | | |
| | | private static final String URL_API = "http://api-service/api/"; |
| | | private static final String URL_BOOT_API = "http://127.0.0.1:8008/api/"; |
| | | //日志 |
| | | private static Logger logger = LoggerFactory.getLogger(CallApiServiceFactory.class); |
| | | |
| | | @Autowired |
| | | private RestTemplate restTemplate; |
| | | |
| | | |
| | | /** |
| | | * 查询 |
| | |
| | | public static <T> T getForApi(String appId, T param, String serviceCode, Class<T> t) { |
| | | |
| | | IPageData pd = PageData.newInstance().builder("-1", "未知", "", "", "", "", "", "", appId); |
| | | |
| | | List<T> list = getForApis(pd, param, serviceCode, t); |
| | | if (list != null && list.size() > 0) { |
| | | return list.get(0); |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 查询 |
| | | * |
| | | * @param param 传入对象 |
| | | * @param serviceCode 服务编码 |
| | | * @param t 返回类 |
| | | * @param <T> |
| | | * @return |
| | | */ |
| | | public static <T> T getForApi(String appId, T param, String serviceCode, Class<T> t,String userId) { |
| | | |
| | | IPageData pd = PageData.newInstance().builder(userId, "未知", "", "", "", "", "", "", appId); |
| | | |
| | | List<T> list = getForApis(pd, param, serviceCode, t); |
| | | if (list != null && list.size() > 0) { |
| | |
| | | |
| | | String url = URL_API + serviceCode; |
| | | RestTemplate restTemplate = ApplicationContextFactory.getBean("restTemplate", RestTemplate.class); |
| | | if (Environment.isStartBootWay()) { |
| | | url = URL_BOOT_API + serviceCode; |
| | | restTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class); |
| | | } |
| | | |
| | | |
| | | ResponseEntity<String> responseEntity = callCenterService(restTemplate, pd, JSONObject.toJSONString(param), url, HttpMethod.POST); |
| | |
| | | } |
| | | |
| | | JSONObject resultVo = JSONObject.parseObject(responseEntity.getBody()); |
| | | |
| | | if (ResultVo.CODE_MACHINE_OK != resultVo.getInteger("code")) { |
| | | throw new SMOException(resultVo.getString("msg")); |
| | | Object bObj = null; |
| | | if(resultVo.containsKey("code")){ |
| | | if (ResultVo.CODE_MACHINE_OK != resultVo.getInteger("code")) { |
| | | throw new SMOException(resultVo.getString("msg")); |
| | | } |
| | | bObj = resultVo.get("data"); |
| | | }else{ |
| | | bObj = resultVo; |
| | | } |
| | | |
| | | Object bObj = resultVo.get("data"); |
| | | |
| | | JSONArray datas = null; |
| | | if (bObj instanceof JSONObject) { |
| | | datas = new JSONArray(); |
| | |
| | | public static <T> List<T> getForApis(IPageData pd, T param, String serviceCode, Class<T> t) { |
| | | |
| | | String url = URL_API + serviceCode; |
| | | RestTemplate restTemplate = ApplicationContextFactory.getBean("restTemplate", RestTemplate.class); |
| | | |
| | | if (Environment.isStartBootWay()) { |
| | | url = URL_BOOT_API + serviceCode; |
| | | restTemplate = ApplicationContextFactory.getBean("outRestTemplate", RestTemplate.class); |
| | | } |
| | | |
| | | if (param != null) { |
| | | url += mapToUrlParam(BeanConvertUtil.beanCovertMap(param)); |
| | | } |
| | | RestTemplate restTemplate = ApplicationContextFactory.getBean("restTemplate", RestTemplate.class); |
| | | |
| | | ResponseEntity<String> responseEntity = callCenterService(restTemplate, pd, "", url, HttpMethod.GET); |
| | | |
| | |
| | | |
| | | JSONObject resultVo = JSONObject.parseObject(responseEntity.getBody()); |
| | | |
| | | if (!"0".equals(resultVo.getString("code"))) { |
| | | throw new SMOException(resultVo.getString("msg")); |
| | | Object bObj = null; |
| | | if(resultVo.containsKey("code")){ |
| | | if (ResultVo.CODE_MACHINE_OK != resultVo.getInteger("code")) { |
| | | throw new SMOException(resultVo.getString("msg")); |
| | | } |
| | | bObj = resultVo.get("data"); |
| | | }else{ |
| | | bObj = resultVo; |
| | | } |
| | | |
| | | Object bObj = resultVo.get("data"); |
| | | JSONArray datas = null; |
| | | if (bObj instanceof JSONObject) { |
| | | datas = new JSONArray(); |
| | |
| | | |
| | | HttpEntity<String> httpEntity = new HttpEntity<String>(param, header); |
| | | //logger.debug("请求中心服务信息,{}", httpEntity); |
| | | |
| | | try { |
| | | responseEntity = restTemplate.exchange(url, httpMethod, httpEntity, String.class); |
| | | } catch (HttpStatusCodeException e) { //这里spring 框架 在4XX 或 5XX 时抛出 HttpServerErrorException 异常,需要重新封装一下 |