public ActionResult ViewDetail() { //当前登录用户 ViewBag.Title = "下线详情";; MpUser mpUser = _mpUserService.GetById(MpUserID); if (mpUser == null || mpUser.IsAuth != 1) { return(Json(new { message = "您没有权限,请先申请成为业务员!" })); } MpUser mpUserUnder = new MpUser(); if (!string.IsNullOrWhiteSpace(RQuery["Id"])) { mpUserUnder = _userService.GetById(new Guid(RQuery["Id"])); } //VehicleLicense vehicleLicense = _vehicleLicenseService.GetUnique("from VehicleLicense where Id = '" +id + "'"); if (mpUserUnder != null && mpUserUnder.ParentPhone != mpUser.MobilePhone) { return(Json(new { message = "您没有权限,请先申请成为业务员!" })); } return(View(mpUserUnder)); }
public string SendPrivateMessage() { try { KfNumber kfNumber = _kfNumberService.GetById(KfNumberId); if (kfNumber == null) { return(JsonHelper.AnalysisJson <string>("KfNumber对象为null", "error", null)); } KfMeeting kfMeeting = _kfMeetingService.GetById(KfMeetingId); if (kfMeeting.IsEnd) { return(JsonHelper.AnalysisJson <string>(string.Format("本条消息发送失败[{0}]", "本次会话已经结束"), "error", null)); } string messageText = Request["messageText"]; if (string.IsNullOrWhiteSpace(messageText)) { return(JsonHelper.AnalysisJson <string>("消息不能为空", "error", null)); } messageText = messageText.Trim(); // 防止XSS攻击 //messageText = Sanitizer.GetSafeHtmlFragment(messageText); //messageText = HttpUtility.HtmlEncode(StringHelper.StripHtml(messageText)); messageText = HttpUtility.HtmlEncode(messageText); //把消息存入数据库 //ICommunicationRepository iCommunicationRepository = new PersistedRepository(); _kfMeetingMessageService.InsertKfMeetingMessage(KfMeetingId, 1, messageText); //把消息发送给微信端客户 MpUser mpUser = _mpUserService.GetById(ReceiveUserId); if (mpUser != null && !string.IsNullOrWhiteSpace(mpUser.OpenID)) { _mpUserService.SendMessage(mpUser.OpenID, messageText); } //把消息发给通信线程进行中转(适用于web聊天) string message2 = string.Empty; if (new CommandManager(null).TryHandleCommand("SendPrivateMessage", new string[] { KfNumberId.ToString(), ReceiveUserId.ToString(), messageText }, ref message2) && string.IsNullOrWhiteSpace(message2)) { return(JsonHelper.AnalysisJson <string>(string.Empty, "ok", null)); } this.log.Warn(string.Format("消息发送失败,{0}", message2)); return(JsonHelper.AnalysisJson <string>(string.Format("本条消息发送失败[{0}]", message2), "error", null)); } catch (Exception ex) { this.log.Warn(ex.Message); return(JsonHelper.AnalysisJson <string>(string.Format("本条消息发送失败[{0}]", ex.Message), "error", null)); } }
public ActionResult Ucenter() { MpUser currUser = MpUserService.GetById(this.MpUserID); if (currUser != null) { ViewBag.Point = currUser.LocationX + "," + currUser.LocationY; } return(View()); }
public ActionResult AuthPassProvide(Guid id, int isAuth) { if (!base.HasPermission("MyUnder", PermissionOperate.visit)) { return(null); } MpUser user = _userService.GetById(id); user.IsAuth = isAuth; _userService.Update(user); base.AddLog(string.Format("修改认证[{0}]成功", user.Name + " to " + isAuth.ToString()), AdminLoggerModuleEnum.MyUnder); return(JsonMessage(true, "修改成功")); }
public ActionResult GetBussManDetail(Guid id) { if (!base.HasPermission("DrivingLicense", PermissionOperate.track)) { return(null); } DrivingLicense drivingLicense = _drivingLicenseService.GetById(id); if (drivingLicense == null || drivingLicense.MpUserId == Guid.Empty) { return(Json(new { AssignBussinessMan = "", BussinessManPhone = "" })); } MpUser bussMan = _mpUserService.GetById(drivingLicense.MpUserId); if (bussMan == null) { return(Json(new { AssignBussinessMan = "", BussinessManPhone = "" })); } return(Json(new { AssignBussinessMan = bussMan.Name, BussinessManPhone = bussMan.MobilePhone })); }
/// <summary> /// 把数据渲染到Excel /// </summary> private MemoryStream RenderToExcel(PosApply apply) { MemoryStream ms = new MemoryStream(); IWorkbook workbook = null; ISheet sheet = null; MpUser mpUser = _mpUserService.GetById(apply.MpUserId); PosAuth posAuth = _posAuthService.GetUnique(p => p.MpUserId == mpUser.Id); try { using (FileStream fileStream = System.IO.File.OpenRead(FileHelper.GetMapPath("/Content/ExcelTemplate/PosTemplate.xls"))) //打开xls文件 { workbook = new HSSFWorkbook(fileStream); sheet = workbook.GetSheetAt(0); sheet.GetRow(1).GetCell(1).SetCellValue(posAuth.Name); sheet.GetRow(1).GetCell(3).SetCellValue(posAuth.MobilePhone); sheet.GetRow(1).GetCell(5).SetCellValue(apply.VendorAddress); sheet.GetRow(2).GetCell(1).SetCellValue(base.LoginAdmin.PermissionOrganization.Name); sheet.GetRow(2).GetCell(3).SetCellValue(DateTime.Now.ToString("yyyy-MM-dd")); sheet.GetRow(3).GetCell(1).SetCellValue(apply.AssignSubbranch); sheet.GetRow(3).GetCell(3).SetCellValue(apply.AssignCustomerManager); sheet.GetRow(5).GetCell(0).SetCellValue(string.Format("请于{0}之前反馈处理结果", apply.CreateDate.AddDays(5).ToString("yyyy-MM-dd"))); workbook.Write(ms); ms.Flush(); ms.Position = 0; } return(ms); } finally { ms.Close(); workbook = null; sheet = null; } }
public ActionResult LoanApply() { //当前登录用户 MpUser mpUser = _mpUserService.GetById(MpUserID); ViewBag.IsAuth = mpUser.IsAuth > 0; ViewBag.Name = mpUser.Name; if (mpUser.Sex == 1) { ViewBag.Sex = "先生"; } else if (mpUser.Sex == 2) { ViewBag.Sex = "女士"; } else { ViewBag.Sex = ""; } //用户最近的一笔贷款申请[未撤销] Loan loan = _loanService.GetNewestLoanApplyByMpUserId(MpUserID); //有未过期的贷款申请 //有未过期的贷款申请 if (loan != null && DateTime.Now < loan.CreateDate.AddMonths(1) && loan.LoanCategoryId == 4) { return(RedirectToAction("GongzhiBaoMessage", new { })); } else if (loan != null && DateTime.Now < loan.CreateDate.AddMonths(1)) { return(RedirectToAction("LoanMessage", new { })); } //贷款种类 ViewBag.ListLoanCategory = EnumDataCache.Instance.GetList(TypeIdentifyingEnum.LoanCategory); //贷款期限 ViewBag.ListLoanDeadline = EnumDataCache.Instance.GetList(TypeIdentifyingEnum.LoanDeadline); //还款方式 ViewBag.ListRepaymentMode = EnumDataCache.Instance.GetList(TypeIdentifyingEnum.RepaymentMode); return(View()); }
public string StartKfMeeting() { if (!string.IsNullOrWhiteSpace(Token)) { if (Token != "ocean") { return(JsonHelper.AnalysisJson <string>("凭证错误", "error", null)); } } KfMeeting kfMeeting2 = _kfMeetingService.GetUnique(m => m.MpUserId == SendUserId && !m.IsEnd, "CreateDate", false); if (kfMeeting2 != null && kfMeeting2.KfNumberId != Guid.Empty) { string message2 = string.Empty; Log4NetImpl.Write("SendPrivateMessage:" + kfMeeting2.MpUserId.ToString(), kfMeeting2.KfNumberId.ToString()); new CommandManager(null).TryHandleCommand("SendPrivateMessage", new string[] { kfMeeting2.MpUserId.ToString(), kfMeeting2.KfNumberId.ToString(), "客服" }, ref message2); return(JsonHelper.AnalysisJson <string>("已经接入", "error", null)); } string message = string.Empty; IList <KfNumber> listKfNumber = _kfNumberService.GetALL().Where(m => m.IsOnline == true && m.OnlineStatus == 0).ToList(); if (listKfNumber.Count == 0) { //把消息发送给微信端客户 MpUser mpUser2 = _mpUserService.GetById(SendUserId); if (mpUser2 != null && !string.IsNullOrWhiteSpace(mpUser2.OpenID)) { _mpUserService.SendMessage(mpUser2.OpenID, "当前没有客服在线"); } return(JsonHelper.AnalysisJson <string>("当前没有客服在线", "error", null)); } var kfMeeting = new KfMeeting() { BeginDate = DateTime.Now, IsEnd = false, MpUserId = SendUserId }; _kfMeetingService.Insert(kfMeeting); //向所有在线客服发送接入请求 //访客名称 string visitName = string.Empty; MpUser mpUser = _mpUserService.GetById(kfMeeting.MpUserId); if (mpUser != null) { visitName = mpUser.NickName; if (!string.IsNullOrWhiteSpace(mpUser.OpenID)) { _mpUserService.SendMessage(mpUser.OpenID, "等待客服接入,输入【退出】或【tc】退出聊天状态"); } } else { visitName = "访客_" + new Random().Next(100); } foreach (KfNumber model in listKfNumber) { new CommandManager(null).TryHandleCommand("Notice", new string[] { SendUserId.ToString(), visitName, model.Id.ToString(), "1", "0", kfMeeting.Id.ToString() }, ref message); } return(JsonHelper.AnalysisJson <string>(string.Empty, "ok", null)); }
public override void ExecuteNotice(CallerContext callerContext, string[] args, ref string message) { int type = int.Parse(args[1]); //客服离线 if (type == 1) { Guid kfNumberId = new Guid(args[0]); //移除缓存中的客服 MessageManager.Instance.RemoveCacheKF(kfNumberId); //离线时清理线程中的客服端(防止第一条离线信息丢失) CometThreadPool.DequeueCometWaitRequest(kfNumberId); //断开与所有访客的会话 IKfNumberService kfNumberService = EngineContext.Current.Resolve <IKfNumberService>(); IKfMeetingService kfMeetingService = EngineContext.Current.Resolve <IKfMeetingService>(); IKfMeetingMessageService kfMeetingMessageService = EngineContext.Current.Resolve <IKfMeetingMessageService>(); IMpUserService mpUserService = EngineContext.Current.Resolve <IMpUserService>(); IList <KfMeeting> listMeeting = kfMeetingService.GetALL().Where(m => m.KfNumberId == kfNumberId && m.IsEnd == false).ToList(); foreach (KfMeeting kfMeeting in listMeeting) { kfMeeting.RecordCount = kfMeetingMessageService.GetCount(" where KfMeetingId='" + kfMeeting.Id + "'"); kfMeeting.EndDate = DateTime.Now; kfMeeting.IsEnd = true; kfMeetingService.Update(kfMeeting); base.SendPrivateMessage(kfNumberId, kfMeeting.MpUserId, "本次会话已被断开,您可以重新发起会话请求"); //发送给微信 MpUser mpUser = mpUserService.GetById(kfMeeting.MpUserId); if (mpUser != null && !string.IsNullOrWhiteSpace(mpUser.OpenID)) { mpUserService.SendMessage(mpUser.OpenID, "本次会话已被断开,您可以重新发起会话请求"); } //更新用户状态 mpUserService.ChangeMpUserState(kfMeeting.MpUserId, 0); } //把客服设置成离线 KfNumber kfNumber = kfNumberService.GetById(kfNumberId); kfNumber.IsOnline = false; kfNumberService.Update(kfNumber); } //访客离线 if (type == 2) { Guid mpUserId = new Guid(args[0]); //离线时清理线程中的访客端(防止第一条离线信息丢失) CometThreadPool.DequeueCometWaitRequest(mpUserId); //断开与客服的会话 IKfMeetingService kfMeetingService = EngineContext.Current.Resolve <IKfMeetingService>(); IKfMeetingMessageService kfMeetingMessageService = EngineContext.Current.Resolve <IKfMeetingMessageService>(); IList <KfMeeting> listMeeting = kfMeetingService.GetALL().Where(m => m.MpUserId == mpUserId && m.IsEnd == false).ToList(); foreach (KfMeeting kfMeeting in listMeeting) { kfMeeting.RecordCount = kfMeetingMessageService.GetCount(" where KfMeetingId='" + kfMeeting.Id + "'"); kfMeeting.EndDate = DateTime.Now; kfMeeting.IsEnd = true; kfMeetingService.Update(kfMeeting); base.SendNotice(mpUserId, "访客_" + new Random().Next(100), kfMeeting.KfNumberId, 3, 0, mpUserId.ToString()); } } }
public ActionResult Index() { if (!string.IsNullOrEmpty(this.OpenID)) { Funongbao fnb = _funongbaoService.GetFunongbaoByOpenid(this.OpenID); if (fnb != null) { return(new RedirectResult("/funongbao/apply")); } } Funongbao funongbao = new Funongbao(); if (WebHelper.IsPost()) { ViewBag.AuthStatus = 0; TryUpdateModel <Funongbao>(funongbao); int useCount = _mobileCodeService.GetMobileCodeCount(this.MpUserID, 1);//当天使用次数 if (useCount <= 5) { MobileCode lastCode = _mobileCodeService.GetMobileCode(this.MpUserID, 1);//是否存在未使用的证码 if (lastCode != null) { MobileCode checkCode = _mobileCodeService.GetMobileCode(funongbao.MobilePhone, WebHelper.GetString("Code"), this.MpUserID, 1);//检查验证码 if (checkCode != null) { TimeSpan ts = DateTime.Now.Subtract(checkCode.CreateDate).Duration(); if (ts.Minutes > 10) { checkCode.Time += 1; checkCode.Status = 1; _mobileCodeService.Update(lastCode); ViewBag.CodeError = "验证码已经失效,请重新获取!"; } else { Funongbao authFnb = null; int authStatus = _funongbaoService.IdentAuth2(funongbao, out authFnb); if (authStatus == -1) { ViewBag.CodeError = "对不起,该客户已经被绑定了,您无法再次绑定!"; } else { if (authStatus == 1) { //更新用户认证并更新cookie MpUser user = _mpUserservice.GetById(this.MpUserID); user.Name = funongbao.Name; user.PassportNO = funongbao.PassportNO; user.MobilePhone = funongbao.MobilePhone; user.IsAuth = 1; //更新当前验证码失败 checkCode.Status = 1;//已用 //更新福农保信息 authFnb.IsAuth = 1; authFnb.IsSignAgreement = WebHelper.GetInt("IsSignAgreement", 1); authFnb.MpUserId = this.MpUserID; authFnb.OpenId = this.OpenID; try { Log4NetImpl.Write("测试事务写入"); _funongbaoService.BeginTransaction(); _mpUserservice.Update(user); _mobileCodeService.Update(checkCode); _funongbaoService.Update(authFnb); _funongbaoService.Commit(); WriteMpUserCookie(user); Log4NetImpl.Write("测试获取cookie"); var a = MpUserArr; if (!string.IsNullOrEmpty(WebHelper.GetString("refUrl"))) { return(Redirect(WebHelper.GetString("refUrl"))); } else { return(RedirectToAction("index", "funongbao")); } } catch (Exception ex) { _funongbaoService.Rollback(); Log4NetImpl.Write(ex.ToString()); throw new OceanException("对不起,系统异常,身份认证失败!", ex); } } else { ViewBag.AuthStatus = authStatus; } } } } else { lastCode.Time += 1; _mobileCodeService.Update(lastCode); ViewBag.CodeError = "对不起,验证码有误,请检查!"; } } else { ViewBag.CodeError = "对不起,您还未点击发送验证码!"; } } else { ViewBag.CodeError = "对不起,您今天最多只能发起5次验证码"; } } return(View(funongbao)); }