From 3ef2d9bd0fe2a0f157a034ee604aa91ca8aace32 Mon Sep 17 00:00:00 2001 From: wqz Date: Fri, 29 Nov 2024 16:55:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E5=A4=96API=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openApi/PublicOpenAapiController.java | 24 --- .../service/impl/NewOPenApiServiceImpl.java | 168 ++++++++---------- yunze-ui/src/views/tool/apifile/index.vue | 137 +++++++------- 3 files changed, 139 insertions(+), 190 deletions(-) diff --git a/yunze-iotapi/src/main/java/com/yunze/iotapi/controller/openApi/PublicOpenAapiController.java b/yunze-iotapi/src/main/java/com/yunze/iotapi/controller/openApi/PublicOpenAapiController.java index 29b5141..73fb4df 100644 --- a/yunze-iotapi/src/main/java/com/yunze/iotapi/controller/openApi/PublicOpenAapiController.java +++ b/yunze-iotapi/src/main/java/com/yunze/iotapi/controller/openApi/PublicOpenAapiController.java @@ -608,31 +608,7 @@ public class PublicOpenAapiController { } } - /** - * 批量停机功能 - * - * @param request - * @return - */ - @RequestMapping("/mulCardStop") - @ResponseBody - @LogAnnotation(action = "批量停机") - public String mulCardStop(HttpServletRequest request) { - return newOpenApiService.mulCardStop(request); - } - /** - * 批量复机功能 - * - * @param request - * @return - */ - @RequestMapping("/mulCardStart") - @ResponseBody - @LogAnnotation(action = "批量复机") - public String mulCardStart(HttpServletRequest request) { - return newOpenApiService.mulCardStart(request); - } /** * 续费功能 diff --git a/yunze-iotapi/src/main/java/com/yunze/iotapi/service/impl/NewOPenApiServiceImpl.java b/yunze-iotapi/src/main/java/com/yunze/iotapi/service/impl/NewOPenApiServiceImpl.java index 309e53c..7a2e2c1 100644 --- a/yunze-iotapi/src/main/java/com/yunze/iotapi/service/impl/NewOPenApiServiceImpl.java +++ b/yunze-iotapi/src/main/java/com/yunze/iotapi/service/impl/NewOPenApiServiceImpl.java @@ -64,6 +64,30 @@ public class NewOPenApiServiceImpl implements NewOpenApiService { List dataList = new ArrayList<>(); for (String iccid : iccidList) { Map cardInfoMaps = yzCardMapper.selectCardInfoList(iccid); + if (!cardInfoMaps.containsKey("iccid") ||"".equals(cardInfoMaps.get("iccid"))) { + cardInfoMaps.put("iccid",null); + } + if (!cardInfoMaps.containsKey("msisdn") ||"".equals(cardInfoMaps.get("msisdn"))) { + cardInfoMaps.put("msisdn",null); + } + if (!cardInfoMaps.containsKey("imsi")||"".equals(cardInfoMaps.get("imsi"))) { + cardInfoMaps.put("imsi",null); + } + if (!cardInfoMaps.containsKey("imei") || "".equals(cardInfoMaps.get("imei"))) { + cardInfoMaps.put("imei",null); + } + if (!cardInfoMaps.containsKey("activateDate") || "".equals(cardInfoMaps.get("activateDate"))) { + cardInfoMaps.put("activateDate",null); + } + if (!cardInfoMaps.containsKey("dueExpireTime") || "".equals(cardInfoMaps.get("dueExpireTime"))) { + cardInfoMaps.put("dueExpireTime",null); + } + if (!cardInfoMaps.containsKey("status") || "".equals(cardInfoMaps.get("status"))) { + cardInfoMaps.put("status",null); + } + if (!cardInfoMaps.containsKey("remarks") || "".equals(cardInfoMaps.get("remarks"))) { + cardInfoMaps.put("remarks",null); + } dataList.add(cardInfoMaps); } System.err.println(dataList); @@ -80,9 +104,38 @@ public class NewOPenApiServiceImpl implements NewOpenApiService { List dataList = new ArrayList<>(); for (String iccid : iccidList) { Map cardInfoMaps = yzCardMapper.selectCardDetail(iccid); + if (!cardInfoMaps.containsKey("iccid") ||"".equals(cardInfoMaps.get("iccid"))) { + cardInfoMaps.put("iccid",null); + } + if (!cardInfoMaps.containsKey("msisdn") ||"".equals(cardInfoMaps.get("msisdn"))) { + cardInfoMaps.put("msisdn",null); + } + if (!cardInfoMaps.containsKey("imsi") ||"".equals(cardInfoMaps.get("imsi"))) { + cardInfoMaps.put("imsi",null); + } + if (!cardInfoMaps.containsKey("useFlow") ||"".equals(cardInfoMaps.get("useFlow"))) { + cardInfoMaps.put("useFlow",null); + } + if (!cardInfoMaps.containsKey("remaining") ||"".equals(cardInfoMaps.get("remaining"))) { + cardInfoMaps.put("remaining",null); + } + if (!cardInfoMaps.containsKey("startTime") ||"".equals(cardInfoMaps.get("startTime"))) { + cardInfoMaps.put("startTime",null); + } + if (!cardInfoMaps.containsKey("endTime") ||"".equals(cardInfoMaps.get("endTime"))) { + cardInfoMaps.put("endTime",null); + } + if (!cardInfoMaps.containsKey("activateDate") ||"".equals(cardInfoMaps.get("activateDate"))) { + cardInfoMaps.put("activateDate",null); + } + if (!cardInfoMaps.containsKey("status") ||"".equals(cardInfoMaps.get("status"))) { + cardInfoMaps.put("status",null); + } + if (!cardInfoMaps.containsKey("packageName") ||"".equals(cardInfoMaps.get("packageName"))) { + cardInfoMaps.put("packageName",null); + } dataList.add(cardInfoMaps); } - System.err.println(dataList); return new ResponseJson().initSuccessOpen(dataList); } @@ -96,104 +149,33 @@ public class NewOPenApiServiceImpl implements NewOpenApiService { List dataList = new ArrayList<>(); for (String iccid : iccidList) { Map cardInfoMaps = yzCardMapper.queryCardPackage(iccid); + if (!cardInfoMaps.containsKey("iccid") ||"".equals(cardInfoMaps.get("iccid"))) { + cardInfoMaps.put("iccid",null); + } + if (!cardInfoMaps.containsKey("msisdn") ||"".equals(cardInfoMaps.get("msisdn"))) { + cardInfoMaps.put("msisdn",null); + } + if (!cardInfoMaps.containsKey("imsi") ||"".equals(cardInfoMaps.get("imsi"))) { + cardInfoMaps.put("imsi",null); + } + if (!cardInfoMaps.containsKey("validateType") ||"".equals(cardInfoMaps.get("validateType"))) { + cardInfoMaps.put("validateType",null); + } + if (!cardInfoMaps.containsKey("packageId") ||"".equals(cardInfoMaps.get("packageId"))) { + cardInfoMaps.put("packageId",null); + } + if (!cardInfoMaps.containsKey("packetId") ||"".equals(cardInfoMaps.get("packetId"))) { + cardInfoMaps.put("packetId",null); + } + if (!cardInfoMaps.containsKey("packetName") ||"".equals(cardInfoMaps.get("packetName"))) { + cardInfoMaps.put("packetName",null); + } dataList.add(cardInfoMaps); } System.err.println(dataList); return new ResponseJson().initSuccessOpen(dataList); } - @Override - public String mulCardStop(HttpServletRequest request) { - //返回变量 - String apnCardStatusResult = ""; - //获取请求参数 - String map = (String) request.getAttribute("map"); - //fastJson工具转换 - Map paramMap = JSON.parseObject(map, new TypeReference>() { - }); - Map params = (Map) paramMap.get("Param"); - //拿到业务请求参数后转换为string数组 - List msisdnList = JSONArray.parseArray(params.get("msisdn").toString(), String.class); - for (String msisdn : msisdnList) { - //根据msisdn从数据库中拿到调用api所需参数 - Map apiParams = yzCardMapper.selectApiParams(msisdn); - //防止不存在的msisdn异常 - if (apiParams != null) { - //判断区分运营商类别(目前考虑移动和电信5G、电信4G) 调用三方API - String cdCode = (String) apiParams.get("cd_code"); - if ("YiDong_EC".equals(cdCode)) { - //移动 - //停机参数 - String operType = "0"; - Query_YD queryYd = new Query_YD(apiParams, cdCode); - apnCardStatusResult = queryYd.FunctionApnCardStop(msisdn, operType); - } else if ("DianXin_CMP_5G".equals(cdCode)) { - //电信5G - //停机参数 - String orderTypeId = "19"; - Query_DX5G queryDx5G = new Query_DX5G(apiParams); - apnCardStatusResult = queryDx5G.FunctionApnCardStop(msisdn, orderTypeId); - } else if ("DianXin_CMP".equals(cdCode)) { - //电信4G - //停机参数 - String orderTypeId = "19"; - //固定值 保持为空 - String acctCd = ""; - Query_DX queryDx = new Query_DX(apiParams); - apnCardStatusResult = queryDx.FunctionApnCardStop(msisdn, orderTypeId, acctCd); - - } - } - } - return apnCardStatusResult; - } - - @Override - public String mulCardStart(HttpServletRequest request) { - //返回变量 - String apnCardStatusResult = ""; - //获取请求参数 - String map = (String) request.getAttribute("map"); - //fastJson工具转换 - Map paramMap = JSON.parseObject(map, new TypeReference>() { - }); - Map params = (Map) paramMap.get("Param"); - //拿到业务请求参数后转换为string数组 - List msisdnList = JSONArray.parseArray(params.get("msisdn").toString(), String.class); - for (String msisdn : msisdnList) { - //根据msisdn从数据库中拿到调用api所需参数 - Map apiParams = yzCardMapper.selectApiParams(msisdn); - //防止不存在的msisdn异常 - if (apiParams != null) { - //判断区分运营商类别(目前考虑移动和电信5G、电信4G) 调用三方API - String cdCode = (String) apiParams.get("cd_code"); - if ("YiDong_EC".equals(cdCode)) { - //移动 - //复机参数 - String operType = "1"; - Query_YD queryYd = new Query_YD(apiParams, cdCode); - apnCardStatusResult = queryYd.FunctionApnCardStop(msisdn, operType); - } else if ("DianXin_CMP_5G".equals(cdCode)) { - //电信5G - //复机参数 - String orderTypeId = "20"; - Query_DX5G queryDx5G = new Query_DX5G(apiParams); - apnCardStatusResult = queryDx5G.FunctionApnCardStop(msisdn, orderTypeId); - } else if ("DianXin_CMP".equals(cdCode)) { - //电信4G - //复机参数 - String orderTypeId = "20"; - //固定值 保持为空 - String acctCd = ""; - Query_DX queryDx = new Query_DX(apiParams); - apnCardStatusResult = queryDx.FunctionApnCardStop(msisdn, orderTypeId, acctCd); - - } - } - } - return apnCardStatusResult; - } - @Override //添加事务 回滚异常操作 @Transactional diff --git a/yunze-ui/src/views/tool/apifile/index.vue b/yunze-ui/src/views/tool/apifile/index.vue index 0dd1fe6..bdd7880 100644 --- a/yunze-ui/src/views/tool/apifile/index.vue +++ b/yunze-ui/src/views/tool/apifile/index.vue @@ -2455,7 +2455,7 @@ export default { InterfaceName: 'API接口名称', mailbox: 'feizhenlong@139.com', editionList: [//版本说明 - { a: 'V2.0.0', b: '2024-10-11', c: 'Wang', d: '更新对外接口,包括批量查询卡信息、批量停复机(目前支持移动、电信5G和4G)' }, + { a: 'V2.0.0', b: '2024-10-11', c: '山东云则信息技术有限公司', d: '更新对外接口,包括批量查询卡信息、批量查询卡详情等' }, ], cardList: [//接口命名规则 { a: 'appId', b: 'String', c: '是', d: 'Verify Map 内', e: 'appId用于唯一标识请求' }, @@ -2716,7 +2716,7 @@ export default { { name: 'iccid', requiredType: '是', - type: 'Object', + type: 'String', explanation: '集成电路卡识别码,IC卡的唯一识别号码,共有20位字符组成,举例:89860423123123132135。' }, { @@ -2725,18 +2725,6 @@ export default { type: 'String', explanation: '国际移动用户识别码,其总长度不超过15位,使用0~9的数字,举例:460079650004176。' }, - { - name: 'packetType', - requiredType: '是', - type: 'int', - explanation: '加油包类型:0.基础加油包 1.叠加油包' - }, - { - name: 'validateType', - requiredType: '否', - type: 'int', - explanation: '生效类型详细请参3.4生效类别说明' - }, { name: 'activateDate', requiredType: '否', @@ -2773,24 +2761,6 @@ export default { type: 'int', explanation: '卡状态 详细请参考 3.1 卡状态说明' }, - { - name: 'netWorkStatus', - requiredType: '否', - type: 'int', - explanation: '断开网状态:1.正常 2.断网' - }, - { - name: 'operatorId', - requiredType: '是', - type: 'String', - explanation: '运营商类型:1移动 2联通 3电信 4其他' - }, - { - name: 'type', - requiredType: '是', - type: 'String', - explanation: '卡类型: 0.中国移动 1.中国联通 2.中国电信 3.其他' - }, { name: 'remaining', requiredType: '是', @@ -2803,28 +2773,25 @@ export default { ' "result": {\n' + ' "data": [\n' + ' {\n' + - ' "packetType": 0,\n' + - ' "validateType": 1,\n' + ' "activateDate": "2022-01-01",\n' + ' "imsi": "460113163750000",\n' + - ' "type": "3",\n' + ' "remaining": 50,\n' + ' "iccid": "8986112124301965000",\n' + ' "useFlow": 30,\n' + - ' "netWorkStatus": 1,\n' + - ' "startTime": "2024-06-10",\n' + + ' "startTime": "2024-11-08",\n' + ' "packageName": "移动NB卡",\n' + - ' "endTime": "2024-10-09",\n' + + ' "endTime": "2024-11-08",\n' + ' "msisdn": "1410158305000",\n' + - ' "operatorId": "3",\n' + ' "status": 4\n' + ' },\n' + ' {\n' + ' "iccid": "898604B21522C001001",\n' + + ' "useFlow": "25.2",\n' + + ' "startTime": "null",\n' + ' "activateDate": "2024-05-20",\n' + - ' "netWorkStatus": 1,\n' + ' "imsi": "460083272213000",\n' + ' "packageName": "联通地王卡",\n' + + ' "endTime": "null",\n' + ' "msisdn": "1441127223000",\n' + ' "remaining": 200,\n' + ' "status": 6\n' + @@ -2889,7 +2856,7 @@ export default { { name: 'iccid', requiredType: '是', - type: 'Object', + type: 'String', explanation: '集成电路卡识别码,IC卡的唯一识别号码,共有20位字符组成,举例:89860423123123132135。' }, { @@ -2904,32 +2871,54 @@ export default { type: 'String', explanation: '资费计划名称' }, + { + name: 'packetId', + requiredType: '是', + type: 'String', + explanation: '套餐包ID' + }, + { + name: 'packageId', + requiredType: '是', + type: 'String', + explanation: '套餐ID' + }, + { + name: 'validateType', + requiredType: '是', + type: 'String', + explanation: '资费计划类型 参考3.4生效类型辅助文档' + }, ], - backExample_success: tools.formatJson('{\n' + - ' "result": {\n' + - ' "data": [\n' + - ' {\n' + - ' "iccid": "8986112124301965000",\n' + - ' "imsi": "460113163750000",\n' + - ' "msisdn": "1410158305000",\n' + - ' "packetName": "大王卡30MB一月"\n' + - ' },\n' + - ' {\n' + - ' "iccid": "898604B21522C001001",\n' + - ' "imsi": "460083272213000",\n' + - ' "msisdn": "1441127223000",\n' + - '\n' + - ' \t "packetName": "大王卡30MB一月" \n' + - '\n' + - ' }\n' + - ' ]\n' + - ' },\n' + - ' "message": "成功",\n' + - ' "status": "1"\n' + - '}'), + backExample_success: tools.formatJson({ + "result": { + "data": [ + { + "packetId": "YZ2021070204353637421010", + "iccid": "898602B5132290026822", + "validateType": null, + "packageId": "YZ202107020435363742", + "imsi": "460040574816822", + "msisdn": "1064857486822", + "packetName": "60M月/12月" + }, + { + "packetId": "YZ2021070204353637421010", + "iccid": "8986112124301965946", + "validateType": null, + "packageId": "YZ202107020435363742", + "imsi": "460113163750388", + "msisdn": "1410158305863", + "packetName": "60M月/12月" + } + ] + }, + "message": "成功", + "status": "1" + }), backExample_fail: tools.formatJson('{"message":"无访问权限","result":null,"status":"1003"}') }, - { + /*{ T1_title: '2.2业务类', T2_title: '2.2.1 SIM卡批量停机', describe: '批量停机(注:同一卡号或群组3分钟内不能调用该接口超过1次)', @@ -3025,11 +3014,11 @@ export default { '\n' + '}'), backExample_fail: tools.formatJson('{"message":"无访问权限","result":null,"status":"1003"}') - }, + },*/ { - T1_title: '', - T2_title: '2.2.3 SIM卡批量续费', - describe: '批量复机注:批量续费卡数量单次不能超过500张)', + T1_title: ' 2.2业务类', + T2_title: '2.2.1 SIM卡批量续费', + describe: '批量续费卡数量单次不能超过500张,先通过2.3接口 拿到返回的iccid集合和资费计划后 再进行批量续费', url: 'http://api.5iot.cn/route/open/mulCardRenewal', type: 'POST', requestParameterArr: [//请求参数 @@ -3059,13 +3048,15 @@ export default { }, ], requestInstance: tools.formatJson({ - 'Param': { "iccid":[ + 'Param': { + "iccid": [ "8986112124301960000", "898604B21522C000000" ], - "packageId":"20241023", - "packetId":"123456", - "validateType":"1" }, + "packageId": "20241023", + "packetId": "123456", + "validateType": "1" + }, 'verify': { 'timeStamp': '1625120582169', 'password': 'uhbhkh223123', @@ -3093,7 +3084,7 @@ export default { explanation: '返回结果集(status为“1”时,result包含正确的结果数据;status为“非1”时, result可能为空,也可能包含其他提示数据)' } ], - returnParameterDescription_answer:[//返回应答参数 + returnParameterDescription_answer: [//返回应答参数 { name: 'iccidList', requiredType: '是',