/// <summary> /// 用户断连处理 /// </summary> public void CustomerOnDisconnected(CustomerOnDisconnectedDto customerOnDisconnectedDto) { ServiceRecords ServiceRecordsModel = _serviceRecords.FirstOrDefault(e => e.Id == customerOnDisconnectedDto.ServiceRecordId); ServiceRecordsModel.CustomerUnContentDate = DateTime.Now; ServiceRecordsModel.CustomerState = OrderInfo.LoginState.OffLine; _serviceRecords.Update(ServiceRecordsModel); CustomerConnectRecords CustomerConnectRecordsModel = _customerConnectRecords.FirstOrDefault(e => e.DeviceId == customerOnDisconnectedDto.DeviceId); CustomerConnectRecordsModel.CustomerState = OrderInfo.LoginState.OffLine; _customerConnectRecords.Update(CustomerConnectRecordsModel); ChatRecords ChatRecordsModel = new ChatRecords(); ChatRecordsModel = EntityHelper.CopyValue(ServiceRecordsModel, ChatRecordsModel); ChatRecordsModel.Id = 0; ChatRecordsModel.ServiceRecordsId = customerOnDisconnectedDto.ServiceRecordId; ChatRecordsModel.SendInfoType = OrderInfo.SendInfoType.TextInfo; ChatRecordsModel.SendSource = OrderInfo.TerminalRefer.system; ChatRecordsModel.SendContent = "用户下线"; ChatRecordsModel.SendDateTime = DateTime.Now; ChatRecordsModel.ReceiveState = OrderInfo.ReceiveState.Received; _chatRecords.Insert(ChatRecordsModel); }
public BaseResponse <ServiceRecords> SaveServiceRecord(CHARGEITEM request) { var newItem = new ServiceRecords() { SERVICEID = request.CHARGEITEMID, NSID = SecurityHelper.CurrentPrincipal.OrgId, FEENO = request.FEENO, SERVICENAME = request.NAME, UNITS = request.UNITS, QTY = request.FEEITEMCOUNT, UNITPRICE = request.UNITPRICE, COST = request.UNITPRICE * request.FEEITEMCOUNT, TAKEWAY = request.TAKEWAY ?? "", TAKETIME = request.TAKETIME, OPERATOR = SecurityHelper.CurrentPrincipal.EmpNo, ISCHARGEGROUPITEM = true, ISNCIITEM = request.ISNCIITEM, STATUS = 0, CREATETIME = DateTime.Now, CREATEBY = SecurityHelper.CurrentPrincipal.EmpNo, UPDATETIME = DateTime.Now, UPDATEBY = SecurityHelper.CurrentPrincipal.EmpNo, ISDELETE = false, }; var billInfo = unitOfWork.GetRepository <LTC_SERVICERECORD>().dbSet.Where(m => m.SERVICERECORDID == newItem.SERVICERECORDID).FirstOrDefault(); if (billInfo != null) { unitOfWork.GetRepository <LTC_SERVICERECORD>().Update(billInfo); unitOfWork.Save(); } return(base.Save <LTC_SERVICERECORD, ServiceRecords>(newItem, (q) => q.SERVICERECORDID == newItem.SERVICERECORDID)); }
/// <summary> /// 添加聊天记录 /// </summary> /// <param name="addChatRecordsDto"></param> public BaseOutput AddChatRecords(AddChatRecordsDto addChatRecordsDto) { BaseOutput output = new BaseOutput(); ServiceRecords ServiceRecordsModel = _serviceRecords.GetAllList(e => e.ServiceId == addChatRecordsDto.ServicerId && e.CustomerDeviceId == addChatRecordsDto.CustomerDeviceId) .OrderByDescending(e => e.CustomerContentDate).FirstOrDefault(); ChatRecords ChatRecordsModel = new ChatRecords(); ChatRecordsModel = EntityHelper.CopyValue(ServiceRecordsModel, ChatRecordsModel); ChatRecordsModel.Id = 0; ChatRecordsModel.ServiceRecordsId = ServiceRecordsModel.Id; ChatRecordsModel.SendSource = addChatRecordsDto.SendSource; ChatRecordsModel.SendDateTime = DateTime.Now; ChatRecordsModel.SendContent = addChatRecordsDto.SendContent; ChatRecordsModel.ReceiveState = OrderInfo.ReceiveState.Received; _chatRecords.Insert(ChatRecordsModel); return(output); }
/// <summary> /// 添加客户,并建立连接 /// </summary> /// <param name="addCustomerConnectRecordsDto"></param> public BaseDataOutput <int> AddServiceConnectRecords(AddCustomerConnectRecordsDto addCustomerConnectRecordsDto) { BaseDataOutput <int> output = new BaseDataOutput <int>(); int CustomerConnectRecordsId = 0; int ServiceRecordsId = 0; ChatRecords ChatRecordsModel = new ChatRecords(); //处理客户记录表 CustomerConnectRecords CustomerConnectRecordsModel = _CustomerConnectRecords.FirstOrDefault(e => e.DeviceId == addCustomerConnectRecordsDto.DeviceId); if (CustomerConnectRecordsModel == null) { CustomerConnectRecords NewCustomerConnectRecordsModel = new CustomerConnectRecords(); NewCustomerConnectRecordsModel = EntityHelper.CopyValue(addCustomerConnectRecordsDto, NewCustomerConnectRecordsModel); NewCustomerConnectRecordsModel.CustomerState = OrderInfo.LoginState.Online; CustomerConnectRecordsId = _CustomerConnectRecords.InsertAndGetId(NewCustomerConnectRecordsModel); } else { CustomerConnectRecordsModel.CustomerState = OrderInfo.LoginState.Online; _CustomerConnectRecords.Update(CustomerConnectRecordsModel); CustomerConnectRecordsId = CustomerConnectRecordsModel.Id; } //处理连接记录表 ServiceRecords ServiceRecordsModel = new ServiceRecords(); ServiceRecordsModel = EntityHelper.CopyValue(addCustomerConnectRecordsDto, ServiceRecordsModel); ServiceRecordsModel.CustomerDeviceId = addCustomerConnectRecordsDto.DeviceId; //连接记录表-处理客户信息 ServiceRecordsModel.CustomerConnectRecordsId = CustomerConnectRecordsId; ServiceRecordsModel.CustomerContentDate = DateTime.Now; ServiceRecordsModel.CustomerState = OrderInfo.LoginState.Online; //连接记录表-如果匹配到客服,则处理客服信息 if (addCustomerConnectRecordsDto.ServiceId != null) { ServiceConnectRecords ServiceConnectRecordsModel = _ServiceConnectRecords.FirstOrDefault(e => e.ServiceId == addCustomerConnectRecordsDto.ServiceId); if (ServiceConnectRecordsModel != null) { //连接记录表-处理客服信息 ServiceRecordsModel = EntityHelper.CopyValue(ServiceConnectRecordsModel, ServiceRecordsModel); ServiceRecordsModel.Id = 0; ServiceRecordsModel.ServiceConnectRecordsId = ServiceConnectRecordsModel.Id; ServiceRecordsModel.ServiceId = addCustomerConnectRecordsDto.ServiceId; ServiceRecordsModel.ServiceContentDate = DateTime.Now; ServiceRecordsModel.ServiceState = OrderInfo.LoginState.Online; ServiceConnectRecordsModel.ServiceCount += 1; _ServiceConnectRecords.Update(ServiceConnectRecordsModel); //聊天记录表-处理客服信息 ChatRecordsModel = EntityHelper.CopyValue(ServiceConnectRecordsModel, ChatRecordsModel); ChatRecordsModel.ServiceId = addCustomerConnectRecordsDto.ServiceId; } } ServiceRecordsId = _ServiceRecords.InsertAndGetId(ServiceRecordsModel); //聊天记录表-处理客户信息 ChatRecordsModel = EntityHelper.CopyValue(addCustomerConnectRecordsDto, ChatRecordsModel); ChatRecordsModel.Id = 0; ChatRecordsModel.CustomerDeviceId = addCustomerConnectRecordsDto.DeviceId; //聊天记录表-处理聊天信息 ChatRecordsModel.ServiceRecordsId = ServiceRecordsId; ChatRecordsModel.SendInfoType = OrderInfo.SendInfoType.TextInfo; ChatRecordsModel.SendSource = OrderInfo.TerminalRefer.system; ChatRecordsModel.SendContent = "客服[" + ChatRecordsModel.ServiceNickName + "]为您服务"; ChatRecordsModel.SendDateTime = DateTime.Now; ChatRecordsModel.ReceiveState = OrderInfo.ReceiveState.Received; _ChatRecords.Insert(ChatRecordsModel); output.Data = ServiceRecordsId; return(output); }
public BaseResponse <ChargeGroupRec> SaveChargeGroupRec(ChargeItemData request) { var chargeGroupRecModel = new ChargeGroupRec() { ChargeGroupId = request.ChargeGroupRec.ChargeGroupId, FeeNo = request.ChargeGroupRec.FeeNo, CreateTime = DateTime.Now, CreateBy = SecurityHelper.CurrentPrincipal.EmpNo, UpdateTime = DateTime.Now, UpdateBy = SecurityHelper.CurrentPrincipal.EmpNo, IsDelete = false, }; var response = base.Save <LTC_CHARGEGROUP_CHARGERECORD, ChargeGroupRec>(chargeGroupRecModel, (q) => q.CGCRID == chargeGroupRecModel.CgcrId); unitOfWork.BeginTransaction(); request.ChargeItem.ForEach(p => { if (p.CHARGEITEMTYPE == 1) { var drugRecordsModel = new DrugRecords() { CGCRID = response.Data.CgcrId, DRUGID = p.CHARGEITEMID, NSID = SecurityHelper.CurrentPrincipal.OrgId, FEENO = p.FEENO, CNNAME = p.NAME, CONVERSIONRATIO = p.CONVERSIONRATIO ?? 1, FORM = p.FORM ?? "", PRESCRIBEUNITS = p.PRESCRIBEUNITS, DRUGQTY = p.FEEITEMCOUNT, UNITS = p.UNITS, QTY = p.QTY, UNITPRICE = p.UNITPRICE, COST = p.COST ?? 0, DOSAGE = p.DOSAGE, TAKEWAY = p.TAKEWAY ?? "", FERQ = p.FERQ ?? "", TAKETIME = p.TAKETIME, OPERATOR = SecurityHelper.CurrentPrincipal.EmpNo, ISCHARGEGROUPITEM = true, ISNCIITEM = p.ISNCIITEM, STATUS = 0, CREATETIME = DateTime.Now, CREATEBY = SecurityHelper.CurrentPrincipal.EmpNo, UPDATETIME = DateTime.Now, UPDATEBY = SecurityHelper.CurrentPrincipal.EmpNo, ISDELETE = false, }; base.Save <LTC_DRUGRECORD, DrugRecords>(drugRecordsModel, (q) => q.DRUGRECORDID == drugRecordsModel.DRUGRECORDID); } else if (p.CHARGEITEMTYPE == 2) { var materialRecordsModel = new MaterialRecords() { CGCRID = response.Data.CgcrId, MATERIALID = p.CHARGEITEMID, NSID = SecurityHelper.CurrentPrincipal.OrgId, FEENO = p.FEENO, MATERIALNAME = p.NAME, UNITS = p.UNITS, QTY = p.QTY, UNITPRICE = p.UNITPRICE, COST = p.COST ?? 0, TAKEWAY = p.TAKEWAY ?? "", TAKETIME = p.TAKETIME, OPERATOR = SecurityHelper.CurrentPrincipal.EmpNo, ISCHARGEGROUPITEM = true, ISNCIITEM = p.ISNCIITEM, STATUS = 0, CREATETIME = DateTime.Now, CREATEBY = SecurityHelper.CurrentPrincipal.EmpNo, UPDATETIME = DateTime.Now, UPDATEBY = SecurityHelper.CurrentPrincipal.EmpNo, ISDELETE = false, }; base.Save <LTC_MATERIALRECORD, MaterialRecords>(materialRecordsModel, (q) => q.MATERIALRECORDID == materialRecordsModel.MATERIALRECORDID); } else if (p.CHARGEITEMTYPE == 3) { var serviceRecordsModel = new ServiceRecords() { CGCRID = response.Data.CgcrId, SERVICEID = p.CHARGEITEMID, NSID = SecurityHelper.CurrentPrincipal.OrgId, FEENO = p.FEENO, SERVICENAME = p.NAME, UNITS = p.UNITS, QTY = p.QTY, UNITPRICE = p.UNITPRICE, COST = p.COST ?? 0, TAKEWAY = p.TAKEWAY ?? "", TAKETIME = p.TAKETIME, OPERATOR = SecurityHelper.CurrentPrincipal.EmpNo, ISCHARGEGROUPITEM = true, ISNCIITEM = p.ISNCIITEM, STATUS = 0, CREATETIME = DateTime.Now, CREATEBY = SecurityHelper.CurrentPrincipal.EmpNo, UPDATETIME = DateTime.Now, UPDATEBY = SecurityHelper.CurrentPrincipal.EmpNo, ISDELETE = false, }; base.Save <LTC_SERVICERECORD, ServiceRecords>(serviceRecordsModel, (q) => q.SERVICERECORDID == serviceRecordsModel.SERVICERECORDID); } }); unitOfWork.Commit(); response.IsSuccess = true; return(response); }