public ApiResult TodayConsulted([FromBody] RequestCheckTodaySubmitedDTO request) { var existsOrder = new ResponseRepeatReturnDTO(); var result = userOPDRegisterService.ExistsWithSubmitRequest(request, out existsOrder); return(result.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); } }