package pwc.taxtech.atms.service.impl; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.springframework.stereotype.Service; import pwc.taxtech.atms.common.config.SystemConfig; import javax.annotation.Resource; import java.io.IOException; import java.util.Optional; @Service public class TableauService extends BaseService { @Resource private SystemConfig systemConfig; /** * 获取ticket * * @param username 用户名 * @return Optional<String> */ public Optional<String> getTicket(String username) { CloseableHttpClient httpClient = null; try { String ticketUrl = String.format(systemConfig.getTableauGetTicket(), username); httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(ticketUrl); HttpResponse httpResponse = httpClient.execute(httpPost); String response = IOUtils.toString(httpResponse.getEntity().getContent(), "UTF-8"); return StringUtils.equals(response, "-1") ? Optional.empty() : Optional.of(response); } catch (Exception e) { logger.error("getTicket error.", e); } finally { if (null != httpClient) { try { httpClient.close(); } catch (IOException e) { logger.error("close httpClient error.", e); } } } return Optional.empty(); } public Optional<String> getUnreturnedTax() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauUnreturnedTax(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getTaxComparison() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauTaxComparison(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getOtherCountries() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauOtherCountries(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getCostAnalysis() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauCostAnalysis(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getProfitAndLoss() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauProfitAndLoss(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getOtherDomesticData() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauOtherDomesticData(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getDocSituation() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauDocSituation(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getGlobalOverview() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauGlobalOverview(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getMexicanTax() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauMexicanTax(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getAustralianTax() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauAustralianTax(), getTicket(s).orElse(StringUtils.EMPTY))); } public Optional<String> getBrazilianTax() { Optional<String> optional = authUserHelper.getCurrentAuditor(); return optional.map(s -> String.format(systemConfig.getTableauBrazilianTax(), getTicket(s).orElse(StringUtils.EMPTY))); } }