mirror of
https://gitee.com/sdyunze/iotlink.git
synced 2026-10-31 10:11:45 +08:00
对外API接口优化更新
This commit is contained in:
-24
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 续费功能
|
||||
|
||||
+75
-93
@@ -64,6 +64,30 @@ public class NewOPenApiServiceImpl implements NewOpenApiService {
|
||||
List<Object> dataList = new ArrayList<>();
|
||||
for (String iccid : iccidList) {
|
||||
Map<String, Object> 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<Object> dataList = new ArrayList<>();
|
||||
for (String iccid : iccidList) {
|
||||
Map<String, Object> 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<Object> dataList = new ArrayList<>();
|
||||
for (String iccid : iccidList) {
|
||||
Map<String, Object> 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<String, Object> paramMap = JSON.parseObject(map, new TypeReference<Map<String, Object>>() {
|
||||
});
|
||||
Map<String, Object> params = (Map<String, Object>) paramMap.get("Param");
|
||||
//拿到业务请求参数后转换为string数组
|
||||
List<String> msisdnList = JSONArray.parseArray(params.get("msisdn").toString(), String.class);
|
||||
for (String msisdn : msisdnList) {
|
||||
//根据msisdn从数据库中拿到调用api所需参数
|
||||
Map<String, Object> 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<String, Object> paramMap = JSON.parseObject(map, new TypeReference<Map<String, Object>>() {
|
||||
});
|
||||
Map<String, Object> params = (Map<String, Object>) paramMap.get("Param");
|
||||
//拿到业务请求参数后转换为string数组
|
||||
List<String> msisdnList = JSONArray.parseArray(params.get("msisdn").toString(), String.class);
|
||||
for (String msisdn : msisdnList) {
|
||||
//根据msisdn从数据库中拿到调用api所需参数
|
||||
Map<String, Object> 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
|
||||
|
||||
@@ -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: '是',
|
||||
|
||||
Reference in New Issue
Block a user