StableVersion4.3/HL_FristAidPlatform_DataBase/Base/T_Base_HospitalDB.cs

322 lines
12 KiB
C#

using HL_FristAidPlatform_Help;
using HL_FristAidPlatform_IDataBase;
using HL_FristAidPlatform_Models;
using SqlSugar;
using System.Collections.Generic;
namespace HL_FristAidPlatform_DataBase
{
public class T_Base_HospitalDB : BaseDB, IT_Base_Hospital
{
public SqlSugarClient db = GetClient();
#region 增
/// <summary>
/// 增
/// </summary>
/// <param name="hospital"></param>
/// <returns></returns>
public bool Add(T_Base_Hospital hospital)
{
return db.Insertable(hospital).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 新增 仅更新赋值的字段
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int AddNotNullColumns(T_Base_Hospital model)
{
return db.Insertable(model).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
#endregion 增
#region 删
public bool Dels(dynamic[] ids)
{
return db.Deleteable<T_Base_Hospital>().In(new dynamic[] { ids }).ExecuteCommand() == 1 ? true : false;
}
/// <summary>
/// 逻辑删除
/// </summary>
/// <param name="id">编号</param>
/// <param name="deleteFlag">标记:0取消删除 1删除</param>
/// <returns></returns>
public int LogicalDelete(long id, int deleteFlag)
{
return db.Updateable<T_Base_Hospital>().SetColumns(it => new T_Base_Hospital() { DeleteFlag = deleteFlag }).Where(it => it.ID == id).ExecuteCommand();
}
#endregion 删
#region 改
/// <summary>
/// 修改
/// </summary>
/// <param name="hospital"></param>
/// <returns></returns>
public bool Update(T_Base_Hospital hospital)
{
return db.Updateable(hospital).ExecuteCommand() == 0 ? false : true;
}
/// <summary>
/// 仅更新赋值的字段
/// </summary>
/// <param name="model">实体类</param>
/// <returns></returns>
public int UpdateNotNullColumns(T_Base_Hospital model)
{
return db.Updateable(model).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();
}
#endregion 改
#region 查
public T_Base_Hospital Get(long id)
{
return db.Queryable<T_Base_Hospital>().First(it => it.ID == id);
}
/// <summary>
/// 根据GUID获取医院配置信息
/// </summary>
/// <param name="guid">GUID</param>
/// <returns></returns>
public TableModel<T_Base_Hospital> GetByGuid(string guid)
{
List<T_Base_Hospital> data = db.Queryable<T_Base_Hospital>().Where(it => it.GUID == guid && it.DeleteFlag == 0).ToList();
TableModel<T_Base_Hospital> menu = new TableModel<T_Base_Hospital>();
menu.Code = 0;
menu.TotalNumber = data.Count;
menu.Data = data;
menu.Msg = "成功";
return menu;
}
/// <summary>
/// 获取列表-分页
/// </summary>
/// <param name="pageIndex">起始页</param>
/// <param name="pageSize">每页大小</param>
/// <param name="parentGUID">上级院区编号</param>
/// <param name="attributeTag">院区属性标记 空:全部 1:分院 2:网络医院 3:胸痛救治单元 99:其他</param>
/// <param name="keyWord">关键词</param>
/// <returns></returns>
public TableModel<T_Base_HospitalModel> GetPageList(int pageIndex, int pageSize, string parentGUID, string attributeTag, string keyWord)
{
int TotalNumber = 0;
TableModel<T_Base_HospitalModel> t = new TableModel<T_Base_HospitalModel>();
var listMode = db.Queryable<T_Base_Hospital>()
.Where(it => it.DeleteFlag == 0)
.WhereIF(!string.IsNullOrEmpty(parentGUID), it => it.ParentGUID == parentGUID)
.WhereIF(!string.IsNullOrEmpty(attributeTag), it => it.AttributeTag == attributeTag)
.WhereIF(!string.IsNullOrEmpty(keyWord), it => it.Name.Contains(keyWord) || it.ShortName.Contains(keyWord) || it.AliasName.Contains(keyWord) || it.ContactNumber.Contains(keyWord) || it.ContactAddress.Contains(keyWord))
.Select(it => new T_Base_HospitalModel
{
ID = it.ID,
GUID = it.GUID,
ParentGUID = it.ParentGUID,
Name = it.Name,
ShortName = it.ShortName,
EnglishName = it.EnglishName,
AliasName = it.AliasName,
LogoUrl = it.LogoUrl,
BgImageUrl = it.BgImageUrl,
Nature = it.Nature,
Grade = it.Grade,
ContactNumber = it.ContactNumber,
Fax = it.Fax,
Website = it.Website,
ZipCode = it.ZipCode,
BusRoute = it.BusRoute,
ContactAddress = it.ContactAddress,
Introduce = it.Introduce,
CCPC_AppID = it.CCPC_AppID,
CCPC_SecretKey = it.CCPC_SecretKey,
CCPC_HospitalID = it.CCPC_HospitalID,
Longitude = it.Longitude,
Latitude = it.Latitude,
DefaultAmbulanceGuid = it.DefaultAmbulanceGuid,
CreatorID = it.CreatorID,
Creator = it.Creator,
CreationDate = it.CreationDate,
OrderBy = it.OrderBy,
DeleteFlag = it.DeleteFlag,
DeleteFlagCase = it.DeleteFlag.ToString(),
Ecg_OrgCode = it.Ecg_OrgCode,
Ecg_URL = it.Ecg_URL,
Ecg_RecordNumPer = it.Ecg_RecordNumPer,
Ecg_AuthorKey = it.Ecg_AuthorKey,
Ecg_AppId = it.Ecg_AppId,
Ecg_Token = it.Ecg_Token,
Ecg_Summary = it.Ecg_Summary,
CP_CertificationVersion = it.CP_CertificationVersion,
CP_CertificationStatus = it.CP_CertificationStatus,
CP_First_Reperfusion = it.CP_First_Reperfusion,
CP_Second_Reperfusion = it.CP_Second_Reperfusion,
AP_CertificationVersion = it.AP_CertificationVersion,
AP_CertificationStatus = it.AP_CertificationStatus,
AttributeTag = it.AttributeTag,
}).OrderBy((Hospital) => Hospital.OrderBy).ToPageList(pageIndex, pageSize, ref TotalNumber);
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = TotalNumber;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 获取列表-无分页
/// </summary>
/// <param name="parentGUID">上级医院GUID,为空时查询全部</param>
/// <param name="attributeTag">院区属性标记集合 空:全部 1:主院区 2:分院 3:网络医院 4:胸痛救治单元 99:其他</param>
/// <returns></returns>
public TableModel<T_Base_Hospital> GetList(string parentGUID, string attributeTag)
{
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
var listMode = db.Queryable<T_Base_Hospital>()
.Where(it => it.DeleteFlag == 0)
.WhereIF(!string.IsNullOrEmpty(parentGUID), it => it.ParentGUID == parentGUID)
.WhereIF(!string.IsNullOrEmpty(attributeTag), it => attributeTag.Contains(it.AttributeTag)).ToList();
t.Code = 0;
t.PageCount = listMode.Count;
t.TotalNumber = listMode.Count;
t.Data = listMode;
t.Msg = "成功";
return t;
}
/// <summary>
/// 根据用户编号获取拥有的院区列表
/// </summary>
/// <param name="userID">用户编号</param>
/// <returns></returns>
public TableModel<T_Base_Hospital> GetHospitalListByUserID(long userID)
{
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
string SqlStr = @"SELECT DISTINCT a.ID,a.Name,a.GUID
FROM T_Base_Hospital a
LEFT JOIN T_SYS_UserHospital b ON b.HospitalGUID=a.GUID
LEFT JOIN T_SYS_User c ON c.ID = b.UserID
WHERE c.ID={0} and a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0";
SqlStr = string.Format(SqlStr, userID);
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).OrderBy(it => it.ID).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>
/// <returns></returns>
public TableModel<T_Base_Hospital> GetHospitalListByUserInfo(string username,string password)
{
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
string SqlStr = @"SELECT DISTINCT a.ID,a.Name,a.GUID
FROM T_Base_Hospital a
LEFT JOIN T_SYS_UserHospital b ON b.HospitalGUID=a.GUID
LEFT JOIN T_SYS_User c ON c.ID = b.UserID
WHERE c.Nickname ={0} and c.Password={1} and a.DeleteFlag = 0 AND b.DeleteFlag = 0 AND c.DeleteFlag = 0";
SqlStr = string.Format(SqlStr, username, password);
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).OrderBy(it => it.ID).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="keyWord">关键词</param>
/// <returns></returns>
public TableModel<T_Base_Hospital> GetHospitalListNotHaveByUserID(long userID, string keyWord)
{
TableModel<T_Base_Hospital> t = new TableModel<T_Base_Hospital>();
string SqlStr = "SELECT * FROM T_Base_Hospital WHERE GUID NOT IN(SELECT HospitalGUID FROM T_SYS_UserHospital WHERE UserID = {0} AND DeleteFlag = 0) AND DeleteFlag = 0";
if (!string.IsNullOrEmpty(keyWord))
SqlStr += " And (Name LIKE '%" + keyWord + "%' OR ShortName LIKE '%" + keyWord + "%')";
SqlStr = string.Format(SqlStr, userID);
List<T_Base_Hospital> list = db.SqlQueryable<T_Base_Hospital>(SqlStr).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
/// <summary>
///
/// </summary>
/// <param name="hostpitalGUID"></param>
/// <returns></returns>
public T_Base_Hospital GethospitalGUID(string hostpitalGUID)
{
return db.Queryable<T_Base_Hospital>().First(it => it.GUID == hostpitalGUID);
}
/// <summary>
///
/// </summary>
/// <param name="hostpitalGUID"></param>
/// <returns></returns>
public List<HospitalModel> GetNameByHospitalGUID(string hostpitalGUID)
{
return db.Queryable<T_Base_Hospital>()
.Where(it => it.GUID == hostpitalGUID)
.Select(it => new HospitalModel
{
Name = SqlFunc.Subqueryable<T_Base_Hospital>().Where(i => i.GUID == it.ParentGUID).Select(i => i.Name),
GUID = it.ParentGUID
}).ToList();
}
/// <summary>
/// 查询该父节点下所有的医院
/// </summary>
/// <param name="parentGUID">父级医院GUID</param>
/// <returns></returns>
public TableModel<HospitalModel> GetHospitalOfParentGUID(string parentGUID)
{
TableModel<HospitalModel> t = new TableModel<HospitalModel>();
string sql = "SELECT Name,GUID FROM T_Base_Hospital WHERE DeleteFlag=0 AND ParentGUID='" + parentGUID + "'";
List<HospitalModel> list = db.SqlQueryable<HospitalModel>(sql).ToList();
t.Code = 0;
t.PageCount = list.Count;
t.TotalNumber = list.Count;
t.Data = list;
t.Msg = "成功";
return t;
}
#endregion 查
}
}