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); } }