191 lines
6.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Learun.Application.Base.SystemModule;
using Learun.Util;
using Learun.Util.SqlSugar;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;
using DbType = System.Data.DbType;
namespace Learun.Application.Report
{
/// <summary>
/// 版 本 PIT-ADMS V7.0.3 敏捷开发框架
/// Copyright (c) 2013-2018 Hexagon PPM
/// 创 建:超级管理员
/// 日 期2019-03-26 18:29
/// 描 述:报表菜单关联设置
/// </summary>
public class RptRelationService
{
#region
Repository<LR_RPT_RelationEntity> _relationRepository => new Repository<LR_RPT_RelationEntity>();
Repository<ModuleEntity> _moduleRepository => new Repository<ModuleEntity>();
#endregion
private ModuleIBLL moduleIBLL = new ModuleBLL();
#region
/// <summary>
/// 获取页面显示列表数据
/// <summary>
/// <param name="queryJson">查询参数</param>
/// <returns></returns>
public IEnumerable<LR_RPT_RelationEntity> GetPageList(Pagination pagination, string queryJson)
{
try
{
var strSql = new StringBuilder();
strSql.Append("SELECT ");
strSql.Append(@"
t.F_Id,
t.F_EnCode,
t.F_FullName,
t.F_ParentId,
t.F_Icon,
t.F_SortCode,
t.F_RptFileId,
t.F_Description
");
strSql.Append(" FROM LR_RptRelation t ");
strSql.Append(" WHERE 1=1 ");
var queryParam = queryJson.ToJObject();
// 虚拟参数
//var dp = new DynamicParameters(new { });
var dp = new List<SugarParameter>();
if (!queryParam["F_FullName"].IsEmpty())
{
dp.Add(new SugarParameter("F_FullName", "%" + queryParam["F_FullName"].ToString() + "%", DbType.String));
strSql.Append(" AND t.F_FullName Like @F_FullName ");
}
if (!queryParam["F_ModifyUserName"].IsEmpty())
{
dp.Add(new SugarParameter("F_ModifyUserName", queryParam["F_ModifyUserName"].ToString(), DbType.String));
strSql.Append(" AND t.F_ModifyUserName = @F_ModifyUserName ");
}
//return this.BaseRepository().FindList<LR_RPT_RelationEntity>(strSql.ToString(), dp, pagination);
return SqlSugarHelper.Db.SqlQueryable<LR_RPT_RelationEntity>(strSql.ToString()).AddParameters(dp).ToPageList(pagination.page, pagination.rows);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 获取LR_RptRelation表实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public LR_RPT_RelationEntity GetLR_RptRelationEntity(string keyValue)
{
try
{
return _relationRepository.GetById(keyValue);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
#region
/// <summary>
/// 删除实体数据
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void DeleteEntity(string keyValue)
{
try
{
//删除报表关系同时把菜单也删除
LR_RPT_RelationEntity relation = _relationRepository.GetById(keyValue);
string moduleCode = relation.F_EnCode;
var module = _moduleRepository.GetList(t => t.F_EnCode == moduleCode);
_moduleRepository.Delete(module);
_relationRepository.Delete(relation);
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
/// <summary>
/// 保存实体数据(新增、修改)
/// <param name="keyValue">主键</param>
/// <summary>
/// <returns></returns>
public void SaveEntity(string keyValue, LR_RPT_RelationEntity entity)
{
try
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
_relationRepository.Update(entity);
}
else
{
entity.Create();
ModuleEntity moduleEntity = new ModuleEntity();
moduleEntity.F_IsMenu = 1;
moduleEntity.F_EnabledMark = 1;
moduleEntity.F_EnCode = entity.F_EnCode;
moduleEntity.F_FullName = entity.F_FullName;
moduleEntity.F_ParentId = entity.F_ParentId;
moduleEntity.F_Icon = entity.F_Icon;
moduleEntity.F_Description = entity.F_Description;
moduleEntity.F_Target = "iframe";
moduleEntity.F_UrlAddress = "/LR_ReportModule/RptManage/Report?reportId=" + entity.F_RptUrl;
List<ModuleButtonEntity> moduleButtonList = new List<ModuleButtonEntity>();
List<ModuleColumnEntity> moduleColumnList = new List<ModuleColumnEntity>();
List<ModuleFormEntity> moduleFormEntitys = new List<ModuleFormEntity>();
moduleIBLL.SaveEntity(null, moduleEntity, moduleButtonList, moduleColumnList, moduleFormEntitys);
_relationRepository.Insert(entity);
}
}
catch (Exception ex)
{
if (ex is ExceptionEx)
{
throw;
}
else
{
throw ExceptionEx.ThrowServiceException(ex);
}
}
}
#endregion
}
}