public Response Execute(User currentUser, string request) { var req = JsonConvert.DeserializeObject <Request <CoachCourse> >(request); var obj = req.FirstEntity(); string errorMsg; #region 默认参数设置 if (obj.Type == CoachDic.BigCourse) { obj.BigCourseId = obj.CourseNameId; } if (obj.Type == CoachDic.PrivateCourse) { obj.CoachId = obj.CourseNameId; } #endregion 默认参数设置 //私教判断是否和请求冲突 if (obj.Type == CoachDic.PrivateCourse) { bool isRepeat = IsRepeatTimeInCoachLeave(obj); if (isRepeat) { return(ResultHelper.Fail("教练这个时间段请假了不能约课")); } } //大课随机分配空闲教练 if (obj.Type == CoachDic.BigCourse) { obj.CourseGrade = 1; var randomCoachId = GetRandomFreeCoach(obj);//随机空闲教练Id if (string.IsNullOrEmpty(randomCoachId)) { return(ResultHelper.Fail("现在没有空闲的教练来上课, 请换个时间段预约")); } obj.CoachId = randomCoachId; } #region 判断是否有余额 if (obj.Type == CoachDic.BigCourse)//判断大课是否有余额 { if (HaveBalanceInBigCourse(obj.CourseNameId, obj.ReservedPersonId) == false) { return(ResultHelper.Fail("余额次数不足, 请购买课程")); } } if (obj.Type == CoachDic.PrivateCourse)//判断私教是否有余额 { if (HaveBalanceInPrivateCourse(obj.CourseNameId, obj.ReservedPersonId) == false) { return(ResultHelper.Fail("余额次数不足, 请购买课程")); } } #endregion 判断是否有余额 //判断时间是否有效 errorMsg = CoachHelper.Instance.CheckTimeValid(obj.BeginTime, obj.EndTime); if (errorMsg != "") { return(ResultHelper.Fail(errorMsg)); } //私教判断课程时间范围是否和已有的重合 if (!string.IsNullOrEmpty(obj.CoachId))//有教练Id时 { if (IsRepeatPeriodInPrivateCoach(obj)) { return(ResultHelper.Fail("教练这个时间段有课, 请修改时间范围再约 ")); } } #region 设置要添加的数据 List <EntityBase> entites = new List <EntityBase>(); entites.Add(obj); if (obj.RowState == RowState.Added) { if (string.IsNullOrEmpty(obj.CoachId)) { obj.CoachId = ""; } obj.State = CoachDic.CourseNotStart; string venueCityId = GetVenueCityId(obj.VenueId); if (!string.IsNullOrEmpty(venueCityId)) { obj.CityId = venueCityId; } obj.CoachBootcampCourseId = ""; obj.CreatorId = currentUser.Id; obj.TrySetNewEntity(); } #endregion 设置要添加的数据 //获取将要保存的图片列表 obj.GetWillSaveFileList(entites); var result = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites)); if (result.IsSuccess == true) { //保存个人信息 result = SaveCoursePersonInfoList(obj); } //扣除余额 if (result.IsSuccess == true) { foreach (var item in obj.CoursePersonInfoList) { //有好多人头就扣除好多次 result = CoachHelper.Instance.SubOne(obj); if (result.IsSuccess == false) { break; } } } if (result.IsSuccess == true) { //极光推送 SendJG(obj.ReservedPersonId, obj.CoachId, obj.Id); //发送短信 qcloudsms_csharp.SmsSingleSenderResult smsResult = SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Coacher, CourseSmsType.Save); //发给教练 qcloudsms_csharp.SmsSingleSenderResult smsResult1 = SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Student, CourseSmsType.Save); //发给学生 } return(result); }
public Response Execute(User currentUser, string request) { var req = JsonConvert.DeserializeObject <Request <CoachCourse> >(request); var obj = req.FirstEntity(); var coachCourse = CoachHelper.Instance.GetCoachCourseById(obj.Id); if (coachCourse.BeginTime == null) { return(ResultHelper.Fail("没有找到可以取消的课程")); } //距离上课时间小于四个小时,不能修改 var beginTime = (DateTime)coachCourse.BeginTime; if (beginTime > DateTime.Now) { var legalTime = DateTime.Now.AddHours(4); //TimeSpan timeSpan = ((DateTime)coachCourse.BeginTime).Subtract(DateTime.Now); if (legalTime >= beginTime) { return(ResultHelper.Fail("距离上课时间小于四个小时,不能取消")); } } //课程进行中或已完成, 不能取消预约 if (coachCourse.State != CoachDic.CourseNotStart) { return(ResultHelper.Fail("课程进行中或已完成, 不能取消预约!")); } var list = GetPersonInfoListByCourseId(obj.Id);//提前获取到数据不然删除了就没有了 var sql = @" DELETE FROM dbo.CoachCourse WHERE Id=@Id DELETE FROM dbo.CoachCoursePersonInfo WHERE CourseId=@Id "; var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql); cmd.Params.Add("@Id", obj.Id); var result = DbContext.GetInstance().Execute(cmd); //返回余额 if (result.IsSuccess == true) { foreach (var item in list) { //有多少个人头就返回多少次 result = CoachHelper.Instance.AddOne(obj); if (result.IsSuccess == false) { break; } } } if (result.IsSuccess == true) { //极光推送 SendJG(coachCourse.ReservedPersonId, coachCourse.CoachId, currentUser.Id); //发送短信 qcloudsms_csharp.SmsSingleSenderResult smsResult = SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Coacher, CourseSmsType.Cancel); //发给教练 qcloudsms_csharp.SmsSingleSenderResult smsResult1 = SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Student, CourseSmsType.Cancel); //发给学生 } return(result); }