版本更新v1.5.2-->v1.8.0 2023年3月7日14:31:54

This commit is contained in:
chengzhichao
2023-03-07 14:35:17 +08:00
parent 7fc2913ea5
commit b2556657c8
11 changed files with 988 additions and 65 deletions
@@ -15,11 +15,15 @@ import com.yunze.apiCommon.upstreamAPI.IoTLink.change.serviceAccept_IoTLink;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.Inquire.Query_LT;
import com.yunze.apiCommon.upstreamAPI.LianTongCMP.change.serviceAccept_LT;
import com.yunze.apiCommon.upstreamAPI.ShuoLang.Inquire.Query_Shuolang;
import com.yunze.apiCommon.upstreamAPI.XuYu.Inquire.Query_XuYu;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.Inquire.Query_YD;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.YD_EC_Api;
import com.yunze.apiCommon.upstreamAPI.YiDongEC.change.serviceAccept_YD;
import com.yunze.apiCommon.upstreamAPI.YiDongEcV2.Inquire.Query_EcV2;
import com.yunze.apiCommon.upstreamAPI.YiKong.Inquire.Query_YK;
import com.yunze.apiCommon.upstreamAPI.YiKong.change.ServiceAccept_YK;
import com.yunze.apiCommon.upstreamAPI.YiYuan.Inquire.Query_YiYuan;
import com.yunze.apiCommon.upstreamAPI.ZCWL.ZhonChuang_Api;
import com.yunze.apiCommon.utils.VeDate;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Lazy;
@@ -570,7 +574,6 @@ public class PublicApiService {
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Qy.queryApnStatus(card_no));
}else if (function_name.equals("FunctionApnStatus")) {
//实例化 移动 EC 业务变更 类
serviceAccept_YD Ser = new serviceAccept_YD(find_card_route_map,cd_code);
Query_YD Qy = new Query_YD(find_card_route_map,cd_code);
rmap.put("Data", Ser.FunctionApnStatus(card_no,Is_Break, Qy.queryApnStatus(card_no)));
@@ -817,6 +820,76 @@ public class PublicApiService {
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("ZCWL")) {
if (function_name.equals("queryFlow")) {
//实例化 查询 类
ZhonChuang_Api Q_Sl = new ZhonChuang_Api(find_card_route_map);
rmap.put("Data", Q_Sl.queryRequst("queryCardTraffic",iccid));
}else if (function_name.equals("queryCardStatus")) {
//实例化 查询 类
ZhonChuang_Api Q_Sl = new ZhonChuang_Api(find_card_route_map);
rmap.put("Data", Q_Sl.queryRequst("queryCardStatus",iccid));
}else if (function_name.equals("queryOnlineStatus")) {
//实例化 查询 类
ZhonChuang_Api Q_Sl = new ZhonChuang_Api(find_card_route_map);
rmap.put("Data", Q_Sl.queryRequst("queryCardSessionInfo",iccid));
}else if (function_name.equals("onOffStatus")) {
//实例化 查询 类
ZhonChuang_Api Q_Sl = new ZhonChuang_Api(find_card_route_map);
rmap.put("Data", Q_Sl.queryRequst("queryCardOnOff",iccid));
}else if (function_name.equals("simStopReason")) {
//实例化 查询 类
ZhonChuang_Api Q_Sl = new ZhonChuang_Api(find_card_route_map);
rmap.put("Data", Q_Sl.queryRequst("diagnosisCard",iccid));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("YKWL")) {
if (function_name.equals("queryFlow")) {
//实例化 查询 类
Query_YK Qy = new Query_YK(find_card_route_map);
rmap.put("Data", Qy.queryTraffic(iccid));
} else if (function_name.equals("queryCardStatus")) {
//实例化 查询 类
Query_YK Qy = new Query_YK(find_card_route_map);
rmap.put("Data", Qy.queryCardStatus(iccid));
} else if (function_name.equals("changeCardStatus")) {
//实例化 查询 类
ServiceAccept_YK Sa = new ServiceAccept_YK(find_card_route_map);
String stop = null;
if (Is_Stop.equals("on")) {
stop = "0";//正常
} else if (Is_Stop.equals("off")) {
stop = "2";//停机
}
rmap.put("Data", Sa.changeCardStatus(iccid, stop));
}else if (function_name.equals("MachineCardBinding")) {
//实例化 业务变更 类
ServiceAccept_YK Sa = new ServiceAccept_YK(find_card_route_map);
rmap.put("Data", Sa.IMEIRe(iccid));
}else if (function_name.equals("queryCardActiveTime")) {
//实例化 查询 类
Query_YK Qy = new Query_YK(find_card_route_map);
rmap.put("Data", Qy.getSIMInfo(iccid));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else if (cd_code.equals("XuYuWuLian")) {
if (function_name.equals("queryFlow")) {
//实例化 查询 类
Query_XuYu Qy = new Query_XuYu(find_card_route_map);
rmap.put("Data", Qy.queryInfo(card_no));
}else if (function_name.equals("queryCardStatus")) {
//实例化 查询 类
Query_XuYu Qy = new Query_XuYu(find_card_route_map);
rmap.put("Data", Qy.queryInfo(card_no));
}else if(function_name.equals("queryCardActiveTime")){
Query_XuYu Qy = new Query_XuYu(find_card_route_map);
rmap.put("Data", Qy.queryInfo(card_no));
}
rmap.put("Message", "操作成功");
rmap.put("cd_code", cd_code);
}else {
rmap.put("cd_code", 500);
rmap.put("Message", "划分的通道 通道编号配置错误请检查通道编号!");
@@ -15,15 +15,19 @@ public class Query_Sdiot extends Sdiot_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
/* map.put("cd_username", "sdzywlw20180510");
map.put("cd_pwd", "sdwlwzy@2018!");*/
map.put("cd_username", "");
map.put("cd_pwd", "");
map.put("cd_key", "");
map.put("cd_username", "Ib!Vs003gssBVRrPLvn&Kx7");
map.put("cd_pwd", "h!L&9mewhitS7f%Opc3@48S2Sk");
map.put("cd_key", "531");
Query_Sdiot Qy = new Query_Sdiot(map);
for (int i = 0; i < 1; i++) {
System.out.println(Qy.queryCardStatus("10"));
System.out.println(Qy.queryCardStatus("1064770568005"));
}
}
@@ -0,0 +1,68 @@
package com.yunze.apiCommon.upstreamAPI.XuYu.Inquire;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.XuYu.XunYu_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
public class Query_XuYu extends XunYu_Api {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "lMRucLU18aK3pIK6");//
map.put("cd_pwd", "https://icmp.shingsou.com/open");//
map.put("cd_key", "56Js4cNZ5");//
Query_XuYu Qy = new Query_XuYu(map);
for (int i = 0; i < 1; i++) {
System.out.println(Qy.queryInfo("1440460073870"));
}
}
public Query_XuYu(Map<String, Object> init_map) {
super(init_map);
}
/**
* 获取单个卡的流量
* @param accessNum 接入号
* @param
* @return
*/
public static String queryInfo(String accessNum) {
String Rstr = null;
try {
Map<String, Object> params = new HashMap<>();
params.put("msisdn",accessNum);
params.put("agencyCode",agencyCode);
String sign = getSign("msisdn="+accessNum+"&agencyCode="+agencyCode);
params.put("key",key);
params.put("sign",sign);
String url = server_Ip + "/queryOpenCardInfoSingle";
Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params));
} catch (Exception e) {
e.printStackTrace();
}
return Rstr;
}
}
@@ -0,0 +1,64 @@
package com.yunze.apiCommon.upstreamAPI.XuYu;
import com.yunze.apiCommon.utils.MD5Util;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 旭宇系统 API 接口
* 2022-05-12 版本
*/
public class XunYu_Api {
//构造赋值
public XunYu_Api(Map<String, Object> init_map){
// 代理编号
agencyCode = init_map.get("cd_username").toString();
// 服务器请求地址
server_Ip = init_map.get("cd_pwd").toString();
// key
key = init_map.get("cd_key").toString();
}
// 服务器请求地址 https://icmp.shingsou.com/open
protected static String server_Ip = "https://icmp.shingsou.com/open";
// 代理编号
public static String agencyCode = null;
// 秘钥key
public static String key = "";
// 配置调用的名称
protected static String Config_name = "";
public static String getSign(Map<String,Object> map){
List<String> list=new ArrayList<>(map.keySet());
//Collections.sort(list);
StringBuffer sb=new StringBuffer();
for(int i=0;i<list.size();i++){
String k =list.get(i);
String v=(String )map.get(k);
sb.append(k).append("=").append(v).append("&");
}
String signstr=sb.append("key=").append(key).toString();
String sign = MD5Util.MD5Encode(signstr).toUpperCase();
return sign;
}
public static String getSign(String str){
StringBuffer sb=new StringBuffer(str);
String signstr=sb.append("&key=").append(key).toString();
String sign = MD5Util.MD5Encode(signstr).toUpperCase();
return sign;
}
}
@@ -0,0 +1,48 @@
package com.yunze.apiCommon.upstreamAPI.XuYu.change;
import com.alibaba.fastjson.JSON;
import com.yunze.apiCommon.upstreamAPI.XuYu.XunYu_Api;
import com.yunze.apiCommon.utils.HttpUtil;
import java.util.HashMap;
import java.util.Map;
/**
* 变更 接口
*/
public class serviceAccept_XuYu extends XunYu_Api {
public serviceAccept_XuYu(Map<String, Object> init_map) {
super(init_map);
}
/**
* 停复机
* @param accessNums 接入号
* @param operType 0停机;1复机
* @return
*/
public static String changeCardStatus(String accessNums,String operType){
String Rstr = null;
try {
Map<String, Object> params = new HashMap<>();
params.put("msisdn",accessNums);
params.put("agencyCode",agencyCode);
params.put("operType",operType);
String sign = getSign(params);
params.put("key",key);
params.put("sign",sign);
String url = server_Ip + "/updateCardStatusSingle";
Rstr = HttpUtil.sendPostJson(url, JSON.toJSONString(params));
} catch (Exception e) {
e.printStackTrace();
}
return Rstr;
}
}
@@ -0,0 +1,100 @@
package com.yunze.apiCommon.upstreamAPI.YiKong.Inquire;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.YiKong.YiKong_Api;
import com.yunze.apiCommon.upstreamAPI.YiKong.change.ServiceAccept_YK;
import java.util.HashMap;
import java.util.Map;
/**
* 查询类接口
*/
public class Query_YK extends YiKong_Api {
public Query_YK(Map<String, Object> init_map) {
super(init_map);
}
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("cd_username", "YZ345@2021");
map.put("cd_pwd", "babd8389eb4ee5c8");
map.put("cd_key", "c676c540534aa377");
ServiceAccept_YK Ser = new ServiceAccept_YK(map);
Query_YK qy = new Query_YK(map);
//8986111924708526259 8986111924708526261
//System.out.println(qy.getSIMInfo("8986031941208660333"));
//System.out.println(qy.queryTraffic("8986111924708527186"));
//System.out.println(qy.queryCardStatus("8986031941208660333"));//已激活、去激活、停机、拆机s
System.out.println(Ser.changeCardStatus("8986111924708526259","0"));
//System.out.println(Ser.IMEIRe("8986031941208660333"));// {"resultCode":"0","description":{"iccid":"8986031941208660333","msg":"已成功申请机卡重绑,请耐心等待"},"resultMsg":"配置成功"}
}
/**
* 单卡接口查询卡状态
* @param iccid
* @return
*/
public String queryCardStatus(String iccid) {
String method = "queryCardMainStatus";
JSONObject json = new JSONObject();
json.put("method", method);
json.put("iccid", iccid);
String Str = null;
try {
Str = send(null,json);
}catch (Exception e){
System.out.println("Query_Rht queryCardStatus 异常 "+e.getMessage());
}
return Str;
}
/**
* 单卡当月流量查询接口
* @param iccid
* @return
*/
public String queryTraffic(String iccid) {
String method = "queryTraffic";
JSONObject json = new JSONObject();
json.put("method", method);
json.put("iccid", iccid);
String Str = null;
try {
Str = send(null,json);
}catch (Exception e){
System.out.println("Query_Rht queryTraffic 异常 "+e.getMessage());
}
return Str;
}
/**
* 长周期卡单卡查询接口
* @param iccid
* @return
*/
public String getSIMInfo(String iccid) {
String method = "getSIMInfo";
JSONObject json = new JSONObject();
json.put("method", method);
json.put("iccid", iccid);
String Str = null;
try {
Str = send(null,json);
}catch (Exception e){
System.out.println("Query_Rht getSIMInfo 异常 "+e.getMessage());
}
return Str;
}
}
@@ -0,0 +1,67 @@
package com.yunze.apiCommon.upstreamAPI.YiKong;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.utils.HttpUtil;
import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.HashMap;
import java.util.Map;
/**
* 安徽翼控物联网 框架 API 接口
* 2021-10-22
*/
public class YiKong_Api {
//构造赋值
public YiKong_Api(Map<String, Object> init_map){
API_ID = init_map.get("cd_username").toString();
API_PWD = init_map.get("cd_pwd").toString();
API_KEY = init_map.get("cd_key").toString();
}
// 服务器请求地址 http://global.anhuiyk.cn:8006/m2m_api/v1/query/
protected static String server_Ip = "http://global.anhuiyk.cn:8006/m2m_api/v1/query/";
// user_id
protected static String API_ID = null;
// 秘钥密码
protected static String API_PWD = null;
// key
protected static String API_KEY = null;
// 配置调用的名称
protected static String Config_name = "";
/**
* 异或算法加密
* @param str 数据
* @return 返回解密/加密后的数据
*/
public String XorEncryptAndBaseNew(String str,String key) throws UnsupportedEncodingException {
byte[] b1 = str.getBytes();
byte[] b2 = key.getBytes();
byte[] out = new byte[b1.length];
for (int i = 0; i < b1.length; i++) {
out[i] = (byte) (b1[i] ^ b2[i % b2.length]);
}
String EncodeStr = Base64.getEncoder().encodeToString(out);
return EncodeStr;
}
public String send(String Url ,JSONObject json) throws Exception {
json.put("pwd",API_PWD);
Map<String, Object> map = new HashMap<String, Object>();
map.put("id",API_ID);
map.put("info",XorEncryptAndBaseNew(json.toJSONString(),API_KEY));
Url = Url!=null?Url:server_Ip;
return HttpUtil.doPost(Url, map);
}
}
@@ -0,0 +1,67 @@
package com.yunze.apiCommon.upstreamAPI.YiKong.change;
import com.alibaba.fastjson.JSONObject;
import com.yunze.apiCommon.upstreamAPI.YiKong.YiKong_Api;
import java.util.Map;
/**
* 变更 接口
*/
public class ServiceAccept_YK extends YiKong_Api {
public ServiceAccept_YK(Map<String, Object> init_map) {
super(init_map);
}
/**
* 单卡卡状态操作
* @param iccid
* @param typeid
* 0 - 激活
* 1 - 去激活
* 2 - 停机保号
* @return
*/
public String changeCardStatus(String iccid, String typeid) {
String method = "disabledNumber";
JSONObject json = new JSONObject();
json.put("method", method);
json.put("iccid", iccid);
json.put("typeid", typeid);
String Str = null;
try {
Str = send(null,json);
}catch (Exception e){
System.out.println("ServiceAccept_Rht disabledNumber 异常 "+e.getMessage());
}
return Str;
}
/**
* 单卡机卡重绑接口
* @param iccid
* @return
*/
public String IMEIRe(String iccid) {
String method = "IMEIRe";
JSONObject json = new JSONObject();
json.put("method", method);
json.put("iccid", iccid);
String Str = null;
try {
Str = send(null,json);
}catch (Exception e){
System.out.println("ServiceAccept_Rht IMEIRe 异常 "+e.getMessage());
}
return Str;
}
}
@@ -0,0 +1,198 @@
package com.yunze.apiCommon.upstreamAPI.ZCWL;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
import java.util.*;
/**
* 中创 系统 API 接口
*/
public class ZhonChuang_Api {
//构造赋值
public ZhonChuang_Api(Map<String, Object> init_map){
appId = init_map.get("cd_username").toString();
appkey = init_map.get("cd_pwd").toString();
if(init_map.get("cd_key")!=null){
domain = init_map.get("cd_key").toString();
}else{
domain = "http://zy.zyllz.com";
}
}
// 用户登录名称
public static String appId = "";
// 秘钥key
public static String appkey = "";
public static String v = "2.0";
// 服务器请求地址
public static String domain = "http://zy.zyllz.com";//默认
public static void main(String [] args){
/*queryRequst("queryCardStatus");*/
//queryRequst("queryCardTraffic","89860487212071174747");
queryRequst("queryCardSessionInfo","89860484052180043850");
/*queryRequst("queryCardTraffic");*/
/*queryRequst("queryCardPackage");*/
/*queryRequst("sign");*/
/*orderCardPackage();*/
}
static private Map getCommonParam(String iccid){
Map<String,String> map = new HashMap();
map.put("iccid",iccid);
map.put("appId",appId);
map.put("v",v);
map.put("timestamp",System.currentTimeMillis()+"");
return map;
}
public static JSONObject queryRequst(String apiMethod, String iccid){
String url = domain + ":8898/iot/api/"+apiMethod;
Map<String,String> map = getCommonParam(iccid);
if("sign".equals(apiMethod)){
map.put("appKey", appkey);
}
map.put("sign", sign(map,appkey));
JSONObject json =(JSONObject) JSONObject.toJSON(map);
return doPosts(url,json);
}
public static JSONObject doPosts(String url, JSONObject json){
CloseableHttpClient httpclient = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
JSONObject response = null;
try {
StringEntity s = new StringEntity(json.toString());
s.setContentEncoding("UTF-8");
s.setContentType("application/json");//发送json数据需要设置contentType
post.setEntity(s);
HttpResponse res = httpclient.execute(post);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
String result = EntityUtils.toString(res.getEntity());// 返回json格式:
response = JSON.parseObject(result);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
//System.out.println(response);
return response;
}
/**
* 使用<code>secret</code>对paramValues按以下算法进行签名: <br/>
* uppercase(hex(sha1(secretkey1value1key2value2...secret))
*
// * @param paramNames 需要签名的参数名
* @param paramValues 参数列表
* @param secret
* @return
*/
public static String sign(Map<String, String> paramValues, String secret) {
return sign(paramValues,null,secret);
}
/**
* 对paramValues进行签名,其中ignoreParamNames这些参数不参与签名
* @param paramValues
* @param ignoreParamNames
* @param secret
* @return
*/
public static String sign(Map<String, String> paramValues, List<String> ignoreParamNames, String secret) {
try {
byte[] sha1Digest = getSHA1Digest(getSignStr(paramValues, ignoreParamNames, secret));
return byte2hex(sha1Digest);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
public static String getSignStr(Map<String, String> paramValues, List<String> ignoreParamNames, String secret){
StringBuilder sb = new StringBuilder();
List<String> paramNames = new ArrayList<>(paramValues.size());
paramNames.addAll(paramValues.keySet());
if(ignoreParamNames != null && ignoreParamNames.size() > 0){
for (String ignoreParamName : ignoreParamNames) {
paramNames.remove(ignoreParamName);
}
}
Collections.sort(paramNames);
sb.append(secret);
for (String paramName : paramNames) {
sb.append(paramName).append(paramValues.get(paramName));
}
sb.append(secret);
return sb.toString();
}
public static String utf8Encoding(String value, String sourceCharsetName) {
try {
return new String(value.getBytes(sourceCharsetName), "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new IllegalArgumentException(e);
}
}
private static byte[] getSHA1Digest(String data) throws IOException {
byte[] bytes = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-1");
bytes = md.digest(data.getBytes("UTF-8"));
} catch (GeneralSecurityException gse) {
throw new IOException(gse);
}
return bytes;
}
/**
* 二进制转十六进制字符串
*
* @param bytes
* @return
*/
private static String byte2hex(byte[] bytes) {
StringBuilder sign = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
sign.append("0");
}
sign.append(hex.toUpperCase());
}
return sign.toString();
}
}
@@ -218,6 +218,16 @@ public class ApiUtil_NoStatic{
Use = Arith.formatToTwo(Arith.div(kb,1024));//KB 转 MB
}
}else if (cd_code.equals("XuYuWuLian")) {
//旭宇物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
//System.out.println(JsonData);
try {
codeOn = JsonData.get("resultCode").toString();
rtMessage = JsonData.get("resultMsg").toString();
}catch (Exception e){}
Map<String, Object> Data = JSON.parseObject(JsonData.get("info").toString());
Use = Double.parseDouble(Data.get("useGprs").toString());
}else if (cd_code.equals("SDIOT")) {
//山东移动老系统 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
@@ -255,6 +265,51 @@ public class ApiUtil_NoStatic{
}else{
data.put("Message",JsonData.get("msg"));
}
}else if (cd_code.equals("ZCWL")) {
//中创物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
try {
codeOn = code;
rtMessage = JsonData.get("message").toString();
}catch (Exception e){}
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
Use = Double.parseDouble(Data.get("usedFlow").toString());
}else{
data.put("Message",JsonData.get("msg"));
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("resultCode").toString();
try {
codeOn = code;
rtMessage = JsonData.get("resultMsg").toString();
}catch (Exception e){}
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("description").toString());
double b = Double.parseDouble(Data.get("totalVolumnGPRS").toString());
if(b>-1){
Use = Arith.formatToTwo(Arith.div(Arith.div(b,1024),1024));//b 转 MB
}
}else{
data.put("Message",JsonData.get("msresultMsgg"));
}
}else if (cd_code.equals("TenngYu")) {
//腾宇物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
try {
codeOn = code;
rtMessage = JsonData.get("msg").toString();
}catch (Exception e){}
if(code.equals("1")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
Use = Double.parseDouble(Data.get("used_accumulative").toString());
}else{
data.put("Message",JsonData.get("msg"));
}
}else if (cd_code.equals("YiDong_ECv2") || cd_code.equals("YiDong_ECv2_Combo")) {
// 移动 EC V2 解析
Map<String, Object> Data = JSON.parseObject(data.get("Data").toString());
@@ -532,6 +587,47 @@ public class ApiUtil_NoStatic{
Map<String, Object> States = cardStatusReplacementUtil.getStates(message);
statusCode = Integer.parseInt(States.get("statusCode").toString());
statusMessage = States.get("statusMessage").toString();
}else if (cd_code.equals("ZCWL")) {
//中创物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
String status = Data.get("status").toString();
Map<String, Object> States = cardStatusReplacementUtil.getStates(status);
statusCode = Integer.parseInt(States.get("statusCode").toString());
statusMessage = States.get("statusMessage").toString();
}else{
data.put("Message",JsonData.get("msg"));
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("resultCode").toString();
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("description").toString());
String status = Data.get("simStatus").toString();
Map<String, Object> States = cardStatusReplacementUtil.getStates(status);
statusCode = Integer.parseInt(States.get("statusCode").toString());
statusMessage = States.get("statusMessage").toString();
}else{
data.put("Message",JsonData.get("msresultMsgg"));
}
}else if (cd_code.equals("TenngYu")) {
//腾宇物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
if(code.equals("1")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
String status = Data.get("sim_status").toString();
Map<String, Object> TenngYu_CardStatusMap = cardStatusReplacementUtil.getTenngYu_CardStatus(status);
statusCode = Integer.parseInt(TenngYu_CardStatusMap.get("statusCode").toString());
statusMessage = TenngYu_CardStatusMap.get("statusMessage").toString();
}else{
data.put("Message",JsonData.get("msg"));
}
}else if (cd_code.equals("DianXin_CMP_5G")) {
// DianXin_CMP_5G 解析
System.out.println(data);
@@ -547,6 +643,16 @@ public class ApiUtil_NoStatic{
statusMessage = CardStatusMap.get("statusMessage").toString();
}
}
}else if (cd_code.equals("XuYuWuLian")) {
//旭宇物联 解析
Map<String, Object> Data = JSON.parseObject(data.get("Data").toString());
Map<String, Object> Obj = JSON.parseObject(Data.get("info").toString());
String workingCondition = Obj.get("workingCondition").toString();
//String PROVIDER = Obj.get("PROVIDER").toString();
Map<String, Object> States = cardStatusReplacementUtil.getStates(workingCondition);
statusCode = Integer.parseInt(States.get("statusCode").toString());
statusMessage = States.get("statusMessage").toString();
}
@@ -700,6 +806,16 @@ public class ApiUtil_NoStatic{
}else{
data.put("Message",Data.get("resultMsg"));
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("resultCode").toString();
if(code.equals("0")){
statusCode = 200;
statusMessage = "操作成功!";
}else{
statusMessage = JsonData.get("resultMsg").toString();
}
}
Outdata.put("Message",statusMessage);
@@ -1102,6 +1218,16 @@ public class ApiUtil_NoStatic{
Map<String, Object> IoTLink_Data = (Map<String, Object>) IoTLink_JsonData.get("result");
Outdata.put("Data",IoTLink_Data);
codd = "200";
}else if(IoTLink_cd_code.equals("ZCWL")){
Map<String, Object> IoTLink_JsonData = JSON.parseObject(data.get("Data").toString());
String code = IoTLink_JsonData.get("code").toString();
if(code.equals("0")){
Map<String, Object> IoTLink_Data = JSON.parseObject(IoTLink_JsonData.get("data").toString());
Outdata.put("Data",IoTLink_Data);
codd = "200";
}else{
data.put("Message",IoTLink_JsonData.get("msg"));
}
}
}catch (Exception e){
@@ -1160,6 +1286,22 @@ public class ApiUtil_NoStatic{
data.put("Message", data.get("message"));
//return Myerr(data.get("Data").toString());
}
}else if(cd_code.equals("ZCWL")){
try {
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
Outdata.put("Data",Data);
codd = "200";
}else{
data.put("Message",JsonData.get("msg"));
}
}catch (Exception e){
System.out.println(e);
data.put("Message", data.get("Data"));
//return Myerr(data.get("Data").toString());
}
}
@@ -1247,6 +1389,34 @@ public class ApiUtil_NoStatic{
} else {
statusMessage = Data.get("requestMsg").toString();
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("resultCode").toString();
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("description").toString());
if(Data.get("activate_date")!=null){
activateDate = Data.get("activate_date").toString();
//activateDate = activateDate.replace("T"," ");
activateDate = activateDate.split("T")[0];
statusCode = 200;
}
}else{
statusMessage = JsonData.get("msresultMsgg").toString();
}
}else if (cd_code.equals("XuYuWuLian")) {
//旭宇物联 解析
Map<String, Object> Data = JSON.parseObject(data.get("Data").toString());
statusCode = Integer.parseInt(Data.get("requestCode").toString());
if (statusCode == 0) {
statusCode = 200;
statusMessage = "操作成功!";
Map<String,Object> result = (Map<String,Object>)Data.get("info");
activateDate = result.get("activateDate")!=null ?result.get("activateDate").toString():null;
openDate = result.get("openDate")!=null ?result.get("openDate").toString():null;
} else {
statusMessage = Data.get("requestMsg").toString();
}
}
Outdata.put("Message", data.get("Message"));
@@ -1281,7 +1451,7 @@ public class ApiUtil_NoStatic{
//返回数据解析
String statusCode = "500";
String Q_cd_code = find_card_route_map.get("cd_code").toString();
if(Q_cd_code.equals("DianXin_CMP") || Q_cd_code.equals("DianXin_DCP") ){
if(Q_cd_code.equals("DianXin_CMP") || Q_cd_code.equals("DianXin_DCP") ||Q_cd_code.equals("YKWL")){
if(Q_cd_code.equals("DianXin_CMP")) {
map.put("bind_type", null);//解绑时 电信CMP 赋值为空
@@ -1320,6 +1490,16 @@ public class ApiUtil_NoStatic{
} else {
statusMessage = Data.get("msg").toString();
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
JSONObject responseJson = JSONObject.parseObject(JsonData.get("description").toString());
statusMessage = responseJson.get("msg").toString();
String code = JsonData.get("resultCode").toString();
//JsonData.get("msresultMsgg").toString();
if(code.equals("0")){
statusCode = "200";
}
}
} catch (Exception e) {
statusMessage = "内部接收消息,解析数据异常!";
@@ -1517,6 +1697,18 @@ public class ApiUtil_NoStatic{
statusMessage = Data_json.get("message").toString();
}
}
}else if(cd_code.equals("ZCWL")){
try {
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
if (JsonData.get("msg") != null) {
stopReason = JsonData.get("msg").toString();
}
statusCode = 200;
}catch (Exception e){
System.out.println(e);
data.put("Message", data.get("Data"));
//return Myerr(data.get("Data").toString());
}
}
} catch (Exception e) {
statusMessage = "内部接收消息,解析数据异常!";
@@ -1612,6 +1804,31 @@ public class ApiUtil_NoStatic{
statusMessage = Data_json.get("message").toString();
}
}
}else if(cd_code.equals("ZCWL")){
try {
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("code").toString();
if(code.equals("0")){
Map<String, Object> Data = JSON.parseObject(JsonData.get("data").toString());
if (Data.get("status") != null) {
status = Data.get("status").toString();
if(status.equals("1")){
Openstatus = "开机";
}else if(status.equals("0")){
Openstatus = "关机";
}else {
Openstatus = "未知";
}
}
statusCode = 200;
}else{
data.put("Message",JsonData.get("msg"));
}
}catch (Exception e){
System.out.println(e);
data.put("Message", data.get("Data"));
//return Myerr(data.get("Data").toString());
}
}
} catch (Exception e) {
statusMessage = "内部接收消息,解析数据异常!";
@@ -1949,6 +2166,16 @@ public class ApiUtil_NoStatic{
} else {
statusMessage = Data.get("message").toString();
}
}else if (cd_code.equals("YKWL")) {
//翼控物联 解析
Map<String, Object> JsonData = JSON.parseObject(data.get("Data").toString());
String code = JsonData.get("resultCode").toString();
if(code.equals("0")){
statusCode = 200;
statusMessage = "操作成功!";
}else{
statusMessage = JsonData.get("resultMsg").toString();
}
}
Outdata.put("Message",statusMessage);
+66 -59
View File
@@ -123,104 +123,111 @@
</div>
</el-card>
</el-col>
<el-col :xs="24" :sm="24" :md="12" :lg="8">
<el-col :xs="24" :sm="24" :md="12" :lg="9">
<el-card class="update-log">
<div slot="header" class="clearfix">
<span>更新日志</span>
</div>
<el-collapse accordion v-model="activeName">
<el-collapse-item title="v1.5.2 - 2023-02-14" name="9">
<ol>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 第三方接口 翼控</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag>第三方接口 中创</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag>第三方接口 旭宇</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.5.2 - 2023-02-14" name="8">
<ol>
<li>新增第三方接口 电信CMP5G</li>
<li>新增web端部署教程视频 <a href="https://www.bilibili.com/video/BV1J84y1p7uU/?spm_id_from=333.999.0.0" style="color: red"> 视频地址 </a></li>
<li>新增新增卡用量轮训实时调试视频<a href="https://www.bilibili.com/video/BV1ee4y1w7wF/?spm_id_from=333.999.0.0" style="color: red"> 视频地址 </a></li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag>第三方接口 电信CMP5G</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>web端部署教程视频 <a href="https://www.bilibili.com/video/BV1J84y1p7uU/?spm_id_from=333.999.0.0" style="color: red"> 视频地址 </a></li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>新增卡用量轮训实时调试视频<a href="https://www.bilibili.com/video/BV1ee4y1w7wF/?spm_id_from=333.999.0.0" style="color: red"> 视频地址 </a></li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.5.0 - 2023-02-02" name="7">
<ol>
<li>新增第三方接口 联通CMP</li>
<li>新增第三方接口 硕朗</li>
<li>新增第三方接口 移远</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>第三方接口 联通CMP</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>第三方接口 硕朗</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>第三方接口 移远</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.2.1 - 2023-01-12" name="6">
<ol>
<li>新增 对外接口模块 <a style="color: red" target="_blank" href="https://gitee.com/sdyunze/iotlink/tree/master/yunze-iotapi">yunze-iotapi</a> </li>
<li>新增 微信端部署教程</li>
<li>新增 电信DCP查询激活时间接口</li>
<li>优化 所属卡 已到沉默期 无激活时间 无发货日期SQL</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 对外接口模块 <a style="color: red" target="_blank" href="https://gitee.com/sdyunze/iotlink/tree/master/yunze-iotapi">yunze-iotapi</a> </li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 微信端部署教程</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>电信DCP查询激活时间接口</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 所属卡 已到沉默期 无激活时间 无发货日期SQL</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.1.2 - 2022-12-05" name="6">
<ol>
<li>新增 对外接口模块 <a style="color: red" target="_blank" href="https://gitee.com/sdyunze/iotlink/tree/master/yunze-iotapi">yunze-iotapi</a> </li>
<li>新增 API账号管理</li>
<li>优化 电信CMP在线信息返回解析</li>
<li>优化 电信CMP5G卡状态解析</li>
<li>优化 MQ初始化改为读取JSON文件初始化</li>
<li>优化 资费订购生效类型为周期延顺时获取资费开始时间bug</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 对外接口模块 <a style="color: red" target="_blank" href="https://gitee.com/sdyunze/iotlink/tree/master/yunze-iotapi">yunze-iotapi</a> </li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag>API账号管理</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 电信CMP在线信息返回解析</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 电信CMP5G卡状态解析</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> MQ初始化改为读取JSON文件初始化</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 资费订购生效类型为周期延顺时获取资费开始时间bug</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v1.0.0 - 2022-08-31" name="5">
<ol>
<li>新增 资费订单 退订且在此订购其他资费同时操作</li>
<li>新增 企业预存授信</li>
<li>新增 企业可续费可充值空套餐卡号</li>
<li>新增 续费需通过审核通过后方可到账</li>
<li>新增 上游资费信息同步</li>
<li>新增 轮询错误数据记录业务错误非业务错误通知指定自动化配置邮箱</li>
<li>新增 批量任务执行可查看执行状态数据提供导出和下载上传源文件</li>
<li>新增 微信端商品管理</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 资费订单 退订且在此订购其他资费同时操作</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 企业预存授信</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 企业可续费可充值空套餐卡号</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 续费需通过审核通过后方可到账</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 上游资费信息同步</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 轮询错误数据记录业务错误非业务错误通知指定自动化配置邮箱</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 批量任务执行可查看执行状态数据提供导出和下载上传源文件</li>
<li><el-tag ><i class="el-icon-plus"></i>新增</el-tag> 微信端商品管理</li>
<li>优化 卡详情界面UI</li>
<li>优化 智能诊断界面UI</li>
<li>优化 独立出定时任务执行程序避免因为定时任务占用主程序线程导致主程序卡顿</li>
<li>优化 通道平台资费客户资费卡总数统计</li>
<li>优化 新增 登录地址账号密码是否正常对接信息</li>
<li>优化 关闭用量详情单独菜单点击进入 仅允许输入卡号查询</li>
<li>优化 卡列表导出通道和运营信息写入</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 卡详情界面UI</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 智能诊断界面UI</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 独立出定时任务执行程序避免因为定时任务占用主程序线程导致主程序卡顿</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 通道平台资费客户资费卡总数统计</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 新增 登录地址账号密码是否正常对接信息</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 关闭用量详情单独菜单点击进入 仅允许输入卡号查询</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 卡列表导出通道和运营信息写入</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v0.8.0 - 2022-04-30" name="4">
<ol>
<li>新增 单卡增加是否轮询业务实现</li>
<li>新增 无需登录查询简要卡信息界面</li>
<li>新增 当网络类型为 'NB' 时查询上游接口是为当前账期内用量</li>
<li>新增 通道与资费组关联 选择单个资费组时加载出对接的通道 选择通道时同理</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 单卡增加是否轮询业务实现</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 无需登录查询简要卡信息界面</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 当网络类型为 'NB' 时查询上游接口是为当前账期内用量</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 通道与资费组关联 选择单个资费组时加载出对接的通道 选择通道时同理</li>
<li>优化 流量计算核心算法</li>
<li>优化 时间格式默认为 yyyy-MM-dd</li>
<li>优化 卡详情界面增加查看通道信息</li>
<li>优化 通道平台资费客户资费卡总数统计</li>
<li>优化 新增 登录地址账号密码是否正常对接信息</li>
<li>优化 关闭用量详情单独菜单点击进入 仅允许输入卡号查询</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 流量计算核心算法</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 时间格式默认为 yyyy-MM-dd</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 卡详情界面增加查看通道信息</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 通道平台资费客户资费卡总数统计</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 新增 登录地址账号密码是否正常对接信息</li>
<li><el-tag type="success"><i class="el-icon-s-promotion"></i>优化</el-tag> 关闭用量详情单独菜单点击进入 仅允许输入卡号查询</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v0.7.0 - 2022-03-31" name="3">
<ol>
<li>新增 智能诊断卡号匹对</li>
<li>新增 通道-轮询算法类型 高频轮询智能轮询</li>
<li>新增 批量取消实名 批量更新卡信息</li>
<li>新增 定时任务[未划分通道-邮件抄送通知]</li>
<li>新增 定时任务[未划分资费组-邮件抄送通知]</li>
<li>新增 定时任务[归属为总平台-有用量-邮件抄送通知]</li>
<li>新增 定时任务[清除大于X天用量记录(默认为开启状态清除100之前用量记录)]</li>
<li>优化 界面操作 高级查询默认隐藏</li>
<li>优化 登录界面样式</li>
<li>优化 执行日志导出csv文件转换换EXCLE</li>
<li>优化 轮询同步消费者轮询算法类型实现</li>
<li>整合 用户信息企业列表内部管理</li>
<li>开放 微信Web端用量查询 充值续费 商品购买</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 智能诊断卡号匹对</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 通道-轮询算法类型 高频轮询智能轮询</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 批量取消实名 批量更新卡信息</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 定时任务[未划分通道-邮件抄送通知]</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 定时任务[未划分资费组-邮件抄送通知]</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 定时任务[归属为总平台-有用量-邮件抄送通知]</li>
<li><el-tag><i class="el-icon-plus"></i>新增</el-tag> 定时任务[清除大于X天用量记录(默认为开启状态清除100之前用量记录)]</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 界面操作 高级查询默认隐藏</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 登录界面样式</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 执行日志导出csv文件转换换EXCLE</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag> 轮询同步消费者轮询算法类型实现</li>
<li><el-tag type="warning" ><i class="el-icon-info"></i>整合</el-tag> 用户信息企业列表内部管理</li>
<li><el-tag type="warning" ><i class="el-icon-info"></i>开放</el-tag> 微信Web端用量查询 充值续费 商品购买</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v0.6.0 - 2022-02-14" name="2">
<ol>
<li>新增首页看板看板选项点击快速跳转查询</li>
<li>新增首页数据生成任务</li>
<li>优化说明文档架构图</li>
<li><el-tag icon="el-icon-plus"><i class="el-icon-plus"></i>新增</el-tag>首页看板看板选项点击快速跳转查询</li>
<li><el-tag icon="el-icon-plus"><i class="el-icon-plus"></i>新增</el-tag>首页数据生成任务</li>
<li><el-tag type="success" ><i class="el-icon-s-promotion"></i>优化</el-tag>说明文档架构图</li>
</ol>
</el-collapse-item>
<el-collapse-item title="v0.5.0 - 2022-01-14" name="1">
@@ -255,7 +262,7 @@
data() {
return {
// 版本号
version: "1.5.2",
version: "1.8.0",
activeName:'8',
};
},