diff --git a/OSS.Common/ComModels/Enums/ResultTypes.cs b/OSS.Common/ComModels/Enums/ResultTypes.cs
index 028de63..98a8099 100644
--- a/OSS.Common/ComModels/Enums/ResultTypes.cs
+++ b/OSS.Common/ComModels/Enums/ResultTypes.cs
@@ -15,7 +15,38 @@ using OSS.Common.Extention;
namespace OSS.Common.ComModels.Enums
{
///
- /// 结果类型
+ /// 系统结果类型
+ ///
+ public enum SysResultTypes
+ {
+ ///
+ /// 成功
+ ///
+ [OSDescript("正常")] None = 0,
+
+ ///
+ /// 无法连接
+ ///
+ [OSDescript("无法连接")] ConnectError = 100,
+
+ ///
+ /// 超时
+ ///
+ [OSDescript("超时")] TimeOut = 200,
+
+ ///
+ /// 任务失败
+ ///
+ [OSDescript("任务失败")] TaskFailed = 300,
+
+ ///
+ /// 内部错误(服务器错误)
+ ///
+ [OSDescript("内部错误")] InnerError = 500,
+ }
+
+ ///
+ /// 业务结果类型
///
public enum ResultTypes
{
@@ -77,18 +108,52 @@ namespace OSS.Common.ComModels.Enums
///
/// 权限不足
///
- [OSDescript("权限不足")] NoRight = 1430,
+ [OSDescript("权限不足")] NoPermission = 1430,
///
/// 账号/权限冻结
///
[OSDescript("账号/权限冻结")]
AuthFreezed = 1440,
-
- ///
- /// 内部错误(服务器错误)
- ///
- [OSDescript("内部错误")] InnerError = 1500,
+ ///
+ /// 系统错误
+ ///
+ [OSDescript("系统错误")] InnerError = 1500
}
+
+
+
+ ///
+ /// ResultMo 扩展
+ ///
+ public static class ResultExtention
+ {
+ ///
+ /// 【业务结果】是否是Success
+ ///
+ ///
+ ///
+ public static bool IsSuccess(this ResultMo res) =>
+ res.ret == 0;
+
+ ///
+ /// 【业务结果】是否是对应的类型
+ ///
+ ///
+ ///
+ ///
+ public static bool IsResultType(this ResultMo res, ResultTypes type) =>
+ res.ret == (int)type;
+
+ ///
+ /// 【系统结果】是否是对应的类型
+ ///
+ ///
+ ///
+ ///
+ public static bool IsSysResultType(this ResultMo res, SysResultTypes type) =>
+ res.sys_ret == (int)type;
+ }
+
}
diff --git a/OSS.Common/ComModels/ResultMo.cs b/OSS.Common/ComModels/ResultMo.cs
index f22c7d8..127d61b 100644
--- a/OSS.Common/ComModels/ResultMo.cs
+++ b/OSS.Common/ComModels/ResultMo.cs
@@ -32,9 +32,9 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
- public ResultMo(int ret, string message = "")
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(int ret, string message)
{
this.ret = ret;
this.msg = message;
@@ -44,16 +44,41 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
- public ResultMo(ResultTypes ret, string message = "")
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(ResultTypes ret, string message)
+ : this((int) ret, message)
{
- this.ret = (int) ret;
+ }
+
+
+ ///
+ /// 构造函数
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(int sysRet, int ret = 0, string message = null)
+ {
+ this.sys_ret = sysRet;
+ this.ret = ret;
this.msg = message;
}
///
- /// 返回结果
+ /// 构造函数
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(SysResultTypes sysRet, ResultTypes ret = 0, string message = null)
+ : this((int) sysRet, (int) ret, message)
+ {
+ }
+
+ private int _ret;
+ ///
+ /// 业务结果
/// 一般情况下:
/// 0 成功
/// 13xx 参数相关错误
@@ -62,7 +87,21 @@ namespace OSS.Common.ComModels
/// 16xx 系统级定制错误信息,如升级维护等
/// 也可依据第三方自行定义数值
///
- public int ret { get; set; }
+ public int ret {
+ get
+ {
+ if (sys_ret != 0 && _ret == 0)
+ _ret=(int) ResultTypes.InnerError;
+
+ return _ret;
+ }
+ set => _ret = value;
+ }
+
+ ///
+ /// 系统结果
+ ///
+ public int sys_ret { get; set; }
///
/// 状态信息(错误描述等)
@@ -70,28 +109,6 @@ namespace OSS.Common.ComModels
public string msg { get; set; }
}
- ///
- /// ResultMo 扩展
- ///
- public static class ResultExtention
- {
- ///
- /// 是否是Success
- ///
- ///
- ///
- public static bool IsSuccess(this ResultMo res)=>
- res.ret == 0;
-
- ///
- /// 是否是对应的结果类型
- ///
- ///
- ///
- ///
- public static bool IsResultType(this ResultMo res, ResultTypes type) =>
- res.ret == (int) type;
- }
///
@@ -99,45 +116,61 @@ namespace OSS.Common.ComModels
///
public class ResultIdMo : ResultMo
{
- ///
- ///
- ///
public ResultIdMo()
{
}
///
- /// 构造函数
+ ///
///
- ///
+ /// Id
public ResultIdMo(string id)
{
this.id = id;
}
-
///
- /// 构造函数
- ///
- ///
- ///
- public ResultIdMo(int ret, string message):base(ret,message)
+ /// 结果实体
+ ///
+ /// 业务错误编码
+ /// 错误信息
+ public ResultIdMo(int ret, string message) : base(ret, message)
{
}
-
///
- /// 构造函数
+ /// 结果实体
///
- ///
- ///
+ /// 业务错误编码
+ /// 错误信息
public ResultIdMo(ResultTypes ret, string message)
: base(ret, message)
{
}
///
- /// 返回的关键值,如返回添加是否成功并返回id
+ /// 结果实体
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultIdMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
+ {
+ }
+
+ ///
+ /// 结果实体
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultIdMo(SysResultTypes sysRet, ResultTypes ret, string message)
+ : base(sysRet, ret, message)
+ {
+ }
+
+ ///
+ /// Id
///
public string id { get; set; }
}
@@ -154,13 +187,13 @@ namespace OSS.Common.ComModels
///
public ResultMo()
{
-
+
}
///
/// 构造函数
///
- ///
+ /// 数据信息
public ResultMo(TType data)
{
this.data = data;
@@ -169,8 +202,8 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
+ /// 业务错误编码
+ /// 错误信息
public ResultMo(int ret, string message = "")
: base(ret, message)
{
@@ -179,13 +212,34 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
+ /// 业务错误编码
+ /// 错误信息
public ResultMo(ResultTypes ret, string message = "")
: base(ret, message)
{
}
+ ///
+ ///
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
+ {
+ }
+
+ ///
+ ///
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultMo(SysResultTypes sysRet, ResultTypes ret, string message)
+ : base(sysRet, ret, message)
+ {
+ }
+
///
/// 结果类型数据
///
@@ -197,7 +251,7 @@ namespace OSS.Common.ComModels
/// 自定义泛型的结果实体
///
///
- public class ResultListMo : ResultMo
+ public class ResultListMo : ResultMo>
{
///
/// 构造函数
@@ -219,8 +273,8 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
+ /// 业务错误编码
+ /// 错误信息
public ResultListMo(int ret, string message = "")
: base(ret, message)
{
@@ -229,17 +283,34 @@ namespace OSS.Common.ComModels
///
/// 构造函数
///
- ///
- ///
+ /// 业务错误编码
+ /// 错误信息
public ResultListMo(ResultTypes ret, string message = "")
: base(ret, message)
{
}
///
- /// 结果类型数据
+ ///
///
- public IList data { get; set; }
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultListMo(int sysRet, int ret, string message) : base(sysRet, ret, message)
+ {
+ }
+
+ ///
+ ///
+ ///
+ /// 系统错误编码
+ /// 业务错误编码
+ /// 错误信息
+ public ResultListMo(SysResultTypes sysRet, ResultTypes ret, string message)
+ : base(sysRet, ret, message)
+ {
+ }
+
}
@@ -261,12 +332,13 @@ namespace OSS.Common.ComModels
var ot = new ResultMo
{
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
{
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;
}
+
///
/// 转化到结果实体
///
@@ -302,7 +376,7 @@ namespace OSS.Common.ComModels
///
public static ResultMo ConvertToResult(this ResultMo res)
{
- return ConvertToResult(res,null);
+ return ConvertToResult(res, null);
}
@@ -317,15 +391,23 @@ namespace OSS.Common.ComModels
public static TResult ConvertToResultInherit(this TPara res,
Func 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;
}
///
@@ -338,16 +420,23 @@ namespace OSS.Common.ComModels
///
public static TResult ConvertToResultInherit(this ResultMo res,
Func 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;
}
///
@@ -359,7 +448,7 @@ namespace OSS.Common.ComModels
public static TResult ConvertToResultInherit(this ResultMo res)
where TResult : ResultMo, new()
{
- return ConvertToResultInherit(res,null);
+ return ConvertToResultInherit(res, null);
}
@@ -374,12 +463,14 @@ namespace OSS.Common.ComModels
public static ResultListMo ConvertToResultList(this ResultListMo res,
Func func)
{
- var listRes= new ResultListMo()
+ var listRes = new ResultListMo()
{
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
///
public static ResultListMo ConvertToResultList(this ResultListMo res)
{
- return new ResultListMo(res.ret, res.msg);
+ return new ResultListMo(res.sys_ret, res.ret, res.msg);
}
}