parent
f0ae3f7827
commit
9c027e5e99
@ -0,0 +1,295 @@ |
|||||||
|
package com.cweb.config; |
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON; |
||||||
|
import com.alibaba.fastjson.JSONObject; |
||||||
|
import org.apache.commons.io.IOUtils; |
||||||
|
import org.apache.http.HttpEntity; |
||||||
|
import org.apache.http.HttpResponse; |
||||||
|
import org.apache.http.NameValuePair; |
||||||
|
import org.apache.http.client.HttpClient; |
||||||
|
import org.apache.http.client.config.RequestConfig; |
||||||
|
import org.apache.http.client.entity.UrlEncodedFormEntity; |
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse; |
||||||
|
import org.apache.http.client.methods.HttpGet; |
||||||
|
import org.apache.http.client.methods.HttpPost; |
||||||
|
import org.apache.http.conn.ssl.SSLConnectionSocketFactory; |
||||||
|
import org.apache.http.conn.ssl.TrustStrategy; |
||||||
|
import org.apache.http.entity.StringEntity; |
||||||
|
import org.apache.http.impl.client.CloseableHttpClient; |
||||||
|
import org.apache.http.impl.client.HttpClients; |
||||||
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; |
||||||
|
import org.apache.http.message.BasicNameValuePair; |
||||||
|
import org.apache.http.ssl.SSLContextBuilder; |
||||||
|
import org.apache.http.util.EntityUtils; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
|
||||||
|
import javax.net.ssl.HostnameVerifier; |
||||||
|
import javax.net.ssl.SSLContext; |
||||||
|
import javax.net.ssl.SSLSession; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStream; |
||||||
|
import java.nio.charset.Charset; |
||||||
|
import java.security.GeneralSecurityException; |
||||||
|
import java.security.cert.CertificateException; |
||||||
|
import java.security.cert.X509Certificate; |
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.List; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
public class HttpsUtils { |
||||||
|
|
||||||
|
private static final Logger log = LoggerFactory.getLogger(HttpsUtils.class); |
||||||
|
|
||||||
|
private static PoolingHttpClientConnectionManager connMgr; |
||||||
|
private static RequestConfig requestConfig; |
||||||
|
private static final int MAX_TIMEOUT = 7000; |
||||||
|
|
||||||
|
static { |
||||||
|
// 设置连接池
|
||||||
|
connMgr = new PoolingHttpClientConnectionManager(); |
||||||
|
// 设置连接池大小
|
||||||
|
connMgr.setMaxTotal(100); |
||||||
|
connMgr.setDefaultMaxPerRoute(connMgr.getMaxTotal()); |
||||||
|
// Validate connections after 1 sec of inactivity
|
||||||
|
connMgr.setValidateAfterInactivity(1000); |
||||||
|
RequestConfig.Builder configBuilder = RequestConfig.custom(); |
||||||
|
// 设置连接超时
|
||||||
|
configBuilder.setConnectTimeout(MAX_TIMEOUT); |
||||||
|
// 设置读取超时
|
||||||
|
configBuilder.setSocketTimeout(MAX_TIMEOUT); |
||||||
|
// 设置从连接池获取连接实例的超时
|
||||||
|
configBuilder.setConnectionRequestTimeout(MAX_TIMEOUT); |
||||||
|
|
||||||
|
requestConfig = configBuilder.build(); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 GET 请求(HTTP),不带输入数据 |
||||||
|
* |
||||||
|
* @param url |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doGet(String url) { |
||||||
|
return doGet(url, new HashMap<String, Object>()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 GET 请求(HTTP),K-V形式 |
||||||
|
* |
||||||
|
* @param url |
||||||
|
* @param params |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doGet(String url, Map<String, Object> params) { |
||||||
|
String apiUrl = url; |
||||||
|
StringBuffer param = new StringBuffer(); |
||||||
|
int i = 0; |
||||||
|
for (String key : params.keySet()) { |
||||||
|
if (i == 0) |
||||||
|
param.append("?"); |
||||||
|
else |
||||||
|
param.append("&"); |
||||||
|
param.append(key).append("=").append(params.get(key)); |
||||||
|
i++; |
||||||
|
} |
||||||
|
apiUrl += param; |
||||||
|
String result = null; |
||||||
|
HttpClient httpClient = null; |
||||||
|
try { |
||||||
|
|
||||||
|
if (apiUrl.startsWith("https")) { |
||||||
|
httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) |
||||||
|
.setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build(); |
||||||
|
} else { |
||||||
|
httpClient = HttpClients.createDefault(); |
||||||
|
} |
||||||
|
|
||||||
|
HttpGet httpGet = new HttpGet(apiUrl); |
||||||
|
HttpResponse response = httpClient.execute(httpGet); |
||||||
|
HttpEntity entity = response.getEntity(); |
||||||
|
if (entity != null) { |
||||||
|
InputStream instream = entity.getContent(); |
||||||
|
result = IOUtils.toString(instream, "UTF-8"); |
||||||
|
} |
||||||
|
return JSON.parseObject(result); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 POST 请求(HTTP),不带输入数据 |
||||||
|
* |
||||||
|
* @param apiUrl |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doPost(String apiUrl) { |
||||||
|
return doPost(apiUrl, new HashMap<String, Object>()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 POST 请求,K-V形式 |
||||||
|
* |
||||||
|
* @param apiUrl |
||||||
|
* API接口URL |
||||||
|
* @param params |
||||||
|
* 参数map |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doPost(String apiUrl, Map<String, Object> params) { |
||||||
|
CloseableHttpClient httpClient = null; |
||||||
|
if (apiUrl.startsWith("https")) { |
||||||
|
httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) |
||||||
|
.setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build(); |
||||||
|
} else { |
||||||
|
httpClient = HttpClients.createDefault(); |
||||||
|
} |
||||||
|
String httpStr = null; |
||||||
|
CloseableHttpResponse response = null; |
||||||
|
try { |
||||||
|
HttpPost httpPost = new HttpPost(apiUrl); |
||||||
|
httpPost.setConfig(requestConfig); |
||||||
|
List<NameValuePair> pairList = new ArrayList<>(params.size()); |
||||||
|
for (Map.Entry<String, Object> entry : params.entrySet()) { |
||||||
|
NameValuePair pair = new BasicNameValuePair(entry.getKey(), entry.getValue().toString()); |
||||||
|
pairList.add(pair); |
||||||
|
} |
||||||
|
httpPost.setEntity(new UrlEncodedFormEntity(pairList, Charset.forName("UTF-8"))); |
||||||
|
response = httpClient.execute(httpPost); |
||||||
|
HttpEntity entity = response.getEntity(); |
||||||
|
httpStr = EntityUtils.toString(entity, "UTF-8"); |
||||||
|
return JSON.parseObject(httpStr); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} finally { |
||||||
|
if (response != null) { |
||||||
|
try { |
||||||
|
EntityUtils.consume(response.getEntity()); |
||||||
|
} catch (IOException e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 POST 请求,JSON形式 |
||||||
|
* |
||||||
|
* @param apiUrl |
||||||
|
* @param json |
||||||
|
* json对象 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doPost(String apiUrl, JSONObject json) { |
||||||
|
CloseableHttpClient httpClient = null; |
||||||
|
if (apiUrl.startsWith("https")) { |
||||||
|
httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) |
||||||
|
.setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build(); |
||||||
|
} else { |
||||||
|
httpClient = HttpClients.createDefault(); |
||||||
|
} |
||||||
|
String httpStr = null; |
||||||
|
CloseableHttpResponse response = null; |
||||||
|
|
||||||
|
try { |
||||||
|
HttpPost httpPost = new HttpPost(apiUrl); |
||||||
|
httpPost.setConfig(requestConfig); |
||||||
|
StringEntity stringEntity = new StringEntity(json.toString(), "UTF-8");// 解决中文乱码问题
|
||||||
|
stringEntity.setContentEncoding("UTF-8"); |
||||||
|
stringEntity.setContentType("application/json"); |
||||||
|
httpPost.setEntity(stringEntity); |
||||||
|
response = httpClient.execute(httpPost); |
||||||
|
HttpEntity entity = response.getEntity(); |
||||||
|
httpStr = EntityUtils.toString(entity, "UTF-8"); |
||||||
|
return JSON.parseObject(httpStr); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} finally { |
||||||
|
if (response != null) { |
||||||
|
try { |
||||||
|
EntityUtils.consume(response.getEntity()); |
||||||
|
} catch (IOException e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 发送 POST 请求,JSON形式 |
||||||
|
* |
||||||
|
* @param apiUrl |
||||||
|
* @param json |
||||||
|
* json对象 |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
public static JSONObject doPost(String apiUrl, String str) { |
||||||
|
CloseableHttpClient httpClient = null; |
||||||
|
if (apiUrl.startsWith("https")) { |
||||||
|
httpClient = HttpClients.custom().setSSLSocketFactory(createSSLConnSocketFactory()) |
||||||
|
.setConnectionManager(connMgr).setDefaultRequestConfig(requestConfig).build(); |
||||||
|
} else { |
||||||
|
httpClient = HttpClients.createDefault(); |
||||||
|
} |
||||||
|
String httpStr = null; |
||||||
|
CloseableHttpResponse response = null; |
||||||
|
|
||||||
|
try { |
||||||
|
HttpPost httpPost = new HttpPost(apiUrl); |
||||||
|
httpPost.setConfig(requestConfig); |
||||||
|
StringEntity stringEntity = new StringEntity(str, "UTF-8");// 解决中文乱码问题
|
||||||
|
stringEntity.setContentEncoding("UTF-8"); |
||||||
|
stringEntity.setContentType("application/json"); |
||||||
|
httpPost.setEntity(stringEntity); |
||||||
|
response = httpClient.execute(httpPost); |
||||||
|
HttpEntity entity = response.getEntity(); |
||||||
|
httpStr = EntityUtils.toString(entity, "UTF-8"); |
||||||
|
return JSON.parseObject(httpStr); |
||||||
|
} catch (Exception e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} finally { |
||||||
|
if (response != null) { |
||||||
|
try { |
||||||
|
EntityUtils.consume(response.getEntity()); |
||||||
|
} catch (IOException e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 创建SSL安全连接 |
||||||
|
* |
||||||
|
* @return |
||||||
|
*/ |
||||||
|
private static SSLConnectionSocketFactory createSSLConnSocketFactory() { |
||||||
|
SSLConnectionSocketFactory sslsf = null; |
||||||
|
try { |
||||||
|
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { |
||||||
|
|
||||||
|
public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { |
||||||
|
return true; |
||||||
|
} |
||||||
|
}).build(); |
||||||
|
sslsf = new SSLConnectionSocketFactory(sslContext, new HostnameVerifier() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public boolean verify(String arg0, SSLSession arg1) { |
||||||
|
return true; |
||||||
|
} |
||||||
|
}); |
||||||
|
} catch (GeneralSecurityException e) { |
||||||
|
log.error(e.getMessage(),e); |
||||||
|
} |
||||||
|
return sslsf; |
||||||
|
} |
||||||
|
|
||||||
|
} |
@ -0,0 +1,70 @@ |
|||||||
|
package com.cweb.controller; |
||||||
|
|
||||||
|
import com.github.pagehelper.PageHelper; |
||||||
|
import com.github.pagehelper.PageInfo; |
||||||
|
import com.hai.common.security.SessionObject; |
||||||
|
import com.hai.common.security.UserCenter; |
||||||
|
import com.hai.common.utils.ResponseMsgUtil; |
||||||
|
import com.hai.entity.BsCompany; |
||||||
|
import com.hai.model.HighUserModel; |
||||||
|
import com.hai.model.ResponseData; |
||||||
|
import com.hai.service.HighGoldRecService; |
||||||
|
import io.swagger.annotations.Api; |
||||||
|
import io.swagger.annotations.ApiOperation; |
||||||
|
import org.slf4j.Logger; |
||||||
|
import org.slf4j.LoggerFactory; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.stereotype.Controller; |
||||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||||
|
import org.springframework.web.bind.annotation.RequestMethod; |
||||||
|
import org.springframework.web.bind.annotation.RequestParam; |
||||||
|
import org.springframework.web.bind.annotation.ResponseBody; |
||||||
|
|
||||||
|
import javax.annotation.Resource; |
||||||
|
import javax.servlet.http.HttpServletRequest; |
||||||
|
import java.util.HashMap; |
||||||
|
import java.util.Map; |
||||||
|
|
||||||
|
/** |
||||||
|
* @Auther: 胡锐 |
||||||
|
* @Description: |
||||||
|
* @Date: 2021/3/28 23:54 |
||||||
|
*/ |
||||||
|
@Controller |
||||||
|
@RequestMapping(value = "/coupon") |
||||||
|
@Api(value = "卡卷接口") |
||||||
|
public class highGoldRecController { |
||||||
|
|
||||||
|
private static Logger log = LoggerFactory.getLogger(highGoldRecController.class); |
||||||
|
|
||||||
|
@Autowired |
||||||
|
private UserCenter userCenter; |
||||||
|
|
||||||
|
@Resource |
||||||
|
private HighGoldRecService highGoldRecService; |
||||||
|
|
||||||
|
@RequestMapping(value="/getCouponList",method = RequestMethod.GET) |
||||||
|
@ResponseBody |
||||||
|
@ApiOperation(value = "卡卷列表") |
||||||
|
public ResponseData getCouponList(@RequestParam(name = "goldType", required = true) Integer goldType, |
||||||
|
@RequestParam(name = "pageNum", required = true) Integer pageNum, |
||||||
|
@RequestParam(name = "pageSize", required = true) Integer pageSize, |
||||||
|
HttpServletRequest request) { |
||||||
|
try { |
||||||
|
// 用户
|
||||||
|
SessionObject sessionObject = userCenter.getSessionObject(request); |
||||||
|
HighUserModel userInfoModel = (HighUserModel) sessionObject.getObject(); |
||||||
|
|
||||||
|
Map<String, Object> map = new HashMap<>(); |
||||||
|
map.put("userId", userInfoModel.getHighUser().getId()); |
||||||
|
map.put("goldType", goldType); |
||||||
|
|
||||||
|
PageHelper.startPage(pageNum,pageSize); |
||||||
|
return ResponseMsgUtil.success(new PageInfo<>(highGoldRecService.getGoldRec(map))); |
||||||
|
|
||||||
|
} catch (Exception e) { |
||||||
|
log.error("HighCouponController -> getCouponList() error!",e); |
||||||
|
return ResponseMsgUtil.exception(e); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue