예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }