Commit dd8e921a by 彭祥礼

---

parent ee359ae3
......@@ -30,7 +30,6 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -86,34 +85,6 @@ public class DankuanController {
return ResponseData.success(product);
}
/**
* 跟据合伙人id查找融合套餐信息
*
* @param hhrId
* @return
*/
@RequestMapping("/rhData")
public ResponseData<Map<String, Object>> getRhData(@RequestParam("hhrId") String hhrId) {
//空,直接返回
if (StringUtils.isEmpty(hhrId)) {
return ResponseData.error("请输入合伙人id");
}
UserSchool userSchool = userSchoolMapper.selectById(hhrId);
School school = schoolMapper.selectById(userSchool.getSchoolId());
String bandproductId = school.getBandproductId();
if (StringUtils.isBlank(bandproductId)) {
return ResponseData.error("敬请期待");
}
Product product = productMapper.selectById(bandproductId);
UniversityInfo universityInfo = universityInfoMapper.selectById(product.getUniversityId());
Map<String, Object> objMap = new HashMap<>();
objMap.put("product", product);
objMap.put("universityInfo", universityInfo);
return ResponseData.success(objMap);
}
@RequestMapping("/selectUniversity")
public ResponseData<UniversityInfo> selectUniversity(@RequestParam("universityId") String universityId) {
UniversityInfo universityInfo = universityInfoMapper.selectById(universityId);
......@@ -311,756 +282,6 @@ public class DankuanController {
return ResponseData.success(orderView, "智能平台订单创建成功");
}
/**
* 支付平台异步更新后台地址,主要对订单进去保存和提交订单到智能平台上
*/
@RequestMapping(value = "createRongHeOrder", method = RequestMethod.POST)
@ResponseBody
public ResponseData<OrderView> createRongHeOrder(
@RequestParam("orderName") String orderName, @RequestParam("orderPhone") String orderPhone,
@RequestParam("orderNumber") String orderNumber, @RequestParam("orderCustomerStudentId") String orderCustomerStudentId,
@RequestParam("orderCustomerAccount") String orderCustomerAccount, @RequestParam("orderCustomerPwd") String orderCustomerPwd,
@RequestParam("orderSetMeal") String orderSetMeal, @RequestParam("productId") String productId,
@RequestParam("webOrderAmount") String webOrderAmount, @RequestParam("partner") String partner,
@RequestParam("banLiPhone") String banLiPhone) throws Exception {
if (!IDCardUtil.IDCardValidate(orderNumber)) {
return ResponseData.error("您的身份证输入有误,请重新输入!");
}
if (orderPhone.length() != 11) {
return ResponseData.error("联系号码有误,请重新输入");
}
Wrapper<OrderView> orderViewWrapper = new EntityWrapper<>();
orderViewWrapper.eq(StringUtils.isNotBlank(orderNumber), "orderNumber", orderNumber);
orderViewWrapper.ne("status", OrderStatus.INVALID.getId());
List<OrderView> orderViews = orderViewMapper.selectList(orderViewWrapper);
OrderView orderV = new OrderView();
if (orderViews.size() != 0) {
if (StringUtils.isNotBlank(orderViews.get(0).getUptranseq())) {
Wrapper<Order> wrapperO = new EntityWrapper<>();
wrapperO.eq("order_number", orderViews.get(0).getOrderSeq());
wrapperO.eq("user_type", "5");
List<Order> orders = orderMapper.selectList(wrapperO);
if (orders.size() == 0) {
return ResponseData.error("当前身份证号订单异常,请联系客服!");
}
orderV.setOrderSeq(orders.get(0).getId());
orderV.setUptranseq(orderViews.get(0).getUptranseq());
return ResponseData.error(orderV, "当前身份证号订单已存在并完成支付!");
}
if ("0".equals(orderViews.get(0).getWebOrderAmount())) {
Wrapper<Order> wrapperO = new EntityWrapper<>();
wrapperO.eq("order_number", orderViews.get(0).getOrderSeq());
wrapperO.eq("user_type", "5");
List<Order> orders = orderMapper.selectList(wrapperO);
if (orders.size() == 0) {
return ResponseData.error("当前身份证号订单异常,请联系客服!");
}
orderV.setOrderSeq(orders.get(0).getId());
orderV.setUptranseq(orderViews.get(0).getOrderId().toString());
return ResponseData.error(orderV, "当前身份证号订单已存在!");
}
orderV.setOrderId(orderViews.get(0).getOrderId());
orderV.setOrderSeq(orderViews.get(0).getOrderSeq());
return ResponseData.error(orderV, "当前身份证号已有订单存在!");
}
String orderSeq = "YRYM" + ProduceIdUtil.getId();
Product product = productMapper.selectById(productId);
OrderView orderView = new OrderView();
orderView.setOrderSeq(orderSeq); // 订单号码
orderView.setOrderName(orderName); // 姓名
orderView.setOrderPhone(orderPhone); // 联系电话
orderView.setOrderNumber(orderNumber); // 身份证号码
orderView.setOrderCustomerStudentId(orderCustomerStudentId);// 学生证号
orderView.setOrderCustomerAccount(orderCustomerAccount);// 多媒体账号
orderView.setOrderCustomerPwd(orderCustomerPwd);// 多媒体密码
orderView.setOrderSetMeal(orderSetMeal);// 套餐
orderView.setOrderSeq(orderSeq);
orderView.setProductName(product.getProductTitle());// 产品名称
orderView.setOrderDate(new Date()); // 提交时间
orderView.setOrderUniversityName(product.getProductUniversity()); // 学校
orderView.setStatus(OrderStatus.NOTPAID.getId());
orderView.setOrderRegion(product.getProductRegion()); // 区域
orderView.setPayType("1"); // 支付方式
orderView.setWebOrderAmount(webOrderAmount); // 产品价格
if (webOrderAmount.equals("0")) {
orderView.setIPay("0"); // 支付平台
} else {
orderView.setIPay("1"); // 支付平台
}
orderView.setCustomerId("xyzxyql"); // 接入商
orderView.setOrderCustomerType("学生"); // 用户类别
Integer insert = orderViewMapper.insert(orderView);
if (webOrderAmount.equals("0")) {
ResponseData<OrderView> res = null;
res = getOrderViewZeroResponseData(productId, partner, banLiPhone, orderSeq, orderView);
if (!res.isSuccess()) {
return res;
}
}else{
//res = getOrderViewResponseData(productId, partner, banLiPhone, orderV, orderSeq, orderView, insert);
}
if (insert == 1) {
orderV.setOrderId(orderView.getOrderId());
orderV.setOrderSeq(orderSeq);
return ResponseData.success(orderV, "订单提交完成!");
}
return ResponseData.error("提交失败!");
}
private ResponseData<OrderView> getOrderViewZeroResponseData(@RequestParam("productId") String productId, @RequestParam("partner") String partner, @RequestParam("banLiPhone") String banLiPhone, String orderSeq, OrderView orderView) throws Exception {
/**/
Map<String, Object> schoolMap = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String currentTimeStr = simpleDateFormat.format(new Date());
// 根据订单号,获取该订单信息
// 根据学校名称,获取该学校信息
Product product = productMapper.selectById(productId);
Wrapper<UniversityInfo> uiWrapper = new EntityWrapper<>();
uiWrapper.eq("order_university_name",orderView.getOrderUniversityName());
uiWrapper.eq("universityRegion",product.getProductRegion());
List<Map<String, Object>> list1 = universityInfoMapper.selectMaps(uiWrapper);
schoolMap = list1.get(0);
if (orderView.getOrderUniversityName().equals("广州华立科技职业学院")) {
if ("中国电信校园高速宽带".equals(product.getProductTitle())) {
schoolMap.put("university_package_number", "56119011");
} else {
schoolMap.put("university_package_number", "56119015");
}
} else if (orderView.getOrderUniversityName().equals("广州大学华软软件学院")) {
if ("中国电信校园高速宽带".equals(product.getProductTitle())) {
schoolMap.put("university_package_number", "16001253");
} else {
schoolMap.put("university_package_number", "16001405");
}
}
//String productId = "1329"; // 产品id
//单宽带
String saleId1 = "4907";
//提速包
String saleId2 = null;
String productName = "校园融合套餐";
log.info("----------根据返回参数获取产品ID:" + productId);
String saleId = null; // 销售id
JSONObject saleJsonObject = getSaleId(productId, currentTimeStr); // 获取销售ID
log.info("----------调用智能平台的获取销售品接口返回值:" + saleJsonObject);
System.out.println("----111--" + (saleJsonObject.toString().indexOf("list") == -1));
if (saleJsonObject.toString().indexOf("list") == -1) {
return ResponseData.error("没有找到销售品接口返回值");
}
String expenses = "";
if (schoolMap.get("identifying") != null) {
expenses = schoolMap.get("identifying").toString();
}
JSONArray saleList = saleJsonObject.getJSONArray("list");
log.info("----saleList---:" + saleList);
for (int i = 0; i < saleList.size(); i++) {
JSONObject itmeJson = saleList.getJSONObject(i);
// 判断获取的全部产品与订单产品符合的拿取对应的ID
if (itmeJson.getString("propertyName").indexOf("提速包") != -1) {
if (itmeJson.getString("name").equals(expenses)) {
// 获取对应产品ID
saleId2 = itmeJson.getString("saleId");
}
} else if (itmeJson.getString("propertyName").indexOf("增值业务") != -1) {
if (itmeJson.getString("name").equals(expenses)) {
// 获取对应产品ID
saleId2 = itmeJson.getString("saleId");
}
}
}
log.info("----saleId1---prices---:" + saleId1 + "------" + saleId2);
// 3、提交订单到智能平台
JSONObject submitOrderJsonObject = getOrderRHInfo(schoolMap,orderView, currentTimeStr, productId, saleId1, saleId2,orderSeq,"", "", "");
log.info("----------调用融合接口(提交订单至智能平台)并返回参数信息---status:" + submitOrderJsonObject.get("status") + " msg:" + submitOrderJsonObject.get("msg") + " orderNum:" + submitOrderJsonObject.get("orderNumber"));
/* 4、查询智能订单是否存在 */
String orderNum = (String) submitOrderJsonObject.get("orderNumber");
if (StringUtils.isNotBlank(orderNum)) {
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("order_number",orderNum);
List<Order> list = orderMapper.selectList(orderWrapper);
log.info("----------调用查询智能订单接口并返回参数信息:");
/* 5、插入数据到数据库 */
saveOrderInfo(orderView,partner,orderSeq,banLiPhone);
}
return ResponseData.error("订单提交完成");
}
private ResponseData<OrderView> getOrderViewResponseData(@RequestParam("productId") String productId, @RequestParam("partner") String partner, @RequestParam("banLiPhone") String banLiPhone, OrderView orderV, String orderSeq, OrderView orderView, Integer insert) throws Exception {
Map<String, Object> schoolMap = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String currentTimeStr = simpleDateFormat.format(new Date());
/*// 根据订单号,获取该订单信息
updatePaymentOrderInfo(request, ORDERSEQ, UPTRANSEQ, ORDERAMOUNT, ORDERREQTRANSEQ);
// 根据学校名称,获取该学校信息
List<Map<String, Object>> list1 = universityService.QueryUniversity((String) orderMap.get("order_university_name"), (String) orderMap.get("order_region"));*/
Product product = productMapper.selectById(productId);
Wrapper<UniversityInfo> uiWrapper = new EntityWrapper<>();
uiWrapper.eq("order_university_name",orderView.getOrderUniversityName());
uiWrapper.eq("universityRegion",product.getProductRegion());
List<Map<String, Object>> list1 = universityInfoMapper.selectMaps(uiWrapper);
schoolMap = list1.get(0);
if (orderView.getOrderUniversityName().equals("广州华立科技职业学院")) {
if ("中国电信校园高速宽带".equals(product.getProductTitle())) {
schoolMap.put("university_package_number", "56119011");
} else {
schoolMap.put("university_package_number", "56119015");
}
} else if (orderView.getOrderUniversityName().equals("广州大学华软软件学院")) {
if ("中国电信校园高速宽带".equals(product.getProductTitle())) {
schoolMap.put("university_package_number", "16001253");
} else {
schoolMap.put("university_package_number", "16001405");
}
}
if (orderView.getOrderseqThd() == null) {
//String productId = "1329"; // 产品id
//单宽带
String saleId1 = null;
//提速包
String saleId2 = null;
String productName = "校园融合套餐";
log.info("----------根据返回参数获取产品ID:" + productId);
String saleId = null; // 销售id
JSONObject saleJsonObject = getSaleId(productId, currentTimeStr); // 获取销售ID
log.info("----------调用智能平台的获取销售品接口返回值:" + saleJsonObject);
log.info("----111--" + (saleJsonObject.toString().indexOf("list") == -1));
if (saleJsonObject.toString().indexOf("list") == -1) {
return ResponseData.error("无销售品接口返回值");
}
String prices = orderView.getWebOrderAmount();
prices = prices.replace("元", "") + ".000";
String expenses = "";
if (schoolMap.get("identifying") != null) {
expenses = schoolMap.get("identifying").toString();
}
log.info("----expenses---prices---:" + expenses + "------" + prices);
JSONArray saleList = saleJsonObject.getJSONArray("list");
log.info("----saleList---:" + saleList);
for (int i = 0; i < saleList.size(); i++) {
JSONObject itmeJson = saleList.getJSONObject(i);
// 判断获取的全部产品与订单产品符合的拿取对应的ID
if (itmeJson.getString("propertyName").indexOf("提速包") != -1) {
if (itmeJson.getString("name").equals(expenses)) {
// 获取对应产品ID
saleId2 = itmeJson.getString("saleId");
}
} else if (itmeJson.getString("propertyName").indexOf("增值业务") != -1) {
if (itmeJson.getString("name").equals(expenses)) {
// 获取对应产品ID
saleId2 = itmeJson.getString("saleId");
}
}
}
log.info("----saleId1---prices---:" + saleId1 + "------" + saleId2);
// 3、提交订单到智能平台
JSONObject submitOrderJsonObject = getOrderRHInfo(schoolMap, orderView, currentTimeStr, productId, saleId1, saleId2, orderSeq, "", "", "");
log.info("----------调用融合接口(提交订单至智能平台)并返回参数信息---status:" + submitOrderJsonObject.get("status") + " msg:" + submitOrderJsonObject.get("msg") + " orderNum:" + submitOrderJsonObject.get("orderNumber"));
/* 4、查询智能订单是否存在 */
String orderNum = (String) submitOrderJsonObject.get("orderNumber");
if (StringUtils.isNotBlank(orderNum)) {
Wrapper<Order> orderWrapper = new EntityWrapper<>();
orderWrapper.eq("order_number", orderNum);
List<Order> list = orderMapper.selectList(orderWrapper);
/* 5、插入数据到数据库 */
saveOrderInfo(orderView, partner, orderSeq, banLiPhone);
log.info("----------将智能订单状态更新至数据库");
}
if (insert == 1) {
orderV.setOrderId(orderView.getOrderId());
orderV.setOrderSeq(orderSeq);
return ResponseData.success(orderV, "订单提交完成!");
}
return ResponseData.error("订单提交失败");
}else {
log.info("---融合支付接口推送---");
return ResponseData.error("融合支付接口已存在该订单");
}
}
/**
* 保存订单到数据库
*/
private void saveOrderInfo(OrderView orderView,String partner,String orderSeq,String banLiPhone) throws Exception {
log.info("支付操作后保存数据到数据库");
UserSchool userSchool = userSchoolMapper.selectById(partner);
School school = schoolMapper.selectById(userSchool.getSchoolId());
SysUser sysUser = sysUserMapper.selectById(userSchool.getUserId());
if (orderView.getStatus().equals("1")) {
Order order = new Order();
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
uuid = uuid.substring(1, 12);
SimpleDateFormat df2 = new SimpleDateFormat("yyyyMMdd");//设置日期格式
order.setId(uuid);
order.setOrderNumber("YRYM" + ProduceIdUtil.getId());
order.setNetNumber(orderView.getOrderCustomerAccount());
order.setNetPassword(orderView.getOrderCustomerPwd());
order.setUserSchool(orderView.getOrderUniversityName());
order.setHehuorenId(partner);
order.setKdOrderId(orderSeq);
order.setUserType("3");
order.setBusinessNumber(banLiPhone);
order.setCustomerName(orderView.getOrderName());
order.setOrderStatus("审核中");
order.setContactNumber(orderView.getOrderPhone());
order.setIdCard(orderView.getOrderNumber());
order.setExpenses(orderView.getExpenses());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setCreateTime(new Date());
if (!school.equals(null)) {
order.setHehuorenArea(school.getSubName());
order.setHehuorenSchool(school.getSchoolName());
order.setLzgh(school.getLzgh());
order.setHehuorenName(sysUser.getName());
order.setHehuorenPhone(sysUser.getPhone());
order.setSupervisorName(sysUser.getName());
}
orderMapper.insert(order);
OrderHistory history = new OrderHistory();
history.setOrderId(uuid);
history.setCreateDate(new Date());
history.setStatus("资料已提交");
historyMapper.insert(history);
} else if (orderView.getStatus().equals("2")) {
} else {
Order order = new Order();
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
uuid = uuid.substring(1, 12);
order.setId(uuid);
order.setOrderNumber("YRYM" + ProduceIdUtil.getId());
order.setNetNumber(orderView.getOrderCustomerAccount());
order.setNetPassword(orderView.getOrderCustomerPwd());
order.setUserSchool(orderView.getOrderUniversityName());
order.setHehuorenId(partner);
order.setKdOrderId(orderSeq);
order.setUserType("5");
order.setBusinessNumber("");
order.setCustomerName(orderView.getOrderName());
order.setOrderStatus("审核中");
order.setContactNumber(orderView.getOrderPhone());
order.setIdCard(orderView.getOrderNumber());
order.setExpenses("");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
order.setCreateTime(sdf.parse(new Date().toString()));
if (!school.equals(null)) {
order.setHehuorenArea(school.getSubName());
order.setHehuorenSchool(school.getSchoolName());
order.setLzgh(school.getLzgh());
order.setHehuorenName(sysUser.getName());
order.setHehuorenPhone(sysUser.getPhone());
order.setSupervisorName(sysUser.getName());
}
orderMapper.insert(order);
OrderHistory history = new OrderHistory();
history.setOrderId(uuid);
history.setCreateDate(new Date());
history.setStatus("资料已提交");
historyMapper.insert(history);
}
}
/**
* @Description:提交融合
* @param schoolMap
* @param orderView
* @param currentTimeStr
* @param productId
* @param saleId1
* @param saleId2
* @param ORDERSEQ
* @param UPTRANSEQ
* @param ORDERAMOUNT
* @param ORDERREQTRANSEQ
* @return
* @throws Exception
*/
private JSONObject getOrderRHInfo(Map<String, Object> schoolMap, OrderView orderView, String currentTimeStr, String productId, String saleId1, String saleId2
, String ORDERSEQ, String UPTRANSEQ, String ORDERAMOUNT, String ORDERREQTRANSEQ) throws Exception {
List<NameValuePair> qParams = new ArrayList<NameValuePair>();
HttpHost proxy = new HttpHost("172.18.101.170", 3128);
RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(500000)
.setConnectTimeout(500000).setConnectionRequestTimeout(500000).setProxy(proxy).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);
Map<String, String> signMap = new HashMap<String, String>();
qParams.add(new BasicNameValuePair("service", "order.combined.create"));// api标识,必填且唯一
signMap.put("service", "order.combined.create");
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("productCategory", "融合产品"));// 业务类型,必填且唯一
signMap.put("productCategory", "融合产品");
qParams.add(new BasicNameValuePair("transactType", "新宽旧移"));// 办理类型,必填[新宽新移][新宽旧移][旧宽新移][旧宽旧移]
signMap.put("transactType", "新宽旧移");
/* */
qParams.add(new BasicNameValuePair("ctNumber", orderView.getOrderPhone()));// 电信号码,办理类型,若选择[新宽旧移]或[旧宽旧移],此项必填
signMap.put("ctNumber", orderView.getOrderPhone());
/* */
qParams.add(new BasicNameValuePair("addressProvince", "广东省"));// 报装地址-省 办理类型,若选择[新宽新移][新宽旧移],此项必填
signMap.put("addressProvince", "广东省");
qParams.add(new BasicNameValuePair("addressCity", "广州市"));// 报装地址-市 办理类型,若选择[新宽新移][新宽旧移],此项必填
signMap.put("addressCity", "广州市");
String addressDistrict = null;
String address = null;
String addressID = null;
String landId = null;
String universityTerminalType = null;
String universityUserCategory = null;
String universityUserType = null;
String universityMonthlyRentType = null;
String universityChargingAttribute = null;
String universityOnlineNumber = null;
String universityOneManTerminal = null;
String universityIsFtthHub = null;
String universityExteriorLines = null;
String universityChargeMode = null;
if (BeanUtil.isNotBlank(schoolMap)) {
addressDistrict = (String) schoolMap.get("university_region");
address = (String) schoolMap.get("university_installed_address");
addressID = (String) schoolMap.get("university_installed_address_ID");
landId = (String) schoolMap.get("university_package_number");
universityTerminalType = (String) schoolMap.get("university_terminal_type");
universityUserCategory = (String) schoolMap.get("university_user_category");
universityUserType = (String) schoolMap.get("university_user_type");
universityMonthlyRentType = (String) schoolMap.get("university_monthly_rent_type");
universityChargingAttribute = (String) schoolMap.get("university_charging_attribute");
universityOnlineNumber = (String) schoolMap.get("university_online_number");
universityOneManTerminal = (String) schoolMap.get("university_one_man_terminal");
universityIsFtthHub = (String) schoolMap.get("university_is_ftth_hub");
universityExteriorLines = (String) schoolMap.get("university_exterior_lines");
universityChargeMode = (String) schoolMap.get("university_charge_mode");
} else {
addressDistrict = "测试区";
address = "广东省广州市测试区测试街道1号";
addressID = "00000";
landId = "20180621";
universityTerminalType = "测试";
universityUserCategory = "测试";
universityUserType = "测试";
universityMonthlyRentType = "测试";
universityChargingAttribute = "测试";
universityOnlineNumber = "0";
universityOneManTerminal = "否";
universityIsFtthHub = "否";
universityExteriorLines = "测试";
universityChargeMode = "测试";
}
qParams.add(new BasicNameValuePair("addressDistrict", addressDistrict));// 报装地址-区 办理类型,若选择[新宽新移][新宽旧移],此项必填
signMap.put("addressDistrict", addressDistrict);
qParams.add(new BasicNameValuePair("address", address));// 报装地址-详细地址 办理类型,若选择[新宽新移][新宽旧移],此项必填
signMap.put("address", address);
qParams.add(new BasicNameValuePair("addressId", addressID));// 报装地址-地址ID,选填
signMap.put("addressId", addressID);
qParams.add(new BasicNameValuePair("govEntCustomer", "0"));//是否政企客户下单 0:否 1:是,必填
signMap.put("govEntCustomer", "0");
qParams.add(new BasicNameValuePair("agentName", ""));//若是政企客户下单,代办人姓名,必填
signMap.put("agentName", "");
qParams.add(new BasicNameValuePair("agentCardNum", ""));//若是政企客户下单,代办人身份证号码,必填
signMap.put("agentCardNum", "");
qParams.add(new BasicNameValuePair("customerName", orderView.getOrderName()));// 客户姓名,必填
signMap.put("customerName", orderView.getOrderName());
qParams.add(new BasicNameValuePair("customerPhone", orderView.getOrderPhone()));// 客户电话|代办人电话,必填
signMap.put("customerPhone", orderView.getOrderPhone());
qParams.add(new BasicNameValuePair("customerCardType", "身份证"));// 证件类型,必填且只能为身份证
signMap.put("customerCardType", "身份证");
qParams.add(new BasicNameValuePair("customerCardNum", orderView.getOrderNumber()));// 证件号码,必填
signMap.put("customerCardNum", orderView.getOrderNumber());
qParams.add(new BasicNameValuePair("landId", landId));// 揽装工号,必填
signMap.put("landId", landId);
qParams.add(new BasicNameValuePair("comarketingLanId", ""));// 协销工号,选填
signMap.put("comarketingLanId", "");
qParams.add(new BasicNameValuePair("groupComarketingLanId", ""));//集团协销工号,选填
signMap.put("groupComarketingLanId", "");
qParams.add(new BasicNameValuePair("orderOutNum", ORDERSEQ));//外部订单编号,选填!;
//通过API接口下单,必须传入一个外部接入商的订单编号,该编号与智能营销系统编号一一对应
signMap.put("orderOutNum", ORDERSEQ);
qParams.add(new BasicNameValuePair("orderSource", "校园宽带自助受理"));// 订单来源 ,选填
signMap.put("orderSource", "校园宽带自助受理");
qParams.add(new BasicNameValuePair("orderSourceNum", ORDERSEQ));// 订单来源单号,选填;与订单来源对应,用于业务上记录订单的来源订单编号
signMap.put("orderSourceNum", ORDERSEQ);
qParams.add(new BasicNameValuePair("salePointCode", ""));// 销售点编码,选填
signMap.put("salePointCode", "");
qParams.add(new BasicNameValuePair("personCode", ""));// 人员编码,必填
signMap.put("personCode", "");
qParams.add(new BasicNameValuePair("deliveryProvince", "广东省"));// 配送地址-省,必填
signMap.put("deliveryProvince", "广东省");
qParams.add(new BasicNameValuePair("deliveryCity", "广州市"));// 配送地址-市,必填
signMap.put("deliveryCity", "广州市");
qParams.add(new BasicNameValuePair("deliveryDistrict", addressDistrict));// 配送地址-区,必填
signMap.put("deliveryDistrict", addressDistrict);
qParams.add(new BasicNameValuePair("deliveryAddress", address));// 配送地址-详细地址,必填
signMap.put("deliveryAddress", address);
qParams.add(new BasicNameValuePair("deliveryContact", orderView.getOrderName()));// 联系人,必填
signMap.put("deliveryContact", orderView.getOrderNumber());
qParams.add(new BasicNameValuePair("deliveryContactPhone", orderView.getOrderName()));// 联系电话,必填
signMap.put("deliveryContactPhone", orderView.getOrderName());
qParams.add(new BasicNameValuePair("deliveryContactPhone2", ""));// 联系电话2,选填
signMap.put("deliveryContactPhone2", "");
qParams.add(new BasicNameValuePair("invoiced", "0"));// 是否需要发票,必填
// 0:不需要;1:一次性发票;2:分月发票
signMap.put("invoiced", "0");
qParams.add(new BasicNameValuePair("invoiceTitle", ""));// 发票抬头,若需要发票必填
signMap.put("invoiceTitle", "");
qParams.add(new BasicNameValuePair("invoiceDeliveryAddress", ""));// 电子邮箱,若需要发票必填
signMap.put("invoiceDeliveryAddress", "");
qParams.add(new BasicNameValuePair("deliveryType", "不需配送"));// 发货类型,必填,填写[同德仓发货][不需配送][代理商自行发货]
signMap.put("deliveryType", "不需配送");
qParams.add(new BasicNameValuePair("deliveryCompany", ""));// 配送公司,选填,同德仓发货必填;填写只能填顺丰速运或者如风达或者京东快递或者EMS
signMap.put("deliveryCompany", "");
qParams.add(new BasicNameValuePair("gift", ""));// 礼品,选填,请通过礼品列表接口获取
signMap.put("gift", "");
qParams.add(new BasicNameValuePair("giftNum", ""));// 礼品数量,选填,若礼品填写则必填且为正整数
signMap.put("giftNum", "");
qParams.add(new BasicNameValuePair("acceptPriority", "7"));//受理优先级 为0-10范围内的整数! 选填
signMap.put("acceptPriority", "7");
List<Map<String, Object>> productList = new ArrayList<Map<String, Object>>();// 产品信息
List<Map<String, Object>> inPropertyList = new ArrayList<Map<String, Object>>();// 产品属性
List<Map<String, Object>> paymentList = new ArrayList<Map<String, Object>>();// 销售品信息(费用项)
List<Map<String, Object>> addPropertyList = new ArrayList<Map<String, Object>>();// 自定义产品属性
// 下单产品
Map<String, Object> productMap = new HashMap<String, Object>();
// 产品(一个订单只能有一种产品且数量为1)
productMap.put("productId", productId);// 产品id,必填,请通过产品列表接口获取
// 产品都必须传一个产品对应的唯一的收费项
Map<String, Object> paymentListMap = new HashMap<String, Object>();
paymentListMap.put("id", "4455");// 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款
paymentListMap.put("saleName", "校园融合套餐");// 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款
paymentListMap.put("payType", "2");// 缴费方式,
//必填(例:payType:3)1:银行划账2:现金支付3:代理商打款4:穗易付6:支付宝划扣7:货到付款8:装维上门收取9:第三方托收11:代理商代扣
//单宽带
Map<String, Object> paymentListMap2 = new HashMap<String, Object>();
paymentListMap2.put("id", saleId1);// 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款
paymentListMap2.put("saleName", "");// 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款
paymentListMap2.put("payType", "2");// 缴费方式,必填(例:payType:3)3:代理商打款4:穗易付7:货到付款
paymentListMap2.put("payAmount", ORDERAMOUNT);// 打款金额(支付金额),若选择代理商打款、者穗易付、货到付款,此项必填
String payPlatform = orderView.getIPay();
if (StringUtils.isNotBlank(payPlatform)) {
if ("1".equals(payPlatform)) {
paymentListMap2.put("payPlatform", "支付宝");//支付平台,缴费方式为“穗易付”时必填
} else {
paymentListMap2.put("payPlatform", "微信");//支付平台,缴费方式为“穗易付”时必填
}
} else {
paymentListMap2.put("payPlatform", "穗易付");//支付平台,缴费方式为“穗易付”时必填
}
paymentListMap2.put("electronicPayNumber", UPTRANSEQ);// 支付流水号,若选择穗易付,此项必填
paymentListMap2.put("payOrderNumber", ORDERREQTRANSEQ);// 穗易付订单号,若选择穗易付,此项必填
//提速包
Map<String, Object> paymentListMap3 = new HashMap<String, Object>();
paymentListMap3.put("id", saleId2);// 收费项ID,选填;请通过销售品列表接口获取,若不填表示终端补收款
paymentListMap3.put("saleName", "");// 销售品名称,选填,若id不填写此项必填写,且只能为终端补收款
paymentListMap3.put("saleAmount", "");// 售价,选填
paymentListMap3.put("payType", "2");// 缴费方式,必填(例:payType:3)3:代理商打款4:穗易付7:货到付款
paymentListMap3.put("payAmount", "0");// 打款金额(支付金额),若选择代理商打款、者穗易付、货到付款,此项必填
paymentList.add(paymentListMap);
paymentList.add(paymentListMap2);
paymentList.add(paymentListMap3);
productMap.put("payment", paymentList);
// 产品属性 必填主卡号码属性,name=主卡号码,value=11位数字或者随机;
Map<String, Object> inPropertyListMap = new HashMap<String, Object>();
inPropertyListMap.put("name", "主卡号码");
inPropertyListMap.put("value", orderView.getOrderPhone());
inPropertyList.add(inPropertyListMap);
productMap.put("inpProperties", inPropertyList);
Map<String, Object> propertyMap = new HashMap<String, Object>();
propertyMap.put("name", "宽带速率");
String setMeal = orderView.getOrderSetMeal();
if (StringUtils.isNotBlank(setMeal)) {
setMeal = setMeal.replace("包月", "");
setMeal = setMeal.replace("包年", "");
}
propertyMap.put("value", setMeal);
Map<String, Object> propertyMap1 = new HashMap<String, Object>();
propertyMap1.put("name", "学校名称");
propertyMap1.put("value", orderView.getOrderUniversityName());
Map<String, Object> propertyMap2 = new HashMap<String, Object>();
propertyMap2.put("name", "允许上网终端类型");
propertyMap2.put("value", universityTerminalType);
Map<String, Object> propertyMap3 = new HashMap<String, Object>();
propertyMap3.put("name", "用户类别");
propertyMap3.put("value", universityUserCategory);
Map<String, Object> propertyMap4 = new HashMap<String, Object>();
propertyMap4.put("name", "用户类型");
propertyMap4.put("value", universityUserType);
Map<String, Object> propertyMap5 = new HashMap<String, Object>();
propertyMap5.put("name", "月租类型");
propertyMap5.put("value", universityMonthlyRentType);
Map<String, Object> propertyMap6 = new HashMap<String, Object>();
propertyMap6.put("name", "计费属性");
propertyMap6.put("value", universityChargingAttribute);
Map<String, Object> propertyMap7 = new HashMap<String, Object>();
propertyMap7.put("name", "一人一号多终端");
propertyMap7.put("value", universityOneManTerminal);
Map<String, Object> propertyMap8 = new HashMap<String, Object>();
propertyMap8.put("name", "外线方式");
propertyMap8.put("value", universityExteriorLines);
Map<String, Object> propertyMap9 = new HashMap<String, Object>();
propertyMap9.put("name", "是否FTTH+HUB");
propertyMap9.put("value", universityIsFtthHub);
Map<String, Object> propertyMap16 = new HashMap<String, Object>();
propertyMap16.put("name", "宽带提速速率");
propertyMap16.put("value", schoolMap.get("speed"));
Map<String, Object> propertyMap10 = new HashMap<String, Object>();
propertyMap10.put("name", "多媒体账号");
propertyMap10.put("value", orderView.getOrderCustomerAccount());
Map<String, Object> propertyMap11 = new HashMap<String, Object>();
propertyMap11.put("name", "多媒体账号密码");
propertyMap11.put("value", orderView.getOrderCustomerPwd());
Map<String, Object> propertyMap12 = new HashMap<String, Object>();
propertyMap12.put("name", "学生证号");
propertyMap12.put("value", orderView.getOrderCustomerStudentId());
Map<String, Object> propertyMap13 = new HashMap<String, Object>();
propertyMap13.put("name", "宽带首月费用类型");
propertyMap13.put("value", universityChargeMode);
Map<String, Object> propertyMap14 = new HashMap<String, Object>();
propertyMap14.put("name", "最大在线数");
propertyMap14.put("value", universityOnlineNumber);
Map<String, Object> propertyMap15 = new HashMap<String, Object>();
propertyMap15.put("name", "地址ID");
propertyMap15.put("value", addressID);
addPropertyList.add(propertyMap);
addPropertyList.add(propertyMap1);
addPropertyList.add(propertyMap2);
addPropertyList.add(propertyMap3);
addPropertyList.add(propertyMap4);
addPropertyList.add(propertyMap5);
addPropertyList.add(propertyMap6);
addPropertyList.add(propertyMap7);
addPropertyList.add(propertyMap8);
addPropertyList.add(propertyMap9);
addPropertyList.add(propertyMap10);
addPropertyList.add(propertyMap11);
addPropertyList.add(propertyMap12);
addPropertyList.add(propertyMap13);
addPropertyList.add(propertyMap14);
addPropertyList.add(propertyMap15);
addPropertyList.add(propertyMap16);
productMap.put("addProperties", addPropertyList);
productList.add(productMap);
// 将对象装换为json字符串
String productJson = JSONObject.toJSONString(productList);
try {
qParams.add(new BasicNameValuePair("productJson", URLEncoder.encode(productJson, "UTF-8")));// 产品信息,必填
signMap.put("productJson", URLEncoder.encode(productJson, "UTF-8"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
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);
log.info("---------plaintext---------:" + plaintext);
String sign = MD5Utils.md5(plaintext).toUpperCase();//md5加密
qParams.add(new BasicNameValuePair("sign", sign));//签名,必填
log.info("---------sign---------:" + sign );
JSONObject resultDataJson = 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"));
HttpResponse response = httpclient.execute(httpPost);
entity = response.getEntity();
String httpResult = EntityUtils.toString(entity, "UTF-8");
log.info("融合下单接口,返回信息:" + httpResult);
resultDataJson = JSONObject.parseObject(httpResult);
} catch (Exception e) {
System.out.println("融合下单接口接口异常");
e.printStackTrace();
} finally {
httpPost.releaseConnection();
}
return resultDataJson;
}
@RequestMapping(value = "toSubmisOrderPreser", method = {RequestMethod.GET, RequestMethod.POST}, produces = "text/plain;charset=UTF-8")
public void toSubmisOrderPreser(HttpServletRequest request) throws Exception {
OrderView orderMap = null;
......
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