public IHttpActionResult AddMeetQA(MeetInfoSubscribeDto dto) { var body = Request.Content.ReadAsStringAsync().Result; var result = _meetInfoSubscribeService.AddOrUpdateMeetQA(dto, body); return(Ok(result)); }
/// <summary> /// 获取问卷列表 /// </summary> /// <param name="rowNum"></param> /// <returns></returns> public ReturnValueModel GetQuestionList(MeetInfoSubscribeDto dto, string body) { ReturnValueModel rvm = new ReturnValueModel(); var rowNum = RongJsonUtil.JsonStringToObj <RowNumModel <QuestionModel> >(body); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } var list = _rep.Where <QuestionModel>(s => s.IsDeleted != 1 && string.IsNullOrEmpty(s.MeetId)).Where(rowNum.SearchParams); var total = list.Count(); var rows = list.OrderByDescending(s => s.CreateTime).ToPaginationList(rowNum.PageIndex, rowNum.PageSize); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total = total, rows = rows }; return(rvm); }
public IHttpActionResult QuestionList(MeetInfoSubscribeDto dto) { var body = Request.Content.ReadAsStringAsync().Result; var result = _meetInfoSubscribeService.GetQuestionList(dto, body); return(Ok(result)); }
/// <summary> /// 获取BU /// </summary> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetBu(MeetInfoSubscribeDto dto) { ReturnValueModel rvm = new ReturnValueModel(); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } var pros = _rep.Table <ProductInfo>(); var depts = _rep.Table <DepartmentInfo>(); var list = from a in _rep.Table <BuProDeptRel>() group a by a.BuName into g1 select new { BuName = g1.Key, DeptPro = from b in g1 join c in pros on b.ProId equals c.Id where b.BuName == g1.Key group b by c into g2 select new { ProId = g2.Key.Id, ProName = g2.Key.ProductName, ProUrl = g2.Key.ProductUrl, Depts = from d in g2 join e in depts on d.DeptId equals e.Id select new { e.DepartmentName, e.DepartmentType, e.Id } } }; rvm.Success = true; rvm.Msg = ""; rvm.Result = new { list }; return(rvm); }
public IHttpActionResult BuProDeptRelMap([FromUri] MeetInfoSubscribeDto dto) { var result = _meetInfoSubscribeService.GetBu(dto); return(Ok(result)); }
/// <summary> /// 新增会议信息 /// </summary> /// <param name="meetInfo"></param> /// <returns></returns> public ReturnValueModel AddMeetInfo(MeetInfoSubscribeDto dto, string body) { ReturnValueModel rvm = new ReturnValueModel(); var meetInfoView = RongJsonUtil.JsonStringToObj <MeetInfoViewDtoModel>(body); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } string MeetType = string.Empty; if (meetInfoView?.Meet == null) { rvm.Msg = "The parameter 'Meet' is required."; rvm.Success = false; return(rvm); } if (meetInfoView?.Schedules == null || meetInfoView.Schedules.Count() == 0) { rvm.Msg = "The parameter 'Schedules' is required, and cannot be empty."; rvm.Success = false; return(rvm); } MeetInfo meet = null; if (!string.IsNullOrEmpty(meetInfoView.Meet.Id)) { meet = _rep.FirstOrDefault <MeetInfo>(s => s.Id == meetInfoView.Meet.Id && s.IsDeleted != 1); } //if (meet != null && meet.MeetStartTime.HasValue && meet.MeetStartTime <= DateTime.Now) //{ // rvm.Msg = "This meeting is started, cannot change it now."; // rvm.Success = false; // return rvm; //} // var approvalEnabled = false; //是否启用审核 using (var tran = _rep.Database.BeginTransaction()) { try { if (meet == null) { meetInfoView.Meet.Id = Guid.NewGuid().ToString(); meetInfoView.Meet.CreateTime = DateTime.Now; meetInfoView.Meet.CreateUser = "******"; meetInfoView.Meet.IsCompleted = EnumComplete.Approved; meetInfoView.Meet.Remark = "第三方调用"; } meet = meetInfoView.Meet; _rep.Insert(meet); _rep.SaveChanges(); //线下会议需要生成签到二维码 if ((meet.MeetType == 2 || meet.MeetType == 3) && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id); } //全国会议 if (meet.MeetType == 4 && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id, 5); } //直播会议 if (meet.MeetType == 5 && string.IsNullOrEmpty(meet.MeetCodeUrl)) { meet.MeetCodeUrl = GetQRImgUrl(meet.Id, 6); } //添加参会医生名单 if (meetInfoView.DoctorList != null) { foreach (var item in meetInfoView.DoctorList) { DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), DoctorID = item, MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); } _rep.SaveChanges(); } else { //全部人员都可访问 DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), DoctorID = "00000000-0000-0000-0000-000000000000", MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); _rep.SaveChanges(); } //添加标签分组信息 if (meetInfoView.TagGroupList != null) { foreach (var item in meetInfoView.TagGroupList) { DoctorMeeting doctorMeeting = new DoctorMeeting { Id = Guid.NewGuid().ToString(), TagGroupID = item, MeetingID = meet.Id, CreateUser = "******", CreateTime = DateTime.Now }; _rep.Insert(doctorMeeting); } _rep.SaveChanges(); } //添加封面图片 if (meetInfoView.CoverPictures != null) { foreach (var item in meetInfoView.CoverPictures) { if (string.IsNullOrEmpty(item?.MeetPicType) || string.IsNullOrEmpty(item?.MeetPicUrl)) { continue; //过滤空数据 } item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; switch (item.MeetPicType) { case "L": meet.MeetCoverBig = item.Id; break; case "S": meet.MeetCoverSmall = item.Id; break; } item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } _rep.Update(meet); _rep.SaveChanges(); //添加会议资料 if (meetInfoView.Files != null) { foreach (var item in meetInfoView.Files) { item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } //添加讲者 if (meetInfoView.Speakers != null) { foreach (var item in meetInfoView.Speakers) { item.Id = Guid.NewGuid().ToString(); item.MeetId = meet.Id; item.CreateTime = DateTime.Now; item.CreateUser = "******"; _rep.Insert(item); _rep.SaveChanges(); } } //添加会议日程 if (meetInfoView.Schedules != null) { DateTime?startTime = null; DateTime?endTime = null; foreach (var item in meetInfoView.Schedules) { var scheduledate = item.ScheduleDate; scheduledate = Convert.ToDateTime(scheduledate).ToString("yyyy-MM-dd"); MeetSchedule Schedule; foreach (var val in item.ScheduleViews) { if (meetInfoView.Speakers == null || meetInfoView.Speakers.Count() == 0) { val.Speaker.Id = Guid.NewGuid().ToString(); val.Speaker.MeetId = meet.Id; val.Speaker.CreateTime = DateTime.Now; val.Speaker.CreateUser = "******"; _rep.Insert(val.Speaker); _rep.SaveChanges(); } else { val.Speaker.Id = meetInfoView.Speakers.First(s => s.SpeakerName == val.Speaker.SpeakerName)?.Id; } Schedule = new MeetSchedule(); Schedule.Id = Guid.NewGuid().ToString(); Schedule.MeetId = meet.Id; Schedule.MeetSpeakerId = val.Speaker.Id; Schedule.ScheduleStart = DateTime.Parse(scheduledate + " " + val.Schedule.ScheduleStart); Schedule.ScheduleEnd = DateTime.Parse(scheduledate + " " + val.Schedule.ScheduleEnd); Schedule.ScheduleContent = val.Schedule.ScheduleContent; Schedule.Sort = val.Schedule.Sort; Schedule.AMPM = val.Schedule.AMPM; Schedule.Topic = val.Schedule.Topic; Schedule.Speaker = val.Schedule.Speaker; Schedule.CreateTime = DateTime.Now; Schedule.CreateUser = "******"; Schedule.Remark = scheduledate; if (!startTime.HasValue || Schedule.ScheduleStart < startTime) { startTime = Schedule.ScheduleStart; } if (!endTime.HasValue || Schedule.ScheduleEnd > endTime) { endTime = Schedule.ScheduleEnd; } _rep.Insert(Schedule); } } if (startTime.HasValue) { meet.MeetStartTime = startTime; } if (endTime.HasValue) { meet.MeetEndTime = endTime; } _rep.Update(meet); _rep.SaveChanges(); } //添加会议和产品和科室关系表 if (meetInfoView.ProductAndDeps != null && meetInfoView.ProductAndDeps.BuNameList != null && meetInfoView.ProductAndDeps.Products != null && meetInfoView.ProductAndDeps.Departments != null) { MeetAndProAndDepRelation meetAndProAndDep; foreach (var buName in meetInfoView.ProductAndDeps.BuNameList) { foreach (var pro in meetInfoView.ProductAndDeps.Products) { foreach (var dep in meetInfoView.ProductAndDeps.Departments) { meetAndProAndDep = new MeetAndProAndDepRelation(); meetAndProAndDep.Id = Guid.NewGuid().ToString(); meetAndProAndDep.MeetId = meet.Id; meetAndProAndDep.ProductId = pro.ProId; meetAndProAndDep.DepartmentId = dep.DeptId; meetAndProAndDep.BuName = buName; meetAndProAndDep.CreateTime = DateTime.Now; meetAndProAndDep.CreateUser = "******"; _rep.Insert(meetAndProAndDep); } } } _rep.SaveChanges(); } //会议标识 if (meetInfoView.Tags != null) { MeetTag meetTag; foreach (var item in meetInfoView.Tags) { meetTag = new MeetTag(); meetTag.Id = Guid.NewGuid().ToString(); meetTag.MeetId = meet.Id; meetTag.TagId = item.Id; meetTag.CreateTime = DateTime.Now; meetTag.CreateUser = "******"; meetTag.Remark = "第三方调用"; _rep.Insert(meetTag); } _rep.SaveChanges(); } tran.Commit(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { meet = meet ?? meetInfoView.Meet }; } catch (Exception ex) { tran.Rollback(); rvm.Msg = ex.Message; rvm.Success = false; } } return(rvm); }
/// <summary> /// 从其它会议导入题目或者从题库中选择题目 /// </summary> /// <param name="meetQAs"></param> /// <returns></returns> public ReturnValueModel AddOrUpdateMeetQA(MeetInfoSubscribeDto dto, string body) { ReturnValueModel rvm = new ReturnValueModel(); var meetQAs = RongJsonUtil.JsonStringToObj <MeetQARelationViewModel>(body); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } IEnumerable <string> questionIdList; IEnumerable <MeetQAContentViewModel> listNew; if (string.IsNullOrEmpty(meetQAs?.MeetId)) { rvm.Msg = "The parameter 'MeetId' is required."; rvm.Success = false; return(rvm); } //如果来源会议Id不为空,说明是过往会议的问卷添加 if (!string.IsNullOrEmpty(meetQAs?.FromMeetId)) { if (!meetQAs.FromQAType.HasValue) { rvm.Msg = "The parameter 'FromQAType' is required if exsits 'FromMeetId'."; rvm.Success = false; return(rvm); } questionIdList = _rep.Where <MeetQAModel>(s => s.MeetId == meetQAs.FromMeetId && s.QAType == meetQAs.FromQAType).Select(s => s.QuestionId).Distinct(); } else if (meetQAs?.meetQAs != null) { questionIdList = meetQAs.meetQAs.Select(s => s?.QuestionId).Distinct(); } else { rvm.Msg = "One of parameter 'meetQAs' or 'FromMeetId' is required."; rvm.Success = false; return(rvm); } questionIdList = questionIdList.ToList(); listNew = from b in _rep.Where <QuestionModel>(s => s.IsDeleted != 1 && questionIdList.Contains(s.Id)) join c in _rep.Where <AnswerModel>(s => s.IsDeleted != 1) on b.Id equals c.QuestionId into bc from c1 in bc.DefaultIfEmpty() group c1 by b into g1 select new MeetQAContentViewModel { Question = g1.Key, Answers = from v1 in g1 where v1 != null select v1 }; listNew = listNew.ToList(); using (var tran = _rep.Database.BeginTransaction()) { try { if (listNew.Count() > 0) { //_rep.DeleteList(list); foreach (var item in listNew) { var question = item.Question; if (question.MeetId != meetQAs.MeetId) { //题库或者其他会议的题目,需要复制 question = new QuestionModel { Id = Guid.NewGuid().ToString(), MeetId = meetQAs.MeetId, QuestionType = item.Question.QuestionType, QuestionContent = item.Question.QuestionContent, QuestionOfA = item.Question.QuestionOfA }; _rep.Insert(question); foreach (var a in item.Answers) { var answer = new AnswerModel { Id = Guid.NewGuid().ToString(), QuestionId = question.Id, AnswerContent = a.AnswerContent, Sort = a.Sort, IsRight = a.IsRight }; _rep.Insert(answer); } } if (question.MeetId == meetQAs.MeetId && meetQAs.FromQAType != meetQAs.QAType) { //题库或者其他会议的题目,需要复制 question = new QuestionModel { Id = Guid.NewGuid().ToString(), MeetId = meetQAs.MeetId, QuestionType = item.Question.QuestionType, QuestionContent = item.Question.QuestionContent, QuestionOfA = item.Question.QuestionOfA }; _rep.Insert(question); foreach (var a in item.Answers) { var answer = new AnswerModel { Id = Guid.NewGuid().ToString(), QuestionId = question.Id, AnswerContent = a.AnswerContent, Sort = a.Sort, IsRight = a.IsRight }; _rep.Insert(answer); } } var meetQA = new MeetQAModel { Id = Guid.NewGuid().ToString(), MeetId = meetQAs.MeetId, QAType = meetQAs.QAType, QuestionId = question.Id, CreateTime = DateTime.Now, CreateUser = "******" }; _rep.Insert(meetQA); } _rep.SaveChanges(); } tran.Commit(); rvm.Msg = "success"; rvm.Success = true; } catch (Exception e) { tran.Rollback(); rvm.Msg = "fail"; rvm.Success = false; } } return(rvm); }
/// <summary> /// 获取会议列表,用于选择过往会议的问卷 /// </summary> /// <param name="workUser"></param> /// <returns></returns> public ReturnValueModel GetMeetListOfQA(MeetInfoSubscribeDto dto, string body) { ReturnValueModel rvm = new ReturnValueModel(); var rowNum = RongJsonUtil.JsonStringToObj <RowNumModel <MeetSearchViewModel> >(body); string loginSecretkey = ConfigurationManager.AppSettings["ThirdPartyKey"]; string signature = RongHttpClient.GetHash(loginSecretkey + dto.Nonce + dto.SignTimestamp); if (signature.ToUpper() != dto.Signature.ToUpper()) { var massage = string.Format("Error:input={0}==>service={1},{2}", dto.Signature, signature, RongJsonUtil.ObjToJsonString(dto)); LoggerHelper.Error(massage); rvm.Success = false; rvm.Msg = massage; return(rvm); } var listQA = from A in _rep.Where <MeetQAModel>(s => s.IsDeleted != 1) group A by new { A.MeetId, A.QAType } into g1 select g1.Key; var list = from A in _rep.Where <MeetInfo>(s => s.IsCompleted == EnumComplete.Approved) join B in listQA on A.Id equals B.MeetId group B by A into g1 select new { Meet = g1.Key, IsMeetEnd = DateTime.Now > g1.Key.MeetEndTime ? 2 : DateTime.Now < g1.Key.MeetStartTime ? 0 : 1, HasQABefore = g1.Any(s => s.QAType == 1), //是否有会前问卷 HasQAAfter = g1.Any(s => s.QAType == 2) //是否有会后问卷 }; if (rowNum?.SearchParams != null) { if (rowNum.SearchParams.Meet != null) { //会议标题 if (!string.IsNullOrEmpty(rowNum.SearchParams.Meet.MeetTitle)) { list = list.Where(s => s.Meet.MeetTitle.Contains(rowNum.SearchParams.Meet.MeetTitle)); } //会议类型 if (rowNum.SearchParams.Meet.MeetType != null && rowNum.SearchParams.Meet.MeetType != 0) { list = list.Where(s => s.Meet.MeetType == rowNum.SearchParams.Meet.MeetType); } } //会议开始时间结束时间 if (rowNum.SearchParams.Meet_Start.HasValue && rowNum.SearchParams.Meet_End.HasValue) { DateTime startTime = rowNum.SearchParams.Meet_Start.Value; DateTime endTime = rowNum.SearchParams.Meet_End.Value.AddDays(1); list = list.Where(s => s.Meet.MeetStartTime < endTime && s.Meet.MeetEndTime >= startTime); } } var total = list.Count(); var rows = list.OrderByDescending(s => s.Meet.CreateTime).ToPaginationList(rowNum?.PageIndex, rowNum?.PageSize).ToList(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = new { total, rows }; return(rvm); }