C#接口返回泛型的DataResult

public class DataResult
    {
        /// <summary>
        /// 错误信息
        /// </summary>
        public string Msg { get; set; }

        /// <summary>
        /// 错误编码
        /// </summary>
        public DataResultCodeEnum Code { get; set; }

        /// <summary>
        /// 返回值
        /// </summary>
        public object Data { get; set; }
    }

public class DataResult<T>
    {
        /// <summary>
        /// 错误信息
        /// </summary>
        public string Msg { get; set; }

        /// <summary>
        /// 错误编码
        /// </summary>
        public DataResultCodeEnum Code { get; set; }

        /// <summary>
        /// 返回值
        /// </summary>
        public T Data { get; set; }
    }

创建DataResultCodeEnum

    /// <summary>
    /// 接口返回code枚举
    /// </summary>
    public enum DataResultCodeEnum
    {
        /// <summary>
        /// 成功
        /// </summary>
        [Description("成功")]
        Ok = 200,

        /// <summary>
        /// 失败
        /// </summary>
        [Description("失败")]
        Fail = 201,

        /// <summary>
        /// 缺少接口验证参数
        /// </summary>
        [Description("缺少接口验证参数")]
        LackHeadPara = 202,

        /// <summary>
        /// 时间戳过期
        /// </summary>
        [Description("时间戳过期")]
        TimestampOutOfDate = 203,

        /// <summary>
        /// sign不正确
        /// </summary>
        [Description("sign不正确")]
        SignWrong = 204,

        /// <summary>
        /// token过期
        /// </summary>
        [Description("token过期")]
        TokenOutOfDate = 205,

        /// <summary>
        /// 请求参数验证失败
        /// </summary>
        [Description("请求参数验证失败")]
        RequestVerifyFail = 206,

        /// <summary>
        /// 服务器内部错误
        /// </summary>
        [Description("服务器内部错误")]
        ServiceError = 500
    }

如何调用呢?

[HttpPost]
        public DataResult<WelcomeInfoResponse> WelcomeInfo(WelcomeInfoRequest request)
        {
            return homePageLogic.GetWelcomeInfo(request);
        }

[HttpPost]
        public DataResult<List<CommonFunResponse>> CommonFunctions(CommonFunRequest request)
        {
            return homePageLogic.CommonFunctions(request);
        }

我们在声明CommonFunctions方法时,声明在logic里面,但是如何在里面进行调用呢

public DataResult<List<CommonFunResponse>> CommonFunctions(CommonFunRequest request) 
        {
            DataResult<List<CommonFunResponse>> result = new DataResult<List<CommonFunResponse>>() { Code = DataResultCodeEnum.Ok, Msg = DataResultCodeEnum.Ok.GetDescription(), Data = new List<CommonFunResponse>() };
            ConvertListHelper toList = new ConvertListHelper();
            DBObj objDB = new DBObj();
            StringBuilder sbSQL = new StringBuilder();
            DataTable dtbRTN = new DataTable();


            if ((int)request.Type == 1) {
                sbSQL.Append($@"SELECT A.FUN_ID ID,B.FUN_NAME FUNNAME, A.SORT FROM SAL_APP_COMMON_FUNCTION A JOIN SAL_APP_COMMON_FUNCINFO B ON A.FUN_ID=B.ID");
                sbSQL.Append($@" WHERE A.USER_ID='{request.UserId}' AND A.ISDELETE = 0 AND B.ISDELETE = 0");
                dtbRTN = objDB.DataTable(sbSQL.ToString());
                var commonFuncList = toList.DataTableToList<CommonFunResponse>(dtbRTN);
                if (commonFuncList.Count == 0)
                {
                    sbSQL = new StringBuilder();
                    sbSQL.Append($@"SELECT A.FUN_ID ID,B.FUN_NAME FUNNAME, A.SORT FROM SAL_APP_COMMON_FUNCTION A JOIN SAL_APP_COMMON_FUNCINFO B ON A.FUN_ID=B.ID");
                    sbSQL.Append($@" WHERE A.USER_ID='1' AND A.ISDELETE = 0 AND B.ISDELETE = 0");
                    toList = new ConvertListHelper();
                    commonFuncList = toList.DataTableToList<CommonFunResponse>(dtbRTN);
                }
                result.Data = commonFuncList;
            }
            else
            {
                sbSQL.Append($@" SELECT  ID,FUN_NAME FUNNAME,SORT  FROM SAL_APP_COMMON_FUNCINFO WHERE ISDELETE=0");
                dtbRTN = objDB.DataTable(sbSQL.ToString());
                toList = new ConvertListHelper();
                var moreFuncList = toList.DataTableToList<CommonFunResponse>(dtbRTN);
                result.Data = moreFuncList;
            }
            return result;
        }

在model声明CommonFunResponse 和 CommonFunRequest

/// <summary>
    /// 获取常用功能请求类
    /// </summary>
    public class CommonFunRequest
    {
        /// <summary>
        /// 员编
        /// </summary>
        [Required]
        [StringLength(20)]
        [Display(Name="元编")]
        public string UserId { get; set; }

        /// <summary>
        /// 类型
        /// </summary>
        [Required]
        [Display(Name ="类型")]
        public CommonFunTypeEnum Type { get; set; }
    }
/// <summary>
    /// 常用功能Response类
    /// </summary>
    public class CommonFunResponse
    {
        public int Id { get; set; }

        /// <summary>
        /// 功能名称
        /// </summary>
        public string FunName { get; set; }

        /// <summary>
        /// 排序
        /// </summary>
        public int Sort { get; set; }
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值