public JsonResult CreateOrder(string data) { var result = new ReturnMessage(false) { Message = "创建订单失败!" }; try { lock (objLock) { var order = JsonConvert.DeserializeObject <StudyOrderEntity>(data); if (order == null) { result.Message = "无效对象"; return(Json(result)); } if (order.DetailList == null || order.DetailList.Count == 0) { result.Message = "请选择预约时间"; return(Json(result)); } var member = MemberBLL.Instance.GetEntity(LoginUser.UserId); if (member == null) { result.Message = "会员对象无效"; return(Json(result)); } //验证时间段是否有预约 var hasflag = false; foreach (var item in order.DetailList) { var freetime = StudyFreeTimeBLL.Instance.GetEntity(item.StudyFreeTimeId); if (freetime != null) { if (freetime.FreeStatus != (int)RCHL.Model.Enums.FreeTimeStatus.空闲) { hasflag = true; break; } } } if (hasflag) { result.Message = "您下手晚了,请重新选择预约时间"; return(Json(result)); } //判断课时是否还有 if (order.DetailList != null) { int hour1 = 0; int hour2 = 0; foreach (var item in order.DetailList) { if (item.TimeType == (int)RCHL.Model.Enums.WorkTimeType.白班) { hour1++; } else if (item.TimeType == (int)RCHL.Model.Enums.WorkTimeType.夜班) { hour2++; } } if ((member.StudyHour1 ?? 0) < hour1) { result.Message = "白班课时不足,预约此时段失败"; return(Json(result)); } if ((member.StudyHour2 ?? 0) < hour2) { result.Message = "夜班课时不足,预约此时段失败"; return(Json(result)); } } //判断是否存在有未评价的订单 var commitcount = StudyOrderBLL.Instance.GetList(new StudyOrderEntity() { MemberId = LoginUser.UserId, Status = (int)RCHL.Model.Enums.StudySubscribeStatus.预约完成 }).Count(); if (commitcount > 0) { result.Message = "请先对上次学车订单进行评价后再次预约学习"; return(Json(result)); } order.StudyOrderId = Util.NewUpperGuid(); order.StudyOrderNo = StudyOrderBLL.Instance.GetOrderNo(); order.CreateTime = DateTime.Now; order.Status = (int)Model.Enums.StudySubscribeStatus.预约成功; order.MemberId = LoginUser.UserId; order.MemberName = LoginUser.NickName; order.MemberMobile = LoginUser.Mobile; string _ServiceTime = ""; if (StudyOrderBLL.Instance.Add(order)) { if (order.DetailList != null) { foreach (var item in order.DetailList) { StudyOrderDetailEntity detail = new StudyOrderDetailEntity(); detail.StudyOrderDetailId = Util.NewUpperGuid(); detail.TimeType = item.TimeType; detail.ServiceTime = item.ServiceTime; detail.ServiceDate = item.ServiceDate; detail.StudyOrderId = order.StudyOrderId; detail.StudyFreeTimeId = item.StudyFreeTimeId; if (StudyOrderDetailBLL.Instance.Add(detail)) { _ServiceTime += detail.ServiceTime + ","; //修改预约时间状态 StudyFreeTimeEntity freetime = new StudyFreeTimeEntity(); freetime.StudyFreeTimeId = detail.StudyFreeTimeId; freetime.FreeStatus = (int)RCHL.Model.Enums.FreeTimeStatus.已预约; StudyFreeTimeBLL.Instance.Update(freetime); //修改对应课时 if (detail.TimeType == (int)RCHL.Model.Enums.WorkTimeType.白班) { member.MemberId = LoginUser.UserId; member.StudyHour1 = member.StudyHour1 - 1; MemberBLL.Instance.Update(member); } else if (detail.TimeType == (int)RCHL.Model.Enums.WorkTimeType.夜班) { member.MemberId = LoginUser.UserId; member.StudyHour2 = member.StudyHour2 - 1; MemberBLL.Instance.Update(member); } } } } } result.IsSuccess = true; result.Message = "创建成功"; //写消息 string servicetime = string.Format("{0} {1}", DateTime.Parse(order.ServiceDate.ToString()).ToString("yyyy-MM-dd"), _ServiceTime.TrimEnd(',')); var teacher = TeacherBLL.Instance.GetEntity(order.TeacherId); string txt = string.Format("预约学车,预约人:{0},联系电话:{1},预约机构:{2}", teacher.Name, teacher.Mobile, order.SchoolName); SendSysMessageBLL.SendMessage(RCHL.Model.Enums.MessageAlterType.学车预约提示, RCHL.Model.Enums.NoticeType.预约提醒, LoginUser.UserId, order.MemberName, servicetime, txt, order.StudyOrderNo); txt = string.Format("预约学车,预约人:{0},联系电话:{1}", order.MemberName, order.MemberMobile); SendSysMessageBLL.SendMessageTeacher(RCHL.Model.Enums.NoticeType.预约提醒, teacher.TeacherId, servicetime, txt, order.StudyOrderNo); //送积分 GivePointBLL.GivePoint(RCHL.Model.Enums.OperationType.预约学车完成, LoginUser.UserId, 0, order.StudyOrderNo); } } catch (Exception ex) { ex.Data["Method"] = "StudyController>>CreateOrder"; new ExceptionHelper().LogException(ex); } return(Json(result)); }
public ActionResult SaveForm(string keyValue, string issend, string json) { try { if (keyValue != "") { } else { var order = Serializer.DeserializeJson <StudyOrderEntity>(json, true); if (order == null) { return(Error("无效对象")); } if (order.DetailList == null || order.DetailList.Count == 0) { return(Error("请选择预约时间")); } var member = MemberBLL.Instance.GetEntity(order.MemberId); if (member == null) { return(Error("会员对象无效")); } //判断课时是否还有 if (order.DetailList != null) { int hour1 = 0; int hour2 = 0; foreach (var item in order.DetailList) { if (item.TimeType == (int)QX360.Model.Enums.WorkTimeType.白班) { hour1++; } else if (item.TimeType == (int)QX360.Model.Enums.WorkTimeType.夜班) { hour2++; } } if ((member.StudyHour1 ?? 0) < hour1) { return(Error("白班课时不足,预约此时段失败")); } if ((member.StudyHour2 ?? 0) < hour2) { return(Error("夜班课时不足,预约此时段失败")); } } order.StudyOrderId = Util.Util.NewUpperGuid(); order.StudyOrderNo = StudyOrderBLL.Instance.GetOrderNo(); order.Status = (int)QX360.Model.Enums.StudySubscribeStatus.预约成功; order.MemberId = order.MemberId; order.MemberName = order.MemberName; order.MemberMobile = order.MemberMobile; order.CreateId = LoginUser.UserId; order.CreateTime = DateTime.Now; string _ServiceTime = ""; if (StudyOrderBLL.Instance.Add(order)) { if (order.DetailList != null) { foreach (var item in order.DetailList) { StudyOrderDetailEntity detail = new StudyOrderDetailEntity(); detail.StudyOrderDetailId = Util.Util.NewUpperGuid(); detail.TimeType = item.TimeType; detail.ServiceTime = item.ServiceTime; detail.ServiceDate = item.ServiceDate; detail.StudyOrderId = order.StudyOrderId; detail.StudyFreeTimeId = item.StudyFreeTimeId == "-1" ? Util.Util.NewUpperGuid() : item.StudyFreeTimeId; if (item.SubritTimeType == (int)QX360.Model.Enums.SubritFreeTimeStatus.自定义) { detail.SubritTimeType = (int)QX360.Model.Enums.SubritFreeTimeStatus.自定义; } if (StudyOrderDetailBLL.Instance.Add(detail)) { _ServiceTime += detail.ServiceTime + ","; //修改预约时间状态 StudyFreeTimeEntity freetime = new StudyFreeTimeEntity(); freetime.StudyFreeTimeId = detail.StudyFreeTimeId; freetime.FreeStatus = (int)QX360.Model.Enums.FreeTimeStatus.已预约; StudyFreeTimeBLL.Instance.Update(freetime); //修改对应课时 if (detail.TimeType == (int)QX360.Model.Enums.WorkTimeType.白班) { member.MemberId = order.MemberId; member.StudyHour1 = member.StudyHour1 - 1; MemberBLL.Instance.Update(member); } else if (detail.TimeType == (int)QX360.Model.Enums.WorkTimeType.夜班) { member.MemberId = order.MemberId; member.StudyHour2 = member.StudyHour2 - 1; MemberBLL.Instance.Update(member); } //插入自定义时间段 if (item.SubritTimeType == (int)QX360.Model.Enums.SubritFreeTimeStatus.自定义) { StudyCustomFreeTimeBLL.Instance.Add(new StudyCustomFreeTimeEntity() { StudyCustomFreeTimeId = detail.StudyFreeTimeId, StudyFreeDateId = item.FreedateId, TimeSection = item.ServiceTime, TimeType = item.TimeType, }); } } } } } if (issend == "1") { //发送短信提醒 string servicetime = string.Format("{0} {1}", DateTime.Parse(order.ServiceDate.ToString()).ToString("yyyy-MM-dd"), _ServiceTime.TrimEnd(',')); SendSmsMessageBLL.SendSubricNotice(order.MemberId, order.MemberMobile, order.MemberName, servicetime, "预约学车成功", order.StudyOrderNo); } } return(Success("创建成功")); } catch (Exception ex) { ex.Data["Method"] = "StudyOrderController>>SaveForm"; new ExceptionHelper().LogException(ex); return(Error("保存失败")); } }