214 lines
9.5 KiB
C#
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;
|
|
}
|
|
}
|
|
} |