Beispiel #1
0
        /// <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));
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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);
        }