
cn.basics.util.ReturnUtil Maven / Gradle / Ivy
package cn.basics.util;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
/**
* @ClassName: ReturnUtil
* @Description: TODO(返回消息工具)
* @author [email protected]
* @date 2016-6-17 上午11:53:17
* 2017年8月22日 修改
*/
public class ReturnUtil {
//-------------------------------常量-------------------------------
/**请求成功状态码*/
public static final Integer SUCCESS_CODE = 200;
/**参数丢失状态码*/
public static final Integer PARAMETER_LOSE_CODE = -100;
/**未登录状态码*/
public static final Integer NOT_LOGIN_CODE = -194;
/**权限不足状态码*/
public static final Integer NOT_AUTHORITY_CODE = -195;
/**请求失败状态码*/
public static final Integer ERROR_CODE = -200;
/**账号或密码错误状态码*/
public static final Integer ACCOUNT_PASSWORD_ERROR_CODE = -300;
/**请求严重错误状态码*/
public static final Integer SERIOUS_ERROR_CODE = -1994;
//-------------------------------变量-------------------------------
/**返回结果*/
private Object result_data;
/**返回结果字段信息*/
private List result_data_column_comment;
/**扩展信息*/
private Object extend_info;
/**返回码*/
private Integer code = SUCCESS_CODE;
/**返回码描述*/
private String code_msg;
/**错误描述*/
private String error_msg;
/**严重错误描述 <.若存在严重错误会自动跳转至错误页面并提示错误信息>*/
private String serious_error_msg;
/**操作日志,利用反射获取与赋值*/
@SuppressWarnings("unused")
private Object operation_logs;
//-------------------------------构造-------------------------------
/**禁止实例化*/
private ReturnUtil(){}
/**初始化ReturnUtil方法 */
public static ReturnUtil init(){
return new ReturnUtil();
}
//-------------------------------常用-------------------------------
/**
* @Description 检查参数<.自动处理返回码>
* @author [email protected] (苟志强)
* @param obj 请求参数(完整)
* @param objs 验证参数值
*/
public ReturnUtil checkParameter(Object obj,Object... objs){
result_data = obj;
for (int i = 0,length = objs.length; i < length; i++) {
if(DataUtil.isNull(objs[i])){
sparameterLose();
return this;
}
}
return this;
}
/**
* @Description 检查参数<.自动处理返回码>
* @author [email protected] (苟志强)
* @param obj 请求参数(完整)
*/
public ReturnUtil checkParameter(Object obj){
result_data = obj;
JSONObject json = JSONObject.parseObject(JSONObject.toJSONString(obj));
for (String key : json.keySet()) {
if(DataUtil.isNull(json.get(key))){
sparameterLose();
return this;
}
}
return this;
}
/**
* @Description 根据Key检查参数<.自动处理返回码>
* @author [email protected] (苟志强)
* @param json 请求参数(完整)
* @param keys 非空的key
*/
public ReturnUtil checkParameterByKey(JSONObject json,String... keys){
result_data = json;
for (int i = 0,length = keys.length; i < length; i++) {
if(DataUtil.isNull(json.get(keys[i]))){
sparameterLose();
return this;
}
}
return this;
}
//-------------------------------日常-------------------------------
/**添加返回数据<.不做返回码判断>*/
public ReturnUtil addDataNotCode(Object obj) {
result_data = obj;
return this;
}
/**添加返回数据<.实现基础返回码判断>*/
public ReturnUtil addData(Object obj) {
result_data = obj;
if((result_data instanceof Boolean && result_data.equals(true)) || (result_data instanceof Object && !DataUtil.isNull(obj))){
setCode(SUCCESS_CODE);
}else{
setCode(ERROR_CODE);
}
return this;
}
/**添加错误描述<.自动处理返回码>*/
public ReturnUtil addError(String msg) {
error_msg = msg;
setCode(ERROR_CODE);
return this;
}
/**添加扩展信息<.不影响返回码>*/
public ReturnUtil addExtendInfo(Object extend) {
extend_info = extend;
return this;
}
/**添加严重错误描述<.自动处理返回码>*/
public ReturnUtil addSeriousErrorMsg(String msg) {
serious_error_msg = msg;
error_msg = msg;
setCode(SERIOUS_ERROR_CODE);
return this;
}
/**添加返回码<.不建议手动调用>*/
public ReturnUtil addCode(Integer code) {
setCode(code);
return this;
}
/**添加列说明<.仅在getListAndColumnComment时调用>*/
public ReturnUtil setResult_data_column_comment(List result_data_column_comment) {
this.result_data_column_comment = result_data_column_comment;
return this;
}
/**添加列说明<.仅在getListAndColumnComment时调用>
* @return */
public ReturnUtil addResult_data_column_comment(String column_name,String column_comment) {
JSONObject cc = new JSONObject();
cc.put("column_name", column_name);
cc.put("column_comment", column_comment);
result_data_column_comment.add(cc);
return this;
}
//-------------------------------常见错误-------------------------------
/**参数丢失<.自动处理返回码与错误提示>*/
public ReturnUtil sparameterLose() {
setCode(PARAMETER_LOSE_CODE);
return this;
}
/**未登录<.自动处理返回码与错误提示>*/
public ReturnUtil snotLogin() {
setCode(NOT_LOGIN_CODE);
return this;
}
/**权限不足<.自动处理返回码与错误提示>*/
public ReturnUtil snotAuthority() {
setCode(NOT_AUTHORITY_CODE);
return this;
}
/**账号或密码错误<.自动处理返回码与错误提示>*/
public ReturnUtil saccountOrPasswordError() {
setCode(ACCOUNT_PASSWORD_ERROR_CODE);
return this;
}
/**私有化返回码set方法<.这里可以添加根据返回码设置返回描述>*/
private void setCode(Integer code) {
this.code = code;
if(code==NOT_LOGIN_CODE){
error_msg = "您还未登录,请登录后重试!";
}else if(code==NOT_AUTHORITY_CODE){
error_msg = "您的权限不足,服务器拒绝访问(拒绝请求)。";
}else if(code==PARAMETER_LOSE_CODE){
error_msg = "缺少参数,服务器拒绝访问(拒绝请求),请将“result_data”发送给管理员进行咨询或处理,或者点击反馈异常按钮,我们将第一时间对异常进行修复。";
}else if(code==ACCOUNT_PASSWORD_ERROR_CODE){
error_msg = "账号或密码错误,请输入正确的账号或密码。";
}
}
//-------------------------------获参-------------------------------
/**获取请求结果<.Map类型>*/
@SuppressWarnings("unchecked")
public Map gDataMap(){
if(code == SUCCESS_CODE && (result_data instanceof Map || result_data instanceof HashMap))
return (Map)result_data;
return null;
}
/**获取请求结果<.ListMap类型类型>*/
@SuppressWarnings("unchecked")
public List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy