コード例 #1
0
        public IActionResult GetDoctorDetails(string doctorGuid)
        {
            var doctorBiz = new DoctorBiz();
            var model     = doctorBiz.GetDoctor(doctorGuid);

            if (model == null)
            {
                return(Failed(ErrorCode.Empty));
            }
            var userBiz        = new UserBiz();
            var dictionaryBiz  = new DictionaryBiz();
            var accessoryBiz   = new AccessoryBiz();
            var topicBiz       = new TopicBiz();
            var dto            = model.ToDto <GetDoctorDetailsResponseDto>();
            var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(model.PortraitGuid);

            dto.DoctorName = userBiz.GetUser(doctorGuid)?.UserName;
            dto.Title      = dictionaryBiz.GetModelById(model.TitleGuid)?.ConfigName;
            dto.Portrait   = $"{accessoryModel?.BasePath}{accessoryModel?.RelativePath}";
            var signature = accessoryBiz.GetAccessoryModelByGuid(model.SignatureGuid);

            dto.SignatureUrl = $"{signature?.BasePath}{signature?.RelativePath}";

            dto.CommentScore       = new CommentBiz().GetTargetAvgScoreAsync(model.DoctorGuid).Result;
            dto.FansVolume         = new CollectionBiz().GetListCountByTarget(model.DoctorGuid);
            dto.ConsultationVolume = doctorBiz.GetDocotrConsultationVolumeAsync(model.DoctorGuid).Result;

            return(Success(dto));
        }
コード例 #2
0
        public IActionResult GetAskedDoctorClassicQaDetails(string qaGuid)
        {
            var qaBiz         = new QaBiz();
            var doctorBiz     = new DoctorBiz();
            var accessoryBiz  = new AccessoryBiz();
            var userBiz       = new UserBiz();
            var likeBiz       = new LikeBiz();
            var dictionaryBiz = new DictionaryBiz();
            var model         = qaBiz.GetModel(qaGuid);

            if (model == null)
            {
                return(Failed(ErrorCode.Empty));
            }
            var dto = model.ToDto <GetAskedDoctorClassicQaDetailsResponseDto>();

            dto.DoctorName = userBiz.GetUser(model.AuthorGuid)?.UserName;
            var doctorModel = doctorBiz.GetDoctor(model.AuthorGuid);

            if (doctorModel != null)
            {
                var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(doctorModel.PortraitGuid);
                dto.DoctorPortrait = $"{accessoryModel?.BasePath}{accessoryModel?.RelativePath}";
                dto.HospitalGuid   = doctorModel.HospitalGuid;
                dto.HospitalName   = doctorModel.HospitalName;
                dto.JobTitle       = dictionaryBiz.GetModelById(doctorModel.TitleGuid)?.ConfigName;
            }
            dto.LikeNumber = likeBiz.GetLikeNumByTargetGuid(qaGuid);
            dto.Liked      = likeBiz.GetLikeState(UserID, qaGuid);
            return(Success(dto));
        }
コード例 #3
0
        public IActionResult GetAskedDoctorClassicQa([FromBody] GetAskedDoctorClassicQaRequestDto requestDto)
        {
            QaBiz qaBiz    = new QaBiz();
            var   qaModels = qaBiz.GetQaModels(requestDto.PageIndex, requestDto.PageSize, "where enable=true", "last_updated_date desc");

            if (qaModels == null)
            {
                return(Failed(ErrorCode.Empty));
            }

            DoctorBiz    doctorBiz    = new DoctorBiz();
            UserBiz      userBiz      = new UserBiz();
            AccessoryBiz accessoryBiz = new AccessoryBiz();
            LikeBiz      likeBiz      = new LikeBiz();
            List <GetAskedDoctorClassicQaResponseDto> dtos = new List <GetAskedDoctorClassicQaResponseDto>();

            foreach (var model in qaModels)
            {
                var dto = model.ToDto <GetAskedDoctorClassicQaResponseDto>();
                dto.DoctorName = userBiz.GetUser(model.AuthorGuid)?.UserName;
                dto.LikeNumber = likeBiz.GetLikeNumByTargetGuid(model.QaGuid);
                var doctorModel = doctorBiz.GetDoctor(model.AuthorGuid);
                if (doctorModel != null)
                {
                    var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(doctorModel.PortraitGuid);
                    dto.DoctorPortrait = accessoryModel?.BasePath + accessoryModel?.RelativePath;
                }
                dtos.Add(dto);
            }
            return(Success(dtos));
        }
コード例 #4
0
        public IActionResult GetDoctorArticleDetails(string articleGuid)
        {
            ArticleBiz articleBiz = new ArticleBiz();
            var        model      = articleBiz.GetModel(articleGuid);

            if (model == null)
            {
                return(Failed(ErrorCode.Empty));
            }
            var doctorBiz    = new DoctorBiz();
            var accessoryBiz = new AccessoryBiz();
            var userBiz      = new UserBiz();
            var likeBiz      = new LikeBiz();
            var richtextBiz  = new RichtextBiz();
            var dto          = model.ToDto <GetDoctorArticleDetailsResponseDto>();

            dto.Content    = richtextBiz.GetModel(model.ContentGuid)?.Content;
            dto.DoctorName = userBiz.GetUser(model.AuthorGuid)?.UserName;
            var doctorModel = doctorBiz.GetDoctor(model.AuthorGuid);

            if (doctorModel != null)
            {
                var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(doctorModel.PortraitGuid);
                dto.DoctorPortrait = accessoryModel?.BasePath + accessoryModel?.RelativePath;
                dto.HospitalGuid   = doctorModel.HospitalGuid;
                dto.HospitalName   = doctorModel.HospitalName;
                dto.OfficeGuid     = doctorModel.OfficeGuid;
                dto.OfficeName     = doctorModel.OfficeName;
            }
            dto.LikeNumber = likeBiz.GetLikeNumByTargetGuid(articleGuid);
            dto.Liked      = likeBiz.GetLikeState(UserID, articleGuid);
            return(Success(dto));
        }
コード例 #5
0
        public IActionResult GetUserInfo(string userId)
        {
            if (string.IsNullOrWhiteSpace(userId))
            {
                userId = UserID;
            }
            var uBiz   = new UserBiz();
            var uModel = uBiz.GetUser(userId);

            if (uModel == null || !uModel.Enable)
            {
                return(Failed(ErrorCode.DataBaseError, "用户状态不可用。"));
            }
            var accBiz   = new AccessoryBiz();
            var accModel = accBiz.GetAccessoryModelByGuid(uModel.PortraitGuid);
            var outDto   = new GetUserInfoResponseDto
            {
                Portrait       = $"{accModel?.BasePath}{accModel?.RelativePath}", // +"/" 格式确认,
                NickName       = uModel.NickName,
                Gender         = uModel.Gender,
                Birthday       = uModel.Birthday,
                UserName       = uModel.UserName,
                IdentityNumber = uModel.IdentityNumber,
                Phone          = uModel.Phone
            };

            return(Success(outDto));
        }
