/// <summary> /// 获取医院公共排班 /// </summary> /// <returns></returns> private List <DoctorScheduleDto> GetHosWorktime() { var cacheKey = new EntityListCacheKey <DoctorScheduleDto>(StringCacheKeyType.Hospital_Worktime, "99999"); var hostimes = cacheKey.FromCache(); if (hostimes == null || hostimes.Count <= 0) { using (var db = new DBEntities()) { hostimes = (from h in db.HospitalWorkingTimes select new DoctorScheduleDto { StartTime = h.StartTime, EndTime = h.EndTime, }).ToList(); hostimes.ToCache(cacheKey); } } return(hostimes); }
/// <summary> /// 开通或设置医生服务(支持单项服务设置) /// </summary> /// <param name="list">服务列表</param> /// <param name="doctorID">医生</param> /// <returns></returns> public EnumApiStatus DoctorServiceSettings(List <RequestDoctorServiceSettingDTO> list, string doctorID) { var result = EnumApiStatus.BizError; using (var db = new DBEntities()) { var serviceList = db.DoctorServices.Where(i => i.DoctorID == doctorID).ToList(); list.ForEach(model => { #region 添加或修改服务 var entity = serviceList.Where(i => i.ServiceType == model.ServiceType).FirstOrDefault(); if (entity == null) { entity = new Entity.DoctorService() { DoctorID = doctorID, ServiceType = model.ServiceType, ServicePrice = model.ServicePrice, ServiceSwitch = model.ServiceSwitch == 1 ? true : false, }; PreInsert(db, entity); serviceList.Add(entity); } else { entity.IsDeleted = false; entity.ServicePrice = model.ServicePrice; entity.ServiceSwitch = model.ServiceSwitch == 1 ? true : false; } #endregion }); #region 图文咨询、语音咨询和视频咨询都是开启状态,才能手动开启家族服务 var familyModel = list.Where(i => i.ServiceType == EnumDoctorServiceType.FamilyDoctor && i.ServiceSwitch == 1).FirstOrDefault(); if (familyModel != null) { if (serviceList.Count(i => (i.ServiceType == EnumDoctorServiceType.PicServiceType || i.ServiceType == EnumDoctorServiceType.AudServiceType || i.ServiceType == EnumDoctorServiceType.VidServiceType) && i.ServiceSwitch == true && i.IsDeleted == false) < 3) { return(EnumApiStatus.BizDoctorServiceNotOpenFamilyDoctorService); } } #endregion #region 如果图文咨询、语音、视频咨询没有开启,那么家庭医生需要关闭 var isClose = serviceList.Where(i => (i.ServiceType == EnumDoctorServiceType.PicServiceType || i.ServiceType == EnumDoctorServiceType.AudServiceType || i.ServiceType == EnumDoctorServiceType.VidServiceType) && i.ServiceSwitch == false && i.IsDeleted == false).FirstOrDefault() != null ? true : false; if (isClose == true) { var familyEntity = serviceList.Where(i => i.ServiceType == EnumDoctorServiceType.FamilyDoctor && i.IsDeleted == false && i.ServiceSwitch == true).FirstOrDefault(); if (familyEntity != null) { familyEntity.ServiceSwitch = false; } } #endregion //result = db.SaveChanges() > 0 ? EnumApiStatus.BizOK : EnumApiStatus.BizError; var res = db.SaveChanges(); result = EnumApiStatus.BizOK; //清缓存 if (result == EnumApiStatus.BizOK) { var CacheKey = new EntityListCacheKey <ResponseDoctorServicePriceDTO>(StringCacheKeyType.Doctor_ServicePrice, doctorID); CacheKey.RemoveCache(); var DoctorServiceSetting_CacheKey = new EntityCacheKey <ResponseDoctorServicePriceDTO>(StringCacheKeyType.Doctor_ServicePrice, doctorID); DoctorServiceSetting_CacheKey.RemoveCache(); } } return(result); }