public ActionResult LockRoom(AppointRq rq) { if (MemberInfo.Role != (int)MemberRole.管理员) { return(Content("没有权限")); } var model = new Order { MemberId = MemberInfo.Uid, CustomName = "", CustomPhone = "", Room = rq.Room, Status = (int)OrderStatus.已锁定, CreateOn = DateTime.Now.ToUnixStamp(), StartTime = rq.Start.ToUnixStamp(), EndTime = rq.Start.AddMinutes(WeispaConfig.ServiceMinutes).ToUnixStamp(), Remark = rq.Remark }; var isExist = OrderDal.Exists(string.Format("{0} and Room={1} and (Status={2} or Status={3})", WeispaUtil.GetOccurredSql(model.StartTime, model.EndTime), model.Room, (int)OrderStatus.已确认, (int)OrderStatus.已锁定)); if (isExist) { return(ReturnJson(false, "改房间已被预订,请先取消预订才可锁定")); } var orderId = OrderDal.Add(model); return(ReturnJson(true, new { status = 2, opts = 2, orderId })); }
public ActionResult ChangeStatus(int orderId, int toStatus) { var order = OrderDal.GetModel(orderId); if (order == null) { return(ReturnJson(false, "订单不存在")); } var oriStatus = (OrderStatus)order.Status; //权限检查 var role = (MemberRole)MemberInfo.Role; var toStatusEnum = (OrderStatus)toStatus; switch (toStatusEnum) { case OrderStatus.未确认: return(ReturnJson(false, "操作无效")); break; case OrderStatus.已确认: if (role != MemberRole.管理员) { return(ReturnJson(false, "您没有权限")); } if (oriStatus != OrderStatus.未确认) { return(ReturnJson(false, "这不是未确认的订单")); } //查找有冲突的订单 var isExist = OrderDal.Exists(string.Format("{0} and Room={1} and Status={2}", WeispaUtil.GetOccurredSql(order.StartTime, order.EndTime), order.Room, (int)OrderStatus.已确认)); if (isExist) { return(ReturnJson(false, "已经有人预定该房间")); } break; case OrderStatus.已完成: if (role != MemberRole.管理员) { return(ReturnJson(false, "您没有权限")); } if (oriStatus != OrderStatus.已确认) { return(ReturnJson(false, "这不是已确认的订单")); } break; case OrderStatus.未完成: if (role != MemberRole.管理员) { return(ReturnJson(false, "您没有权限")); } if (oriStatus != OrderStatus.已确认) { return(ReturnJson(false, "这不是已确认的订单")); } break; case OrderStatus.已取消: if (oriStatus != OrderStatus.未确认 && oriStatus != OrderStatus.已确认) { return(ReturnJson(false, "不可取消")); } break; default: return(ReturnJson(false, "操作无效")); } order.Status = toStatus; var b = OrderDal.Update(order, "Status"); return(b ? ReturnJson(true, new { status = toStatusEnum.ToString(), opts = StringHelper.GetArrayStr(OptList(role, toStatusEnum)) }) : ReturnJson(false, "操作失败")); }
/// <summary> /// 预定护理页 /// </summary> /// <returns></returns> public ActionResult Index(DateTime?time) { var now = DateTime.Now; var selectDate = (time ?? now).Date; var model = new AppointVm { DateList = new List <DateTime>(), SelectDate = selectDate, MemberInfo = MemberInfo }; var role = (MemberRole)MemberInfo.Role; var today = now.Date; var lastDate = today.AddDays(6); //日期列表 for (var d = today; d <= lastDate; d = d.AddDays(1)) { model.DateList.Add(d); } //获取1天内预约列表 var orders = OrderDal.GetList(string.Format("StartTime>={0} and StartTime<={1} and (Status={2} or Status={3})", selectDate.ToUnixStamp(), selectDate.AddDays(1).ToUnixStamp(), (int)OrderStatus.已确认, (int)OrderStatus.已锁定)) .OrderBy(_ => _.StartTime).ThenBy(_ => _.Room).ToList(); model.AppointList = new List <AppointVm.AppointItem>(); var opentime = new DateTime(selectDate.Year, selectDate.Month, selectDate.Day, 10, 0, 0); //选择日期营业开始时间 var closetime = new DateTime(selectDate.Year, selectDate.Month, selectDate.Day, 23, 30, 0); //选择日期关门时间 while (opentime < closetime) { var appoint = new AppointVm.AppointItem { StartTime = opentime, EndTime = opentime.AddMinutes(WeispaConfig.ServiceMinutes), Rooms = new List <AppointVm.Room>() }; var startTime = appoint.StartTime.ToUnixStamp(); var endTime = appoint.EndTime.ToUnixStamp(); for (int roomType = 0; roomType <= 1; roomType++) { var room = new AppointVm.Room() { ToStatusList = new List <int>() }; if (now >= appoint.StartTime) { room.Status = 2; } else { var order = orders.FirstOrDefault(_ => _.Room == roomType && WeispaUtil.CkeckOccurred(_.StartTime, _.EndTime, startTime, endTime)); if (order == null) { room.Status = 0; room.ToStatusList.Add(0); if (role == MemberRole.管理员) { room.ToStatusList.Add(1); } } else if (order.Status == (int)OrderStatus.已锁定) { room.Status = 2; room.OrderId = order.OId; if (role == MemberRole.管理员) { room.ToStatusList.Add(2); } } else { room.Status = 1; if (role == MemberRole.管理员) { room.ToStatusList.Add(1); } } } room.Name = ((RoomType)roomType).ToString(); room.Type = roomType; appoint.Rooms.Add(room); } opentime = appoint.EndTime.AddMinutes(WeispaConfig.RestMinutes); model.AppointList.Add(appoint); } return(View(model)); }
public ActionResult AppointPost(AppointRq rq) { var now = DateTime.Now; var today = now.Date; var limitDate = today.AddDays(WeispaConfig.LimitDays); if (string.IsNullOrEmpty(rq.CustomName)) { return(ReturnJson(false, "请填写客户名称")); } if (string.IsNullOrEmpty(rq.CustomPhone)) { return(ReturnJson(false, "请填写客户电话")); } if (rq.Room > 1 || rq.Room < 0) { return(ReturnJson(false, "请选择房间")); } if (rq.Start > limitDate) { return(ReturnJson(false, string.Format("只能预订{0}天内", WeispaConfig.LimitDays))); } if (rq.Start < now) { return(ReturnJson(false, "已过时间不可预订")); } //未确认,已确认的订单数 var weekCount = OrderDal.GetCount(string.Format("MemberId={0} and StartTime>={1} and StartTime<{2} and Status<2", MemberInfo.Uid, now.ToUnixStamp(), limitDate.ToUnixStamp())); if (weekCount >= WeispaConfig.LimitOrderCount && MemberInfo.Role != (int)MemberRole.管理员) { return(ReturnJson(false, string.Format("{0}天内只能预订{1}次", WeispaConfig.LimitDays, WeispaConfig.LimitOrderCount))); } var model = new Order { MemberId = MemberInfo.Uid, CustomName = rq.CustomName, CustomPhone = rq.CustomPhone, Room = rq.Room, Status = 0, CreateOn = now.ToUnixStamp(), StartTime = rq.Start.ToUnixStamp(), EndTime = rq.Start.AddMinutes(WeispaConfig.ServiceMinutes).ToUnixStamp(), Remark = rq.Remark }; //查找有冲突的订单 var isExist = OrderDal.Exists(string.Format("{0} and Room={1} and (Status={2} or Status={3})", WeispaUtil.GetOccurredSql(model.StartTime, model.EndTime), model.Room, (int)OrderStatus.已确认, (int)OrderStatus.已锁定)); if (isExist) { return(ReturnJson(false, "该房间已被其他人预订")); } OrderDal.Add(model); return(ReturnJson(true, "已成功提交预订,待系统确认")); }
//im public String getCustomer(string phone) { return(WeispaUtil.HttpGet(customerBaseUrl + "/GetClientList?servicerPhone=" + phone)); }
//im public string getServer(string phone) { return(WeispaUtil.HttpGet(customerBaseUrl + "/GetServicerList?clientPhone=" + phone)); }