98 lines
3.1 KiB
Markdown
98 lines
3.1 KiB
Markdown
|
|
- #### 问专家-获取指定用户在一个时间范围内的所有提交问题的次数与办结率
|
|||
|
|
|
|||
|
|
- ###### 请求地址:https://api.12316cq.com/api/askExpert/getTotalAsCompletionRate POST
|
|||
|
|
|
|||
|
|
- ###### 请求格式:为了便于兼容原系统接口的加密规则,所有接口均使用POST请求,请求头为:application/x-www-form-urlencoded(推荐) 或 content-type=multipart/form-data
|
|||
|
|
|
|||
|
|
- ###### 接口参数:
|
|||
|
|
|
|||
|
|
- ```
|
|||
|
|
请求参数:
|
|||
|
|
phones:用户手机号(多个以逗号隔开)
|
|||
|
|
startTime:开始时间
|
|||
|
|
endTime:结束时间
|
|||
|
|
注意:以下参数参照以前的加密逻辑
|
|||
|
|
appcode:h5
|
|||
|
|
ts:
|
|||
|
|
rnd:
|
|||
|
|
sig:
|
|||
|
|
|
|||
|
|
返回参数:
|
|||
|
|
{
|
|||
|
|
"code": "0",
|
|||
|
|
"message": "成功",
|
|||
|
|
"data": {
|
|||
|
|
“sumSubmitCount”:"60",// 用户累计提交问题次数
|
|||
|
|
"completionRate": "50" // 办结率
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- ###### 需要对手机号进行加密处理,下面是加密工具类
|
|||
|
|
|
|||
|
|
- ###### 加密工具类:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
public class AESUtil {
|
|||
|
|
private static byte[] encrypt(byte[] text, byte[] key) throws Exception {
|
|||
|
|
SecretKeySpec aesKey = new SecretKeySpec(key, "AES");
|
|||
|
|
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
|||
|
|
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
|
|||
|
|
return cipher.doFinal(text);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @desc 加密
|
|||
|
|
* @param text 明文
|
|||
|
|
* @param key 密钥
|
|||
|
|
*/
|
|||
|
|
public static String encodeAES(String text, String key) throws Exception {
|
|||
|
|
byte[] keybBytes = DigestUtils.md5(key);
|
|||
|
|
byte[] passwdBytes = text.getBytes();
|
|||
|
|
byte[] aesBytyes = encrypt(passwdBytes, keybBytes);
|
|||
|
|
return new String(Base64.encodeBase64(aesBytyes));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* @desc 解密
|
|||
|
|
* @param password 密文
|
|||
|
|
* @param key 密钥
|
|||
|
|
*/
|
|||
|
|
public static String deCodeAES(String password, String key) throws Exception {
|
|||
|
|
byte[] keybBytes = DigestUtils.md5(key);
|
|||
|
|
byte[] debase64Bytes = Base64.decodeBase64(password.getBytes());
|
|||
|
|
return new String(decrypt(debase64Bytes, keybBytes));
|
|||
|
|
}
|
|||
|
|
private static byte[] decrypt(byte[] text, byte[] key) throws Exception {
|
|||
|
|
SecretKeySpec aesKey = new SecretKeySpec(key, "AES");
|
|||
|
|
|
|||
|
|
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
|
|||
|
|
cipher.init(Cipher.DECRYPT_MODE, aesKey);
|
|||
|
|
return cipher.doFinal(text);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static void main(String[] args) throws Exception {
|
|||
|
|
String text = "15320345049";
|
|||
|
|
String code = AESUtil.encodeAES(text, "密钥");
|
|||
|
|
|
|||
|
|
String t = AESUtil.deCodeAES(code, "密钥");
|
|||
|
|
System.out.println("加密后 = " + text);
|
|||
|
|
System.out.println("解密后 = " + t);
|
|||
|
|
|
|||
|
|
String tm = DesensitizationUtils.custNoDesensitization(phone);
|
|||
|
|
System.out.println("tm = " + tm);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|