Commit 1924a25d by 伍思炜

智能平台对接开发

parent 6646cc48
......@@ -120,8 +120,9 @@
<artifactId>spring-test</artifactId>
</dependency>
<dependency>
<groupId>com.winsun.framework</groupId>
<artifactId>winsun-core-service</artifactId>
<groupId>com.konghq</groupId>
<artifactId>unirest-java</artifactId>
<version>3.5.00</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.github.ulisesbocchio</groupId>-->
......
......@@ -96,4 +96,9 @@ public class HhrUser implements Serializable{
*/
@TableField(exist = false)
private String name;
/**
* 代理商账号
*/
private String account;
}
......@@ -14,12 +14,15 @@ import com.winsun.auth.core.util.DateUtil;
import com.winsun.bean.*;
import com.winsun.constant.Constant;
import com.winsun.mapper.*;
import com.winsun.smsUtils.StringUtil;
import com.winsun.utils.*;
import kong.unirest.HttpResponse;
import kong.unirest.JsonNode;
import kong.unirest.Unirest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
......@@ -33,6 +36,7 @@ import org.bouncycastle.jcajce.provider.asymmetric.rsa.RSAUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
......@@ -45,6 +49,8 @@ import org.springframework.web.client.ResourceAccessException;
import org.springframework.web.client.RestTemplate;
import sun.misc.BASE64Encoder;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.net.ssl.SSLHandshakeException;
import java.io.DataInput;
import java.io.UnsupportedEncodingException;
......@@ -160,7 +166,7 @@ public class IntelligenceSendOrders {
// 3、提交订单到智能平台
ResponseEntity<String> submitOrderJsonObject =
kong.unirest.HttpResponse<String> submitOrderJsonObject =
getOrderInfo(
schoolMap, //宽带订单对应的学校信息
orderViewMap, //宽带订单信息
......@@ -174,22 +180,28 @@ public class IntelligenceSendOrders {
0);
log.info(
"----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:"
+ submitOrderJsonObject.getStatusCode()
+ submitOrderJsonObject.getStatus()
+ " msg:"
+ submitOrderJsonObject.getBody()
+ submitOrderJsonObject.getParsingError()
+ " orderNum:"
+ submitOrderJsonObject.getBody());
// 4、查询智能订单是否存在
String orderNum = submitOrderJsonObject.getBody();
JSONObject queryOrderJsonObject = null;
if (StringUtils.isNotBlank(orderNum)) {
queryOrderJsonObject = getQueryOrderInfo(orderNum, currentTimeStr, 0);
JSONObject queryOrderJsonObject = getQueryOrderInfo(orderNum, 1);
log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderJsonObject);
Map<String, Object> map = JSONObject.parseObject(queryOrderJsonObject.getString("data"));
System.out.println(map.get("q"));
List<Object> list = (List<Object>) map.get("q");
Map<String, Object> q = (Map<String, Object>) list.get(0);
Map<String, Object> orderStatus = (Map<String, Object>) q.get("订单状态名称");
if (orderStatus.containsKey("订单当前状态|状态备注")) {
System.out.println(orderStatus.get("订单状态ID"));
//5、更新数据库
String state = queryOrderJsonObject.getString("state");
String state = (String) orderStatus.get("订单状态名称");
// 更新hhr_order
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", orderMap.get("kd_order_id"));
......@@ -211,7 +223,7 @@ public class IntelligenceSendOrders {
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", orderMap.get("kd_order_id"));
Order updateOrder = new Order();
updateOrder.setMsg(submitOrderJsonObject.getBody());
updateOrder.setMsg((String) orderStatus.get("订单当前状态|状态备注"));
orderMapper.update(updateOrder, orderWrapper);
}
} else {
......@@ -233,20 +245,21 @@ public class IntelligenceSendOrders {
}
/*
/**
* @param schoolMap
* @param orderMap
* @param orderViewMap
* @param currentTimeStr
* @param productName
* @param ORDERSEQ
* @param UPTRANSEQ
* @param ORDERAMOUNT
* @param ORDERREQTRANSEQ
* @param businessType
* @param count
* @return 新单宽下单接口调用
* @throws Exception
*/
private ResponseEntity<String> getOrderInfo(
private kong.unirest.HttpResponse<String> getOrderInfo(
Map<String, Object> schoolMap, //宽带订单对应的学校信息
Map<String, Object> orderViewMap, //宽带订单信息
String currentTimeStr, //当前时间
......@@ -323,12 +336,13 @@ public class IntelligenceSendOrders {
order_data.put("代理商账号", "hyoujian");
order_data.put("使用人姓名", "黄友健");
order_data.put("使用人证件号", "'440802199006080830");
order_data.put("使用人证件号", "440802199006080830");
Map<String, Object> customerInformation = new HashMap<>(); //客户信息
customerInformation.put("联系人", (String) orderViewMap.get("orderName"));
customerInformation.put("客户类型", "普通客户");
customerInformation.put("客户证件号码", (String) orderViewMap.get("orderNumber"));
customerInformation.put("客户证件姓名", (String) orderViewMap.get("customerName"));
customerInformation.put("客户证件姓名", (String) orderViewMap.get("orderName"));
customerInformation.put("联系电话", (String) orderViewMap.get("orderPhone"));
//customerInformation.put("客户证件地址", "");
customerInformation.put("装机联系电话", (String) orderViewMap.get("orderPhone"));
......@@ -355,16 +369,16 @@ public class IntelligenceSendOrders {
school = schoolMapper.selectOne(school);
Map<String, Object> packageInformation = new HashMap<>(); //揽装信息
packageInformation.put("揽装姓名", school.getLzUser());
//packageInformation.put("三级机构", "");
//packageInformation.put("一级机构", "");
//packageInformation.put("企微号码", "");
//packageInformation.put("揽装人联系电话", "");
packageInformation.put("三级机构", "");
packageInformation.put("一级机构", "");
packageInformation.put("企微号码", "");
packageInformation.put("揽装人联系电话", "");
packageInformation.put("机构ID", addressID);
//packageInformation.put("四级机构", "");
//packageInformation.put("二级机构", "");
packageInformation.put("揽装工号", /*landId*/"44100621");
//packageInformation.put("协销工号", "");
//packageInformation.put("五级机构", "");
packageInformation.put("四级机构", "");
packageInformation.put("二级机构", "");
packageInformation.put("揽装工号", /*landId*/"4410061561");
packageInformation.put("协销工号", "");
packageInformation.put("五级机构", "");
order_data.put("揽装信息", packageInformation);
HashMap<String, Object> invoiceInformation = new HashMap<>(); //发票信息
......@@ -549,14 +563,13 @@ public class IntelligenceSendOrders {
monthlyFeeItems.put("费用项列表", expenseItemsList);
order_data.put("月租费用项", monthlyFeeItems);
order_data.put("一次性费用项", "");
//order_data.put("一次性费用项", "");
Map<String, Object> map1 = new HashMap<>();
//map1.put("return_data", return_data);
map1.put("order_data", order_data);
String order_dataJSON = JSONObject.toJSONString(map1);
//String data = "{\"order_data\":{\"代理商账号\":\"代理商账号\",\"使用人姓名\":\"使用人姓名\",\"使用人证件号\":\"使用人证件号\",\"客户信息\":{\"联系人\":\"伍思炜\",\"客户证件号码\":\"44128319990817359X\",\"联系电话\":\"13727264296\",\"客户证件地址\":\"\",\"装机联系电话\":\"13727264296\",\"装机联系人\":\"伍思炜\",\"客户证件类型\":\"身份证\",\"通讯地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\"},\"装机详细地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\",\"订单来源单号\":\"r5bso7k9vgasfgs29tf8\",\"订单备注\":\"\",\"付费类型\":\"\",\"揽装信息\":{\"揽装人联系电话\":\"\",\"揽装姓名\":\"\",\"机构ID\":\"441020000000001023017324\",\"四级机构\":\"\",\"三级机构\":\"\",\"二级机构\":\"\",\"揽装工号\":\"06684262\",\"协销工号\":\"\",\"一级机构\":\"\",\"企微号码\":\"\",\"五级机构\":\"\"},\"发票信息\":{\"发票抬头\":\"\",\"发票投递方式\":\"不需要\",\"电子邮箱\":\"\"},\"接口下单账号\":\"xyzx\",\"订购产品\":{\"产品SKU\":\"\",\"产品名称\":\"校园宽带300元\",\"受理内容\":\"\",\"付费类型\":\"\",\"AI编码\":\"DQ_ADSL_CAMPUS\",\"属性列表\":[{\"属性值\":\"4M\",\"属性名\":\"宽带速率\"},{\"属性值\":\"441020000000001023017324\",\"属性名\":\"地址ID\"},{\"属性值\":\"PC+手机\",\"属性名\":\"允许上网终端类型\"},{\"属性值\":\"学生\",\"属性名\":\"用户类别\"},{},{\"属性值\":\"广州康大教育园\",\"属性名\":\"学校名称\"},{\"属性值\":\"1804050432\",\"属性名\":\"学生证号\"},{\"属性值\":\"校园天翼宽带用户\",\"属性名\":\"用户类型\"},{\"属性值\":\"包月30元\",\"属性名\":\"月租类型\"},{\"属性值\":\"普通\",\"属性名\":\"计费属性\"},{\"属性值\":\"13727264296@SCNUZC.GZ\",\"属性名\":\"多媒体账号\"},{\"属性值\":\"a12345678\",\"属性名\":\"多媒体账号密码\"},{\"属性值\":\"1\",\"属性名\":\"最大在线数\"},{\"属性值\":\"否\",\"属性名\":\"一人一号多终端\"},{\"属性值\":\"否\",\"属性名\":\"是否FTTH+HUB\"},{\"属性值\":\"(FTTB)光缆大楼\",\"属性名\":\"外线方式\"},{\"属性值\":\"首月按天收费\",\"属性名\":\"宽带首月费用类型\"}],\"业务类型\":\"单宽业务\",\"宽带装机\":{\"装机详细地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\",\"省\":\"广东省\",\"市\":\"广州市\",\"区\":\"黄埔区\",\"装机地址ID\":\"441020000000001023017324\"},\"月租费用项\":{\"费用项列表\":[{\"费用项名称\":\"校园宽带300元\",\"费用项金额\":\"300.0000\",\"费用项类型\":\"月租\"}]},\"缴费方式\":\"现金支付\"}}}";
//String data = "{\"order_data\":{\"代理商账号\":\"hyoujian\",\"使用人姓名\":\"黄友健\",\"使用人证件号\":\"440802199006080830\",\"客户信息\":{\"联系人\":\"伍思炜\",\"客户证件号码\":\"44128319990817359X\",\"联系电话\":\"13727264296\",\"客户证件地址\":\"\",\"装机联系电话\":\"13727264296\",\"装机联系人\":\"伍思炜\",\"客户证件类型\":\"身份证\",\"通讯地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\"},\"装机详细地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\",\"订单来源单号\":\"r5bso7k9vgasfgs29tf8\",\"订单备注\":\"\",\"付费类型\":\"\",\"揽装信息\":{\"揽装人联系电话\":\"\",\"揽装姓名\":\"\",\"机构ID\":\"441020000000001023017324\",\"四级机构\":\"\",\"三级机构\":\"\",\"二级机构\":\"\",\"揽装工号\":\"06684262\",\"协销工号\":\"\",\"一级机构\":\"\",\"企微号码\":\"\",\"五级机构\":\"\"},\"发票信息\":{\"发票抬头\":\"\",\"发票投递方式\":\"不需要\",\"电子邮箱\":\"\"},\"接口下单账号\":\"xyzx\",\"订购产品\":{\"产品SKU\":\"\",\"产品名称\":\"校园宽带300元\",\"受理内容\":\"\",\"付费类型\":\"\",\"AI编码\":\"DQ_ADSL_CAMPUS\",\"属性列表\":[{\"属性值\":\"4M\",\"属性名\":\"宽带速率\"},{\"属性值\":\"441020000000001023017324\",\"属性名\":\"地址ID\"},{\"属性值\":\"PC+手机\",\"属性名\":\"允许上网终端类型\"},{\"属性值\":\"学生\",\"属性名\":\"用户类别\"},{},{\"属性值\":\"广州康大教育园\",\"属性名\":\"学校名称\"},{\"属性值\":\"1804050432\",\"属性名\":\"学生证号\"},{\"属性值\":\"校园天翼宽带用户\",\"属性名\":\"用户类型\"},{\"属性值\":\"包月30元\",\"属性名\":\"月租类型\"},{\"属性值\":\"普通\",\"属性名\":\"计费属性\"},{\"属性值\":\"13727264296@SCNUZC.GZ\",\"属性名\":\"多媒体账号\"},{\"属性值\":\"a12345678\",\"属性名\":\"多媒体账号密码\"},{\"属性值\":\"1\",\"属性名\":\"最大在线数\"},{\"属性值\":\"否\",\"属性名\":\"一人一号多终端\"},{\"属性值\":\"否\",\"属性名\":\"是否FTTH+HUB\"},{\"属性值\":\"(FTTB)光缆大楼\",\"属性名\":\"外线方式\"},{\"属性值\":\"首月按天收费\",\"属性名\":\"宽带首月费用类型\"}],\"业务类型\":\"单宽业务\",\"宽带装机\":{\"装机详细地址\":\"广州市黄埔区九龙镇九龙大道206号206号广州商学院思政楼1楼机房\",\"省\":\"广东省\",\"市\":\"广州市\",\"区\":\"黄埔区\",\"装机地址ID\":\"441020000000001023017324\"},\"月租费用项\":{\"费用项列表\":[{\"费用项名称\":\"校园宽带300元\",\"费用项金额\":\"300.0000\",\"费用项类型\":\"月租\"}]},\"缴费方式\":\"现金支付\"}}}";
// 获得md5串
String sign = MD5Util.MD5Encode(order_dataJSON, "Utf-8");
// 获得小写md5串
......@@ -572,17 +585,15 @@ public class IntelligenceSendOrders {
log.info("宽带下单接口中的携带的签名:" + sign);
ResponseEntity<String> responese = null;
kong.unirest.HttpResponse<String> responese = null;
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_JSON_UTF8_VALUE));
//签名
headers.add("X-Sign", sign);
org.springframework.http.HttpEntity<Object> httpEntity = new org.springframework.http.HttpEntity<>(order_dataJSON, headers);
RestTemplate restTemplate = new RestTemplate();
log.info("提交参数:" + order_dataJSON);
Constant.trustEveryone();
//responese = restTemplate.postForEntity("https://applet.mini189.cn/dev/generate", httpEntity, String.class);
responese = Unirest.post("https://applet.mini189.cn/dev/generate")
.header("Content-Type", "application/json;charset=UTF-8")
.header("X-Sign", sign)
.body(order_dataJSON)
.asString();
log.info("单宽带下单接口,返回信息:" + responese.getBody());
} catch (ResourceAccessException e) {
count++;
......@@ -643,70 +654,66 @@ public class IntelligenceSendOrders {
return schoolMap;
}
private JSONObject getQueryOrderInfo(
String orderNum, String currentTimeStr, int count) throws Exception {
List<NameValuePair> qParams = new ArrayList<NameValuePair>();
RequestConfig defaultRequestConfig =
RequestConfig.custom()
.setSocketTimeout(50000)
.setConnectTimeout(50000)
.setConnectionRequestTimeout(50000)
.build();
CloseableHttpClient httpclient =
HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
HttpEntity entity = null;
HttpPost httpPost = new HttpPost(Constant.ZHANGSHIURL + "query.action");
RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).build();
httpPost.setConfig(requestConfig);
Map<String, String> signMap = new HashMap<String, String>(); // 待签名参数
qParams.add(new BasicNameValuePair("service", "query.order.status")); // api标识,必填
signMap.put("service", "query.order.status");
qParams.add(new BasicNameValuePair("userName", Constant.ZHENGSHIAUCCON)); // 用户名,必填
signMap.put("userName", Constant.ZHENGSHIAUCCON);
qParams.add(new BasicNameValuePair("timeStamp", currentTimeStr)); // 时间戳(YYYYMMDDHHMMSS) ,必填
signMap.put("timeStamp", currentTimeStr);
qParams.add(new BasicNameValuePair("orderNumber", orderNum)); // 智能平台订单编号,非必填
signMap.put("outOrderNum", orderNum);
// qParams.add(new BasicNameValuePair("outOrderNum","13888888888"));//外部订单编号,非必填
// signMap.put("outOrderNum","13888888888");
List<String> keys = new ArrayList<String>();
keys.addAll(signMap.keySet());
Collections.sort(keys); // key按字符串升序
String value, plaintext = "";
for (String key : keys) {
value = signMap.get(key);
plaintext = plaintext.concat(value);
}
plaintext = plaintext.concat(Constant.ZHANGSHIKEY);
qParams.add(
new BasicNameValuePair(
"sign", SignUtil.exChange(SignUtil.md5EncodeSignature(plaintext)))); // 签名,必填
JSONObject resultDataJson = null;
public JSONObject getQueryOrderInfo(String orderNum, int count) throws Exception {
ObjectMapper OBJECT_MAPPER = new ObjectMapper();
Map<String, Object> data = new HashMap<>();
data.put("route", "代理商订单信息查询");
data.put("代理商账号", "hyoujian");
data.put("订单编码", orderNum);
data.put("使用人证件号", "440802199006080830");
data.put("使用人姓名", "黄友健");
String bodyJson = JSONObject.toJSONString(data);
String eurl_data = URLEncoder.encode(bodyJson, "UTF-8");
System.out.println(eurl_data);
String url_data = "data=" + eurl_data;
System.out.println(url_data);
// 获得md5串
String sign = MD5Utils.md5(url_data);
// 获得小写md5串
sign = sign.toLowerCase();
System.out.println(sign);
// RSA加密
byte[] encodedData = RSAUtils.encryptByPublicKey(sign, publicKey);
sign = (new BASE64Encoder()).encodeBuffer(encodedData);
System.out.println("签名:" + sign);
//去除换行
sign = sign.replaceAll("\\r|\\n", "");
System.out.println("签名2 :" + sign);
JSONObject jsonObject = null;
try {
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
httpPost.setEntity(new UrlEncodedFormEntity(qParams, "UTF-8"));
log.info("提交参数:" + EntityUtils.toString(httpPost.getEntity(), "UTF-8"));
log.info("提交参数:" + data);
Constant.trustEveryone();
HttpResponse response = httpclient.execute(httpPost);
entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8");
resultDataJson = JSONObject.parseObject(httpResult);
} catch (SSLHandshakeException s) {
kong.unirest.HttpResponse<String> responese = Unirest.get("https://applet.mini189.cn/dev/query/query-order-info?" + url_data)
.header("Content-Type", "application/json")
.header("X-Sign", sign)
.asString();
log.info("宽带订单状态查询接口,返回信息:" + responese.getBody());
String body = responese.getBody();
jsonObject = JSONObject.parseObject(body);
Map<String, Object> dataJson = (Map<String, Object>) jsonObject.get("data");
if (StringUtils.isEmpty(JSON.toJSONString(dataJson.get("q")))) {
count++;
if (count < 20) {
getQueryOrderInfo(orderNum, count);
} else {
log.error("单宽订单状态查询接口尝试20次未查询到订单。请重新下单或检查下单接口");
}
}
} catch (ResourceAccessException s) {
count++;
if (count < 20) {
resultDataJson = getQueryOrderInfo(orderNum, currentTimeStr, count);
getQueryOrderInfo(orderNum, count);
} else {
log.error("单宽下单接口尝试20次失误。请检查接口");
log.error("单宽订单状态查询接口尝试20次失误。请检查接口");
}
} catch (Exception e) {
log.error("接口异常 " + e.getMessage());
e.printStackTrace();
} finally {
httpPost.releaseConnection();
}
return resultDataJson;
return jsonObject;
}
public Map<String, Object> setSchoolMap(Map<String, Object> orderMap, Map<String, Object> orderViewMap, Map<String, Object> schoolMap) {
......@@ -812,7 +819,7 @@ public class IntelligenceSendOrders {
if (order.getUserType().toString().equals("3")) {
String productName = "校园融合套餐";
// 3、提交订单到智能平台
ResponseEntity<String> submitOrderJsonObject =
kong.unirest.HttpResponse<String> submitOrderJsonObject =
getOrderInfo(
schoolMap, //宽带订单对应的学校信息
orderViewMap, //宽带订单信息
......@@ -824,25 +831,28 @@ public class IntelligenceSendOrders {
ORDERREQTRANSEQ, //穗易付订单号
3, //下单类型(3:融合业务;5:单宽业务;10:单宽进融)
0);
JSONObject body = JSONObject.parseObject(submitOrderJsonObject.getBody());
log.info(
"----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:"
+ submitOrderJsonObject.getStatusCode()
+ submitOrderJsonObject.getStatus()
+ " msg:"
+ body.get("msg")
+ submitOrderJsonObject.getParsingError()
+ " orderNum:"
+ body.get("orderNum"));
+ submitOrderJsonObject.getBody());
String orderNum = (String) body.get("orderNumber");
String orderNum = submitOrderJsonObject.getBody();
JSONObject queryOrderJsonObject = null;
JSONObject queryOrderInfo = null;
/*if (StringUtils.isNotBlank(orderNum)) {
queryOrderJsonObject = getQueryOrderInfo(orderNum, currentTimeStr, 0);
log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderJsonObject);
if (StringUtils.isNotBlank(orderNum)) {
queryOrderInfo = getQueryOrderInfo(orderNum, 0);
if (StringUtils.isEmpty(String.valueOf(queryOrderInfo))) {
return;
}
log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderInfo);
//5、更新数据库
String state = queryOrderJsonObject.getString("state");
String state = queryOrderInfo.getString("state");
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", orderMap.get("orderSeq").toString());
......@@ -863,7 +873,7 @@ public class IntelligenceSendOrders {
log.info("----------将智能订单状态更新至数据库error:" + state);
}
} else {
String msg = (String) body.get("msg");
/*String msg = (String) body.get("msg");
if (StringUtils.isNotBlank(msg) && !msg.equals("订单来源单号已存在,请勿重复下单")) {
Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId());
......@@ -871,13 +881,13 @@ public class IntelligenceSendOrders {
updateOrder.setOrderStatus("异常单");
updateOrder.setMsg(msg);
orderMapper.update(updateOrder, wrapper);
}
}*/
}
} else if (order.getUserType().toString().equals("10")) {
String productName = "校园融合宽带提速包";
// 3、提交订单到智能平台
ResponseEntity<String> submitOrderJsonObject =
kong.unirest.HttpResponse<String> submitOrderJsonObject =
getOrderInfo(
schoolMap, //宽带订单对应的学校信息
orderViewMap, //宽带订单信息
......@@ -889,24 +899,24 @@ public class IntelligenceSendOrders {
ORDERREQTRANSEQ, //穗易付订单号
10, //下单类型(3:融合业务;5:单宽业务;10:单宽进融)
0);
JSONObject body = JSONObject.parseObject(submitOrderJsonObject.getBody());
log.info(
"----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:"
+ submitOrderJsonObject.getStatusCode()
+ submitOrderJsonObject.getStatus()
+ " msg:"
+ body.get("msg")
+ submitOrderJsonObject.getParsingError()
+ " orderNum:"
+ body.get("orderNum"));
String orderNum = (String) body.get("orderNumber");
+ submitOrderJsonObject.getBody());
JSONObject queryOrderJsonObject = null;
String orderNum = submitOrderJsonObject.getBody();
/*String orderNum = (String) body.get("orderNumber");
net.sf.json.JSONObject queryOrderJsonObject = null;
JSONObject queryOrderInfo = null;
if (StringUtils.isNotBlank(orderNum)) {
//5、更新数据库
queryOrderInfo = getQueryOrderInfo(orderNum, 0);
if (StringUtils.isEmpty(String.valueOf(queryOrderInfo))) {
return;
}
//5、更新数据库
Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId());
Order updateOrder = new Order();
......@@ -920,22 +930,22 @@ public class IntelligenceSendOrders {
orderHistory.setStatus("智能平台下单成功" + orderNum);
orderHistoryMapper.insert(orderHistory);
} else {
String msg = (String) body.get("msg");
if (StringUtils.isNotBlank(msg) && !msg.equals("订单来源单号已存在,请勿重复下单")) {
//String msg = (String) body.get("msg");
/*if (StringUtils.isNotBlank(msg) && !msg.equals("订单来源单号已存在,请勿重复下单")) {
Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId());
Order updateOrder = new Order();
updateOrder.setOrderStatus("异常单");
updateOrder.setMsg(msg);
orderMapper.update(updateOrder, wrapper);
}
}*/
OrderHistory orderHistory = new OrderHistory();
orderHistory.setOrderId(order.getId());
orderHistory.setCreateDate(new Date());
orderHistory.setStatus("智能平台下单失败" + orderNum);
orderHistoryMapper.insert(orderHistory);
}*/
}
}
}
......@@ -946,55 +956,54 @@ public class IntelligenceSendOrders {
* @return
* @throws Exception
*/
public String queryStatus(String orderNum,int need) throws Exception {
public String queryStatus(String orderNum) throws Exception {
ObjectMapper OBJECT_MAPPER = new ObjectMapper();
Map<String, Object> body = new HashMap<>();
body.put("Timestamp", "");
Map<String, Object> values = new HashMap<>();
List<Map<String, Object>> data = new ArrayList<>();
Map<String, Object> value = new HashMap<>();
value.put("route", "代理商订单信息查询");
value.put("代理商账号", "");
value.put("订单编码", orderNum);
value.put("使用人证件号", "");
value.put("使用人姓名", "");
data.add(value);
values.put("data", data);
body.put("values", values);
String bodyJson = JSONObject.toJSONString(body);
//MD5加密
String sign = MD5Util.MD5Encode(bodyJson, "Utf-8");
Map<String, Object> data = new HashMap<>();
data.put("route", "代理商订单信息查询");
data.put("代理商账号", "hyoujian");
data.put("订单编码", orderNum);
data.put("使用人证件号", "440802199006080830");
data.put("使用人姓名", "黄友健");
String bodyJson = JSONObject.toJSONString(data);
String eurl_data = URLEncoder.encode(bodyJson, "UTF-8");
System.out.println(eurl_data);
String url_data = "data=" + eurl_data;
System.out.println(url_data);
// 获得md5串
String sign = MD5Utils.md5(url_data);
// 获得小写md5串
sign = sign.toLowerCase();
log.info("md5签名:" + sign);
System.out.println(sign);
// RSA加密
byte[] encodedData = RSAUtils.encryptByPublicKey(sign, publicKey);
sign = (new BASE64Encoder()).encodeBuffer(encodedData);
log.info("RSA签名:" + sign);
System.out.println("签名:" + sign);
//去除换行
sign = sign.replaceAll("\\r|\\n", "");
System.out.println("签名2 :" + sign);
ResponseEntity<String> responese = null;
kong.unirest.HttpResponse<String> responese = null;
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.valueOf(MediaType.APPLICATION_JSON_UTF8_VALUE));
//签名
headers.add("X-Sign", sign);
org.springframework.http.HttpEntity<Object> httpEntity = new org.springframework.http.HttpEntity<>(bodyJson, headers);
org.springframework.http.HttpEntity<Object> httpEntity = new org.springframework.http.HttpEntity<>(data, headers);
RestTemplate restTemplate = new RestTemplate();
log.info("提交参数:" + bodyJson);
log.info("提交参数:" + data);
Constant.trustEveryone();
responese = restTemplate.postForEntity("http://132.97.20.21/function/applet-query-order-info.dev-fn", httpEntity, String.class);
log.info("智能平台请求状态返回数据:" + responese.getBody());
responese = Unirest.get("https://applet.mini189.cn/dev/query/query-order-info?" + url_data)
.header("Content-Type", "application/json")
.header("X-Sign", sign)
.asString();
log.info("宽带订单状态查询接口,返回信息:" + responese.getBody());
JSONObject bodyJsonObject = JSONObject.parseObject(responese.getBody());
Map<String,Object> map = JSONObject.parseObject(bodyJsonObject.getString("data"));
Map<String, Object> map = JSONObject.parseObject(bodyJsonObject.getString("data"));
List<Object> list = (List<Object>) map.get("q");
Map<String,Object> map2= (Map<String, Object>) list.get(0);
Map<String,Object> orderStatus = (Map<String, Object>) map2.get("订单当前状态");
if (need==1 && "0".equals(orderStatus.get("订单状态ID"))) {
return responese.getBody();
}else if (need == 2 && StringUtils.isEmpty((String) orderStatus.get("订单状态ID"))){
return responese.getBody();
}
Map<String, Object> map2 = (Map<String, Object>) list.get(0);
Map<String, Object> orderStatus = (Map<String, Object>) map2.get("订单当前状态");
} catch (Exception e) {
e.printStackTrace();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment