Exemple #1
0
        public ApiResult TodayConsulted([FromBody] RequestCheckTodaySubmitedDTO request)
        {
            var existsOrder = new ResponseRepeatReturnDTO();
            var result      = userOPDRegisterService.ExistsWithSubmitRequest(request, out existsOrder);

            return(result.ToApiResultForBoolean());
        }
Exemple #2
0
        public ApiResult TodaySubmited([FromBody] RequestCheckTodaySubmitedDTO request)
        {
            ResponseRepeatReturnDTO existsOrder;

            return(userOPDRegisterService.ExistsWithSubmitRequest(request, out existsOrder).ToApiResultForBoolean());
        }
        public bool ExistsWithSubmitRequest(RequestCheckTodaySubmitedDTO requst, out ResponseRepeatReturnDTO order, DBEntities db = null)
        {
            bool dbPrivateFlag = false;

            if (db == null)
            {
                db            = CreateDb();
                dbPrivateFlag = true;
            }

            int Year  = DateTime.Now.Year;
            int Month = DateTime.Now.Month;
            int Day   = DateTime.Now.Day;

            ResponseRepeatReturnDTO opdModel = null;

            //未指定医生(医生领单的业务)
            if (string.IsNullOrEmpty(requst.DoctorID))
            {
                //有已经支付过,就诊未结束的就返回
                opdModel = (from opd in db.UserOPDRegisters.Where(a =>
                                                                  a.IsUseTaskPool &&
                                                                  a.UserID == requst.UserID &&
                                                                  a.MemberID == requst.MemberID &&
                                                                  a.OPDType == requst.OPDType &&
                                                                  (
                                                                      a.RegDate.Year == Year &&
                                                                      a.RegDate.Month == Month &&
                                                                      a.RegDate.Day == Day) &&
                                                                  a.IsDeleted == false)
                            join room in db.ConversationRooms on opd.OPDRegisterID equals room.ServiceID
                            where (opd.OPDState != EnumOPDState.Completed && opd.OPDState != EnumOPDState.Canceled)
                            //排除已经关闭的订单
                            && !room.Close
                            orderby opd.PayTime descending
                            select new ResponseRepeatReturnDTO
                {
                    OrderOutID = opd.OPDRegisterID,
                    OrderNo = opd.OrderNo,
                    OPDState = opd.OPDState,
                    ChannelID = room.ConversationRoomID,
                    DoctorID = opd.DoctorID,
                    Cancelable = (opd.OPDState == EnumOPDState.NoPay || opd.OPDState == EnumOPDState.NoReceive)
                }).FirstOrDefault();
            }
            else
            {
                //如果有未完成或未取消的订单则返回
                opdModel = (from opd in db.UserOPDRegisters.Where(a =>
                                                                  !a.IsUseTaskPool &&
                                                                  (a.DoctorID == requst.DoctorID) &&
                                                                  a.UserID == requst.UserID &&
                                                                  a.MemberID == requst.MemberID &&
                                                                  a.OPDType == requst.OPDType &&
                                                                  (
                                                                      a.RegDate.Year == Year &&
                                                                      a.RegDate.Month == Month &&
                                                                      a.RegDate.Day == Day) &&
                                                                  a.IsDeleted == false)
                            join room in db.ConversationRooms on opd.OPDRegisterID equals room.ServiceID
                            where (opd.OPDState != EnumOPDState.Completed && opd.OPDState != EnumOPDState.Canceled)
                            //排除已经关闭的订单
                            && !room.Close
                            orderby opd.PayTime descending
                            select new ResponseRepeatReturnDTO
                {
                    OrderOutID = opd.OPDRegisterID,
                    OrderNo = opd.OrderNo,
                    OPDState = opd.OPDState,
                    ChannelID = room.ConversationRoomID,
                    DoctorID = opd.DoctorID,
                    Cancelable = (opd.OPDState == EnumOPDState.NoPay || opd.OPDState == EnumOPDState.NoReceive ||
                                  opd.OPDState == EnumOPDState.NoReply)
                }).FirstOrDefault();
            }

            if (dbPrivateFlag)
            {
                db.Dispose();
            }

            //已经预约了
            if (opdModel != null)
            {
                order = opdModel;
                return(true);
            }
            else
            {
                order = null;
                return(false);
            }
        }