|
|
@ -201,4 +201,89 @@ public class AjaxResult extends HashMap<String, Object> {
|
|
|
|
super.put(key, value);
|
|
|
|
super.put(key, value);
|
|
|
|
return this;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* PDA端数据安全处理:清理和转义特殊字符,确保JSON解析兼容性
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param input 输入字符串
|
|
|
|
|
|
|
|
* @return 处理后的安全字符串
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static String sanitizeForPda(String input) {
|
|
|
|
|
|
|
|
if (input == null) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 【PDA兼容性处理】移除或替换可能导致JSON解析问题的特殊字符
|
|
|
|
|
|
|
|
return input
|
|
|
|
|
|
|
|
// 移除控制字符和不可见字符
|
|
|
|
|
|
|
|
.replaceAll("[\\p{Cntrl}&&[^\r\n\t]]", "")
|
|
|
|
|
|
|
|
// 替换可能导致JSON解析问题的特殊字符
|
|
|
|
|
|
|
|
.replace("\"", "'") // 双引号替换为单引号
|
|
|
|
|
|
|
|
.replace("\\", "/") // 反斜杠替换为正斜杠
|
|
|
|
|
|
|
|
// 保留中文字符和常用特殊字符,但确保格式安全
|
|
|
|
|
|
|
|
.trim();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 为PDA端提供增强的成功响应,确保数据安全和JSON编码正确
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param data 响应数据
|
|
|
|
|
|
|
|
* @return AjaxResult
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static AjaxResult successForPda(Object data) {
|
|
|
|
|
|
|
|
return successForPda("操作成功", data);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 为PDA端提供增强的成功响应,确保数据安全和JSON编码正确
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param msg 返回消息
|
|
|
|
|
|
|
|
* @param data 响应数据
|
|
|
|
|
|
|
|
* @return AjaxResult
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static AjaxResult successForPda(String msg, Object data) {
|
|
|
|
|
|
|
|
// 对消息进行安全处理
|
|
|
|
|
|
|
|
String safeMsg = sanitizeForPda(msg);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果数据是字符串,也进行安全处理
|
|
|
|
|
|
|
|
Object safeData = data;
|
|
|
|
|
|
|
|
if (data instanceof String) {
|
|
|
|
|
|
|
|
safeData = sanitizeForPda((String) data);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AjaxResult result = new AjaxResult(HttpStatus.SUCCESS, safeMsg, safeData);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 【PDA兼容性】设置响应头确保正确的字符编码
|
|
|
|
|
|
|
|
// 注意:这里不直接操作HttpServletResponse,而是依赖Spring Boot的默认配置
|
|
|
|
|
|
|
|
// Spring Boot 默认已经设置了 UTF-8 编码,无需手动干预
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 为PDA端提供增强的错误响应,确保数据安全
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param msg 错误消息
|
|
|
|
|
|
|
|
* @return AjaxResult
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static AjaxResult errorForPda(String msg) {
|
|
|
|
|
|
|
|
return errorForPda(msg, null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 为PDA端提供增强的错误响应,确保数据安全
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param msg 错误消息
|
|
|
|
|
|
|
|
* @param data 错误数据
|
|
|
|
|
|
|
|
* @return AjaxResult
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static AjaxResult errorForPda(String msg, Object data) {
|
|
|
|
|
|
|
|
String safeMsg = sanitizeForPda(msg);
|
|
|
|
|
|
|
|
Object safeData = data;
|
|
|
|
|
|
|
|
if (data instanceof String) {
|
|
|
|
|
|
|
|
safeData = sanitizeForPda((String) data);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return new AjaxResult(HttpStatus.ERROR, safeMsg, safeData);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|