/** * 批量设置用户标签 */ public ResponseResult BatchSet(TagModel tagModel) { String message = CommonUtil.CheckFiled(tagModel, PATH, CheckMethod.TAG_BATCH_SET); if (null != message) { return((ResponseResult)RongJsonUtil.JsonStringToObj <ResponseResult>(message)); } String body = RongJsonUtil.ObjToJsonString(tagModel); String result = RongHttpClient.ExecutePost(appKey, appSecret, body, rongCloud.ApiHostType.Type + "/user/tag/batch/set.json", "application/json"); return((ResponseResult)RongJsonUtil.JsonStringToObj <ResponseResult>(CommonUtil.GetResponseByCode(PATH, CheckMethod.TAG_BATCH_SET, result))); }
/** * 推送 * * @param push 推送数据 * @return PushResult **/ public PushResult Send(PushModel push) { // 需要校验的字段 String message = CommonUtil.CheckFiled(push, PATH, CheckMethod.PUSH); if (null != message) { return((PushResult)RongJsonUtil.JsonStringToObj <PushResult>(message)); } String body = RongJsonUtil.ObjToJsonString(push); String result = RongHttpClient.ExecutePost(appKey, appSecret, body, RongCloud.ApiHostType.Type + "/push.json", "application/json"); return((PushResult)RongJsonUtil.JsonStringToObj <PushResult>(CommonUtil.GetResponseByCode(PATH, CheckMethod.BROADCAST, result))); }
/** * 广播 * * @param broadcast 广播数据 * @return PushResult **/ public async Task <PushResult> Send(BroadcastModel broadcast) { // 需要校验的字段 string message = CommonUtil.CheckFiled(broadcast, PATH, CheckMethod.BROADCAST); if (null != message) { return(RongJsonUtil.JsonStringToObj <PushResult>(message)); } string body = RongJsonUtil.ObjToJsonString(broadcast); string result = await RongHttpClient.ExecutePost(appKey, appSecret, body, RongCloud.ApiHostType.Type + "/push.json", "application/json"); return(RongJsonUtil.JsonStringToObj <PushResult>(CommonUtil.GetResponseByCode(PATH, CheckMethod.BROADCAST, result))); }
/** * 设置用户标签 */ public async Task <ResponseResult> Set(TagModel tagModel) { //需要校验的字段 string message = CommonUtil.CheckFiled(tagModel, PATH, CheckMethod.TAG_SET); if (null != message) { return(RongJsonUtil.JsonStringToObj <ResponseResult>(message)); } string body = RongJsonUtil.ObjToJsonString(tagModel); string result = await RongHttpClient.ExecutePost(appKey, appSecret, body, RongCloud.ApiHostType.Type + "/user/tag/set.json", "application/json"); return(RongJsonUtil.JsonStringToObj <ResponseResult>( CommonUtil.GetResponseByCode(PATH, CheckMethod.TAG_SET, result))); }
/// <summary> /// 融云-消息路由 /// </summary> public dynamic TemplateRouteCallback(TemplateRouteInputDto inputDto) { var form = HttpContext.Current?.Request?.Form; var items = form.AllKeys.SelectMany(form.GetValues, (k, v) => new { key = k, value = v }); var fromUserId = items.FirstOrDefault(o => o.key.ToUpper() == "FROMUSERID")?.value; var toUserId = items.FirstOrDefault(o => o.key.ToUpper() == "TOUSERID")?.value; var objectName = items.FirstOrDefault(o => o.key.ToUpper() == "OBJECTNAME")?.value; var content = items.FirstOrDefault(o => o.key.ToUpper() == "CONTENT")?.value; var channelType = items.FirstOrDefault(o => o.key.ToUpper() == "CHANNELTYPE")?.value; var msgTimestamp = items.FirstOrDefault(o => o.key.ToUpper() == "MSGTIMESTAMP")?.value; var msgUID = items.FirstOrDefault(o => o.key.ToUpper() == "MSGUID")?.value; var sensitiveType = items.FirstOrDefault(o => o.key.ToUpper() == "SENSITIVETYPE")?.value; var source = items.FirstOrDefault(o => o.key.ToUpper() == "SOURCE")?.value; var groupUserIds = items.FirstOrDefault(o => o.key.ToUpper() == "GROUPUSERIDS")?.value; string appKey = ConfigurationManager.AppSettings["RongCloudAppKey"]; string appSecret = ConfigurationManager.AppSettings["RongCloudAppSecret"]; string signature = RongHttpClient.GetHash(appSecret + inputDto.Nonce + inputDto.SignTimestamp); if (signature.ToUpper() != inputDto.Signature.ToUpper()) { var massage = string.Format("[RouteCallback]:Error {0}==>{1},{2}", inputDto.Signature, signature, RongJsonUtil.ObjToJsonString(inputDto)); LoggerHelper.Error(massage); return(new { pass = "******" }); } var rongCloudContent = new RongCloudContent { Id = Guid.NewGuid().ToString(), CreateTime = DateTime.UtcNow.AddHours(8), FromUserId = fromUserId, ToUserId = toUserId,//此ID对应会议ID ObjectName = objectName, ChannelType = channelType, MsgTimeStamp = msgTimestamp, MsgUID = msgUID, SensitiveType = sensitiveType, Source = source, Audit = 0, Remark = RongJsonUtil.ObjToJsonString(items), }; if (objectName == "RC:TxtMsg" && !string.IsNullOrEmpty(content)) { var res = (ContentInputDto)RongJsonUtil.JsonStringToObj <ContentInputDto>(content); //var doctor = _rep.FirstOrDefault<WxUserModel>(s => s != null && s.IsDeleted != 1 && s.Id == toUserId); rongCloudContent.WxName = res?.User?.Name; rongCloudContent.WxPicture = res?.User?.Avatar; rongCloudContent.Content = res.Content; } else { rongCloudContent.Content = content; } rongCloudContent.GroupUserIds = groupUserIds; _rep.Insert <RongCloudContent>(rongCloudContent); _rep.SaveChanges(); return(new { pass = "******" }); }
/// <summary> /// 以发送聊天室消息方法实现:业务处理聊天室禁言与解禁 /// </summary> /// <returns></returns> public ReturnValueModel ChatroomSend(ChatroomSendInputDto dto, WorkUser workUser) { ReturnValueModel rvm = new ReturnValueModel(); var meetInfo = _rep.FirstOrDefault <MeetInfo>(s => s != null && s.IsDeleted != 1 && s.Id == dto.Id); if (meetInfo == null) { rvm.Msg = "获取会议失败"; rvm.Success = false; rvm.Result = ""; return(rvm); } string appKey = ConfigurationManager.AppSettings["RongCloudAppKey"]; string appSecret = ConfigurationManager.AppSettings["RongCloudAppSecret"]; string _host = ConfigurationManager.AppSettings["RongCloudUrl"]; string url = $"{_host}/message/chatroom/publish.json"; StringBuilder sb = new StringBuilder(); var content = RongJsonUtil.ObjToJsonString(new { content = dto.Content, messageName = "TextMessage", extra = "extra" //user = new //{ // id = workUser.User.Id, // name = "系统管理员", // icon = "http://example.com/p1.png", // extra = "extra" //} }); var objectName = $"RCFK:{dto.Content}"; sb.Append("&fromUserId=").Append(HttpUtility.UrlEncode(workUser.User.Id, Encoding.UTF8)); //发送人用户 Id sb.Append("&toChatroomId=").Append(HttpUtility.UrlEncode(dto.Id, Encoding.UTF8)); //接收聊天室 Id sb.Append("&objectName=").Append(HttpUtility.UrlEncode(objectName, Encoding.UTF8)); sb.Append("&content=").Append(HttpUtility.UrlEncode(content, Encoding.UTF8)); String body = sb.ToString(); if (body.IndexOf("&") == 0) { body = body.Substring(1, body.Length - 1); } string result = RongHttpClient.ExecutePost(appKey, appSecret, body, url, "application/x-www-form-urlencoded"); var res = (ResponseResult)RongJsonUtil.JsonStringToObj <ResponseResult>(result); if (res.Code == 200) { meetInfo.UpdateTime = DateTime.Now; meetInfo.UpdateUser = workUser.User.Id; meetInfo.IsForbiddenWords = dto.Content == "Close" ? 1 : 0; _rep.Update(meetInfo); _rep.Insert <RongCloudChatRoomHandle>(new RongCloudChatRoomHandle { Id = Guid.NewGuid().ToString(), CreateUser = workUser.User.Id, CreateTime = DateTime.UtcNow.AddHours(8), ChatRoomId = dto.Id, Event = dto.Content, }); _rep.SaveChanges(); rvm.Msg = "success"; rvm.Success = true; rvm.Result = res; return(rvm); } else { rvm.Msg = "消息失败"; rvm.Success = false; rvm.Result = result; return(rvm); } }
/// <summary> /// 融云-聊天室 状态同步 /// </summary> public dynamic ChatroomStatusSync(ChatroomStatusSyncDto inputDto, string body) { var bodys = RongJsonUtil.JsonStringToObj <List <RongCloudChatroomStatusDto> >(body); string appKey = ConfigurationManager.AppSettings["RongCloudAppKey"]; string appSecret = ConfigurationManager.AppSettings["RongCloudAppSecret"]; string signature = RongHttpClient.GetHash(appSecret + inputDto.Nonce + inputDto.SignTimestamp); if (signature.ToUpper() != inputDto.Signature.ToUpper()) { var massage = string.Format("[ChatroomStatusSync]:Error {0}==>{1},{2}", inputDto.Signature, signature, RongJsonUtil.ObjToJsonString(inputDto)); LoggerHelper.Error(massage); return(new { pass = "******" }); } List <RongCloudChatroomStatus> rongCloudChatroomStatus = new List <RongCloudChatroomStatus>(); foreach (var item in bodys) { if (item.UserIds.Count > 0) { foreach (var user in item.UserIds) { var doctor = _rep.FirstOrDefault <WxUserModel>(s => s != null && s.IsDeleted != 1 && s.Id == user); if (doctor != null) { rongCloudChatroomStatus.Add(new RongCloudChatroomStatus { Id = Guid.NewGuid().ToString(), CreateTime = DateTime.UtcNow.AddHours(8), ChatRoomId = item.ChatRoomId, UserId = doctor.Id, Status = item.Status, Type = item.Type, Time = item.Time, UserName = doctor.UserName, HospitalName = doctor.HospitalName, }); } } } else { rongCloudChatroomStatus.Add(new RongCloudChatroomStatus { Id = Guid.NewGuid().ToString(), CreateTime = DateTime.UtcNow.AddHours(8), ChatRoomId = item.ChatRoomId, Status = item.Status, Type = item.Type, Time = item.Time, //UserName = doctor.UserName, //HospitalName = doctor.HospitalName, }); } } //var doctor = _rep.FirstOrDefault<WxUserModel>(s => s != null && s.IsDeleted != 1 && s.Id == toUserId); _rep.InsertList <RongCloudChatroomStatus>(rongCloudChatroomStatus); _rep.SaveChanges(); return(new { pass = "******" }); }
/// <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="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); }
/// <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); }
/// <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); }