コード例 #6
0
        public IActionResult GetArticleInfoAsync([FromBody] GetArticleInfoRequestDto request)
        {
            var           articleBiz   = new ArticleBiz();
            var           contentBiz   = new RichtextBiz();
            AccessoryBiz  accessoryBiz = new AccessoryBiz();
            CollectionBiz collection   = new CollectionBiz();
            var           articleModel = articleBiz.GetModel(request.ArticleGuid);

            if (articleModel == null)
            {
                return(Failed(ErrorCode.DataBaseError, "数据错误"));
            }
            var richtextModel   = contentBiz.GetModel(articleModel.ContentGuid);
            var accessory       = accessoryBiz.GetAccessoryModelByGuid(articleModel.PictureGuid);
            var likeCount       = new LikeBiz().GetLikeNumByTargetGuid(articleModel.ArticleGuid);
            var pageViewCount   = new ArticleViewBiz().CountNumByTargetIDAsync(articleModel.ArticleGuid).Result;
            int collectionCount = collection.GetListCountByTarget(articleModel.ArticleGuid);

            return(Success(new GetArticleInfoResponseDto
            {
                ArticleTypeDic = articleModel.ArticleTypeDic,
                Abstract = articleModel.Abstract,
                Content = richtextModel?.Content,
                PictureGuid = articleModel.PictureGuid,
                Title = articleModel.Title,
                Visible = articleModel.Visible,
                PictureUrl = $"{accessory?.BasePath}{accessory?.RelativePath}",
                ArticleGuid = articleModel.ArticleGuid,
                ActcleReleaseStatus = articleModel.ActcleReleaseStatus.ToString(),
                CreationDate = articleModel.CreationDate,
                LikeCount = likeCount,
                VisitCount = pageViewCount,
                Collection = collectionCount
            }));
        }
コード例 #7
0
        public IActionResult GetUserArticles([FromBody] GetUserArticleRequestDto requestDto)
        {
            ArticleBiz articleBiz      = new ArticleBiz();
            var        sourceTypeWhere = string.Empty;

            if (requestDto.SourceType != null)
            {
                sourceTypeWhere = $"and source_type='{requestDto.SourceType.Value.ToString()}'";
            }
            var models = articleBiz.GetArticles(requestDto.PageIndex, requestDto.PageSize, $"where author_guid=@author_guid and actcle_release_status='Release' {sourceTypeWhere}", "last_updated_date desc", new { author_guid = requestDto.AuthorGuid });

            if (models == null)
            {
                return(Failed(ErrorCode.Empty));
            }
            var accessoryBiz  = new AccessoryBiz();
            var dictionaryBiz = new DictionaryBiz();
            var responseDtos  = new List <GetUserArticlesResponseDto>();

            foreach (var model in models)
            {
                var dto            = model.ToDto <GetUserArticlesResponseDto>();
                var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(model.PictureGuid);
                dto.Picture     = $"{accessoryModel?.BasePath}{accessoryModel?.RelativePath}";
                dto.ArticleType = dictionaryBiz.GetModelById(model.ArticleTypeDic)?.ConfigName;
                dto.PageView    = new ArticleViewBiz().CountNumByTargetIDAsync(model.ArticleGuid).Result;
                responseDtos.Add(dto);
            }
            return(Success(responseDtos));
        }
コード例 #8
0
        public async Task <IActionResult> GetClientArticleDetailAsync(string articleGuid, ArticleModel.ArticleSourceTypeEnum articleSource = ArticleModel.ArticleSourceTypeEnum.Doctor)
        {
            if (string.IsNullOrWhiteSpace(articleGuid))
            {
                return(Failed(ErrorCode.UserData, "文章Id articleGuid 不可为空"));
            }


            var        response   = new GetClientArticleDetailResponseDto();
            ArticleBiz articleBiz = new ArticleBiz();
            var        model      = articleBiz.GetModel(articleGuid);

            if (model == null)
            {
                return(Failed(ErrorCode.Empty));
            }
            var doctorBiz    = new DoctorBiz();
            var accessoryBiz = new AccessoryBiz();
            var userBiz      = new UserBiz();
            var likeBiz      = new LikeBiz();
            var richtextBiz  = new RichtextBiz();

            response.ArticleGuid     = model.ArticleGuid;
            response.Title           = model.Title;
            response.AuthorGuid      = model.AuthorGuid;
            response.LastUpdatedDate = model.LastUpdatedDate;
            response.Content         = richtextBiz.GetModel(model.ContentGuid)?.Content;
            response.LikeNumber      = likeBiz.GetLikeNumByTargetGuid(articleGuid);
            response.Liked           = likeBiz.GetLikeState(UserID, articleGuid);
            if (articleSource == ArticleModel.ArticleSourceTypeEnum.Doctor)
            {
                response.AuthorName = userBiz.GetUser(model.AuthorGuid)?.UserName;
                var doctorModel = doctorBiz.GetDoctor(model.AuthorGuid);
                if (doctorModel != null)
                {
                    var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(doctorModel.PortraitGuid);
                    response.AuthorPortrait = accessoryModel?.BasePath + accessoryModel?.RelativePath;
                    response.HospitalName   = doctorModel.HospitalName;
                    response.OfficeName     = doctorModel.OfficeName;
                }
            }
            else if (articleSource == ArticleModel.ArticleSourceTypeEnum.Manager)
            {
                response.AuthorName = (await new ManagerAccountBiz().GetAsync(model.AuthorGuid))?.UserName;
            }
            else
            {
                return(Failed(ErrorCode.UserData, $"文章来源 articleSource:{articleSource.ToString()} 数据值非法"));
            }
            return(Success(response));
        }
