BaseController

复制代码
public class BaseController<T, V> : Controller where T : class, new() where V : class, new()
    {

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


        #region 通用基础方法



        #region 通用扩展方法


        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Insert(T t)
        {

            try
            {
                int res = baseDal.Insert(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }


        /// <summary>
        /// 新增 如已存在则修改 根据需求重写
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult InsertForUpdate(T t)
        {
            try
            {
                int res = baseDal.InsertForUpdate(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }

        }

        /// <summary>
        /// 批量新增
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public virtual ActionResult InsertBatch(List<T> list)
        {

            try
            {
                int[] res = baseDal.InsertBatch(list);

                return Content(res.ToJson());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
            }

            return Content("0");

        }


        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Update(T t)
        {

            try
            {
                bool res = baseDal.Update(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("false");
            }


        }



        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Delete(T t)
        {
            try
            {
                bool res = baseDal.Delete(t);

                return Content(res.ToString());

            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Content("false");
            }

        }

        /// <summary>
        /// 批量删除
        /// </summary>
        /// <param name="list"></param>
        /// <returns></returns>
        public virtual ActionResult DeleteBatch(List<T> list)
        {
            try
            {
                bool res = baseDal.DeleteBatch(list);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Content("false");
            }


        }

        #endregion


        #region 通用SQL方法


        /// <summary>
        /// SQL语句 自定义增删改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult Execute(T t)
        {

            try
            {
                int res = baseDal.Execute(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }


        /// <summary>
        /// SQL语句 自定义批量增删改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult ExecuteBatch(List<T> t)
        {

            try
            {
                int res = baseDal.ExecuteBatch(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }


        /// <summary>
        /// SQL语句 新增
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult ExecuteInsert(T t)
        {

            try
            {
                int res = baseDal.ExecuteInsert(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }


        /// <summary>
        /// SQL语句 修改
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult ExecuteUpdate(T t)
        {

            try
            {
                int res = baseDal.ExecuteUpdate(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }



        /// <summary>
        /// SQL语句更新非空字段\部分字段  默认第一个字段为更新主键
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult UpdateNotNull(T t)
        {
            try
            {
                bool res = baseDal.UpdateNotNull(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {
                LoggerHelper._.Error(ex.ToString());
                return Content("false");
            }


        }


        /// <summary>
        /// SQL语句 删除
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public virtual ActionResult ExecuteDelete(T t)
        {

            try
            {
                int res = baseDal.ExecuteDelete(t);

                return Content(res.ToString());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }



        }

        #endregion


        /// <summary>
        /// 查询一个实体
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual ActionResult GetEntity(string id)
        {

            try
            {

                T res = baseDal.GetEntity(id);

                return Json(res, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {
                LoggerHelper._.Error(ex.ToString());
                return Json("", JsonRequestBehavior.AllowGet);
            }


        }

        /// <summary>
        /// 查询全部
        /// </summary>
        /// <returns></returns>
        public virtual ActionResult GetListAll()
        {
            try
            {
                List<T> res = baseDal.GetListAll();

                return Json(res, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Json("", JsonRequestBehavior.AllowGet);
            }


        }

        /// <summary>
        /// 查询返回DataTable示例  主要用于  MVC控制器
        /// </summary>
        /// <param name="v">条件</param>
        /// <returns></returns>
        public virtual ActionResult GetTable(V v)
        {
            try
            {
                DataTable res = baseDal.GetTable(v);

                return Content(res.ToJson());
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());

                return Content("0");
            }

        }


        /// <summary>
        /// 查询统计总数
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public virtual ActionResult Count(FormCollection collection)
        {

            T t = new T();

            TryUpdateModel<T>(t, collection);

            int res = baseDal.Count(t);

            return Json(res, JsonRequestBehavior.AllowGet);

        }

        #endregion


        #region 示例方法 需重写


        /// <summary>
        /// 以条件查询
        /// </summary>
        /// <param name="collection"></param>
        /// <returns></returns>
        [HttpPost]
        public virtual ActionResult GetList(FormCollection collection)
        {
            try
            {

                T t = new T();

                TryUpdateModel<T>(t, collection);

                List<T> res = baseDal.GetList(t);

                return Json(res, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Json("", JsonRequestBehavior.AllowGet);
            }

        }


        [HttpPost]
        public virtual ActionResult QueryForSQL(FormCollection collection)
        {

            try
            {
                V t = new V();

                TryUpdateModel<V>(t, collection);

                List<V> res = baseDal.QueryForSQL(t);


                return Json(res, JsonRequestBehavior.AllowGet);

            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Json("", JsonRequestBehavior.AllowGet);
            }



        }


        [HttpPost]
        public virtual ActionResult QueryFirstOrDefaultView(FormCollection collection)
        {

            try
            {
                V t = new V();

                TryUpdateModel<V>(t, collection);

                V res = baseDal.QueryFirstOrDefaultView(t);


                return Json(res, JsonRequestBehavior.AllowGet);

            }
            catch (Exception ex)
            {

                LoggerHelper._.Error(ex.ToString());
                return Json("", JsonRequestBehavior.AllowGet);
            }



        }


        /// <summary>
        /// 获取分页数据
        /// Dapper扩展分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public virtual ActionResult GetPage(int page, int limit, string Id)
        {

            long allRowsCount = 0;

            List<V> list = baseDal.GetPage(page, limit, out allRowsCount);

            LayUIDataResult<V> layUIDataResult = new LayUIDataResult<V>()
            {
                code = 0,
                count = allRowsCount,
                msg = "",
                data = list
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// <summary>
        /// SQL分页示例
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <param name="Id"></param>
        /// <returns></returns>
        public virtual ActionResult GetPageListForSQL(int page, int limit, string Id)
        {

            JObject jObject = new JObject();


            PageDataView<V> res = baseDal.GetPageListForSQL(jObject);

            LayUIDataResult<V> layUIDataResult = new LayUIDataResult<V>()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }


        /// <summary>
        /// SQL分页示例  主要用于  MVC控制器 Layui
        /// </summary>
        /// <param name="collection"></param>
        /// <returns></returns>
        [HttpPost]
        public virtual ActionResult GetPageListForSQL(FormCollection collection)
        {

            V t = new V();

            TryUpdateModel<V>(t, collection);
            int CurrentPage = Convert.ToInt32(collection["page"]);
            int limit = Convert.ToInt32(collection["limit"]);


            PageDataView<V> res = baseDal.GetPageListForSQL(CurrentPage, limit, t);



            LayUIDataResult<V> layUIDataResult = new LayUIDataResult<V>()
            {
                code = 0,
                count = res.TotalNum,
                msg = "",
                data = res.Items.ToList()
            };

            return Json(layUIDataResult, JsonRequestBehavior.AllowGet);

        }




        #endregion


    }
复制代码

 

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