BaseApiController(Dapper)

复制代码
public class BaseApiController<T> : ApiController where T : class
    {

        BaseDal<T> baseDal = new BaseDal<T>();

        #region 通用Api

        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage Insert([FromBody] JObject value)
        {
            T model = value.ToObject<T>();

            int res = DbHelper.Insert<T>(model);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }


        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage InsertBatch([FromBody] List<T> value)
        {


            bool res = DbHelper.InsertBatch<T>(value);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage Update([FromBody] JObject value)
        {
            T model = value.ToObject<T>();

            bool res = DbHelper.Update<T>(model);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        /// <summary>
        /// 更新非空字段\部分字段  默认第一个字段为更新主键
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage UpdateNotNull([FromBody] JObject value)
        {

            T model = value.ToObject<T>();

            bool res = baseDal.UpdateNotNull(model);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }


        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage Delete([FromBody] JObject value)
        {
            T model = value.ToObject<T>();

            bool res = DbHelper.Delete<T>(model);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        //public virtual HttpResponseMessage DeleteBatch([FromBody] T  value)
        public virtual HttpResponseMessage DeleteBatch([FromBody] List<T> value)
        {


            //List<T> model = value.ToObject<List<T>>();

            bool res = DbHelper.DeleteBatch<T>(value);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        /// <summary>
        /// 查询一个实体
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        [System.Web.Http.HttpGet]
        public virtual HttpResponseMessage Get(string id)
        {

            T res = DbHelper.Get<T>(id);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res.ToJson());

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        /// <summary>
        /// 查询全部
        /// </summary>
        /// <returns></returns>
        [System.Web.Http.HttpGet]
        public virtual HttpResponseMessage GetListAll()
        {

            List<T> res = DbHelper.GetListAll<T>();

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res.ToJson());

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }

        #endregion



        #region 示例Api需重写


        /// <summary>
        /// 以条件查询
        /// </summary>
        /// <param name="where">条件</param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage GetList([FromBody] JObject where)
        {
            var v = new { UserID = 5 };
            List<T> res = baseDal.GetList(where);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res.ToJson());

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;

        }


        /// <summary>
        /// SQL分页示例
        /// </summary>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage GetPageListForSQL([FromBody] JObject value)
        {

            PageCriteria pageCriteria = new PageCriteria();

            StringBuilder sb = new StringBuilder();
            sb.Append("UserName like @UserName");
            pageCriteria.ParameterList.Add(new ParameterDict() { ParamName = "UserName", ParamValue = "%jack%" });
            sb.Append(" and State=@State");
            pageCriteria.ParameterList.Add(new ParameterDict() { ParamName = "State", ParamValue = 0 });
            pageCriteria.Condition = sb.ToString();

            pageCriteria.CurrentPage = 5;
            pageCriteria.Fields = " * ";
            pageCriteria.PageSize = 10;
            //pageCriteria.PrimaryKey = " id";
            pageCriteria.Sort = " UserID desc";
            pageCriteria.TableName = "UserInfo";


            PageDataView<T> res = baseDal.GetPageListForSQL(value);

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res.ToJson());

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;


        }


        /// <summary>
        /// Dapper扩展分页
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        [System.Web.Http.HttpPost]
        public virtual HttpResponseMessage GetPage([FromBody] Object value)
        {

            //Object model = value.ToObject<Object>();

            int pageIndex = 0;
            int pageSize = 5;


            List<T> res = baseDal.GetPage(pageIndex, pageSize, out long allRowsCount);

            long t = allRowsCount;

            JObject obj = new JObject();
            obj.Add("code", "0");
            obj.Add("msg", "成功");
            obj.Add("data", res.ToJson());
            obj.Add("allRowsCount", allRowsCount);

            HttpResponseMessage result = new HttpResponseMessage
            {
                Content = new StringContent(obj.ToString(), Encoding.UTF8, "application/json")
            };
            return result;


        }


        #endregion


    }
复制代码

 

posted @   妖狐鬼魅  阅读(452)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示