StableVersion4.3/HL_FristAidPlatform_DataBase/SYS/T_SYS_SystemModuleDB.cs

214 lines
9.5 KiB
C#

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System.Collections.Generic;
namespace HL_FristAidPlatform_DataBase
{
/// <summary>
/// 系统,胸痛、卒中、创伤一个一条数据
/// </summary>
public class T_SYS_SystemModuleDB : BaseDB, IT_SYS_SystemModule
{
public SqlSugarClient db = GetClient();
/// <summary>
/// 增加一条数据
/// </summary>
public bool Add(T_SYS_SystemModule model)
{
return db.Insertable(model).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 更新一条数据
/// </summary>
public bool Update(T_SYS_SystemModule model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 删除一条数据
/// </summary>
public bool Delete(long ID)
{
return db.Deleteable<T_SYS_SystemModule>().Where(new T_SYS_SystemModule() { ID = ID }).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 获得数据列表
/// </summary>
/// <param name="keyWord">关键词</param>
/// <param name="isOpen">是否开启</param>
/// <param name="deleteFlag">删除标记</param>
/// <returns></returns>
public TableModel<T_SYS_SystemModuleModel> GetList(string keyWord, int isOpen, int deleteFlag)
{
TableModel<T_SYS_SystemModuleModel> t = new TableModel<T_SYS_SystemModuleModel>();
string SqlStr = "SELECT ID,GUID,SystemName,EnglishName,ShortName,PatientTypeName,IsOpen,Icon,IsHaveTimeAxis,CreationDate,DeleteFlag,OrderBy,CASE IsOpen WHEN 0 THEN '开启' WHEN '1' THEN '关闭' END AS IsOpenCase,CASE DeleteFlag WHEN 0 THEN '是' ELSE '否' END DeleteFlagCase,CASE IsHaveTimeAxis WHEN 0 THEN '是' ELSE '否' END AS IsHaveTimeAxisCase FROM T_SYS_SystemModule WHERE 1=1";
if (!string.IsNullOrEmpty(keyWord))
SqlStr += " And (SystemName LIKE '%" + keyWord + "%' OR ShortName LIKE '%" + keyWord + "%' OR EnglishName LIKE '%" + keyWord + "%')";
if (isOpen != -1)
SqlStr += " And IsOpen =" + isOpen;
if (deleteFlag != -1)
SqlStr += " And DeleteFlag =" + deleteFlag;
List<T_SYS_SystemModuleModel> list = db.SqlQueryable<T_SYS_SystemModuleModel>(SqlStr).OrderBy(it => it.OrderBy).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据参数获取对用权限的系统
/// </summary>
/// <param name="isHaveTimeAxis">是否拥有时间节点权限0是1否</param>
/// <returns></returns>
public TableModel<T_SYS_SystemModule> GetIsHaveTimeAxisList(int isHaveTimeAxis)
{
TableModel<T_SYS_SystemModule> t = new TableModel<T_SYS_SystemModule>();
var listMode = db.Queryable<T_SYS_SystemModule>().
Where((a) => a.DeleteFlag == 0 && a.IsOpen == 0).
WhereIF(isHaveTimeAxis != -1, (a) => a.IsHaveTimeAxis == isHaveTimeAxis).
Select((a) => new T_SYS_SystemModule
{
ID = a.ID,
GUID = a.GUID.ToString(),
SystemName = a.SystemName,
EnglishName = a.EnglishName,
ShortName = a.ShortName,
PatientTypeName = a.PatientTypeName,
IsOpen = a.IsOpen,
Icon = a.Icon,
IconData = a.IconData,
IsHaveTimeAxis = a.IsHaveTimeAxis,
CreationDate = a.CreationDate,
DeleteFlag = a.DeleteFlag,
OrderBy = a.OrderBy,
}).OrderBy((a) => a.OrderBy).ToList();
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获得前几行数据
/// </summary>
public T_SYS_SystemModule Get(long id)
{
return db.Queryable<T_SYS_SystemModule>().First(it => it.ID == id);
}
/// <summary>
/// 根据用户编号+所选院区编号获取拥有的系统模块
/// </summary>
/// <param name="userID">用户编号</param>
/// <param name="hospitalID">所选的院区编号</param>
/// <returns></returns>
public TableModel<T_SYS_SystemModule> GetListByUserIDAndHospitalID(long userID, int hospitalID)
{
TableModel<T_SYS_SystemModule> t = new TableModel<T_SYS_SystemModule>();
string SqlStr = @"SELECT a.[ID],a.[GUID],[SystemName],[EnglishName],[ShortName],[PatientTypeName],[IsOpen],[Icon],[IconData],[IsHaveTimeAxis],[CreationDate],a.[DeleteFlag],[OrderBy] FROM T_SYS_SystemModule a
left join T_Base_HospitalRight b on b.SystemModuleID=a.id
WHERE b.HospitalID={0} and a.GUID IN(SELECT DISTINCT a.GUID FROM dbo.T_SYS_SystemModule a
JOIN dbo.T_SYS_Menu b ON a.ID = b.SystemModuleID
JOIN dbo.T_SYS_RoleMenu c ON b.ID = c.MenuID
JOIN dbo.T_SYS_UserRole d ON c.RoleID = d.RoleID
JOIN dbo.T_SYS_User e ON d.UserID = e.ID
WHERE e.ID = {1} AND a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0 AND d.DeleteFlag = 0 AND e.DeleteFlag = 0) AND a.IsOpen = 0 AND b.DeleteFlag=0";
SqlStr = string.Format(SqlStr, hospitalID, userID);
List<T_SYS_SystemModule> list = db.SqlQueryable<T_SYS_SystemModule>(SqlStr).OrderBy(it => it.OrderBy).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据用户编号+所选院区编号获取拥有的系统模块
/// 用于移动端
/// </summary>
/// <param name="userID">用户编号</param>
/// <param name="hospitalID">所选的院区编号</param>
/// <returns></returns>
public TableModel<T_SYS_SystemModule> GetListByUserIDAndHospitalIDForApp(long userID, int hospitalID)
{
TableModel<T_SYS_SystemModule> t = new TableModel<T_SYS_SystemModule>();
string SqlStr = @"SELECT a.[ID],a.[GUID],[SystemName],[EnglishName],[ShortName],[PatientTypeName],[IsOpen],[Icon],[IconData],[IsHaveTimeAxis],[CreationDate],a.[DeleteFlag],[OrderBy] FROM T_SYS_SystemModule a
left join T_Base_HospitalRight b on b.SystemModuleID=a.id
WHERE b.HospitalID={0} and a.GUID IN(SELECT DISTINCT a.GUID FROM dbo.T_SYS_SystemModule a
JOIN dbo.T_SYS_Menu b ON a.ID = b.SystemModuleID
JOIN dbo.T_SYS_RoleMenu c ON b.ID = c.MenuID
JOIN dbo.T_SYS_UserRole d ON c.RoleID = d.RoleID
JOIN dbo.T_SYS_User e ON d.UserID = e.ID
WHERE e.ID = {1} AND a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0 AND d.DeleteFlag = 0 AND e.DeleteFlag = 0) AND a.IsOpen = 0 AND a.IsHaveTimeAxis=0 AND b.DeleteFlag=0";
SqlStr = string.Format(SqlStr, hospitalID, userID);
List<T_SYS_SystemModule> list = db.SqlQueryable<T_SYS_SystemModule>(SqlStr).OrderBy(it => it.OrderBy).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据医院编号(ID)获取当前医院所拥有的模块
/// </summary>
/// <param name="hospitalID">医院编号(ID)</param>
/// <param name="isHaveTimeAxis">是否拥有时间节点权限0是1否</param>
/// <returns></returns>
public TableModel<T_SYS_SystemModule> GetRightListByHospitalID(long hospitalID, int isHaveTimeAxis)
{
TableModel<T_SYS_SystemModule> t = new TableModel<T_SYS_SystemModule>();
var listMode = db.Queryable<T_SYS_SystemModule, T_Base_HospitalRight>((a, b) => new object[] {
JoinType.Left,b.SystemModuleID==a.ID,
}).Where((a, b) => b.HospitalID == hospitalID && a.DeleteFlag == 0 && a.IsOpen == 0)
.WhereIF(isHaveTimeAxis != -1, (a) => a.IsHaveTimeAxis == isHaveTimeAxis).
Select((a) => new T_SYS_SystemModule
{
ID = a.ID,
GUID = a.GUID.ToString(),
SystemName = a.SystemName,
EnglishName = a.EnglishName,
ShortName = a.ShortName,
PatientTypeName = a.PatientTypeName,
IsOpen = a.IsOpen,
Icon = a.Icon,
IconData = a.IconData,
IsHaveTimeAxis = a.IsHaveTimeAxis,
CreationDate = a.CreationDate,
DeleteFlag = a.DeleteFlag,
OrderBy = a.OrderBy,
}).OrderBy((a) => a.OrderBy).ToList();
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
}
}