优化结果类型,添加系统维度

This commit is contained in:
LongX
2019-04-23 20:31:44 +08:00
parent d0726d1d23
commit f8ec7f2d08
2 changed files with 245 additions and 89 deletions
+72 -7
View File
@@ -15,7 +15,38 @@ using OSS.Common.Extention;
namespace OSS.Common.ComModels.Enums
{
/// <summary>
/// 结果类型
/// 系统结果类型
/// </summary>
public enum SysResultTypes
{
/// <summary>
/// 成功
/// </summary>
[OSDescript("正常")] None = 0,
/// <summary>
/// 无法连接
/// </summary>
[OSDescript("无法连接")] ConnectError = 100,
/// <summary>
/// 超时
/// </summary>
[OSDescript("超时")] TimeOut = 200,
/// <summary>
/// 任务失败
/// </summary>
[OSDescript("任务失败")] TaskFailed = 300,
/// <summary>
/// 内部错误(服务器错误)
/// </summary>
[OSDescript("内部错误")] InnerError = 500,
}
/// <summary>
/// 业务结果类型
/// </summary>
public enum ResultTypes
{
@@ -77,18 +108,52 @@ namespace OSS.Common.ComModels.Enums
/// <summary>
/// 权限不足
/// </summary>
[OSDescript("权限不足")] NoRight = 1430,
[OSDescript("权限不足")] NoPermission = 1430,
/// <summary>
/// 账号/权限冻结
/// </summary>
[OSDescript("账号/权限冻结")]
AuthFreezed = 1440,
/// <summary>
/// 内部错误(服务器错误)
/// </summary>
[OSDescript("内部错误")] InnerError = 1500,
/// <summary>
/// 系统错误
/// </summary>
[OSDescript("系统错误")] InnerError = 1500
}
/// <summary>
/// ResultMo 扩展
/// </summary>
public static class ResultExtention
{
/// <summary>
/// 【业务结果】是否是Success
/// </summary>
/// <param name="res"></param>
/// <returns></returns>
public static bool IsSuccess(this ResultMo res) =>
res.ret == 0;
/// <summary>
/// 【业务结果】是否是对应的类型
/// </summary>
/// <param name="res"></param>
/// <param name="type"></param>
/// <returns></returns>
public static bool IsResultType(this ResultMo res, ResultTypes type) =>
res.ret == (int)type;
/// <summary>
/// 【系统结果】是否是对应的类型
/// </summary>
/// <param name="res"></param>
/// <param name="type"></param>
/// <returns></returns>
public static bool IsSysResultType(this ResultMo res, SysResultTypes type) =>
res.sys_ret == (int)type;
}
}
+173 -82
View File
@@ -32,9 +32,9 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
public ResultMo(int ret, string message = "")
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(int ret, string message)
{
this.ret = ret;
this.msg = message;
@@ -44,16 +44,41 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
public ResultMo(ResultTypes ret, string message = "")
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(ResultTypes ret, string message)
: this((int) ret, message)
{
this.ret = (int) ret;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(int sysRet, int ret = 0, string message = null)
{
this.sys_ret = sysRet;
this.ret = ret;
this.msg = message;
}
/// <summary>
/// 返回结果
/// 构造函数
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(SysResultTypes sysRet, ResultTypes ret = 0, string message = null)
: this((int) sysRet, (int) ret, message)
{
}
private int _ret;
/// <summary>
/// 业务结果
/// 一般情况下:
/// 0 成功
/// 13xx 参数相关错误
@@ -62,7 +87,21 @@ namespace OSS.Common.ComModels
/// 16xx 系统级定制错误信息,如升级维护等
/// 也可依据第三方自行定义数值
/// </summary>
public int ret { get; set; }
public int ret {
get
{
if (sys_ret != 0 && _ret == 0)
_ret=(int) ResultTypes.InnerError;
return _ret;
}
set => _ret = value;
}
/// <summary>
/// 系统结果
/// </summary>
public int sys_ret { get; set; }
/// <summary>
/// 状态信息(错误描述等)
@@ -70,28 +109,6 @@ namespace OSS.Common.ComModels
public string msg { get; set; }
}
/// <summary>
/// ResultMo 扩展
/// </summary>
public static class ResultExtention
{
/// <summary>
/// 是否是Success
/// </summary>
/// <param name="res"></param>
/// <returns></returns>
public static bool IsSuccess(this ResultMo res)=>
res.ret == 0;
/// <summary>
/// 是否是对应的结果类型
/// </summary>
/// <param name="res"></param>
/// <param name="type"></param>
/// <returns></returns>
public static bool IsResultType(this ResultMo res, ResultTypes type) =>
res.ret == (int) type;
}
/// <summary>
@@ -99,45 +116,61 @@ namespace OSS.Common.ComModels
/// </summary>
public class ResultIdMo : ResultMo
{
/// <summary>
///
/// </summary>
public ResultIdMo()
{
}
/// <summary>
/// 构造函数
///
/// </summary>
/// <param name="id"></param>
/// <param name="id">Id</param>
public ResultIdMo(string id)
{
this.id = id;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
public ResultIdMo(int ret, string message):base(ret,message)
/// 结果实体
/// </summary>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultIdMo(int ret, string message) : base(ret, message)
{
}
/// <summary>
/// 构造函数
/// 结果实体
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultIdMo(ResultTypes ret, string message)
: base(ret, message)
{
}
/// <summary>
/// 返回的关键值,如返回添加是否成功并返回id
/// 结果实体
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultIdMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
{
}
/// <summary>
/// 结果实体
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultIdMo(SysResultTypes sysRet, ResultTypes ret, string message)
: base(sysRet, ret, message)
{
}
/// <summary>
/// Id
/// </summary>
public string id { get; set; }
}
@@ -154,13 +187,13 @@ namespace OSS.Common.ComModels
/// </summary>
public ResultMo()
{
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="data"></param>
/// <param name="data">数据信息</param>
public ResultMo(TType data)
{
this.data = data;
@@ -169,8 +202,8 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(int ret, string message = "")
: base(ret, message)
{
@@ -179,13 +212,34 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(ResultTypes ret, string message = "")
: base(ret, message)
{
}
/// <summary>
///
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
{
}
/// <summary>
///
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultMo(SysResultTypes sysRet, ResultTypes ret, string message)
: base(sysRet, ret, message)
{
}
/// <summary>
/// 结果类型数据
/// </summary>
@@ -197,7 +251,7 @@ namespace OSS.Common.ComModels
/// 自定义泛型的结果实体
/// </summary>
/// <typeparam name="TType"></typeparam>
public class ResultListMo<TType> : ResultMo
public class ResultListMo<TType> : ResultMo<IList<TType>>
{
/// <summary>
/// 构造函数
@@ -219,8 +273,8 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultListMo(int ret, string message = "")
: base(ret, message)
{
@@ -229,17 +283,34 @@ namespace OSS.Common.ComModels
/// <summary>
/// 构造函数
/// </summary>
/// <param name="ret"></param>
/// <param name="message"></param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultListMo(ResultTypes ret, string message = "")
: base(ret, message)
{
}
/// <summary>
/// 结果类型数据
///
/// </summary>
public IList<TType> data { get; set; }
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultListMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
{
}
/// <summary>
///
/// </summary>
/// <param name="sysRet">系统错误编码</param>
/// <param name="ret">业务错误编码</param>
/// <param name="message">错误信息</param>
public ResultListMo(SysResultTypes sysRet, ResultTypes ret, string message)
: base(sysRet, ret, message)
{
}
}
@@ -261,12 +332,13 @@ namespace OSS.Common.ComModels
var ot = new ResultMo<TResult>
{
ret = res.ret,
msg = res.msg
msg = res.msg,
sys_ret = res.sys_ret
};
if (func != null && res.IsSuccess())
ot.data = func(res);
return ot;
}
@@ -286,7 +358,8 @@ namespace OSS.Common.ComModels
var ot = new ResultMo<TResult>
{
ret = res.ret,
msg = res.msg
msg = res.msg,
sys_ret = res.sys_ret
};
if (func != null && res.IsSuccess())
@@ -294,6 +367,7 @@ namespace OSS.Common.ComModels
return ot;
}
/// <summary>
/// 转化到结果实体
/// </summary>
@@ -302,7 +376,7 @@ namespace OSS.Common.ComModels
/// <returns></returns>
public static ResultMo<TResult> ConvertToResult<TResult>(this ResultMo res)
{
return ConvertToResult<ResultMo, TResult>(res,null);
return ConvertToResult<ResultMo, TResult>(res, null);
}
@@ -317,15 +391,23 @@ namespace OSS.Common.ComModels
public static TResult ConvertToResultInherit<TPara, TResult>(this TPara res,
Func<TPara, TResult> func)
where TPara : ResultMo
where TResult : ResultMo,new()
where TResult : ResultMo, new()
{
var oRes = default(TResult);
if (func != null)
return func(res);
oRes = func(res);
return new TResult(){
ret = res.ret,
msg = res.msg
};
if (oRes == null)
oRes = new TResult();
if (oRes.ret > 0)
return oRes;
oRes.ret = res.ret;
oRes.msg = res.msg;
oRes.sys_ret = res.sys_ret;
return oRes;
}
/// <summary>
@@ -338,16 +420,23 @@ namespace OSS.Common.ComModels
/// <returns></returns>
public static TResult ConvertToResultInherit<TPara, TResult>(this ResultMo<TPara> res,
Func<TPara, TResult> func)
where TResult : ResultMo,new()
where TResult : ResultMo, new()
{
var oRes = default(TResult);
if (func != null)
return func(res.data);
oRes = func(res.data);
return new TResult()
{
ret = res.ret,
msg = res.msg
};
if (oRes == null)
oRes = new TResult();
if (oRes.ret > 0)
return oRes;
oRes.ret = res.ret;
oRes.msg = res.msg;
oRes.sys_ret = res.sys_ret;
return oRes;
}
/// <summary>
@@ -359,7 +448,7 @@ namespace OSS.Common.ComModels
public static TResult ConvertToResultInherit<TResult>(this ResultMo res)
where TResult : ResultMo, new()
{
return ConvertToResultInherit<ResultMo, TResult>(res,null);
return ConvertToResultInherit<ResultMo, TResult>(res, null);
}
@@ -374,12 +463,14 @@ namespace OSS.Common.ComModels
public static ResultListMo<TResult> ConvertToResultList<TPara, TResult>(this ResultListMo<TPara> res,
Func<TPara, TResult> func)
{
var listRes= new ResultListMo<TResult>()
var listRes = new ResultListMo<TResult>()
{
ret = res.ret,
msg = res.msg
msg = res.msg,
sys_ret = res.sys_ret
};
if (func != null&& res.data!=null)
if (func != null && res.data != null)
listRes.data = res.data.Select(func).ToList();
return listRes;
@@ -394,7 +485,7 @@ namespace OSS.Common.ComModels
/// <returns></returns>
public static ResultListMo<TResult> ConvertToResultList<TPara, TResult>(this ResultListMo<TPara> res)
{
return new ResultListMo<TResult>(res.ret, res.msg);
return new ResultListMo<TResult>(res.sys_ret, res.ret, res.msg);
}
}