From 2eed9dba938a334aa6e8dafc7b548697f224bb56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=B0=8F=E6=9E=97?= <320730042@qq.com> Date: Thu, 25 Jul 2024 17:18:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20iptv=E4=B8=9A=E5=8A=A1=E3=80=81tyslzw?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E3=80=81=E5=90=88=E5=B9=B6=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bellmann/common/result/ResultCode.java | 3 +- .../bellmann/common/util/HttpRequestUtil.java | 200 ++++++++++++++++++ .../com/bellmann/common/util/OrderUtils.java | 4 +- .../controller/BroadbandController.java | 7 + .../controller/OrderInfoController.java | 7 + .../bellmann/model/form/MergeOrderForm.java | 11 + .../java/com/bellmann/runner/UIService.java | 9 +- .../bellmann/service/BroadbandService.java | 2 + .../bellmann/service/OrderInfoService.java | 3 + .../service/impl/BroadbandServiceImpl.java | 43 +++- .../service/impl/OrderInfoServiceImpl.java | 14 ++ 11 files changed, 297 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/bellmann/common/util/HttpRequestUtil.java create mode 100644 src/main/java/com/bellmann/model/form/MergeOrderForm.java diff --git a/src/main/java/com/bellmann/common/result/ResultCode.java b/src/main/java/com/bellmann/common/result/ResultCode.java index d1c23d5..19fb3b0 100644 --- a/src/main/java/com/bellmann/common/result/ResultCode.java +++ b/src/main/java/com/bellmann/common/result/ResultCode.java @@ -124,7 +124,8 @@ public enum ResultCode implements IResultCode, Serializable { TASK_NOT_FOUND("F0033","任务不存在"), TASK_NOT_EXE("F0034", "任务未执行"), UPDATE_ACCOUNT_PWD_ERROR("F0035","更新设备维护密码失败"), - PLEASE_SELECT_A_CUSTOMER_TYPE("F0036","请选择客户类型!"); + PLEASE_SELECT_A_CUSTOMER_TYPE("F0036","请选择客户类型!"), + NUll_ERROR("F0037", "未查询到相关数据"); @Override public String getCode() { diff --git a/src/main/java/com/bellmann/common/util/HttpRequestUtil.java b/src/main/java/com/bellmann/common/util/HttpRequestUtil.java new file mode 100644 index 0000000..0601a9c --- /dev/null +++ b/src/main/java/com/bellmann/common/util/HttpRequestUtil.java @@ -0,0 +1,200 @@ +package com.bellmann.common.util; + +import com.zznode.cap.api.CAP; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.URL; +import java.net.URLConnection; + +public class HttpRequestUtil { + + + + /** + * 向指定URL发送GET方法的请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setConnectTimeout(20000); + conn.setRequestProperty("Content-Type", "application/json"); + + + // 建立实际的连接 + conn.connect(); + // 获取所有响应头字段 + //Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 +// for (String key : map.keySet()) { +// System.out.println(key + "--->" + map.get(key)); +// } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader( + conn.getInputStream(),"utf-8")); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + //System.out.println("发送GET请求出现异常!" + e); + CAP.trException(e); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + CAP.trException(e2); + } + } + return result; + } + /** + * 向指定URL发送GET方法的请求 + * + * @param url + * 发送请求的URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, String param,String key,String appId,String requestId) { + String result = ""; + BufferedReader in = null; + try { + String urlNameString = url + "?" + param; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setConnectTimeout(20000); + conn.setRequestProperty("Content-Type", "application/json"); + conn.setRequestProperty("X-APP-KEY", key); + conn.setRequestProperty("X-APP-ID", appId); + conn.setRequestProperty("X-CTG-Request-ID", requestId); + + // 建立实际的连接 + conn.connect(); + // 获取所有响应头字段 + //Map> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 +// for (String key : map.keySet()) { +// System.out.println(key + "--->" + map.get(key)); +// } + // 定义 BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader( + conn.getInputStream(),"utf-8")); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + //System.out.println("发送GET请求出现异常!" + e); + CAP.trException(e); + } + // 使用finally块来关闭输入流 + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + CAP.trException(e2); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url + * 发送请求的 URL + * @param param + * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, String param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + URL realUrl = new URL(url); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", + "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader( + new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!"+e); + e.printStackTrace(); + } + //使用finally块来关闭输出流、输入流 + finally{ + try{ + if(out!=null){ + out.close(); + } + if(in!=null){ + in.close(); + } + } + catch(IOException ex){ + ex.printStackTrace(); + } + } + return result; + } + + //调用 + public static void main(String[] args) { + + String param="BussinessType=ADAccount&IPVersion=1&InternetIP=18.16.5.4&InternetPort=5509"; + //发送 GET 请求 + String s=HttpRequestUtil.sendGet("http://172.13.128.80:6080/itms/order", param,"UtOCzqb67d3sN12Kts4URwy8","FFnN2hso42Wego3pWq4X5qlu","92598bee-7d30-4086-afc9-a7be6bd2cda0"); + //String s = HttpRequest.sendPost("http://172.13.128.80:6080/itms/order", params); + System.out.println(s); + + //发送 POST 请求 +// String sr=HttpRequest.sendPost("http://localhost:6144/Home/RequestPostString", "key=123&v=456"); +// System.out.println(sr); + } +} + + + \ No newline at end of file diff --git a/src/main/java/com/bellmann/common/util/OrderUtils.java b/src/main/java/com/bellmann/common/util/OrderUtils.java index 114f19f..780a42c 100644 --- a/src/main/java/com/bellmann/common/util/OrderUtils.java +++ b/src/main/java/com/bellmann/common/util/OrderUtils.java @@ -62,11 +62,13 @@ public class OrderUtils { "/", xml); } public static String orderServiceStructToXml(OrderServiceStruct[] list) { + if (list.length==0){ + return ""; + } StringBuilder sb = new StringBuilder(); for(OrderServiceStruct service: list) { sb.append("^").append(service.argsName).append("=").append(service.argsValueNew); } - System.out.println(sb.substring(1)); return sb.substring(1); } private static String getOrderType(int orderType) { diff --git a/src/main/java/com/bellmann/controller/BroadbandController.java b/src/main/java/com/bellmann/controller/BroadbandController.java index de38d72..30d5050 100644 --- a/src/main/java/com/bellmann/controller/BroadbandController.java +++ b/src/main/java/com/bellmann/controller/BroadbandController.java @@ -46,4 +46,11 @@ public class BroadbandController { public Result updateBroadbandMode(@RequestBody AddBroadbandForm form){ return broadbandService.updateBroadbandMode(form); } + + @PostMapping("/add-tyslzw") + @Operation(summary = "开通TYSLZW") + @PreventDuplicateSubmit + public Result addTYSLZW(@RequestBody AddBroadbandForm form){ + return broadbandService.addTYSLZW(form); + } } diff --git a/src/main/java/com/bellmann/controller/OrderInfoController.java b/src/main/java/com/bellmann/controller/OrderInfoController.java index b57683c..eaa80c3 100644 --- a/src/main/java/com/bellmann/controller/OrderInfoController.java +++ b/src/main/java/com/bellmann/controller/OrderInfoController.java @@ -4,6 +4,7 @@ package com.bellmann.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.result.PageResult; import com.bellmann.common.result.Result; +import com.bellmann.model.form.MergeOrderForm; import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; @@ -88,5 +89,11 @@ public class OrderInfoController { public Result> checkDev(@PathVariable String adNo){ return orderInfoService.checkDev(adNo); } + + @PostMapping("/merger-order") + @Operation(summary = "合并工单") + public Result mergeOrder(@RequestBody MergeOrderForm form){ + return orderInfoService.mergeOrder(form); + } } diff --git a/src/main/java/com/bellmann/model/form/MergeOrderForm.java b/src/main/java/com/bellmann/model/form/MergeOrderForm.java new file mode 100644 index 0000000..a0d1479 --- /dev/null +++ b/src/main/java/com/bellmann/model/form/MergeOrderForm.java @@ -0,0 +1,11 @@ +package com.bellmann.model.form; + +import lombok.Data; + +@Data +public class MergeOrderForm { + + private String logicId; + + private String serviceName; +} diff --git a/src/main/java/com/bellmann/runner/UIService.java b/src/main/java/com/bellmann/runner/UIService.java index 72822b6..e794933 100644 --- a/src/main/java/com/bellmann/runner/UIService.java +++ b/src/main/java/com/bellmann/runner/UIService.java @@ -14,7 +14,11 @@ import lombok.Getter; public class UIService extends ServiceManager { static UIService service = null; + @Getter private static String nbiOrderUrl; + + @Getter + private static String mergeUrl; //任务超时的时间 @Getter private static String task_timeOut; @@ -36,6 +40,7 @@ public class UIService extends ServiceManager { InventoryManager.init(getStringValueByName("Service.Name.Inventory")); OAMManager.init(getStringValueByName("Service.Name.OAM")); nbiOrderUrl = getStringValueByName("nbiOrderUrl"); + mergeUrl = getStringValueByName("mergeUrl"); return true; } @@ -48,7 +53,5 @@ public class UIService extends ServiceManager { service = new UIService(arg); return service; } - public static String getNbiOrderUrl() { - return nbiOrderUrl; - } + } diff --git a/src/main/java/com/bellmann/service/BroadbandService.java b/src/main/java/com/bellmann/service/BroadbandService.java index 13cfad8..4ece06b 100644 --- a/src/main/java/com/bellmann/service/BroadbandService.java +++ b/src/main/java/com/bellmann/service/BroadbandService.java @@ -7,4 +7,6 @@ public interface BroadbandService { Result addBroadband(AddBroadbandForm form); Result updateBroadbandMode(AddBroadbandForm form); + + Result addTYSLZW(AddBroadbandForm form); } diff --git a/src/main/java/com/bellmann/service/OrderInfoService.java b/src/main/java/com/bellmann/service/OrderInfoService.java index 8eecc30..3a8706d 100644 --- a/src/main/java/com/bellmann/service/OrderInfoService.java +++ b/src/main/java/com/bellmann/service/OrderInfoService.java @@ -2,6 +2,7 @@ package com.bellmann.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bellmann.common.result.Result; +import com.bellmann.model.form.MergeOrderForm; import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; @@ -37,4 +38,6 @@ public interface OrderInfoService { Page deviceOrderPage(DeviceOrderQuery query); Result> checkDev(String adNo); + + Result mergeOrder(MergeOrderForm form); } diff --git a/src/main/java/com/bellmann/service/impl/BroadbandServiceImpl.java b/src/main/java/com/bellmann/service/impl/BroadbandServiceImpl.java index f08fafe..b7a9c5b 100644 --- a/src/main/java/com/bellmann/service/impl/BroadbandServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/BroadbandServiceImpl.java @@ -212,7 +212,6 @@ public class BroadbandServiceImpl implements BroadbandService { String orderUrl = UIService.getNbiOrderUrl(); - Map header = new HashMap(); header.put("content-type", "application/json"); try { @@ -222,4 +221,46 @@ public class BroadbandServiceImpl implements BroadbandService { } } + + @Override + public Result addTYSLZW(AddBroadbandForm form) { + OrderMerger orderMerger = orderMergerMapper.selectOne(new LambdaQueryWrapper() + .eq(OrderMerger::getUserSnNo, form.getUserSnNo()) + ); + if (orderMerger==null){ + throw new BusinessException(ResultCode.NUll_ERROR); + } + Domain domain = domainMapper.selectOne(new LambdaQueryWrapper() + .eq(Domain::getGroupId, form.getSystemDomain()) + ); + OrderServiceStruct[] orderServiceStructs = tranceOrderInfo(form.getList(), form.getUserSnNo(), form.getServiceName(), form.getServiceFlag()); + String serviceArgs = OrderUtils.orderServiceStructToXml(orderServiceStructs); + OrderTempBO orderTempBO = OrderTempBO + .builder() + .orderArrays(serviceArgs) + .pppoe(orderMerger.getPppoeAccount()) + .contactPersonNew(form.getContactPersonNew()) + .domainDesc(domain.getDescription()) + .customerNameNew(form.getCustomerNameNew()) + .operateRemark(form.getOperateRemark()) + .orderServiceType(form.getOrderServiceType()) + .receiveOrderId(form.getReceiveOrderId()) + .remark3(form.getRemark3()) + .userSnNo(form.getUserSnNo()) + .customerAddrNew(form.getCustomerAddrNew()).build(); + if (StringUtils.isNotBlank(orderMerger.getOrderCustomerKind())) { + orderTempBO.setCustomerKind(Integer.valueOf(orderMerger.getOrderCustomerKind())); + } else if (StringUtils.isNotBlank(form.getOrderCustomerKind())) { + orderTempBO.setCustomerKind(Integer.valueOf(form.getOrderCustomerKind())); + } else { + throw new BusinessException(ResultCode.PLEASE_SELECT_A_CUSTOMER_TYPE); + } + String xml = OrderUtils.formatOrderXml(orderTempBO); + System.out.println(xml); + HttpClientResult result = sendOrderToStartNBI(xml); + if (result.getCode()== HttpStatus.HTTP_OK){ + return Result.success(); + } + return Result.failed(result.getContent()); + } } diff --git a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java index 3efdd1e..4c7c799 100644 --- a/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java +++ b/src/main/java/com/bellmann/service/impl/OrderInfoServiceImpl.java @@ -12,6 +12,7 @@ import com.bellmann.common.exception.BusinessException; import com.bellmann.common.result.Result; import com.bellmann.common.result.ResultCode; import com.bellmann.common.util.CommonUtils; +import com.bellmann.common.util.HttpRequestUtil; import com.bellmann.converter.OrderInfoConverter; import com.bellmann.mapper.*; import com.bellmann.model.bo.DevOnlineStatus; @@ -19,11 +20,13 @@ import com.bellmann.model.bo.DeviceDetailBO; import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.OrderInfo; import com.bellmann.model.entity.OrderService; +import com.bellmann.model.form.MergeOrderForm; import com.bellmann.model.form.ModifyOrderForm; import com.bellmann.model.query.DeviceOrderQuery; import com.bellmann.model.query.SelectQuery; import com.bellmann.model.vo.OrderInfoTableVO; import com.bellmann.model.vo.OrderInfoVO; +import com.bellmann.runner.UIService; import com.bellmann.security.util.SecurityUtils; import com.bellmann.service.OrderInfoService; import com.zznode.itms.api.InventoryManager; @@ -466,4 +469,15 @@ public class OrderInfoServiceImpl implements OrderInfoService { } return Result.failed(ResultCode.NOT_GET_DEVICE); } + + @Override + public Result mergeOrder(MergeOrderForm form) { + String mergeUrl = UIService.getMergeUrl(); + String param = "loid="+form.getLogicId()+"&service="+form.getServiceName(); + String result = HttpRequestUtil.sendGet(mergeUrl, param); + if(result.contains("P")) { + return Result.success(); + } + return Result.failed(result); + } }