Commit 0b824a7b by 伍思炜

新智能平台对接开发

parent 37a678cf
package com.winsun.controller;
import com.alibaba.fastjson.JSONObject;
import com.winsun.bean.AttributeList;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController
{
@RequestMapping(value = "testPost", method = RequestMethod.POST)
public AttributeList testPost(@RequestBody JSONObject requestBean)
{
System.out.println(requestBean);
AttributeList responseBean = new AttributeList();
responseBean.setName("123");
responseBean.setValue("succ");
return responseBean;
}
}
\ No newline at end of file
package com.winsun.bean;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
@Data
public class AttributeList {
@JSONField(name ="属性名")
private String name;
@JSONField(name ="属性值")
private String value;
}
......@@ -169,6 +169,9 @@ public interface OrderMapper extends BaseMapper<Order> {
@Select("SELECT * FROM hhr_order WHERE user_type = '5' and order_status = '未下单'")
List<Map<String,Object>> selectDKList();
@Select("SELECT * FROM hhr_order WHERE user_type = '5' and kd_order_id = 'vpsg0u4l4y8tkp1aimlh'")
Map<String,Object> selectDKList2();
/**
* 一人一码订单通报 -- 移动订单(学校)
......
......@@ -7,14 +7,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.winsun.auth.core.util.DateUtil;
import com.winsun.bean.Order;
import com.winsun.bean.OrderHistory;
import com.winsun.bean.OrderView;
import com.winsun.bean.UniversityInfo;
import com.winsun.bean.*;
import com.winsun.constant.Constant;
import com.winsun.mapper.*;
import com.winsun.utils.BeanUtil;
import com.winsun.utils.SignUtil;
import com.winsun.utils.ZnptSignUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
......@@ -28,7 +26,10 @@ import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLHandshakeException;
import java.io.UnsupportedEncodingException;
......@@ -43,7 +44,7 @@ import java.util.*;
*/
@Slf4j
@Component
public class IntelligenceSendOrder2 {
public class IntelligenceSendOrders {
@Autowired
private UniversityInfoMapper universityInfoMapper;
......@@ -60,12 +61,17 @@ public class IntelligenceSendOrder2 {
@Autowired
private OrderHistoryMapper orderHistoryMapper;
@Autowired
//private ZnptSignUtils znptSignUtils;
/**
* 单宽下单公共类
*
* @param order hhr_order map类型
*/
public void singleBroadSendOrder(Map<String, Object> order) {
try {
// 初始化下单支付参数
String ORDERSEQ = "", ORDERAMOUNT = "", ORDERREQTRANSEQ = "", UPTRANSEQ = "";
......@@ -91,6 +97,7 @@ public class IntelligenceSendOrder2 {
log.info("订单号:" + ORDERSEQ + ",在order_view表中无记录,无法进行智能平台下单");
return;
}
//产品价格
ORDERAMOUNT = orderMap.get("webOrderAmount") != null ? orderMap.get("webOrderAmount").toString() : "0";
//穗易付订单号
......@@ -107,60 +114,30 @@ public class IntelligenceSendOrder2 {
List<Map<String, Object>> findUniversityById = universityInfoMapper.selectMaps(universityInfoWrapper);
schoolMap = findUniversityById.get(0);
} else {
Wrapper<UniversityInfo> universityInfoWrapper = new EntityWrapper<>();
universityInfoWrapper.eq("university_name", orderMap.get("orderUniversityName"));
universityInfoWrapper.eq("university_region", orderMap.get("orderRegion"));
list1 = universityInfoMapper.selectMaps(universityInfoWrapper);
schoolMap = list1.get(0);
}
if (orderMap.get("orderSeqThd") == null || "".equals(orderMap.get("orderSeqThd"))) {
// 1、获取产品ID
JSONObject productJsonObject = getProductId(currentTimeStr, 0);
log.info("----------调用智能平台的产品接口返回参数:" + productJsonObject);
// 2、获取销售品ID
if (productJsonObject.toString().indexOf("list") == -1) {
return;
}
JSONArray list = productJsonObject.getJSONArray("list");
String productId = null; // 产品id
ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
ORDERAMOUNT = ORDERAMOUNT.replace(".00", "");
String productName = "校园宽带" + ORDERAMOUNT + "元";
if (ORDERAMOUNT.contains("0.01")) {
productName = "校园宽带30元";
} else if (ORDERAMOUNT.contains("0.02")) {
productName = "校园宽带300元";
}
if(productName.equals("校园宽带0元")){
if (productName.equals("校园宽带0元")) {
productName = "校园宽带(免月租)";
ORDERAMOUNT = "0";
ORDERREQTRANSEQ = "00000";
UPTRANSEQ = "00000";
}
//例: productName = "校园宽带30元";
System.out.println("------" + productName);
// productName = "校园宽带30元";
for (int i = 0; i < list.size(); i++) {
net.sf.json.JSONObject itmeJson = net.sf.json.JSONObject.fromObject(list.get(i));
// 判断获取的全部产品与订单产品符合的拿取对应的ID
if (itmeJson.getString("name").indexOf(productName) != -1) {
productId = itmeJson.getString("id"); // 获取对应产品ID
break;
}
}
log.info("----------根据返回参数获取产品ID:" + productId);
String saleId = null; // 销售id
JSONObject saleJsonObject = getSaleId(productId, currentTimeStr, 0); // 获取销售ID
log.info("----------调用智能平台的获取销售品接口返回值:" + saleJsonObject);
JSONArray saleList = saleJsonObject.getJSONArray("list");
net.sf.json.JSONObject itmeJson = net.sf.json.JSONObject.fromObject(saleList.get(0));
saleId = itmeJson.getString("saleId");
setPriceIndex(schoolMap, orderMap, ORDERAMOUNT);
......@@ -170,28 +147,27 @@ public class IntelligenceSendOrder2 {
schoolMap, //宽带订单对应的学校信息
orderMap, //宽带订单信息
currentTimeStr, //当前时间
productId, //产品ID
saleId, //销售员ID
productName, //产品名称
ORDERSEQ, //kd_order_id 宽带ID
UPTRANSEQ, //支付平台流水号
ORDERAMOUNT, //产品价格
ORDERREQTRANSEQ, //穗易付订单号
0);
log.info(
/*log.info(
"----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:"
+ submitOrderJsonObject.get("status")
+ " msg:"
+ submitOrderJsonObject.get("msg")
+ " orderNum:"
+ submitOrderJsonObject.get("orderNumber"));
+ submitOrderJsonObject.get("orderNumber"));*/
// 4、查询智能订单是否存在
String orderNum = (String) submitOrderJsonObject.get("orderNumber");
/*String orderNum = (String) submitOrderJsonObject.get("orderNumber");
JSONObject queryOrderJsonObject = null;
if (StringUtils.isNotBlank(orderNum)) {
queryOrderJsonObject = getQueryOrderInfo(orderNum, currentTimeStr, 0);
log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderJsonObject);
/* 5、更新数据库 */
*//*5、更新数据库 *//*
String state = queryOrderJsonObject.getString("state");
// 更新hhr_order
Wrapper<Order> orderWrapper = new EntityWrapper<>();
......@@ -209,14 +185,14 @@ public class IntelligenceSendOrder2 {
wrapperOrderView.eq("orderSeq", order.get("kd_order_id").toString());
orderViewMapper.update(updateOrderView, wrapperOrderView);
log.info("----------将智能订单状态更新至数据库success:" + state);
}else{
} else {
// 报错更新提示
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", order.get("kd_order_id"));
Order updateOrder = new Order();
updateOrder.setMsg(submitOrderJsonObject.getString("msg"));
orderMapper.update(updateOrder, orderWrapper);
}
}*/
} else {
log.info(
"---单宽支付接口推送---"
......@@ -229,12 +205,306 @@ public class IntelligenceSendOrder2 {
+ ORDERREQTRANSEQ);
log.info("重复订单");
}
}catch (Exception e){
} catch (Exception e) {
log.info("单宽下单失败");
e.printStackTrace();
}
}
/**
* @param schoolMap
* @param orderMap
* @param currentTimeStr
* @param ORDERSEQ
* @param UPTRANSEQ
* @param ORDERAMOUNT
* @param ORDERREQTRANSEQ
* @param count
* @return 新单宽下单接口调用
* @throws Exception
*/
private JSONObject getOrderInfo(
Map<String, Object> schoolMap, //宽带订单对应的学校信息
Map<String, Object> orderMap, //宽带订单信息
String currentTimeStr, //当前时间
String productName, //产品名称
String ORDERSEQ, //kd_order_id 宽带ID
String UPTRANSEQ, //支付平台流水号
String ORDERAMOUNT, //产品价格
String ORDERREQTRANSEQ, //穗易付订单号
int count) //0
throws Exception {
log.info("前置提交参数:schoolMap:" + schoolMap + ",orderMap:" + orderMap);
/*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 + "create-order.action");
RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).build();
httpPost.setConfig(requestConfig);*/
String addressDistrict = null; //所在区域
String address = null; //装机地址
String addressID = null; //地址ID
String landId = null; //揽装工号
String universityTerminalType = null; //允许上网终端类型
String universityUserCategory = null; //用户类别
String universityUserType = null; //用户类型
String universityMonthlyRentType = null; //月租类型
String universityChargingAttribute = null; //计费属性
String universityOnlineNumber = null; //最大在线数
String universityOneManTerminal = null; //一人一号多终端:0否 1是
String universityIsFtthHub = null; //是否FTTH+HUB:0否 1是
String universityExteriorLines = null; //外线方式
String universityChargeMode = null; //收费模式
if (BeanUtil.isNotBlank(schoolMap)) {
addressDistrict = (String) schoolMap.get("universityRegion");
address = (String) schoolMap.get("universityInstalledAddress");
addressID = (String) schoolMap.get("universityInstalledAddressId");
landId = (String) schoolMap.get("universityPackageNumber");
universityTerminalType = (String) schoolMap.get("universityTerminalType");
universityUserCategory = (String) schoolMap.get("universityUserCategory");
universityUserType = (String) schoolMap.get("universityUserType");
universityMonthlyRentType = (String) schoolMap.get("universityMonthlyRentType");
universityChargingAttribute = (String) schoolMap.get("universityChargingAttribute");
universityOnlineNumber = (String) schoolMap.get("universityOnlineNumber");
universityOneManTerminal = (String) schoolMap.get("universityOneManTerminal");
universityIsFtthHub = (String) schoolMap.get("universityIsFtthHub");
universityExteriorLines = (String) schoolMap.get("universityExteriorLines");
universityChargeMode = (String) schoolMap.get("universityChargeMode");
} else {
addressDistrict = "测试区";
address = "广东省广州市测试区测试街道1号";
addressID = "00000";
landId = "20180621";
universityTerminalType = "测试";
universityUserCategory = "测试";
universityUserType = "测试";
universityMonthlyRentType = "测试";
universityChargingAttribute = "测试";
universityOnlineNumber = "0";
universityOneManTerminal = "否";
universityIsFtthHub = "否";
universityExteriorLines = "测试";
universityChargeMode = "测试";
}
Map<String, Map<String, String>> map = new HashMap<>();
Map<String, String> return_data = new HashMap<>();
return_data.put("code", "");
return_data.put("route", "提交订单"); //[提交下单] [订单保存] [提交审核] 默认为提交下单
return_data.put("微信openId", "");
return_data.put("微信appId", "");
map.put("return_data", return_data);
Map<String, Object> order_data = new HashMap<>();
Map<String, Object> attachment = new HashMap<>(); // 附件
attachment.put("订单底单", "");
order_data.put("附件", attachment);
Map<String, Object> customerInformation = new HashMap<>(); //客户信息
customerInformation.put("联系人", (String) orderMap.get("customerName"));
customerInformation.put("客户证件号码", (String) orderMap.get("idCard"));
customerInformation.put("客户证件姓名", (String) orderMap.get("customerName"));
customerInformation.put("联系电话", (String) orderMap.get("contactNumber"));
customerInformation.put("客户证件地址", "");
customerInformation.put("装机联系电话", (String) orderMap.get("contactNumber"));
customerInformation.put("装机联系人", (String) orderMap.get("customerName"));
customerInformation.put("客户证件类型", "身份证");
customerInformation.put("通讯地址", address);
order_data.put("客户信息", customerInformation);
order_data.put("装机详细地址", address);
order_data.put("订单来源单号", (String) orderMap.get("orderSeq")); // 订单来源单号,必填; 与订单来源对应,用于业务上记录订单的来源订单编号
order_data.put("订单备注", "");
order_data.put("办理类型", "新宽新移"); //新宽新移 ,新宽旧移,旧宽新移,旧宽旧移
order_data.put("付费类型", ""); //预付费、后付费、其他 选填
Map<String, Object> packageInformation = new HashMap<>(); //揽装信息
packageInformation.put("揽装姓名", "");
packageInformation.put("三级机构", "");
packageInformation.put("一级机构", "");
packageInformation.put("企微号码", "");
packageInformation.put("揽装人联系电话", "");
packageInformation.put("机构ID", addressID);
packageInformation.put("四级机构", "");
packageInformation.put("二级机构", "");
packageInformation.put("揽装工号", landId);
packageInformation.put("协销工号", "");
packageInformation.put("五级机构", "");
order_data.put("揽装信息", packageInformation);
HashMap<String, Object> invoiceInformation = new HashMap<>(); //发票信息
invoiceInformation.put("发票抬头", ""); //若发票投递方式为不需要,可以不填值,但必须有参数
invoiceInformation.put("发票投递方式", ""); // 必填 一次性发票,分月发票,不需要
invoiceInformation.put("电子邮箱", ""); //若发票投递方式为不需要,可以不填值,但必须有参数
order_data.put("发票信息", invoiceInformation);
order_data.put("接口下单账号", Constant.ZHENGSHIAUCCON); //接口下单账号
HashMap<String, Object> orderingProducts = new HashMap<>(); //订购产品
orderingProducts.put("产品SKU", "");
orderingProducts.put("产品名称", productName);
orderingProducts.put("受理内容", "");
orderingProducts.put("付费类型", "");
// 属性列表
AttributeList roadbandRate = new AttributeList();
roadbandRate.setName("宽带速率");
String setMeal = (String) orderMap.get("orderSetMeal");
if (StringUtils.isNotBlank(setMeal)) {
setMeal = setMeal.replace("包月", "");
setMeal = setMeal.replace("包年", "");
}
if (setMeal.equals("20M")) {
roadbandRate.setValue("20M下行速率/4M上行速率");
} else if (setMeal.equals("2M")) {
roadbandRate.setValue("2M下行速率/512K上行速率");
} else if (setMeal.equals("50M")) {
roadbandRate.setValue("50M下行速率/10M上行速率");
}
AttributeList AddressID = new AttributeList();
AddressID.setName("地址ID");
AddressID.setValue(addressID);
AttributeList internetType = new AttributeList();
internetType.setName("允许上网终端类型");
internetType.setValue(universityTerminalType);
AttributeList userCategory = new AttributeList();
userCategory.setName("用户类别");
userCategory.setValue(universityUserCategory);
AttributeList schoolName = new AttributeList();
schoolName.setName("学校名称");
schoolName.setValue((String) orderMap.get("orderUniversityName"));
AttributeList studentID = new AttributeList();
studentID.setName("学生证号");
studentID.setValue((String) orderMap.get("orderCustomerStudentId"));
AttributeList userType = new AttributeList();
userType.setName("用户类型");
userType.setValue(universityUserType);
AttributeList monthlyRentType = new AttributeList();
monthlyRentType.setName("月租类型");
monthlyRentType.setValue(universityMonthlyRentType);
AttributeList billingAttributes = new AttributeList();
billingAttributes.setName("计费属性");
billingAttributes.setValue(universityChargingAttribute);
AttributeList customerAccount = new AttributeList();
customerAccount.setName("多媒体账号");
customerAccount.setValue((String) orderMap.get("orderCustomerAccount"));
AttributeList customerPwd = new AttributeList();
customerPwd.setName("多媒体账号密码");
customerPwd.setValue((String) orderMap.get("orderCustomerPwd"));
AttributeList onlineNumber = new AttributeList();
onlineNumber.setName("最大在线数");
onlineNumber.setValue(universityOnlineNumber);
AttributeList oneManTerminal = new AttributeList();
oneManTerminal.setName("一人一号多终端");
oneManTerminal.setValue(universityOneManTerminal);
AttributeList isFtthHub = new AttributeList();
isFtthHub.setName("是否FTTH+HUB");
isFtthHub.setValue(universityIsFtthHub);
AttributeList exteriorLines = new AttributeList();
exteriorLines.setName("外线方式");
exteriorLines.setValue(universityExteriorLines);
AttributeList chargeMode = new AttributeList();
chargeMode.setName("宽带首月费用类型");
chargeMode.setValue(universityChargeMode);
AttributeList[] attributeList = new AttributeList[]{roadbandRate, AddressID, internetType, userCategory,
schoolName, studentID, userType, monthlyRentType, billingAttributes, customerAccount, customerPwd,
onlineNumber, oneManTerminal, isFtthHub, exteriorLines, chargeMode}; //属性列表
orderingProducts.put("属性列表", attributeList);
order_data.put("业务类型", "单宽业务"); //业务类型
HashMap<String, Object> broadbandInstalledCapacity = new HashMap<>(); //宽带装机
broadbandInstalledCapacity.put("装机详细地址", address);
broadbandInstalledCapacity.put("省", "广东省");
broadbandInstalledCapacity.put("市", "广州市");
broadbandInstalledCapacity.put("区", address);
broadbandInstalledCapacity.put("装机地址ID", addressDistrict);
order_data.put("宽带装机", broadbandInstalledCapacity);
HashMap<Object, Object> monthlyFeeItems = new HashMap<>(); //月租费用项
List<HashMap<String, Object>> expenseItemsList = new ArrayList<>(); //费用项列表
HashMap<String, Object> expenseItemsMap = new HashMap<>();
expenseItemsMap.put("费用项名称",productName);
expenseItemsMap.put("费用项金额",ORDERAMOUNT+".0000");
if (universityMonthlyRentType.contains("包月")){
expenseItemsMap.put("费用项类型","月租");
}else if (universityMonthlyRentType.contains("包年")){
expenseItemsMap.put("费用项类型","年租");
}
ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
if (ORDERAMOUNT.equals("0.01") || ORDERAMOUNT.equals("0.02")) {
monthlyFeeItems.put("缴费方式", "现金支付"); // 缴费方式,必填(例:payType:1);1:银行划账2:现金支付3:代理商打款4:穗易付5:原套餐缴费方式6:支付宝划扣8:装维上门收取
} else if ("xjzf".equals(orderMap.get("customerId"))) {
monthlyFeeItems.put("缴费方式", "现金支付");
} else {
monthlyFeeItems.put("缴费方式", "穗易付");
expenseItemsMap.put("穗易付订单号", ORDERREQTRANSEQ);
String payPlatform = (String) orderMap.get("ipay");
if (StringUtils.isNotBlank(payPlatform)) {
if ("1".equals(payPlatform)) {
expenseItemsMap.put("穗易付支付平台", "支付宝"); // 支付平台,缴费方式为“穗易付”时必填
} else {
expenseItemsMap.put("穗易付支付平台", "微信"); // 支付平台,缴费方式为“穗易付”时必填
}
} else {
expenseItemsMap.put("穗易付支付平台", "穗易付"); // 支付平台,缴费方式为“穗易付”时必填
}
expenseItemsMap.put("穗易付支付金额", ORDERAMOUNT);
expenseItemsMap.put("穗易付支付流水号", UPTRANSEQ);
expenseItemsList.add(expenseItemsMap);
}
order_data.put("月租费用项", monthlyFeeItems);
String order_dataJSON = JSONObject.toJSONString(order_data);
JSONObject resultDataJson = null;
try {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Content-Type", "application/json;charset=utf-8");
//签名
/*
headers.add("Hmac", znptSignUtils.macSHA1(order_dataJSON));*/
RestTemplate restTemplate = new RestTemplate();
log.info("提交参数:" + order_dataJSON);
Constant.trustEveryone();
resultDataJson = restTemplate.postForObject("http://localhost:11092/testPost", order_dataJSON, JSONObject.class,headers);
//log.info("单宽带下单接口,返回信息:" + resultDataJson);
System.out.println(resultDataJson);
} catch (Exception e) {
log.info("单宽带下单接口异常");
e.printStackTrace();
}
return resultDataJson;
}
private void setPriceIndex(Map<String, Object> schoolMap, Map<String, Object> orderMap, String ORDERAMOUNT) {
try {
// 获取金额下标
......@@ -242,24 +512,24 @@ public class IntelligenceSendOrder2 {
Integer index = 0;
String setMealIndex = orderMap.get("setMealIndex").toString();
if ("".equals(setMealIndex) || !setMealIndex.matches("[0-9]*")) {
if(ORDERAMOUNT.equals("50元")&&orderMap.get("orderSetMeal").equals("20M包月")){
schoolMap.put("universityMonthlyRentType","包月50元");
if (ORDERAMOUNT.equals("50元") && orderMap.get("orderSetMeal").equals("20M包月")) {
schoolMap.put("universityMonthlyRentType", "包月50元");
}
}else {
} else {
index = Integer.parseInt(setMealIndex);
String[] university_monthly_rent_type = schoolMap.get("universityMonthlyRentType").toString().split(",");
if (university_monthly_rent_type.length > index) {
schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[index]);
}else {
} else {
schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[0]);
}
}
}else{
if(ORDERAMOUNT.equals("50元")&&orderMap.get("order_set_meal").equals("20M包月")){
schoolMap.put("universityMonthlyRentType","包月50元");
} else {
if (ORDERAMOUNT.equals("50元") && orderMap.get("order_set_meal").equals("20M包月")) {
schoolMap.put("universityMonthlyRentType", "包月50元");
}
}
}catch( Exception e) {
} catch (Exception e) {
log.info(e.toString());
e.printStackTrace();
}
......@@ -334,7 +604,8 @@ public class IntelligenceSendOrder2 {
}
/**
* 获取订单信息
* 获取订单信息
*
* @param schoolMap
* @param orderMap
* @param currentTimeStr
......@@ -360,7 +631,7 @@ public class IntelligenceSendOrder2 {
String ORDERREQTRANSEQ, //穗易付订单号
int count) //0
throws Exception {
log.info("前置提交参数:schoolMap:" + schoolMap+",orderMap:"+orderMap);
log.info("前置提交参数:schoolMap:" + schoolMap + ",orderMap:" + orderMap);
List<NameValuePair> qParams = new ArrayList<NameValuePair>();
// HttpHost proxy = new HttpHost("172.18.101.170", 3128);
RequestConfig defaultRequestConfig =
......@@ -523,14 +794,14 @@ public class IntelligenceSendOrder2 {
Map<String, String> paymentMap = new HashMap<String, String>();
paymentMap.put("id", saleId); // 收费项ID,必填;请通过销售品列表接口获取
paymentMap.put("payAmount", ORDERAMOUNT); // 缴费金额(打款金额),缴费方式为“代理商打款”或“穗易付”时必填
ORDERAMOUNT = ORDERAMOUNT.replace("元","");
ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
if (ORDERAMOUNT.equals("0.01") || ORDERAMOUNT.equals("0.02")) {
paymentMap.put("payType", "2");
} else {
paymentMap.put("payType", "4"); // 缴费方式,必填(例:payType:1);1:银行划账2:现金支付3:代理商打款4:穗易付5:原套餐缴费方式6:支付宝划扣8:装维上门收取
}
if("xjzf".equals(orderMap.get("customerId"))) {
if ("xjzf".equals(orderMap.get("customerId"))) {
paymentMap.put("payType", "2");
}
......@@ -857,7 +1128,8 @@ public class IntelligenceSendOrder2 {
/**
* 融合下单公共方法
* @param order hhr_order 表的map数据
*
* @param order hhr_order 表的map数据
* @param rightNowSend 是否马上下单,是则无视融合时间,不是则判断融合时间是否当天
*/
public void integrateSendOrder(Order order, boolean rightNowSend) throws Exception {
......@@ -884,12 +1156,12 @@ public class IntelligenceSendOrder2 {
}
try {
rhTime = order.getRhTime();
}catch(Exception e) {
} catch (Exception e) {
log.error("融合日期转换错误" + JSONObject.toJSONString(order));
return;
}
// 融合时间小于当前时间
if(today.getTime() > rhTime.getTime()) {
if (today.getTime() > rhTime.getTime()) {
log.info("融合日期小于当前日期,改为待受理状态" + JSONObject.toJSONString(order));
Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId());
......@@ -1283,7 +1555,7 @@ public class IntelligenceSendOrder2 {
Map<String, Object> paymentListMap2 = new HashMap<String, Object>();
paymentListMap2.put("id", saleId1); // 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款
paymentListMap2.put("saleName", ""); // 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款
ORDERAMOUNT = ORDERAMOUNT.replace("元","");
ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
paymentListMap2.put("payAmount", ORDERAMOUNT); // 打款金额(支付金额),若选择代理商打款、者穗易付、货到付款,此项必填
if (orderMap.get("webOrderAmount").toString().equals("0")
......@@ -1319,7 +1591,7 @@ public class IntelligenceSendOrder2 {
paymentList.add(paymentListMap);
paymentList.add(paymentListMap2);
if(StringUtils.isNotBlank(saleId2)){
if (StringUtils.isNotBlank(saleId2)) {
paymentList.add(paymentListMap3);
}
productMap.put("payment", paymentList);
......@@ -1442,7 +1714,7 @@ public class IntelligenceSendOrder2 {
productMap.put("addProperties", addPropertyList);
productList.add(productMap);
log.info("productList.toString():"+productList.toString());
log.info("productList.toString():" + productList.toString());
// 将对象装换为json字符串
String productJson = net.sf.json.JSONArray.fromObject(productList).toString();
......@@ -1483,13 +1755,13 @@ public class IntelligenceSendOrder2 {
entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8");
log.info("订单编号:" + order.getKdOrderId() +";融合下单接口,返回信息:" + httpResult);
log.info("订单编号:" + order.getKdOrderId() + ";融合下单接口,返回信息:" + httpResult);
resultDataJson = net.sf.json.JSONObject.fromObject(httpResult);
} catch (SSLHandshakeException s) {
HttpResponse response = httpclient.execute(httpPost);
entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8");
log.info("订单编号:" + order.getKdOrderId()+";融合下单接口,返回信息:" + httpResult);
log.info("订单编号:" + order.getKdOrderId() + ";融合下单接口,返回信息:" + httpResult);
resultDataJson = net.sf.json.JSONObject.fromObject(httpResult);
} catch (Exception e) {
System.out.println("融合下单接口接口异常");
......@@ -1844,7 +2116,7 @@ public class IntelligenceSendOrder2 {
orderHistoryMapper.insert(orderHistory);
} else {
String msg = (String) resultDataJson.get("msg");
if (StringUtils.isNotBlank(msg)&& !msg.equals("订单来源单号已存在,请勿重复下单")) {
if (StringUtils.isNotBlank(msg) && !msg.equals("订单来源单号已存在,请勿重复下单")) {
Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId());
Order updateOrder = new Order();
......@@ -1866,20 +2138,20 @@ public class IntelligenceSendOrder2 {
* 查询智能平台状态(两个参数只要填写一个,默认填写系统订单号即可)
*
* @param systemOrderNum 系统订单号
* @param orderNum 智能平台订单号
* @param orderNum 智能平台订单号
* @return 返回结果为json字符串,若错误则返回空字符串
* {
* msg=订单查询成功,
* wayBillNumber=,
* sourceBizEntity=1eue64bp0d5xl1jdkgms,
* stateName=收费【人工处理】,
* outBizEntity=1eue64bp0d5xl1jdkgms,
* orderStatus=受理成功【待收费】,
* remark=,
* state=48,
* bizEntity=THD20210110004759,
* deliveryNumber=,
* status=000001
* msg=订单查询成功,
* wayBillNumber=,
* sourceBizEntity=1eue64bp0d5xl1jdkgms,
* stateName=收费【人工处理】,
* outBizEntity=1eue64bp0d5xl1jdkgms,
* orderStatus=受理成功【待收费】,
* remark=,
* state=48,
* bizEntity=THD20210110004759,
* deliveryNumber=,
* status=000001
* }
*/
public String queryStatus(String systemOrderNum, String orderNum) {
......@@ -1895,28 +2167,28 @@ public class IntelligenceSendOrder2 {
RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).build();
httpPost.setConfig(requestConfig);
qParams.add(new BasicNameValuePair("service", "query.order.status"));//api标识,必填
signMap.put("service","query.order.status");
signMap.put("service", "query.order.status");
qParams.add(new BasicNameValuePair("userName", Constant.ZHENGSHIAUCCON));//用户名,必填
signMap.put("userName", Constant.ZHENGSHIAUCCON);
String timeStamp = DateUtil.format(new Date(), DateUtil.yyyyMMddHHmmss);
qParams.add(new BasicNameValuePair("timeStamp", timeStamp));
signMap.put("timeStamp",timeStamp);
signMap.put("timeStamp", timeStamp);
if(StringUtils.isNotBlank(orderNum)) {
qParams.add(new BasicNameValuePair("orderNumber", orderNum));//智能平台订单编号,非必填
signMap.put("orderNumber", orderNum);
if (StringUtils.isNotBlank(orderNum)) {
qParams.add(new BasicNameValuePair("orderNumber", orderNum));//智能平台订单编号,非必填
signMap.put("orderNumber", orderNum);
}
if (StringUtils.isNotBlank(systemOrderNum)) {
qParams.add(new BasicNameValuePair("outOrderNum",systemOrderNum));//外部订单编号,非必填
qParams.add(new BasicNameValuePair("outOrderNum", systemOrderNum));//外部订单编号,非必填
signMap.put("outOrderNum", systemOrderNum);
}
try{
try {
List<String> keys = new ArrayList<>();
keys.addAll(signMap.keySet());
Collections.sort(keys);//key按字符串升序
String value,plaintext = "";
for(String key : keys){
String value, plaintext = "";
for (String key : keys) {
value = signMap.get(key).toString();
plaintext = plaintext.concat(value);
}
......@@ -1925,7 +2197,7 @@ public class IntelligenceSendOrder2 {
System.out.println(plaintext);
// plaintext = plaintext.concat("ef6f0b823b5cecc9972dee2bf9fb9936");
String sign = DigestUtil.md5Hex(plaintext).toUpperCase();
qParams.add(new BasicNameValuePair("sign",sign));//签名,必填
qParams.add(new BasicNameValuePair("sign", sign));//签名,必填
httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
httpPost.setEntity(new UrlEncodedFormEntity(qParams, "UTF-8"));
HttpResponse response = httpclient.execute(httpPost);
......
......@@ -16,7 +16,7 @@ public class ZnptSignUtils {
private final SecretKeySpec secretKey;
public ZnptSignUtils() {
try {
byte[] data = macKey.getBytes(ENCODING);
this.secretKey = new SecretKeySpec(data, MAC_NAME);
......
......@@ -10,7 +10,7 @@ eureka:
serviceUrl:
defaultZone: http://localhost:20000/eureka/
server:
port: 10002
port: 10003
servlet:
context-path: /ciop
tomcat:
......
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