(#16)添加医疗机构查询
This commit is contained in:
parent
aaf152055d
commit
e1a088bbb6
|
@ -1,6 +1,8 @@
|
|||
using System;
|
||||
using Newtonsoft.Json;
|
||||
using StackExchange.Redis;
|
||||
using CommonClass.Factory;
|
||||
using Autofac;
|
||||
|
||||
namespace Cmdjy.Bll
|
||||
{
|
||||
|
@ -17,6 +19,14 @@ namespace Cmdjy.Bll
|
|||
}
|
||||
}
|
||||
|
||||
public class CacheRegister:IRegister
|
||||
{
|
||||
public void Register(ContainerBuilder builder) {
|
||||
builder.Register<ICache>(c => new RedisHelper());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public interface ICache
|
||||
{
|
||||
/// <summary>
|
||||
|
@ -45,6 +55,11 @@ namespace Cmdjy.Bll
|
|||
/// <param name="obj">缓存的数据</param>
|
||||
/// <param name="timeSpan">缓存时间</param>
|
||||
void SetData<T>(string key,T obj,TimeSpan timeSpan);
|
||||
/// <summary>
|
||||
/// 删除数据缓存
|
||||
/// </summary>
|
||||
/// <param name="key">数据的键</param>
|
||||
void RemoveData(string key);
|
||||
}
|
||||
/// <summary>
|
||||
/// 数据缓存实现类
|
||||
|
@ -98,5 +113,10 @@ namespace Cmdjy.Bll
|
|||
if(value == null) return null;
|
||||
return JsonConvert.DeserializeObject<T>(value);
|
||||
}
|
||||
|
||||
public void RemoveData(string key) {
|
||||
if(!Usable) return;
|
||||
this.Database.KeyDelete(key);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Linq;
|
||||
using Cmdjy.Dal;
|
||||
using Cmdjy.Dal.Tables;
|
||||
using CommonClass.Factory;
|
||||
|
||||
namespace Cmdjy.Bll.DataQuery
|
||||
{
|
||||
/// <summary>
|
||||
/// 医疗机构信息数据查询
|
||||
/// </summary>
|
||||
public interface IHospitalInfoDataQuery:IDataQuery<HospitalInfo> { }
|
||||
|
||||
public class HospitalInfoDataQuery:IHospitalInfoDataQuery, IRegisterBaseInterface
|
||||
{
|
||||
public DataQueryConfig Config { get; set; }
|
||||
public ICache Cache { get; set; }
|
||||
public DjyDbContext Db { get; set; }
|
||||
|
||||
public HospitalInfoDataQuery(DataQueryConfig con,ICache ca,DjyDbContext db) {
|
||||
this.Config = con; this.Cache = ca; this.Db = db;
|
||||
}
|
||||
|
||||
public HospitalInfo AddNew(HospitalInfo one) {
|
||||
this.Db.Entry(one).State = EntityState.Added;
|
||||
this.Db.SaveChanges();
|
||||
this.Cache.SetData(_getKey(one.Id.ToString()),one,Config.CacheTimeSpan);
|
||||
return one;
|
||||
}
|
||||
|
||||
public IEnumerable<HospitalInfo> GetAll() {
|
||||
IEnumerable<HospitalInfo> result = null;
|
||||
if(this.Config.EnableCache) {
|
||||
result = this.Cache.GetData<IEnumerable<HospitalInfo>>(_getKey());
|
||||
}
|
||||
if(result == null) {
|
||||
result = GetQuery(this.Db,null).ToList();
|
||||
this.Cache.SetData(_getKey(),result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public HospitalInfo GetOneById(params object[] id) {
|
||||
HospitalInfo result = null;
|
||||
if(this.Config.EnableCache) {
|
||||
result = this.Cache.GetData<HospitalInfo>(_getKey(id[0].ToString()));
|
||||
}
|
||||
if(result == null) {
|
||||
result = this.Db.HospitalInfos.Find(id);
|
||||
this.Cache.SetData(_getKey(id[0].ToString()),result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public IQueryable<HospitalInfo> GetQuery(DjyDbContext db,DataFilterBase filter) {
|
||||
return db.HospitalInfos.AsQueryable();
|
||||
}
|
||||
|
||||
public HospitalInfo Remove(HospitalInfo one) {
|
||||
this.Db.Entry(one).State = EntityState.Deleted;
|
||||
this.Db.SaveChanges();
|
||||
this.Cache.RemoveData(_getKey(one.Id.ToString()));
|
||||
return one;
|
||||
}
|
||||
|
||||
public HospitalInfo Updata(HospitalInfo one) {
|
||||
this.Db.Entry(one).State = EntityState.Modified;
|
||||
this.Db.SaveChanges();
|
||||
this.Cache.RemoveData(_getKey(one.Id.ToString()));
|
||||
this.Cache.SetData(_getKey(one.Id.ToString()),one);
|
||||
return one;
|
||||
}
|
||||
|
||||
private string _getKey(string id) => $"HospitalInfo:Id:{id}";
|
||||
private string _getKey() => "HospitalInfo:All";
|
||||
}
|
||||
}
|
74
WebSiteCode/Cmdjy/Cmdjy/Bll/DataQuery/IDataQuery.cs
Normal file
74
WebSiteCode/Cmdjy/Cmdjy/Bll/DataQuery/IDataQuery.cs
Normal file
|
@ -0,0 +1,74 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using CommonClass.Factory;
|
||||
using System;
|
||||
using Cmdjy.Dal;
|
||||
|
||||
namespace Cmdjy.Bll.DataQuery
|
||||
{
|
||||
/// <summary>
|
||||
/// 业务逻辑层数据查询接口
|
||||
/// </summary>
|
||||
public interface IDataQuery<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// 查询配置
|
||||
/// </summary>
|
||||
DataQueryConfig Config { get; set; }
|
||||
/// <summary>
|
||||
/// 获取所有数据,可以从缓冲区获取
|
||||
/// </summary>
|
||||
/// <returns>数据枚举</returns>
|
||||
IEnumerable<T> GetAll();
|
||||
/// <summary>
|
||||
/// 通过Id获取数据。
|
||||
/// </summary>
|
||||
/// <param name="id">数据的Id</param>
|
||||
/// <returns>获取到的数据或Null</returns>
|
||||
T GetOneById(params object[] id);
|
||||
/// <summary>
|
||||
/// 获取数据查询。
|
||||
/// </summary>
|
||||
/// <param name="filter">查询筛选器</param>
|
||||
/// <returns>数据查询</returns>
|
||||
IQueryable<T> GetQuery(DjyDbContext db,DataFilterBase filter);
|
||||
/// <summary>
|
||||
/// 添加新数据
|
||||
/// </summary>
|
||||
/// <param name="one">要添加的数据</param>
|
||||
/// <returns>添加后的数据</returns>
|
||||
T AddNew(T one);
|
||||
/// <summary>
|
||||
/// 删除数据
|
||||
/// </summary>
|
||||
/// <param name="one">要删除的数据</param>
|
||||
/// <returns>删除后的数据</returns>
|
||||
T Remove(T one);
|
||||
/// <summary>
|
||||
/// 要更新的数据
|
||||
/// </summary>
|
||||
/// <param name="one">要更新的数据。</param>
|
||||
/// <returns>更新后的数据</returns>
|
||||
T Updata(T one);
|
||||
}
|
||||
/// <summary>
|
||||
/// 数据筛选器基类
|
||||
/// </summary>
|
||||
public class DataFilterBase
|
||||
{
|
||||
}
|
||||
/// <summary>
|
||||
/// 数据查询配置
|
||||
/// </summary>
|
||||
public class DataQueryConfig:IRegisterSelf
|
||||
{
|
||||
/// <summary>
|
||||
/// 是否允许使用缓冲
|
||||
/// </summary>
|
||||
public bool EnableCache { get; set; } = true;
|
||||
/// <summary>
|
||||
/// 缓冲过期时间
|
||||
/// </summary>
|
||||
public TimeSpan CacheTimeSpan { get; set; } = WebSettings.DefaultCacheTimeSpan;
|
||||
}
|
||||
}
|
|
@ -194,12 +194,15 @@
|
|||
<Compile Include="App_Start\FilterConfig.cs" />
|
||||
<Compile Include="App_Start\RouteConfig.cs" />
|
||||
<Compile Include="Bll\BackgroundTask.cs" />
|
||||
<Compile Include="Bll\DataQuery\HospitalInfoDataQuery.cs" />
|
||||
<Compile Include="Bll\DataQuery\IDataQuery.cs" />
|
||||
<Compile Include="Bll\DesHelper.cs" />
|
||||
<Compile Include="Bll\Cache.cs" />
|
||||
<Compile Include="Controllers\CompanyController.cs" />
|
||||
<Compile Include="Controllers\ControllerBase.cs" />
|
||||
<Compile Include="Controllers\HisInfoController.cs" />
|
||||
<Compile Include="Controllers\HisUpdataController.cs" />
|
||||
<Compile Include="Controllers\HospitalInfoController.cs" />
|
||||
<Compile Include="Controllers\WsdInterfaceController.cs" />
|
||||
<Compile Include="Dal\Configuration.cs" />
|
||||
<Compile Include="Dal\DbContextFactory.cs" />
|
||||
|
@ -286,6 +289,7 @@
|
|||
<ItemGroup>
|
||||
<Folder Include="App_Data\" />
|
||||
<Folder Include="Views\HisUpdata\" />
|
||||
<Folder Include="Views\HospitalInfo\" />
|
||||
<Folder Include="Views\Test\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -30,3 +30,11 @@ table {
|
|||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
}
|
||||
|
||||
pre {
|
||||
white-space: pre-wrap;
|
||||
white-space: -moz-pre-wrap;
|
||||
white-space: -pre-wrap;
|
||||
white-space: -o-pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,9 @@ using Cmdjy.Models;
|
|||
|
||||
namespace Cmdjy.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 医疗机构处方、药品信息控制器
|
||||
/// </summary>
|
||||
public class HisInfoController:Controller
|
||||
{
|
||||
/// <summary>
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using Cmdjy.Bll.DataQuery;
|
||||
using Cmdjy.Dal;
|
||||
|
||||
namespace Cmdjy.Controllers
|
||||
{
|
||||
/// <summary>
|
||||
/// 医疗机构信息控制器
|
||||
/// </summary>
|
||||
public class HospitalInfoController:ControllerBase
|
||||
{
|
||||
public Lazy<IHospitalInfoDataQuery> HosInfo { get; set; }
|
||||
|
||||
public ActionResult Index() {
|
||||
return View();
|
||||
}
|
||||
|
||||
public ActionResult HospitalList() {
|
||||
var model = this.HosInfo.Value.GetAll();
|
||||
return Json(model,JsonRequestBehavior.AllowGet);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,6 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
|
||||
namespace Cmdjy.Dal.Tables
|
||||
{
|
||||
|
@ -24,12 +21,35 @@ namespace Cmdjy.Dal.Tables
|
|||
/// </summary>
|
||||
public string HosName { get; set; }
|
||||
/// <summary>
|
||||
/// 医疗机构代煎药联系电话
|
||||
/// </summary>
|
||||
public string HosPhone { get; set; }
|
||||
/// <summary>
|
||||
/// 医疗机构地址
|
||||
/// </summary>
|
||||
public string HosAddress { get; set; }
|
||||
/// <summary>
|
||||
/// 前置机地址
|
||||
/// </summary>
|
||||
public string FrontAddress { get; set; }
|
||||
/// <summary>
|
||||
/// 记录状态
|
||||
/// </summary>
|
||||
public int Status { get; set; }
|
||||
public HospitalInfoStatus Status { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// 记录状态
|
||||
/// </summary>
|
||||
[Flags]
|
||||
public enum HospitalInfoStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 无效
|
||||
/// </summary>
|
||||
Disable = 0,
|
||||
/// <summary>
|
||||
/// 有效
|
||||
/// </summary>
|
||||
Enable = 1,
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
using Autofac;
|
||||
using Autofac.Integration.Mvc;
|
||||
using CommonClass.Factory;
|
||||
using Autofac.Integration;
|
||||
|
||||
namespace Cmdjy
|
||||
{
|
||||
|
@ -30,7 +31,12 @@ namespace Cmdjy
|
|||
}
|
||||
|
||||
private static void _iocFactory_BeforeBuild(IOCFactory arg1,ContainerBuilder arg2) {
|
||||
//注册控制器
|
||||
arg2.RegisterControllers(typeof(IOC).Assembly).PropertiesAutowired();
|
||||
//注入特性
|
||||
arg2.RegisterFilterProvider();
|
||||
//注册模型绑定
|
||||
arg2.RegisterModelBinderProvider();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
|
||||
</appSettings>
|
||||
<connectionStrings>
|
||||
<!--<add name="DjyDbContext" connectionString="Data Source=FALCON-PC\SQLSERVER2008R2;Persist Security info=True;Initial Catalog=cmdjy;Integrated Security=True" providerName="System.Data.SqlClient" />-->
|
||||
<add name="DjyDbContext" connectionString="Data Source=10.244.216.112;Initial Catalog=cmdjy;User ID=cmdjy;Password=win@00*" providerName="System.Data.SqlClient" />
|
||||
<add name="DjyDbContext" connectionString="Data Source=FALCON-PC\SQLSERVER2008R2;Persist Security info=True;Initial Catalog=cmdjy;Integrated Security=True" providerName="System.Data.SqlClient" />
|
||||
<!--<add name="DjyDbContext" connectionString="Data Source=10.244.216.112;Initial Catalog=cmdjy;User ID=cmdjy;Password=win@00*" providerName="System.Data.SqlClient" />-->
|
||||
</connectionStrings>
|
||||
<system.web>
|
||||
<compilation debug="true" targetFramework="4.6.1" />
|
||||
|
|
Loading…
Reference in New Issue
Block a user