274 lines
7.6 KiB
C#
274 lines
7.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using Hncore.Infrastructure.Data;
|
|
using Hncore.Infrastructure.Extension;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Hncore.Infrastructure.WebApi
|
|
{
|
|
|
|
public class ApiResult
|
|
{
|
|
public ApiResult()
|
|
{
|
|
|
|
}
|
|
public ApiResult(object data):this(ResultCode.C_SUCCESS,"")
|
|
{
|
|
Data = data;
|
|
}
|
|
public ApiResult(ResultCode code = ResultCode.C_SUCCESS, string message = "")
|
|
{
|
|
Code = code;
|
|
Message = message;
|
|
}
|
|
[JsonProperty("Code")] public ResultCode Code { get; private set; }
|
|
|
|
[JsonProperty("Message")] public string Message { get; private set; } = "";
|
|
|
|
[JsonProperty("Data")] public virtual object Data { get; set; }
|
|
|
|
}
|
|
|
|
public class ApiResult<T>: ApiResult where T : class, new()
|
|
{
|
|
[JsonProperty("Data")] public new T Data { get; set; }
|
|
|
|
|
|
private static readonly Dictionary<Enum, string> Dic;
|
|
|
|
static ApiResult()
|
|
{
|
|
Dic = ObjectExtension.ToDescriptionDictionary<ResultCode>();
|
|
}
|
|
public ApiResult()
|
|
{
|
|
|
|
}
|
|
public ApiResult(T data) : this(ResultCode.C_SUCCESS, "")
|
|
{
|
|
Data = data;
|
|
}
|
|
|
|
public ApiResult(ResultCode code = ResultCode.C_SUCCESS, string message = "") : base(code, message)
|
|
{
|
|
}
|
|
|
|
//public ApiResult(ResultCode code = ResultCode.C_SUCCESS, string message = ""):base(code,message)
|
|
//{
|
|
// Code = code;
|
|
|
|
// if (string.IsNullOrEmpty(message) && Dic.ContainsKey(Code))
|
|
// {
|
|
// Message = Dic[Code];
|
|
// }
|
|
// else
|
|
// {
|
|
// Message = message;
|
|
// }
|
|
//}
|
|
}
|
|
|
|
//public class ApiResult : ApiResult<object>
|
|
//{
|
|
|
|
// public ApiResult(ResultCode code = ResultCode.C_SUCCESS, string message = "") : base(code, message)
|
|
// {
|
|
// }
|
|
//}
|
|
|
|
public class ApiResultPaged<T> : ApiResult<T> where T : class, new()
|
|
{
|
|
[JsonProperty("TotalCount")] public int TotalCount { get; set; }
|
|
|
|
public ApiResultPaged(ResultCode code = ResultCode.C_SUCCESS, string message = "") : base(code, message)
|
|
{
|
|
}
|
|
}
|
|
|
|
public static class PageDataExt
|
|
{
|
|
public static ApiResultPaged<List<T>> ToApiResult<T>(this PageData<T> pageData) where T : class, new()
|
|
{
|
|
return new ApiResultPaged<List<T>>()
|
|
{
|
|
TotalCount = pageData.RowCount,
|
|
Data = pageData.List
|
|
};
|
|
}
|
|
|
|
public static ApiResultPaged<List<T2>> ToApiResult<T1,T2>(this PageData<T1> pageData) where T2 : class, new()
|
|
{
|
|
return new ApiResultPaged<List<T2>>()
|
|
{
|
|
TotalCount = pageData.RowCount,
|
|
Data = pageData.List.MapsTo<T2>().ToList()
|
|
};
|
|
}
|
|
}
|
|
|
|
public enum ResultCode
|
|
{
|
|
/// <summary>
|
|
/// 未知错误
|
|
/// </summary>
|
|
[Description("服务正在更新中,请稍后再试")] C_UNKNOWN_ERROR = 0,
|
|
|
|
/// <summary>
|
|
/// 成功
|
|
/// </summary>
|
|
[Description("成功")] C_SUCCESS = 10000,
|
|
|
|
/// <summary>
|
|
/// 验证码
|
|
/// </summary>
|
|
[Description("验证码错误")] C_VERIFY_CODE_ERROR = 10001,
|
|
|
|
/// <summary>
|
|
/// 参数
|
|
/// </summary>
|
|
[Description("服务正在更新中,请稍后再试")] C_PARAM_ERROR = 10002,
|
|
|
|
/// <summary>
|
|
/// 登录名
|
|
/// </summary>
|
|
[Description("登录名错误")] C_LONGIN_NAME_ERROR = 10003,
|
|
|
|
/// <summary>
|
|
/// 密码
|
|
/// </summary>
|
|
[Description("密码错误")] C_PASSWORD_ERROR = 10004,
|
|
|
|
/// <summary>
|
|
/// 无效操作
|
|
/// </summary>
|
|
[Description("非法操作")] C_INVALID_ERROR = 10005,
|
|
|
|
/// <summary>
|
|
/// 文件
|
|
/// </summary>
|
|
[Description("文件错误")] C_FILE_ERROR = 10006,
|
|
|
|
/// <summary>
|
|
/// 已存在错误
|
|
/// </summary>
|
|
[Description("资源已存在错误")] C_ALREADY_EXISTS_ERROR = 10007,
|
|
|
|
/// <summary>
|
|
/// 资源无法访问:不是资源的拥有者
|
|
/// </summary>
|
|
[Description("不是资源的拥有者,资源无法访问")] C_OWNER_ERROR = 10008,
|
|
|
|
/// <summary>
|
|
/// 资源不存在
|
|
/// </summary>
|
|
[Description("资源不存在")] C_NOT_EXISTS_ERROR = 10009,
|
|
|
|
/// <summary>
|
|
/// 新建角色出错
|
|
/// </summary>
|
|
[Description("创建角色出错")] C_ROLE_CREATE_ERROR = 10010,
|
|
|
|
/// <summary>
|
|
/// 新建权限出错
|
|
/// </summary>
|
|
[Description("新建权限错误")] C_PERMISSION_CREATE_ERROR = 10011,
|
|
|
|
/// <summary>
|
|
/// 绑定角色和权限出错
|
|
/// </summary>
|
|
[Description("绑定角色和权限出错")] C_ROLE_PERMISSION_CREATE_ERROR = 10012,
|
|
|
|
/// <summary>
|
|
/// 服务器繁忙,请稍后再试!
|
|
/// </summary>
|
|
[Description("服务器繁忙")] C_Server_Is_Busy = 10013,
|
|
|
|
/// <summary>
|
|
/// 访问被禁止
|
|
/// </summary>
|
|
[Description("禁止访问")] C_Access_Forbidden = 10014,
|
|
|
|
/// <summary>
|
|
/// 非法操作
|
|
/// </summary>
|
|
[Description("非法操作")] C_Illegal_Operation = 10015,
|
|
|
|
/// <summary>
|
|
/// 无效的openID
|
|
/// </summary>
|
|
[Description("OpenID无效")] C_OPENID_ERROR = 10016,
|
|
|
|
/// <summary>
|
|
/// 返回错误,但无需理会
|
|
/// </summary>
|
|
[Description("可忽略的错误")] C_IGNORE_ERROR = 10017,
|
|
|
|
/// <summary>
|
|
/// 用户信息错误
|
|
/// </summary>
|
|
[Description("用户信息错误")] C_USERINFO_ERROR = 10018,
|
|
|
|
/// <summary>
|
|
/// 用户需要认证
|
|
/// </summary>
|
|
[Description("用户需要认证")] C_USER_SELECT_ERROR = 10019,
|
|
|
|
/// <summary>
|
|
/// 过期
|
|
/// </summary>
|
|
[Description("超时错误")] C_TIMEOUT_ERROR = 10020,
|
|
|
|
/// <summary>
|
|
/// 手机和验证码不匹配
|
|
/// </summary>
|
|
[Description("手机和验证码不匹配")] C_PHONE_CODE_ERROR = 10021,
|
|
|
|
/// <summary>
|
|
/// 微信没有选择楼
|
|
/// </summary>
|
|
[Description("微信没有选择楼")] C_WX_UNIT_UNSELECT_ERROR = 10022,
|
|
|
|
/// <summary>
|
|
/// 黑名单错误
|
|
/// </summary>
|
|
[Description("黑名单错误")] C_BLACKLIST_ERROR = 10023,
|
|
|
|
/// <summary>
|
|
/// 支付失败
|
|
/// </summary>
|
|
[Description("支付失败")] C_PAY_FAIL = 10024,
|
|
|
|
/// <summary>
|
|
/// 重复支付
|
|
/// </summary>
|
|
[Description("重复支付")] RepeatPay= 10025,
|
|
|
|
/// <summary>
|
|
/// 重定向
|
|
/// </summary>
|
|
[Description("重定向")] C_REDIRECT_URL = 100302,
|
|
|
|
[Description("用户重定向")] C_USER_REDIRECT_URL = 900302,
|
|
|
|
|
|
[Description("人脸已经存在")] C_FACEKEY_EXIST_ERROR = 900303,
|
|
|
|
[Description("人脸角度不正确")] C_FACE_ANGLE_ERROR = 900304,
|
|
|
|
[Description("退款失败")] C_PAY_Refund = 900305,
|
|
|
|
/// <summary>
|
|
/// 用户支付中
|
|
/// </summary>
|
|
[Description("用户支付中")] C_USERPAYING = 900306,
|
|
|
|
|
|
[Description("审核中")] C_VISITOR_CHECKING = 11001,
|
|
[Description("已过期")] C_VISITOR_OUTTIME = 11002,
|
|
[Description("未到期")] C_VISITOR_NOTYETDUE = 11003,
|
|
|
|
}
|
|
} |