BaseController.cs
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using PT.BLL; using PT.Common; using PT.Model; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace PT.Web.Mvc.Controllers { public class BaseController<T, V> : Controller where T : class, new() where V : class, new() { BaseBll<T, V> baseBll = new BaseBll<T, V>(); #region 查询 /// <summary> /// 查询表所有数据 /// </summary> /// <returns></returns> public virtual IActionResult Queryable() { LayuiDataResult<T> dataResult = new LayuiDataResult<T>() { code = 0, msg = "成功", count = 0, data = new List<T>() }; try { List<T> list = baseBll.Queryable(); dataResult.count = list.Count; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } /// <summary> /// 查询表未删除数据 /// </summary> /// <returns></returns> public virtual IActionResult QueryableNotDeleted() { LayuiDataResult<T> dataResult = new LayuiDataResult<T>() { code = 0, msg = "成功", count = 0, data = new List<T>() }; try { List<T> list = baseBll.QueryableNotDeleted(); dataResult.count = list.Count; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } /// <summary> /// 查询表未删除数据 按条件查询 /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult QueryableNotDeletedWhere(T t) { LayuiDataResult<T> dataResult = new LayuiDataResult<T>() { code = 0, msg = "成功", count = 0, data = new List<T>() }; try { List<T> list = baseBll.QueryableNotDeleted(t); dataResult.count = list.Count; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } /// <summary> /// 单主键查询 /// </summary> /// <param name="Id"></param> /// <returns></returns> public virtual IActionResult QueryableInSingle(string Id) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { T t = baseBll.QueryableInSingle(Id); result.data = t; } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 查询单条 没有返回Null,如果结果大于1条会抛出错误 (根据业务重写) /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult QueryableSingle(UserList t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { UserList data = baseBll.QueryableSingle(t); result.data = data; } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 是否存在记录 /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult IsExist(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { bool b = baseBll.IsExist(t); result.data = b; } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } #endregion #region 插入 /// <summary> /// 插入 忽略null列 /// </summary> /// <param name="t"></param> /// <returns>返回自增id</returns> public virtual IActionResult InsertableIgnoreColumns(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.InsertableIgnoreColumns(t); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } #endregion #region 更新 /// <summary> /// 更新 /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult Updateable(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.Updateable(t); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 更新 忽略null列 /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult UpdateableIgnoreColumns(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.UpdateableIgnoreColumns(t); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 更新 忽略null列 批量 /// </summary> /// <param name="ts"></param> /// <returns></returns> [HttpPost] public virtual IActionResult UpdateableIgnoreColumnsBatch(List<T> ts) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.UpdateableIgnoreColumns(ts); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 更新 根据自定义条件 忽略null列 (根据业务重写) /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult UpdateableIgnoreColumnsWhere(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.UpdateableIgnoreColumnsWhere(t); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } #endregion #region 删除 /// <summary> /// 删除 /// </summary> /// <param name="t"></param> /// <returns></returns> public virtual IActionResult Deleteable(T t) { ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.Deleteable(t); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } /// <summary> /// 逻辑删除 /// </summary> /// <param name="Ids"></param> /// <returns></returns> [HttpPost] public virtual IActionResult DeleteableLogic(List<int> Ids) { string ModifyBy = "admin作者"; ResponseResult result = new ResponseResult() { code = 0, msg = "成功", data = 0 }; try { result.data = baseBll.DeleteableLogic(ModifyBy, Ids); } catch (Exception ex) { result.code = -1; result.msg = ex.Message; } var res = new JsonResult(result); return res; } #endregion #region 业务查询,根据业务需要重写方法 /// <summary> /// 视图 多表联查 查询表未删除数据 (根据业务重写) /// </summary> /// <returns></returns> public virtual IActionResult QueryableNotDeletedV() { LayuiDataResult<UserListV> dataResult = new LayuiDataResult<UserListV>() { code = 0, msg = "成功", count = 0, data = new List<UserListV>() }; try { List<UserListV> list = baseBll.QueryableNotDeletedV(); dataResult.count = list.Count; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } /// <summary> /// 视图 多表联查 查询表未删除数据 按条件查询 (根据业务重写) /// </summary> /// <returns></returns> public virtual IActionResult QueryableNotDeletedVWhere(IPListV v) { LayuiDataResult<IPListV> dataResult = new LayuiDataResult<IPListV>() { code = 0, msg = "成功", count = 0, data = new List<IPListV>() }; try { List<IPListV> list = baseBll.QueryableNotDeletedV(v); dataResult.count = list.Count; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } /// <summary> /// 视图 多表联查 分页查询 查询表未删除数据 按条件查询 (根据业务重写) /// </summary> /// <param name="where"></param> /// <param name="page"></param> /// <param name="limit"></param> /// <returns></returns> public virtual IActionResult QueryablePageList(IPListV where, int page, int limit) { LayuiDataResult<IPListV> dataResult = new LayuiDataResult<IPListV>() { code = 0, msg = "成功", count = 0, data = new List<IPListV>() }; try { int totalCount = 0; List<IPListV> list = baseBll.QueryablePageList(where, page, limit, out totalCount); dataResult.count = totalCount; dataResult.data = list; } catch (Exception ex) { dataResult.code = -1; dataResult.msg = ex.Message; } var res = new JsonResult(dataResult); return res; } #endregion } }