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> { ...@@ -169,6 +169,9 @@ public interface OrderMapper extends BaseMapper<Order> {
@Select("SELECT * FROM hhr_order WHERE user_type = '5' and order_status = '未下单'") @Select("SELECT * FROM hhr_order WHERE user_type = '5' and order_status = '未下单'")
List<Map<String,Object>> selectDKList(); 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; ...@@ -7,14 +7,12 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.mapper.Wrapper;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.winsun.auth.core.util.DateUtil; import com.winsun.auth.core.util.DateUtil;
import com.winsun.bean.Order; import com.winsun.bean.*;
import com.winsun.bean.OrderHistory;
import com.winsun.bean.OrderView;
import com.winsun.bean.UniversityInfo;
import com.winsun.constant.Constant; import com.winsun.constant.Constant;
import com.winsun.mapper.*; import com.winsun.mapper.*;
import com.winsun.utils.BeanUtil; import com.winsun.utils.BeanUtil;
import com.winsun.utils.SignUtil; import com.winsun.utils.SignUtil;
import com.winsun.utils.ZnptSignUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
...@@ -28,7 +26,10 @@ import org.apache.http.impl.client.HttpClients; ...@@ -28,7 +26,10 @@ import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair; import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired; 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.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLHandshakeException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
...@@ -43,7 +44,7 @@ import java.util.*; ...@@ -43,7 +44,7 @@ import java.util.*;
*/ */
@Slf4j @Slf4j
@Component @Component
public class IntelligenceSendOrder2 { public class IntelligenceSendOrders {
@Autowired @Autowired
private UniversityInfoMapper universityInfoMapper; private UniversityInfoMapper universityInfoMapper;
...@@ -60,12 +61,17 @@ public class IntelligenceSendOrder2 { ...@@ -60,12 +61,17 @@ public class IntelligenceSendOrder2 {
@Autowired @Autowired
private OrderHistoryMapper orderHistoryMapper; private OrderHistoryMapper orderHistoryMapper;
@Autowired
//private ZnptSignUtils znptSignUtils;
/** /**
* 单宽下单公共类 * 单宽下单公共类
*
* @param order hhr_order map类型 * @param order hhr_order map类型
*/ */
public void singleBroadSendOrder(Map<String, Object> order) { public void singleBroadSendOrder(Map<String, Object> order) {
try { try {
// 初始化下单支付参数 // 初始化下单支付参数
String ORDERSEQ = "", ORDERAMOUNT = "", ORDERREQTRANSEQ = "", UPTRANSEQ = ""; String ORDERSEQ = "", ORDERAMOUNT = "", ORDERREQTRANSEQ = "", UPTRANSEQ = "";
...@@ -91,6 +97,7 @@ public class IntelligenceSendOrder2 { ...@@ -91,6 +97,7 @@ public class IntelligenceSendOrder2 {
log.info("订单号:" + ORDERSEQ + ",在order_view表中无记录,无法进行智能平台下单"); log.info("订单号:" + ORDERSEQ + ",在order_view表中无记录,无法进行智能平台下单");
return; return;
} }
//产品价格 //产品价格
ORDERAMOUNT = orderMap.get("webOrderAmount") != null ? orderMap.get("webOrderAmount").toString() : "0"; ORDERAMOUNT = orderMap.get("webOrderAmount") != null ? orderMap.get("webOrderAmount").toString() : "0";
//穗易付订单号 //穗易付订单号
...@@ -107,60 +114,30 @@ public class IntelligenceSendOrder2 { ...@@ -107,60 +114,30 @@ public class IntelligenceSendOrder2 {
List<Map<String, Object>> findUniversityById = universityInfoMapper.selectMaps(universityInfoWrapper); List<Map<String, Object>> findUniversityById = universityInfoMapper.selectMaps(universityInfoWrapper);
schoolMap = findUniversityById.get(0); schoolMap = findUniversityById.get(0);
} else { } else {
Wrapper<UniversityInfo> universityInfoWrapper = new EntityWrapper<>(); Wrapper<UniversityInfo> universityInfoWrapper = new EntityWrapper<>();
universityInfoWrapper.eq("university_name", orderMap.get("orderUniversityName")); universityInfoWrapper.eq("university_name", orderMap.get("orderUniversityName"));
universityInfoWrapper.eq("university_region", orderMap.get("orderRegion")); universityInfoWrapper.eq("university_region", orderMap.get("orderRegion"));
list1 = universityInfoMapper.selectMaps(universityInfoWrapper); list1 = universityInfoMapper.selectMaps(universityInfoWrapper);
schoolMap = list1.get(0); schoolMap = list1.get(0);
} }
if (orderMap.get("orderSeqThd") == null || "".equals(orderMap.get("orderSeqThd"))) { 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("元", "");
ORDERAMOUNT = ORDERAMOUNT.replace(".00", ""); ORDERAMOUNT = ORDERAMOUNT.replace(".00", "");
String productName = "校园宽带" + ORDERAMOUNT + "元"; String productName = "校园宽带" + ORDERAMOUNT + "元";
if (ORDERAMOUNT.contains("0.01")) { if (ORDERAMOUNT.contains("0.01")) {
productName = "校园宽带30元"; productName = "校园宽带30元";
} else if (ORDERAMOUNT.contains("0.02")) { } else if (ORDERAMOUNT.contains("0.02")) {
productName = "校园宽带300元"; productName = "校园宽带300元";
} }
if (productName.equals("校园宽带0元")) {
if(productName.equals("校园宽带0元")){
productName = "校园宽带(免月租)"; productName = "校园宽带(免月租)";
ORDERAMOUNT = "0"; ORDERAMOUNT = "0";
ORDERREQTRANSEQ = "00000"; ORDERREQTRANSEQ = "00000";
UPTRANSEQ = "00000"; UPTRANSEQ = "00000";
} }
//例: productName = "校园宽带30元";
System.out.println("------" + productName); 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); setPriceIndex(schoolMap, orderMap, ORDERAMOUNT);
...@@ -170,28 +147,27 @@ public class IntelligenceSendOrder2 { ...@@ -170,28 +147,27 @@ public class IntelligenceSendOrder2 {
schoolMap, //宽带订单对应的学校信息 schoolMap, //宽带订单对应的学校信息
orderMap, //宽带订单信息 orderMap, //宽带订单信息
currentTimeStr, //当前时间 currentTimeStr, //当前时间
productId, //产品ID productName, //产品名称
saleId, //销售员ID
ORDERSEQ, //kd_order_id 宽带ID ORDERSEQ, //kd_order_id 宽带ID
UPTRANSEQ, //支付平台流水号 UPTRANSEQ, //支付平台流水号
ORDERAMOUNT, //产品价格 ORDERAMOUNT, //产品价格
ORDERREQTRANSEQ, //穗易付订单号 ORDERREQTRANSEQ, //穗易付订单号
0); 0);
log.info( /*log.info(
"----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:" "----------调用单宽带接口(提交订单至智能平台)并返回参数信息---status:"
+ submitOrderJsonObject.get("status") + submitOrderJsonObject.get("status")
+ " msg:" + " msg:"
+ submitOrderJsonObject.get("msg") + submitOrderJsonObject.get("msg")
+ " orderNum:" + " orderNum:"
+ submitOrderJsonObject.get("orderNumber")); + submitOrderJsonObject.get("orderNumber"));*/
// 4、查询智能订单是否存在 // 4、查询智能订单是否存在
String orderNum = (String) submitOrderJsonObject.get("orderNumber"); /*String orderNum = (String) submitOrderJsonObject.get("orderNumber");
JSONObject queryOrderJsonObject = null; JSONObject queryOrderJsonObject = null;
if (StringUtils.isNotBlank(orderNum)) { if (StringUtils.isNotBlank(orderNum)) {
queryOrderJsonObject = getQueryOrderInfo(orderNum, currentTimeStr, 0); queryOrderJsonObject = getQueryOrderInfo(orderNum, currentTimeStr, 0);
log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderJsonObject); log.info("----------调用查询智能订单接口并返回参数信息:" + queryOrderJsonObject);
/* 5、更新数据库 */ *//*5、更新数据库 *//*
String state = queryOrderJsonObject.getString("state"); String state = queryOrderJsonObject.getString("state");
// 更新hhr_order // 更新hhr_order
Wrapper<Order> orderWrapper = new EntityWrapper<>(); Wrapper<Order> orderWrapper = new EntityWrapper<>();
...@@ -209,14 +185,14 @@ public class IntelligenceSendOrder2 { ...@@ -209,14 +185,14 @@ public class IntelligenceSendOrder2 {
wrapperOrderView.eq("orderSeq", order.get("kd_order_id").toString()); wrapperOrderView.eq("orderSeq", order.get("kd_order_id").toString());
orderViewMapper.update(updateOrderView, wrapperOrderView); orderViewMapper.update(updateOrderView, wrapperOrderView);
log.info("----------将智能订单状态更新至数据库success:" + state); log.info("----------将智能订单状态更新至数据库success:" + state);
}else{ } else {
// 报错更新提示 // 报错更新提示
Wrapper<Order> orderWrapper = new EntityWrapper<>(); Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("kd_order_id", order.get("kd_order_id")); orderWrapper.eq("kd_order_id", order.get("kd_order_id"));
Order updateOrder = new Order(); Order updateOrder = new Order();
updateOrder.setMsg(submitOrderJsonObject.getString("msg")); updateOrder.setMsg(submitOrderJsonObject.getString("msg"));
orderMapper.update(updateOrder, orderWrapper); orderMapper.update(updateOrder, orderWrapper);
} }*/
} else { } else {
log.info( log.info(
"---单宽支付接口推送---" "---单宽支付接口推送---"
...@@ -229,12 +205,306 @@ public class IntelligenceSendOrder2 { ...@@ -229,12 +205,306 @@ public class IntelligenceSendOrder2 {
+ ORDERREQTRANSEQ); + ORDERREQTRANSEQ);
log.info("重复订单"); log.info("重复订单");
} }
}catch (Exception e){ } catch (Exception e) {
log.info("单宽下单失败"); log.info("单宽下单失败");
e.printStackTrace(); 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) { private void setPriceIndex(Map<String, Object> schoolMap, Map<String, Object> orderMap, String ORDERAMOUNT) {
try { try {
// 获取金额下标 // 获取金额下标
...@@ -242,24 +512,24 @@ public class IntelligenceSendOrder2 { ...@@ -242,24 +512,24 @@ public class IntelligenceSendOrder2 {
Integer index = 0; Integer index = 0;
String setMealIndex = orderMap.get("setMealIndex").toString(); String setMealIndex = orderMap.get("setMealIndex").toString();
if ("".equals(setMealIndex) || !setMealIndex.matches("[0-9]*")) { if ("".equals(setMealIndex) || !setMealIndex.matches("[0-9]*")) {
if(ORDERAMOUNT.equals("50元")&&orderMap.get("orderSetMeal").equals("20M包月")){ if (ORDERAMOUNT.equals("50元") && orderMap.get("orderSetMeal").equals("20M包月")) {
schoolMap.put("universityMonthlyRentType","包月50元"); schoolMap.put("universityMonthlyRentType", "包月50元");
} }
}else { } else {
index = Integer.parseInt(setMealIndex); index = Integer.parseInt(setMealIndex);
String[] university_monthly_rent_type = schoolMap.get("universityMonthlyRentType").toString().split(","); String[] university_monthly_rent_type = schoolMap.get("universityMonthlyRentType").toString().split(",");
if (university_monthly_rent_type.length > index) { if (university_monthly_rent_type.length > index) {
schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[index]); schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[index]);
}else { } else {
schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[0]); schoolMap.put("universityMonthlyRentType", university_monthly_rent_type[0]);
} }
} }
}else{ } else {
if(ORDERAMOUNT.equals("50元")&&orderMap.get("order_set_meal").equals("20M包月")){ if (ORDERAMOUNT.equals("50元") && orderMap.get("order_set_meal").equals("20M包月")) {
schoolMap.put("universityMonthlyRentType","包月50元"); schoolMap.put("universityMonthlyRentType", "包月50元");
} }
} }
}catch( Exception e) { } catch (Exception e) {
log.info(e.toString()); log.info(e.toString());
e.printStackTrace(); e.printStackTrace();
} }
...@@ -334,7 +604,8 @@ public class IntelligenceSendOrder2 { ...@@ -334,7 +604,8 @@ public class IntelligenceSendOrder2 {
} }
/** /**
* 获取订单信息 * 获取订单信息
*
* @param schoolMap * @param schoolMap
* @param orderMap * @param orderMap
* @param currentTimeStr * @param currentTimeStr
...@@ -360,7 +631,7 @@ public class IntelligenceSendOrder2 { ...@@ -360,7 +631,7 @@ public class IntelligenceSendOrder2 {
String ORDERREQTRANSEQ, //穗易付订单号 String ORDERREQTRANSEQ, //穗易付订单号
int count) //0 int count) //0
throws Exception { throws Exception {
log.info("前置提交参数:schoolMap:" + schoolMap+",orderMap:"+orderMap); log.info("前置提交参数:schoolMap:" + schoolMap + ",orderMap:" + orderMap);
List<NameValuePair> qParams = new ArrayList<NameValuePair>(); List<NameValuePair> qParams = new ArrayList<NameValuePair>();
// HttpHost proxy = new HttpHost("172.18.101.170", 3128); // HttpHost proxy = new HttpHost("172.18.101.170", 3128);
RequestConfig defaultRequestConfig = RequestConfig defaultRequestConfig =
...@@ -523,14 +794,14 @@ public class IntelligenceSendOrder2 { ...@@ -523,14 +794,14 @@ public class IntelligenceSendOrder2 {
Map<String, String> paymentMap = new HashMap<String, String>(); Map<String, String> paymentMap = new HashMap<String, String>();
paymentMap.put("id", saleId); // 收费项ID,必填;请通过销售品列表接口获取 paymentMap.put("id", saleId); // 收费项ID,必填;请通过销售品列表接口获取
paymentMap.put("payAmount", ORDERAMOUNT); // 缴费金额(打款金额),缴费方式为“代理商打款”或“穗易付”时必填 paymentMap.put("payAmount", ORDERAMOUNT); // 缴费金额(打款金额),缴费方式为“代理商打款”或“穗易付”时必填
ORDERAMOUNT = ORDERAMOUNT.replace("元",""); ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
if (ORDERAMOUNT.equals("0.01") || ORDERAMOUNT.equals("0.02")) { if (ORDERAMOUNT.equals("0.01") || ORDERAMOUNT.equals("0.02")) {
paymentMap.put("payType", "2"); paymentMap.put("payType", "2");
} else { } else {
paymentMap.put("payType", "4"); // 缴费方式,必填(例:payType:1);1:银行划账2:现金支付3:代理商打款4:穗易付5:原套餐缴费方式6:支付宝划扣8:装维上门收取 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"); paymentMap.put("payType", "2");
} }
...@@ -857,7 +1128,8 @@ public class IntelligenceSendOrder2 { ...@@ -857,7 +1128,8 @@ public class IntelligenceSendOrder2 {
/** /**
* 融合下单公共方法 * 融合下单公共方法
* @param order hhr_order 表的map数据 *
* @param order hhr_order 表的map数据
* @param rightNowSend 是否马上下单,是则无视融合时间,不是则判断融合时间是否当天 * @param rightNowSend 是否马上下单,是则无视融合时间,不是则判断融合时间是否当天
*/ */
public void integrateSendOrder(Order order, boolean rightNowSend) throws Exception { public void integrateSendOrder(Order order, boolean rightNowSend) throws Exception {
...@@ -884,12 +1156,12 @@ public class IntelligenceSendOrder2 { ...@@ -884,12 +1156,12 @@ public class IntelligenceSendOrder2 {
} }
try { try {
rhTime = order.getRhTime(); rhTime = order.getRhTime();
}catch(Exception e) { } catch (Exception e) {
log.error("融合日期转换错误" + JSONObject.toJSONString(order)); log.error("融合日期转换错误" + JSONObject.toJSONString(order));
return; return;
} }
// 融合时间小于当前时间 // 融合时间小于当前时间
if(today.getTime() > rhTime.getTime()) { if (today.getTime() > rhTime.getTime()) {
log.info("融合日期小于当前日期,改为待受理状态" + JSONObject.toJSONString(order)); log.info("融合日期小于当前日期,改为待受理状态" + JSONObject.toJSONString(order));
Wrapper<Order> wrapper = new EntityWrapper<>(); Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId()); wrapper.eq("id", order.getId());
...@@ -1283,7 +1555,7 @@ public class IntelligenceSendOrder2 { ...@@ -1283,7 +1555,7 @@ public class IntelligenceSendOrder2 {
Map<String, Object> paymentListMap2 = new HashMap<String, Object>(); Map<String, Object> paymentListMap2 = new HashMap<String, Object>();
paymentListMap2.put("id", saleId1); // 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款 paymentListMap2.put("id", saleId1); // 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款
paymentListMap2.put("saleName", ""); // 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款 paymentListMap2.put("saleName", ""); // 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款
ORDERAMOUNT = ORDERAMOUNT.replace("元",""); ORDERAMOUNT = ORDERAMOUNT.replace("元", "");
paymentListMap2.put("payAmount", ORDERAMOUNT); // 打款金额(支付金额),若选择代理商打款、者穗易付、货到付款,此项必填 paymentListMap2.put("payAmount", ORDERAMOUNT); // 打款金额(支付金额),若选择代理商打款、者穗易付、货到付款,此项必填
if (orderMap.get("webOrderAmount").toString().equals("0") if (orderMap.get("webOrderAmount").toString().equals("0")
...@@ -1319,7 +1591,7 @@ public class IntelligenceSendOrder2 { ...@@ -1319,7 +1591,7 @@ public class IntelligenceSendOrder2 {
paymentList.add(paymentListMap); paymentList.add(paymentListMap);
paymentList.add(paymentListMap2); paymentList.add(paymentListMap2);
if(StringUtils.isNotBlank(saleId2)){ if (StringUtils.isNotBlank(saleId2)) {
paymentList.add(paymentListMap3); paymentList.add(paymentListMap3);
} }
productMap.put("payment", paymentList); productMap.put("payment", paymentList);
...@@ -1442,7 +1714,7 @@ public class IntelligenceSendOrder2 { ...@@ -1442,7 +1714,7 @@ public class IntelligenceSendOrder2 {
productMap.put("addProperties", addPropertyList); productMap.put("addProperties", addPropertyList);
productList.add(productMap); productList.add(productMap);
log.info("productList.toString():"+productList.toString()); log.info("productList.toString():" + productList.toString());
// 将对象装换为json字符串 // 将对象装换为json字符串
String productJson = net.sf.json.JSONArray.fromObject(productList).toString(); String productJson = net.sf.json.JSONArray.fromObject(productList).toString();
...@@ -1483,13 +1755,13 @@ public class IntelligenceSendOrder2 { ...@@ -1483,13 +1755,13 @@ public class IntelligenceSendOrder2 {
entity = response.getEntity(); entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8"); String httpResult = EntityUtils.toString(entity, "UTF-8");
log.info("订单编号:" + order.getKdOrderId() +";融合下单接口,返回信息:" + httpResult); log.info("订单编号:" + order.getKdOrderId() + ";融合下单接口,返回信息:" + httpResult);
resultDataJson = net.sf.json.JSONObject.fromObject(httpResult); resultDataJson = net.sf.json.JSONObject.fromObject(httpResult);
} catch (SSLHandshakeException s) { } catch (SSLHandshakeException s) {
HttpResponse response = httpclient.execute(httpPost); HttpResponse response = httpclient.execute(httpPost);
entity = response.getEntity(); entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8"); String httpResult = EntityUtils.toString(entity, "UTF-8");
log.info("订单编号:" + order.getKdOrderId()+";融合下单接口,返回信息:" + httpResult); log.info("订单编号:" + order.getKdOrderId() + ";融合下单接口,返回信息:" + httpResult);
resultDataJson = net.sf.json.JSONObject.fromObject(httpResult); resultDataJson = net.sf.json.JSONObject.fromObject(httpResult);
} catch (Exception e) { } catch (Exception e) {
System.out.println("融合下单接口接口异常"); System.out.println("融合下单接口接口异常");
...@@ -1844,7 +2116,7 @@ public class IntelligenceSendOrder2 { ...@@ -1844,7 +2116,7 @@ public class IntelligenceSendOrder2 {
orderHistoryMapper.insert(orderHistory); orderHistoryMapper.insert(orderHistory);
} else { } else {
String msg = (String) resultDataJson.get("msg"); String msg = (String) resultDataJson.get("msg");
if (StringUtils.isNotBlank(msg)&& !msg.equals("订单来源单号已存在,请勿重复下单")) { if (StringUtils.isNotBlank(msg) && !msg.equals("订单来源单号已存在,请勿重复下单")) {
Wrapper<Order> wrapper = new EntityWrapper<>(); Wrapper<Order> wrapper = new EntityWrapper<>();
wrapper.eq("id", order.getId()); wrapper.eq("id", order.getId());
Order updateOrder = new Order(); Order updateOrder = new Order();
...@@ -1866,20 +2138,20 @@ public class IntelligenceSendOrder2 { ...@@ -1866,20 +2138,20 @@ public class IntelligenceSendOrder2 {
* 查询智能平台状态(两个参数只要填写一个,默认填写系统订单号即可) * 查询智能平台状态(两个参数只要填写一个,默认填写系统订单号即可)
* *
* @param systemOrderNum 系统订单号 * @param systemOrderNum 系统订单号
* @param orderNum 智能平台订单号 * @param orderNum 智能平台订单号
* @return 返回结果为json字符串,若错误则返回空字符串 * @return 返回结果为json字符串,若错误则返回空字符串
* { * {
* msg=订单查询成功, * msg=订单查询成功,
* wayBillNumber=, * wayBillNumber=,
* sourceBizEntity=1eue64bp0d5xl1jdkgms, * sourceBizEntity=1eue64bp0d5xl1jdkgms,
* stateName=收费【人工处理】, * stateName=收费【人工处理】,
* outBizEntity=1eue64bp0d5xl1jdkgms, * outBizEntity=1eue64bp0d5xl1jdkgms,
* orderStatus=受理成功【待收费】, * orderStatus=受理成功【待收费】,
* remark=, * remark=,
* state=48, * state=48,
* bizEntity=THD20210110004759, * bizEntity=THD20210110004759,
* deliveryNumber=, * deliveryNumber=,
* status=000001 * status=000001
* } * }
*/ */
public String queryStatus(String systemOrderNum, String orderNum) { public String queryStatus(String systemOrderNum, String orderNum) {
...@@ -1895,28 +2167,28 @@ public class IntelligenceSendOrder2 { ...@@ -1895,28 +2167,28 @@ public class IntelligenceSendOrder2 {
RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).build(); RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).build();
httpPost.setConfig(requestConfig); httpPost.setConfig(requestConfig);
qParams.add(new BasicNameValuePair("service", "query.order.status"));//api标识,必填 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));//用户名,必填 qParams.add(new BasicNameValuePair("userName", Constant.ZHENGSHIAUCCON));//用户名,必填
signMap.put("userName", Constant.ZHENGSHIAUCCON); signMap.put("userName", Constant.ZHENGSHIAUCCON);
String timeStamp = DateUtil.format(new Date(), DateUtil.yyyyMMddHHmmss); String timeStamp = DateUtil.format(new Date(), DateUtil.yyyyMMddHHmmss);
qParams.add(new BasicNameValuePair("timeStamp", timeStamp)); qParams.add(new BasicNameValuePair("timeStamp", timeStamp));
signMap.put("timeStamp",timeStamp); signMap.put("timeStamp", timeStamp);
if(StringUtils.isNotBlank(orderNum)) { if (StringUtils.isNotBlank(orderNum)) {
qParams.add(new BasicNameValuePair("orderNumber", orderNum));//智能平台订单编号,非必填 qParams.add(new BasicNameValuePair("orderNumber", orderNum));//智能平台订单编号,非必填
signMap.put("orderNumber", orderNum); signMap.put("orderNumber", orderNum);
} }
if (StringUtils.isNotBlank(systemOrderNum)) { if (StringUtils.isNotBlank(systemOrderNum)) {
qParams.add(new BasicNameValuePair("outOrderNum",systemOrderNum));//外部订单编号,非必填 qParams.add(new BasicNameValuePair("outOrderNum", systemOrderNum));//外部订单编号,非必填
signMap.put("outOrderNum", systemOrderNum); signMap.put("outOrderNum", systemOrderNum);
} }
try{ try {
List<String> keys = new ArrayList<>(); List<String> keys = new ArrayList<>();
keys.addAll(signMap.keySet()); keys.addAll(signMap.keySet());
Collections.sort(keys);//key按字符串升序 Collections.sort(keys);//key按字符串升序
String value,plaintext = ""; String value, plaintext = "";
for(String key : keys){ for (String key : keys) {
value = signMap.get(key).toString(); value = signMap.get(key).toString();
plaintext = plaintext.concat(value); plaintext = plaintext.concat(value);
} }
...@@ -1925,7 +2197,7 @@ public class IntelligenceSendOrder2 { ...@@ -1925,7 +2197,7 @@ public class IntelligenceSendOrder2 {
System.out.println(plaintext); System.out.println(plaintext);
// plaintext = plaintext.concat("ef6f0b823b5cecc9972dee2bf9fb9936"); // plaintext = plaintext.concat("ef6f0b823b5cecc9972dee2bf9fb9936");
String sign = DigestUtil.md5Hex(plaintext).toUpperCase(); 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.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
httpPost.setEntity(new UrlEncodedFormEntity(qParams, "UTF-8")); httpPost.setEntity(new UrlEncodedFormEntity(qParams, "UTF-8"));
HttpResponse response = httpclient.execute(httpPost); HttpResponse response = httpclient.execute(httpPost);
......
...@@ -16,7 +16,7 @@ public class ZnptSignUtils { ...@@ -16,7 +16,7 @@ public class ZnptSignUtils {
private final SecretKeySpec secretKey; private final SecretKeySpec secretKey;
public ZnptSignUtils() { public ZnptSignUtils() {
try { try {
byte[] data = macKey.getBytes(ENCODING); byte[] data = macKey.getBytes(ENCODING);
this.secretKey = new SecretKeySpec(data, MAC_NAME); this.secretKey = new SecretKeySpec(data, MAC_NAME);
......
...@@ -10,7 +10,7 @@ eureka: ...@@ -10,7 +10,7 @@ eureka:
serviceUrl: serviceUrl:
defaultZone: http://localhost:20000/eureka/ defaultZone: http://localhost:20000/eureka/
server: server:
port: 10002 port: 10003
servlet: servlet:
context-path: /ciop context-path: /ciop
tomcat: 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