jx访客
This commit is contained in:
1 parent
6a1935e8c6
commit
2973feb37a
7 files changed
+563
-40
No files matched your search
+1
@@ -13,6 +13,7 @@ public enum TaskCheckStatusEnum {
|
||||
PADDING("1", "审核中"),
|
||||
RESULT("2", "审核通过"),
|
||||
REJECT("3", "审核拒绝"),
|
||||
CANCEL("4", "取消"),
|
||||
;
|
||||
private final String code;
|
||||
|
||||
|
||||
+19
-6
@@ -137,7 +137,6 @@ public class VisitorsController {
|
||||
@SysLog("新增访客" )
|
||||
@PostMapping("/app/save")
|
||||
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
|
||||
@Inner(value = false)
|
||||
public R saveFK(@RequestBody VisitorsAppDTO visitors) {
|
||||
return R.ok(visitorsService.vistorsSave(visitors));
|
||||
}
|
||||
@@ -190,17 +189,31 @@ public class VisitorsController {
|
||||
*/
|
||||
@Operation(summary = "app新增邀约" , description = "app新增拜访" )
|
||||
@SysLog("新增邀约" )
|
||||
@PostMapping("/app/saveBF")
|
||||
@PostMapping("/app/saveYY")
|
||||
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
|
||||
public R saveBF(@RequestBody VisitorsAppDTO visitors) {
|
||||
public R saveYY(@RequestBody VisitorsAppDTO visitors) {
|
||||
|
||||
return R.ok(visitorsService.vistorsBFSave(visitors));
|
||||
return R.ok(visitorsService.vistorsYYSave(visitors));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/app/pageBF")
|
||||
@GetMapping("/app/sq/page")
|
||||
@SysLog("获取我的新增记录" )
|
||||
public R getPage(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
|
||||
return R.ok( visitorsService.getPageSQ(page, visitors));
|
||||
}
|
||||
@GetMapping("/app/yy/page")
|
||||
@SysLog("获取我的邀约记录" )
|
||||
public R getPageBF(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
|
||||
return R.ok( visitorsService.getPageBF(page, visitors));
|
||||
return R.ok( visitorsService.getPageYY(page, visitors));
|
||||
}
|
||||
|
||||
@GetMapping("/app/updateCheckStatus")
|
||||
@SysLog("更新状态" )
|
||||
public R updateCheckStatus(@RequestParam("id")Long id,@RequestParam("checkStatus")String checkStatus) {
|
||||
return R.ok( visitorsService.updateCheckStatus(id,checkStatus));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+21
-3
@@ -26,13 +26,31 @@ public interface VisitorsService extends IService<VisitorsEntity> {
|
||||
|
||||
|
||||
/**
|
||||
* 移动端发起拜访
|
||||
* 移动端发起邀约
|
||||
* @param visitors
|
||||
* @return
|
||||
*/
|
||||
Object vistorsBFSave(VisitorsAppDTO visitors);
|
||||
Object vistorsYYSave(VisitorsAppDTO visitors);
|
||||
|
||||
|
||||
|
||||
Object getPageBF(Page page, VisitorsEntity visitors);
|
||||
Object getPageYY(Page page, VisitorsEntity visitors);
|
||||
|
||||
|
||||
/**
|
||||
* 直接更新预约状态
|
||||
* @param id
|
||||
* @param checkStatus
|
||||
* @return
|
||||
*/
|
||||
Object updateCheckStatus(Long id, String checkStatus);
|
||||
|
||||
|
||||
/**
|
||||
* 获取我的新增的访客记录
|
||||
* @param page
|
||||
* @param visitors
|
||||
* @return
|
||||
*/
|
||||
Object getPageSQ(Page page, VisitorsEntity visitors);
|
||||
}
|
||||
+54
-30
@@ -60,23 +60,23 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
|
||||
@Override
|
||||
@Transactional
|
||||
public Object vistorsSave(VisitorsAppDTO visitors) {
|
||||
//发起流程
|
||||
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
|
||||
if (!processR.isOk() || processR.getData() == null) {
|
||||
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
}
|
||||
String flowId = processR.getData().getFlowId();
|
||||
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
processInstanceParamDto.setFlowId(flowId);
|
||||
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
if (!stringR.isOk() || stringR.getData() == null) {
|
||||
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
}
|
||||
String processInstanceId = stringR.getData();
|
||||
// //发起流程
|
||||
// R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
|
||||
// if (!processR.isOk() || processR.getData() == null) {
|
||||
// throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
// }
|
||||
// String flowId = processR.getData().getFlowId();
|
||||
// ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
// processInstanceParamDto.setFlowId(flowId);
|
||||
// R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
// if (!stringR.isOk() || stringR.getData() == null) {
|
||||
// throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
// }
|
||||
// String processInstanceId = stringR.getData();
|
||||
|
||||
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
|
||||
bean.setType(VisitorTypeEnum.FKSQ.getType());
|
||||
bean.setProcessInstanceId(processInstanceId);
|
||||
// bean.setProcessInstanceId(processInstanceId);
|
||||
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||
|
||||
String uniqueToken = UUID.randomUUID().toString();
|
||||
@@ -118,24 +118,24 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public Object vistorsBFSave(VisitorsAppDTO visitors) {
|
||||
public Object vistorsYYSave(VisitorsAppDTO visitors) {
|
||||
//发起流程
|
||||
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
|
||||
if (!processR.isOk() || processR.getData() == null) {
|
||||
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
}
|
||||
String flowId = processR.getData().getFlowId();
|
||||
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
processInstanceParamDto.setFlowId(flowId);
|
||||
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
if (!stringR.isOk() || stringR.getData() == null) {
|
||||
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
}
|
||||
String processInstanceId = stringR.getData();
|
||||
// R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
|
||||
// if (!processR.isOk() || processR.getData() == null) {
|
||||
// throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
// }
|
||||
// String flowId = processR.getData().getFlowId();
|
||||
// ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
// processInstanceParamDto.setFlowId(flowId);
|
||||
// R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
// if (!stringR.isOk() || stringR.getData() == null) {
|
||||
// throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
// }
|
||||
// String processInstanceId = stringR.getData();
|
||||
Long deptId = SecurityUtils.getUser().getDeptId();
|
||||
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
|
||||
bean.setType(VisitorTypeEnum.ZDYQ.getType());
|
||||
bean.setProcessInstanceId(processInstanceId);
|
||||
// bean.setProcessInstanceId(processInstanceId);
|
||||
bean.setDeptId(deptId);
|
||||
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||
|
||||
@@ -163,11 +163,11 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPageBF(Page page, VisitorsEntity visitors) {
|
||||
public Object getPageYY(Page page, VisitorsEntity visitors) {
|
||||
Long userId = SecurityUtils.getUser().getId();
|
||||
|
||||
LambdaQueryWrapper<VisitorsEntity> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(VisitorsEntity::getUserId, userId);
|
||||
wrapper.eq(VisitorsEntity::getType, VisitorTypeEnum.ZDYQ.getType());
|
||||
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
|
||||
List<VisitorsAppPageVo> records = pageData.getRecords();
|
||||
|
||||
@@ -176,7 +176,31 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
|
||||
|
||||
List<VisitorsAppPageVo> visitorsAppPageVos = BeanUtils.toBean(records, VisitorsAppPageVo.class);
|
||||
resultPage.setRecords(visitorsAppPageVos);
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object updateCheckStatus(Long id, String checkStatus) {
|
||||
VisitorsEntity visitors = new VisitorsEntity();
|
||||
visitors.setId(id);
|
||||
visitors.setCheckStatus(checkStatus);
|
||||
return baseMapper.updateById(visitors);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getPageSQ(Page page, VisitorsEntity visitors) {
|
||||
Long userId = SecurityUtils.getUser().getId();
|
||||
LambdaQueryWrapper<VisitorsEntity> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(VisitorsEntity::getUserId, userId);
|
||||
wrapper.eq(VisitorsEntity::getType, VisitorTypeEnum.FKSQ.getType());
|
||||
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
|
||||
List<VisitorsAppPageVo> records = pageData.getRecords();
|
||||
|
||||
Page<VisitorsAppPageVo> resultPage = new Page<>();
|
||||
org.springframework.beans.BeanUtils.copyProperties(pageData, resultPage, "records"); // 复制分页参数
|
||||
|
||||
List<VisitorsAppPageVo> visitorsAppPageVos = BeanUtils.toBean(records, VisitorsAppPageVo.class);
|
||||
resultPage.setRecords(visitorsAppPageVos);
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
|
||||
+210
@@ -0,0 +1,210 @@
|
||||
package com.bsd.pjcloud.thirdparty.utils.sms;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLEncoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 类说明:短信HTTP API示例
|
||||
* 类名称: SmsSendDemo.java
|
||||
*
|
||||
* @author zjf
|
||||
* @version v1.0.0
|
||||
* @date 2019/3/22 21:55
|
||||
*/
|
||||
@Component
|
||||
public class SmsHTTPSend {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SmsHTTPSend.class);
|
||||
|
||||
/**
|
||||
* 企业编号
|
||||
*/
|
||||
@Value("${LianTongSMS.SP_CODE}")
|
||||
private String SP_CODE;
|
||||
/**
|
||||
* 登录用户名
|
||||
*/
|
||||
@Value("${LianTongSMS.LOGIN_NAME}")
|
||||
private String LOGIN_NAME;
|
||||
/**
|
||||
* 登录用户密码
|
||||
*/
|
||||
@Value("${LianTongSMS.PASSWORD}")
|
||||
private String PASSWORD;
|
||||
|
||||
/**
|
||||
* 签名id
|
||||
*/
|
||||
@Value("${LianTongSMS.AUTOGRAPH_ID}")
|
||||
private String AUTOGRAPH_ID;
|
||||
/* //单条
|
||||
String sendUrl = "http://ytx.zj165.com:9098/api/send";
|
||||
//群发
|
||||
String sendUrlBatch = "http://ytx.zj165.com:9098/api/batchSend";*/
|
||||
|
||||
String sendUrl = "http://ytx.i5gmsg.com:9098/api/send";
|
||||
|
||||
String sendUrlBatch="http://ytx.i5gmsg.com:9098/api/batchSend";
|
||||
|
||||
/**
|
||||
* 功能描述:短信发送,POST请求
|
||||
*
|
||||
* @param content 短信内容,type短信类型
|
||||
* @return void
|
||||
*/
|
||||
public Boolean smsSendByPost(String content, String phone) {
|
||||
try {
|
||||
// 初始化参数
|
||||
Map<String, Object> params = initSmsParams(content, phone);
|
||||
String result = SmsHttpUtils.doPost(sendUrl, params);
|
||||
logger.debug("请求url地址={}", sendUrl);
|
||||
logger.debug("请求参数体={}", params);
|
||||
logger.info("POST短信发送的响应报文【{}】", result);
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
logger.error("POST短信发送发生异常", e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:获取短信回执,POST请求
|
||||
*
|
||||
* @param url 短信url地址
|
||||
* @return void
|
||||
*/
|
||||
private void smsReportByPost(String url) {
|
||||
try {
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("SpCode", SP_CODE);
|
||||
params.put("LoginName", LOGIN_NAME);
|
||||
params.put("Password", PASSWORD);
|
||||
logger.debug("请求url地址={}", url);
|
||||
logger.debug("请求参数体={}", params);
|
||||
String result = SmsHttpUtils.doPost(url, params);
|
||||
logger.info("POST短信回执的响应报文【{}】", result);
|
||||
} catch (IOException e) {
|
||||
logger.error("POST短信回执发生异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:初始化短信参数
|
||||
*
|
||||
* @param
|
||||
* @return java.util.Map<java.lang.String, java.lang.Object>
|
||||
*/
|
||||
private Map<String, Object> initSmsParams(String content, String phone) throws UnsupportedEncodingException {
|
||||
Date date = Calendar.getInstance().getTime();
|
||||
|
||||
String messageContent = encodeStr(content);
|
||||
String scheduleTime = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
|
||||
String serialNumber = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + this.getThreeRandomNumbers();
|
||||
|
||||
Map<String, Object> params = new HashMap<>(9);
|
||||
params.put("SpCode", SP_CODE);
|
||||
params.put("LoginName", LOGIN_NAME);
|
||||
params.put("Password", PASSWORD);
|
||||
//短信内容, 最大480个字(短信内容要求的编码为gbk)
|
||||
params.put("MessageContent", messageContent);
|
||||
//短信类型,1=验证码、2=通知、3=广告 (没传或者非1、2、3系统会默认为4=其他)
|
||||
params.put("MessageType", "2");
|
||||
//手机号码(多个号码用”,”分隔),最多1000个号码
|
||||
params.put("UserNumber", phone);
|
||||
//流水号,20位数字,唯一 (规则自定义,建议时间格式精确到毫秒)
|
||||
params.put("SerialNumber", serialNumber);
|
||||
//预约发送时间,格式:yyyyMMddhhmmss,如‘20090901010101’
|
||||
params.put("ScheduleTime", scheduleTime);
|
||||
//接入号扩展号(默认不填,扩展号为数字,扩展位数由当前所配的接入号长度决定,整个接入号最长4位)
|
||||
params.put("ExtendAccessNum", "");
|
||||
|
||||
/*
|
||||
* 提交时检测方式
|
||||
* 为1时,提交号码中有效的号码仍正常发出短信,无效的号码在返回参数faillist中列出
|
||||
* 不为1或不传时,提交号码中只要有无效的号码,所有的号码都不发短信,所有的号码在返回参数faillist中列出
|
||||
*/
|
||||
params.put("f", "");
|
||||
params.put("AutographId", AUTOGRAPH_ID);
|
||||
return params;
|
||||
}
|
||||
|
||||
public void smsBatchSend(String content, String[] phone) {
|
||||
try {
|
||||
// 初始化参数
|
||||
String params = initBatchSend(content, phone);
|
||||
logger.debug("请求url地址={}", sendUrlBatch);
|
||||
logger.debug("请求参数体={}", params);
|
||||
String result = SmsHttpUtils.doPostBody(sendUrlBatch, params);
|
||||
logger.info("POST短信发送的响应报文 {}", result);
|
||||
} catch (IOException e) {
|
||||
logger.error("POST短信发送发生异常", e);
|
||||
}
|
||||
}
|
||||
|
||||
private String initBatchSend(String content, String[] phone) {
|
||||
Date date = Calendar.getInstance().getTime();
|
||||
String scheduleTime = new SimpleDateFormat("yyyyMMddHHmmss").format(date);
|
||||
String serialNumber = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(date) + this.getThreeRandomNumbers();
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("SpCode", SP_CODE);
|
||||
params.put("LoginName", LOGIN_NAME);
|
||||
params.put("Password", PASSWORD);
|
||||
//短信类型,1=验证码、2=通知、3=广告 (没传或者非1、2、3系统会默认为4=其他)
|
||||
params.put("MessageType", 2);
|
||||
//流水号,20位数字,唯一 (规则自定义,建议时间格式精确到毫秒)
|
||||
params.put("SerialNumber", serialNumber);
|
||||
//预约发送时间,格式:yyyyMMddhhmmss,如‘20090901010101’
|
||||
params.put("ScheduleTime", scheduleTime);
|
||||
/*
|
||||
* 提交时检测方式
|
||||
* 为1时,提交号码中有效的号码仍正常发出短信,无效的号码在返回参数faillist中列出
|
||||
* 不为1或不传时,提交号码中只要有无效的号码,所有的号码都不发短信,所有的号码在返回参数faillist中列出
|
||||
*/
|
||||
params.put("f", "1");
|
||||
/*
|
||||
* 签名ID,可选参数,如果不传则使用默认签名发送
|
||||
*/
|
||||
params.put("AutographId", AUTOGRAPH_ID);
|
||||
|
||||
List<Map<String, Object>> memberList = new ArrayList<>();
|
||||
for (int i = 0; i < phone.length; i++) {
|
||||
Map<String, Object> member = new HashMap<>();
|
||||
member.put("UserNumber", phone[i]);
|
||||
member.put("MessageContent", content);
|
||||
memberList.add(member);
|
||||
}
|
||||
params.put("MemberList", memberList);
|
||||
return JSON.toJSONString(params);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 功能描述:编码
|
||||
*
|
||||
* @param str 编码字符串
|
||||
* @return void
|
||||
*/
|
||||
public String encodeStr(String str) throws UnsupportedEncodingException {
|
||||
return URLEncoder.encode(str, "GBK");
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:获得3位随机数
|
||||
*
|
||||
* @param
|
||||
* @return int
|
||||
*/
|
||||
private int getThreeRandomNumbers() {
|
||||
return new Random().nextInt(900) + 100;
|
||||
}
|
||||
}
|
||||
+248
@@ -0,0 +1,248 @@
|
||||
package com.bsd.pjcloud.thirdparty.utils.sms;
|
||||
|
||||
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.entity.StringEntity;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.apache.http.message.BasicNameValuePair;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 类说明:Http请求工具
|
||||
* 类名称: HttpUtils.java
|
||||
* @version v1.0.0
|
||||
* @author uccp
|
||||
* @date 2019/3/22 22:37
|
||||
*/
|
||||
public class SmsHttpUtils {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SmsHttpUtils.class);
|
||||
|
||||
private static RequestConfig requestConfig;
|
||||
private static final int MAX_TIMEOUT = 10000;
|
||||
|
||||
static {
|
||||
RequestConfig.Builder configBuilder = RequestConfig.custom();
|
||||
// 设置连接超时
|
||||
configBuilder.setConnectTimeout(MAX_TIMEOUT);
|
||||
// 设置读取超时
|
||||
configBuilder.setSocketTimeout(MAX_TIMEOUT);
|
||||
requestConfig = configBuilder.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:发送 GET 请求(HTTP),不带参数
|
||||
*
|
||||
* @param url 请求地址
|
||||
* @return java.lang.String
|
||||
*/
|
||||
public static String doGet(String url) throws IOException {
|
||||
return doGet(url, new HashMap<>(16));
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:发送 GET 请求(HTTP),带参数Key-Value形式
|
||||
*
|
||||
* @param url 请求地址
|
||||
* @param params 请求参数对象
|
||||
* @return java.lang.String
|
||||
*/
|
||||
public static String doGet(String url, Map<String, Object> params) throws IOException {
|
||||
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 = HttpClients.createDefault();
|
||||
try {
|
||||
HttpGet httpGet = new HttpGet(apiUrl);
|
||||
HttpResponse response = httpClient.execute(httpGet);
|
||||
HttpEntity entity = response.getEntity();
|
||||
if (entity != null) {
|
||||
InputStream instream = entity.getContent();
|
||||
result = readInputStreamToString(instream, "UTF-8");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
logger.error("doGet请求异常", e);
|
||||
throw e;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:发送 POST 请求(HTTP),不带参数
|
||||
*
|
||||
* @param url 请求地址
|
||||
* @return java.lang.String
|
||||
*/
|
||||
public static String doPost(String url) throws IOException {
|
||||
return doPost(url, new HashMap<>(16));
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:发送 POST 请求(HTTP),带参数Key-Value形式
|
||||
*
|
||||
* @param url 请求地址
|
||||
* @param params 请求参数对象
|
||||
* @return java.lang.String
|
||||
*/
|
||||
public static String doPost(String url, Map<String, Object> params) throws IOException {
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
String httpStr;
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
//这里要提前设置好Content-type请求头
|
||||
httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
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");
|
||||
} catch (IOException e) {
|
||||
logger.error("doPost请求异常", e);
|
||||
throw e;
|
||||
} finally {
|
||||
if (response != null) {
|
||||
try {
|
||||
EntityUtils.consume(response.getEntity());
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
return httpStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 功能描述:发送 POST 请求(HTTP),带参数Key-Value形式
|
||||
*
|
||||
* @param url 请求地址
|
||||
* @param soapParams webservice请求参数
|
||||
* @return java.lang.String
|
||||
*/
|
||||
public static String doPost(String url, String soapParams) throws IOException {
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
String httpStr;
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
//这里要提前设置好Content-type请求头
|
||||
httpPost.setHeader("Content-type", "text/xml;charset=UTF-8");
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
httpPost.setConfig(requestConfig);
|
||||
httpPost.setEntity(new StringEntity(soapParams, Charset.forName("UTF-8")));
|
||||
response = httpClient.execute(httpPost);
|
||||
HttpEntity entity = response.getEntity();
|
||||
httpStr = EntityUtils.toString(entity, "UTF-8");
|
||||
} catch (IOException e) {
|
||||
logger.error("doPost请求异常", e);
|
||||
throw e;
|
||||
} finally {
|
||||
if (response != null) {
|
||||
try {
|
||||
EntityUtils.consume(response.getEntity());
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
return httpStr;
|
||||
}
|
||||
|
||||
public static String doPostBody(String url, String bodyPrams) throws IOException {
|
||||
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||
String httpStr;
|
||||
HttpPost httpPost = new HttpPost(url);
|
||||
//这里要提前设置好Content-type请求头
|
||||
httpPost.setHeader("Content-type", "application/json");
|
||||
CloseableHttpResponse response = null;
|
||||
try {
|
||||
httpPost.setConfig(requestConfig);
|
||||
|
||||
httpPost.setEntity(new StringEntity(bodyPrams, Charset.forName("UTF-8")));
|
||||
response = httpClient.execute(httpPost);
|
||||
HttpEntity entity = response.getEntity();
|
||||
httpStr = EntityUtils.toString(entity, "UTF-8");
|
||||
} catch (IOException e) {
|
||||
logger.error("doPost请求异常", e);
|
||||
throw e;
|
||||
} finally {
|
||||
if (response != null) {
|
||||
try {
|
||||
EntityUtils.consume(response.getEntity());
|
||||
} catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
return httpStr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 功能描述:读取流的数据
|
||||
*
|
||||
* @param inputStream 输入流对象
|
||||
* @param charsetName 字符集名称
|
||||
* @return java.lang.String
|
||||
*/
|
||||
private static String readInputStreamToString(InputStream inputStream, String charsetName) throws IOException {
|
||||
StringBuffer sb = new StringBuffer();
|
||||
// 定义BufferedReader输入流来读取URL的响应
|
||||
BufferedReader in;
|
||||
try {
|
||||
in = new BufferedReader(new InputStreamReader(inputStream, charsetName));
|
||||
String line;
|
||||
while ((line = in.readLine()) != null) {
|
||||
sb.append(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
logger.error("readInputStreamToString读取异常", e);
|
||||
throw e;
|
||||
} finally {
|
||||
try {
|
||||
if (inputStream != null) {
|
||||
inputStream.close();
|
||||
}
|
||||
} catch (IOException e2) {
|
||||
logger.error("流关闭异常", e2);
|
||||
throw e2;
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
||||
+10
-1
@@ -108,4 +108,13 @@ sms:
|
||||
default-ext-code: "123"
|
||||
timeout-seconds: 300
|
||||
|
||||
|
||||
#联通短信配置
|
||||
LianTongSMS:
|
||||
#企业编号
|
||||
SP_CODE: '11122'
|
||||
#登录用户名
|
||||
LOGIN_NAME: ''
|
||||
#登录用户密码
|
||||
PASSWORD: 'Aa123456'
|
||||
#签名id
|
||||
AUTOGRAPH_ID: ''
|
||||
Reference in new issue
Block a user