コード例 #9
0
        private void GetSonComment(GetTargetCommentResponseDto dto)
        {
            var commentBiz   = new CommentBiz();
            var userBiz      = new UserBiz();
            var accessoryBiz = new AccessoryBiz();
            var tmpModels    = commentBiz.GetModelsByTargetGuid(dto.CommentGuid);
            var lst          = new List <GetTargetCommentResponseDto>();

            foreach (var item in tmpModels)
            {
                var tmpDto         = item.ToDto <GetTargetCommentResponseDto>();
                var userModel      = userBiz.GetUser(item.CreatedBy);
                var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(userModel.PortraitGuid);
                tmpDto.NickName = userModel.NickName;
                tmpDto.Portrait = accessoryModel?.BasePath + accessoryModel?.RelativePath;
                GetSonComment(tmpDto);
                lst.Add(tmpDto);
            }
            dto.SonComments = lst;
        }
コード例 #10
0
        public IActionResult GetTargetComment([FromBody] GetTargetCommentRequestDto requestDto)
        {
            var commentBiz    = new CommentBiz();
            var userBiz       = new UserBiz();
            var accessoryBiz  = new AccessoryBiz();
            var commentModels = commentBiz.GetModels(requestDto.PageIndex, requestDto.PageSize, "where target_guid=@target_guid and enable=@enable", "last_updated_date desc", new { target_guid = requestDto.TargetGuid, enable = true });
            var theDtos       = new List <GetTargetCommentResponseDto>();
            var likeBiz       = new LikeBiz();

            foreach (var item in commentModels)
            {
                var dto            = item.ToDto <GetTargetCommentResponseDto>();
                var userModel      = userBiz.GetUser(item.CreatedBy);
                var accessoryModel = accessoryBiz.GetAccessoryModelByGuid(userModel.PortraitGuid);
                dto.NickName   = userModel.NickName;
                dto.Portrait   = accessoryModel?.BasePath + accessoryModel?.RelativePath;
                dto.LikeNumber = likeBiz.GetLikeNumByTargetGuid(item.CommentGuid);
                GetSonComment(dto);
                theDtos.Add(dto);
            }
            return(Success(theDtos));
        }
コード例 #11
0
        public IActionResult LoadHomePage(string userId)
        {
            if (string.IsNullOrWhiteSpace(userId))
            {
                userId = UserID;
            }
            var uBiz   = new UserBiz();
            var uModel = uBiz.GetUser(userId);

            if (uModel == null || !uModel.Enable)
            {
                return(Failed(ErrorCode.DataBaseError, "用户状态不可用。"));
            }
            var accBiz   = new AccessoryBiz();
            var accModel = accBiz.GetAccessoryModelByGuid(uModel.PortraitGuid);
            var respData = new GetUserPortraitResponseDto()
            {
                Portrait  = $"{accModel?.BasePath}{accModel?.RelativePath}",
                NickeName = uModel.NickName
            };

            return(Success(respData));
        }