导读部分
教程部分
此层是处理业务逻辑的部分,主要用在项目中调用,以及复杂的逻辑结构处理。 本层主要实现了一下的方法,以供菜单管理页面逻辑使用。
1. 声明dal层 [C#] 纯文本查看 复制代码 private Sys_MenuDAL dal = new Sys_MenuDAL();
此处声明过后,其它方法中,均使用 dal 进行数据库中的逻辑处理部分
以下为业务逻辑层实现的方法如下:
1. 获取分页列表信息 [C#] 纯文本查看 复制代码 /// <summary>
/// 获取分页列表信息
/// </summary>
/// <param name="fields">所需字段</param>
/// <param name="query">查询条件</param>
/// <param name="orderby">排序方式</param>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">页长</param>
/// <param name="totalCount">总记录</param>
/// <returns></returns>
public List<Sys_MenuInfo> GetListPage(string fields, string query, string orderby, int pageIndex, int pageSize, out int totalCount)
{
// 参数合法性校验
if (pageSize <= 0) { totalCount = 0; return new List<Sys_MenuInfo>(); }
if (pageIndex <= 0) { pageIndex = 1; }
if (string.IsNullOrWhiteSpace(fields)) { fields = "*"; }
if (string.IsNullOrWhiteSpace(query)) { query = "1=1"; }
if (string.IsNullOrWhiteSpace(orderby)) { orderby = "MenuID"; }
return dal.GetList(fields, query, orderby, pageIndex, pageSize, out totalCount);
}
2. 获取列表信息 [C#] 纯文本查看 复制代码 /// <summary>
/// 获取列表信息
/// </summary>
/// <param name="fields">所需字段</param>
/// <param name="query">查询条件</param>
/// <param name="orderBy">排序方式</param>
/// <returns></returns>
public List<Sys_MenuInfo> GetList(string fields, string query, string orderBy)
{
// 参数合法性校验
if (string.IsNullOrWhiteSpace(fields)) { fields = "*"; }
if (string.IsNullOrWhiteSpace(query)) { query = "1=1"; }
if (string.IsNullOrWhiteSpace(orderBy)) { orderBy = "MenuID"; }
return dal.GetList(fields, query, orderBy);
}
3. 获取实体信息
[C#] 纯文本查看 复制代码 /// <summary>
/// 获取实体信息
/// </summary>
/// <param name="fields">所需字段</param>
/// <param name="query">查询条件(如果top1 的话,可以在此处添加排序方式)</param>
/// <returns></returns>
public Sys_MenuInfo GetInfo(string fields, string query)
{
// 参数合法性校验
if (string.IsNullOrWhiteSpace(fields)) { fields = "*"; }
if (string.IsNullOrWhiteSpace(query)) { query = "1=1"; }
return dal.GetInfo(fields, query);
}
4.新增
新增时,进行了菜单id的逻辑处理,主要处理如下:
1. 如果添加的为主菜单,则获取最大的主菜单id,除以100后,加1,然后再乘以100处理
2. 如果添加的为子菜单,则,获取此主菜单下的子菜单,如果没有,主菜单id + 1 即可,如果有,则最大的子菜单id + 1
[C#] 纯文本查看 复制代码 /// <summary>
/// 新增
/// </summary>
/// <param name="info">实体信息</param>
/// <returns></returns>
public int Insert(Sys_MenuInfo info)
{
// 得到需要保存的菜单id
var menuId = 100;
if (info.ParentID > 0)
{
// 新增子菜单时处理
// 获取当前主菜单下的最大id值
var maxIdInfo = GetInfo(" top 1 *", string.Format(" ParentID = {0} order by MenuID desc", info.ParentID));
if (maxIdInfo != null && maxIdInfo.MenuID > 0)
{
menuId = maxIdInfo.MenuID + 1;
}
else
{
menuId = info.ParentID + 1;
}
}
else
{
// 新增主菜单时处理
// 获取最大的主菜单id值
var maxIdInfo = GetInfo(" top 1 *", " ParentID = 0 order by MenuID desc");
if (maxIdInfo != null && maxIdInfo.MenuID > 0) { menuId = (maxIdInfo.MenuID / 100 + 1) * 100; }
}
info.MenuID = menuId;
return dal.Insert(info);
}
5. 修改
[C#] 纯文本查看 复制代码 /// <summary>
/// 修改
/// </summary>
/// <param name="info">实体信息</param>
/// <returns></returns>
public int Update(Sys_MenuInfo info)
{
return dal.Update(info);
}
6. 删除
[C#] 纯文本查看 复制代码 /// <summary>
/// 删除
/// </summary>
/// <param name="query">条件</param>
/// <returns></returns>
public int Delete(string query)
{
// 如果条件为空的话,不进行删除,直接返回
if (string.IsNullOrWhiteSpace(query)) { return -1; }
return dal.Delete(query);
}
此处逻辑处理,主要进行了删除条件的判断,如果没有条件的话,直接返回 , 避免了失误直接导致整个表内容的删除
|