Fix:湖南电信

This commit is contained in:
Owen 2025-03-04 17:07:08 +08:00
parent be16384de2
commit 45262aea17
2 changed files with 131 additions and 101 deletions

View File

@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import java.text.SimpleDateFormat;
import java.util.Date;
@Data @Data
public class HaiNanDxInfo { public class HaiNanDxInfo {
@Data @Data
@ -70,34 +73,34 @@ public class HaiNanDxInfo {
// 接口2同步订单信息给BPSsyn.orderinfo.SynJdServiceOrder // 接口2同步订单信息给BPSsyn.orderinfo.SynJdServiceOrder
@Data @Data
public static class SyncOrderParam { public static class SyncOrderParam {
private String serviceOrderOutOrderId; // 提交订单ID private String serviceOrderOutOrderId = ""; // 提交订单ID
private String serviceOrderSubmitTime; // 提交时间 private String serviceOrderSubmitTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); // 提交时间
private String serviceOrderCusName; // 客户入网姓名 private String serviceOrderCusName = ""; // 客户入网姓名
private String serviceOrderCusCardNo; // 客户入网身份证 private String serviceOrderCusCardNo = ""; // 客户入网身份证
private String serviceOrderCusAccPhone;// 客户预占号码 private String serviceOrderCusAccPhone = ""; // 客户预占号码
private String serviceOrderSalesNumber;// 入网所选套餐ID private String serviceOrderSalesNumber = ""; // 入网所选套餐ID
private String serviceOrderCpsRefereePeople; // CPS1 private String serviceOrderCusContactPhone = ""; // 客户联系电话
private String serviceOrderRefereePeople; // CPS2 private String serviceOrderIccid = ""; // ICCID
private String serviceOrderReceiverName; private String serviceOrderPhoneCellcore = ""; // 号码归属地
private String serviceOrderReceiverProvCode; private String serviceOrderReceiverName = ""; // 收货人姓名
private String serviceOrderReceiverCityCode; private String serviceOrderReceiverProvCode = ""; // 收货人省份
private String serviceOrderReceiverDistrictCode; private String serviceOrderReceiverCityCode = ""; // 收货人城市
private String serviceOrderReceiverAddress; private String serviceOrderReceiverDistrictCode = ""; // 收货人区县
private String serviceOrderReceiverAddress = ""; // 收货人详细地址
private String serviceOrderSource; private String serviceOrderType = ""; // 订单类型
private String serviceOrderSource = ""; // 订单来源
// serviceOrderCardPic1 string 入网身份图片信息 private String serviceOrderCpsRefereePeople = ""; // CPS1
private String serviceOrderPayStatus; // string 支付状态:1 已支付, -1 未支付 private String serviceOrderRefereePeople = ""; // CPS2
private String serviceOrderPayPrice; // string 支付金额X元预存 private String serviceOrderPayMethod = ""; // 支付方式
private String serviceOrderPayTranid; // string 短信验证流水号 private String serviceOrderPayStatus = ""; // 支付状态:1 已支付, -1 未支付
private String serviceOrderPayOrderid; // string 支付订单号号百流水号 private String serviceOrderPayTranid = ""; // 短信验证流水号
private String serviceOrderCardPic1; // string 入网身份图片信息 private String serviceOrderPayOrderid = ""; // 支付订单号号百流水号
private String serviceOrderActivationReferee; // string 推荐人工号 private String serviceOrderCardPic1 = ""; // 入网身份图片信息
private String fingerNum; // string 指纹编码由js前端获取 private String serviceOrderActivationReferee = ""; // 推荐人工号
private String installAddress; // string 装机地址 private String fingerNum = ""; // 指纹编码由js前端获取
private String serviceOrderPhoneCellCode; // string 号码归属地 0731 private String installAddress = ""; // 装机地址
private String tbBusOppBroadBusAcc; // string 预受理单号 或销售员编码校园编码 private String tbBusOppBroadBusAcc = ""; // 预受理单号 或销售员编码校园编码
private String serviceOrderRemark; // string 专属优惠 private String serviceOrderRemark = ""; // 专属优惠g 专属优惠
} }

View File

@ -47,6 +47,13 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
return haoKaAddressService.getAddress(code); return haoKaAddressService.getAddress(code);
} }
private String defaultString(String value) {
if (value == null) {
return "";
}
return value;
}
@Override @Override
public ApiDealResp<OrderApiCreateResp> createOrder(final SuperiorApiLogSaveReqVO logVO, OrderApiCreateParam param) throws Exception { public ApiDealResp<OrderApiCreateResp> createOrder(final SuperiorApiLogSaveReqVO logVO, OrderApiCreateParam param) throws Exception {
OnSaleProductPreOrderRespVO preProduct = onSaleProductService.getOnSaleProductPreOrder(param.getOnSaleProductId()); OnSaleProductPreOrderRespVO preProduct = onSaleProductService.getOnSaleProductPreOrder(param.getOnSaleProductId());
@ -54,7 +61,7 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
return ApiDealResp.failed("商品下架或者不存在"); return ApiDealResp.failed("商品下架或者不存在");
} }
SuperiorApiDO superiorApi = superiorApiService.getSuperiorApi(param.getSuperiorApiId()); SuperiorApiDO superiorApi = superiorApiService.getSuperiorApi(param.getSuperiorApiId());
final SuperiorProductConfigDO skuConfigVO = superiorProductConfigService.getById(param.getSuperiorProductConfigId()); final SuperiorProductConfigDO skuConfigVO = superiorProductConfigService.getById(param.getSuperiorProductConfigId());
if (skuConfigVO == null) { if (skuConfigVO == null) {
return ApiDealResp.failed("商品对接上游配置不存在"); return ApiDealResp.failed("商品对接上游配置不存在");
} }
@ -101,7 +108,7 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
orderParam.setServiceOrderCusName(param.getIdCardName()); orderParam.setServiceOrderCusName(param.getIdCardName());
orderParam.setServiceOrderCusCardNo(param.getIdCardNum()); orderParam.setServiceOrderCusCardNo(param.getIdCardNum());
orderParam.setServiceOrderCusAccPhone(param.getPlanMobile()); orderParam.setServiceOrderCusAccPhone(param.getPlanMobile());
orderParam.setServiceOrderCusAccPhone(param.getAddressMobile()); orderParam.setServiceOrderCusContactPhone(param.getAddressMobile());
orderParam.setServiceOrderSalesNumber(skuConfigVO.getSuperiorCode()); orderParam.setServiceOrderSalesNumber(skuConfigVO.getSuperiorCode());
orderParam.setServiceOrderReceiverProvCode(addressProvince.getName()); orderParam.setServiceOrderReceiverProvCode(addressProvince.getName());
orderParam.setServiceOrderReceiverCityCode(addressCity.getName()); orderParam.setServiceOrderReceiverCityCode(addressCity.getName());
@ -117,15 +124,35 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
if (StringUtils.isNotEmpty(skuConfigVO.getConfig())) { if (StringUtils.isNotEmpty(skuConfigVO.getConfig())) {
String config = skuConfigVO.getConfig(); String config = skuConfigVO.getConfig();
JSONObject configs = JSON.parseObject(config); JSONObject configs = JSON.parseObject(config);
cardQualificationParam.setServiceOrderSource(configs.getString("ApiPrefix_serviceOrderSource")); String string = configs.getString("ApiPrefix_serviceOrderSource");
cardQualificationParam.setServiceOrderSource(string);
orderParam.setServiceOrderSource(configs.getString("ApiPrefix_serviceOrderSource")); orderParam.setServiceOrderSource(configs.getString("ApiPrefix_serviceOrderSource"));
String string1 = configs.getString("ApiPrefix_serviceOrderType");
orderParam.setServiceOrderType(string1!=null?string1:configs.getString("ApiPrefix_serviceOrderSource"));
// 补充其他字段如果 configs.getString 返回 null则填入 ""
orderParam.setServiceOrderIccid(defaultString(configs.getString("ApiPrefix_serviceOrderIccid")));
orderParam.setServiceOrderPhoneCellcore(defaultString(configs.getString("ApiPrefix_serviceOrderPhoneCellcore")));
orderParam.setServiceOrderReceiverName(defaultString(configs.getString("ApiPrefix_serviceOrderReceiverName")));
orderParam.setServiceOrderCpsRefereePeople(defaultString(configs.getString("ApiPrefix_serviceOrderCpsRefereePeople")));
orderParam.setServiceOrderRefereePeople(defaultString(configs.getString("ApiPrefix_serviceOrderRefereePeople")));
orderParam.setServiceOrderPayMethod(defaultString(configs.getString("ApiPrefix_serviceOrderPayMethod")));
orderParam.setServiceOrderPayStatus(defaultString(configs.getString("ApiPrefix_serviceOrderPayStatus")));
orderParam.setServiceOrderPayTranid(defaultString(configs.getString("ApiPrefix_serviceOrderPayTranid")));
orderParam.setServiceOrderPayOrderid(defaultString(configs.getString("ApiPrefix_serviceOrderPayOrderid")));
orderParam.setServiceOrderCardPic1(defaultString(configs.getString("ApiPrefix_serviceOrderCardPic1")));
orderParam.setServiceOrderActivationReferee(defaultString(configs.getString("ApiPrefix_serviceOrderActivationReferee")));
orderParam.setFingerNum(defaultString(configs.getString("ApiPrefix_fingerNum")));
orderParam.setInstallAddress(defaultString(configs.getString("ApiPrefix_installAddress")));
orderParam.setTbBusOppBroadBusAcc(defaultString(configs.getString("ApiPrefix_tbBusOppBroadBusAcc")));
orderParam.setServiceOrderRemark(defaultString(configs.getString("ApiPrefix_serviceOrderRemark")));
} }
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.InternetCardQualificationResp> checked = HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.InternetCardQualificationResp> checked =
apiHuNanDXService.checkInternetCardQualification(logVO, haokaSuperiorApiId,cardQualificationParam); apiHuNanDXService.checkInternetCardQualification(logVO, haokaSuperiorApiId, cardQualificationParam);
OrderApiCreateResp superApiResponse = new OrderApiCreateResp(); OrderApiCreateResp superApiResponse = new OrderApiCreateResp();
if (!"00000".equals(checked.getRes_code())) { if (!"00000".equals(checked.getRes_code())) {
logVO.setResponse(JSON.toJSONString(checked)); logVO.setResponse(JSON.toJSONString(checked));
@ -163,75 +190,75 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
} }
HaiNanDxInfo.NeedSignQueryParam<HaiNanDxInfo.PossessPhoneNumberParam> needSignQueryParam = new HaiNanDxInfo.NeedSignQueryParam<>(); // HaiNanDxInfo.NeedSignQueryParam<HaiNanDxInfo.PossessPhoneNumberParam> needSignQueryParam = new HaiNanDxInfo.NeedSignQueryParam<>();
// 预占 1 // // 预占 1
{ // {
needSignQueryParam.setData(possessParam); // needSignQueryParam.setData(possessParam);
needSignQueryParam.setApiName("num.accept.possessNumber2To3"); // needSignQueryParam.setApiName("num.accept.possessNumber2To3");
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO,haokaSuperiorApiId, needSignQueryParam); // HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO,haokaSuperiorApiId, needSignQueryParam);
if (!"00000".equals(possessResponse.getRes_code())) { // if (!"00000".equals(possessResponse.getRes_code())) {
logVO.setResponse(JSON.toJSONString(possessResponse)); // logVO.setResponse(JSON.toJSONString(possessResponse));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message()); // superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
JSONObject result = possessResponse.getResult(); // JSONObject result = possessResponse.getResult();
if (result == null || result.getJSONObject("respData") == null) { // if (result == null || result.getJSONObject("respData") == null) {
logVO.setResponse(JSON.toJSONString(possessResponse)); // logVO.setResponse(JSON.toJSONString(possessResponse));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message()); // superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) { // if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) {
logVO.setResponse(result.getJSONObject("respData").getString("respDesc")); // logVO.setResponse(result.getJSONObject("respData").getString("respDesc"));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message()); // superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
} // }
//
// 正式占用 // // 正式占用
{ // {
needSignQueryParam.setData(possessParam); // needSignQueryParam.setData(possessParam);
needSignQueryParam.setApiName("num.accept.possessNumber3To5"); // needSignQueryParam.setApiName("num.accept.possessNumber3To5");
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO, haokaSuperiorApiId,needSignQueryParam); // HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.PossessPhoneNumberResp> possessResponse = apiHuNanDXService.possessPhoneNumber(logVO, haokaSuperiorApiId,needSignQueryParam);
if (!"00000".equals(possessResponse.getRes_code())) { // if (!"00000".equals(possessResponse.getRes_code())) {
logVO.setResponse(JSON.toJSONString(possessResponse)); // logVO.setResponse(JSON.toJSONString(possessResponse));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message()); // superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
JSONObject result = possessResponse.getResult(); // JSONObject result = possessResponse.getResult();
if (result == null || result.getJSONObject("respData") == null) { // if (result == null || result.getJSONObject("respData") == null) {
logVO.setResponse(JSON.toJSONString(possessResponse)); // logVO.setResponse(JSON.toJSONString(possessResponse));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message()); // superApiResponse.setSupplierOrderStatusDesc(checked.getRes_message());
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) { // if (!"0000".equals(result.getJSONObject("respData").getString("respCode"))) {
logVO.setResponse(result.getJSONObject("respData").getString("respDesc")); // logVO.setResponse(result.getJSONObject("respData").getString("respDesc"));
// return ApiDealResp.failed(checked.getRes_message()); //// return ApiDealResp.failed(checked.getRes_message());
//
superApiResponse.setOrderStatusCode("0"); // superApiResponse.setOrderStatusCode("0");
superApiResponse.setSupplierOrderStatusDesc(result.getJSONObject("respData").getString("respDesc")); // superApiResponse.setSupplierOrderStatusDesc(result.getJSONObject("respData").getString("respDesc"));
return ApiDealResp.ok(superApiResponse); // return ApiDealResp.ok(superApiResponse);
} // }
} // }
// 下单 // 下单
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.SyncOrderResp> responseInfo = apiHuNanDXService.syncOrder(logVO,haokaSuperiorApiId, orderParam); HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.SyncOrderResp> responseInfo = apiHuNanDXService.syncOrder(logVO, haokaSuperiorApiId, orderParam);
if (!"00000".equals(responseInfo.getRes_code())) { if (!"00000".equals(responseInfo.getRes_code())) {
logVO.setResponse(JSON.toJSONString(responseInfo)); logVO.setResponse(JSON.toJSONString(responseInfo));
@ -274,7 +301,7 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
return ApiDealResp.failed("商品下架或者不存在"); return ApiDealResp.failed("商品下架或者不存在");
} }
SuperiorApiDO superiorApi = superiorApiService.getSuperiorApi(param.getSuperiorApiId()); SuperiorApiDO superiorApi = superiorApiService.getSuperiorApi(param.getSuperiorApiId());
final SuperiorProductConfigDO skuConfigVO = superiorProductConfigService.getById(param.getSuperiorProductConfigId()); final SuperiorProductConfigDO skuConfigVO = superiorProductConfigService.getById(param.getSuperiorProductConfigId());
if (skuConfigVO == null) { if (skuConfigVO == null) {
return ApiDealResp.failed("商品对接上游配置不存在"); return ApiDealResp.failed("商品对接上游配置不存在");
} }
@ -284,7 +311,7 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
try { try {
HaiNanDxInfo.QueryOrderParam queryParam = new HaiNanDxInfo.QueryOrderParam(); HaiNanDxInfo.QueryOrderParam queryParam = new HaiNanDxInfo.QueryOrderParam();
queryParam.setOutId(param.getId().toString()); queryParam.setOutId(param.getId().toString());
HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.QueryOrderResp> responseInfo = apiHuNanDXService.queryOrder(logVO,haokaSuperiorApiId, queryParam); HaiNanDxInfo.ResponseInfo<HaiNanDxInfo.QueryOrderResp> responseInfo = apiHuNanDXService.queryOrder(logVO, haokaSuperiorApiId, queryParam);
logVO.setResponse(JSON.toJSONString(responseInfo)); logVO.setResponse(JSON.toJSONString(responseInfo));
OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp(); OrderApiQueryResp orderApiQueryResp = new OrderApiQueryResp();
if (responseInfo.getResult() == null) { if (responseInfo.getResult() == null) {
@ -321,13 +348,13 @@ public class HuNanDxApiDealStrategy implements ApiDealStrategy {
// return ApiDealResp.failed("tbBusOppOrderThState null"); // return ApiDealResp.failed("tbBusOppOrderThState null");
orderApiQueryResp.setOrderStatusCode("0"); orderApiQueryResp.setOrderStatusCode("0");
orderApiQueryResp.setSupplierOrderStatusDesc("状态为:"+string+",状态说明0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态"); orderApiQueryResp.setSupplierOrderStatusDesc("状态为:" + string + ",状态说明0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态");
return ApiDealResp.ok(orderApiQueryResp); return ApiDealResp.ok(orderApiQueryResp);
} }
orderApiQueryResp.setData(responseInfo); orderApiQueryResp.setData(responseInfo);
orderApiQueryResp.setOrderStatusCode("470"); orderApiQueryResp.setOrderStatusCode("470");
orderApiQueryResp.setSupplierOrderStatusDesc("状态为:"+string+",状态说明0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态"); orderApiQueryResp.setSupplierOrderStatusDesc("状态为:" + string + ",状态说明0待确认1生产2作废3同步失败4待下单5待转业务单8业务单挂起状态");
return ApiDealResp.ok(orderApiQueryResp); return ApiDealResp.ok(orderApiQueryResp);
} catch (Exception e) { } catch (Exception e) {
return ApiDealResp.failed(e.getMessage()); return ApiDealResp.failed(e.getMessage());