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