public Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <User> >(request); if (req.Filter.Id.IsNotNullOrEmpty() && req.Filter.Mobile.IsNullOrEmpty()) { User temp = UserHelper.GetUserById(req.Filter.Id); if (temp != null) { req.Filter.Mobile = temp.Mobile; } } if (req.Filter.Mobile.IsNotNullOrEmpty()) { ValCode val = new ValCode(); string code = val.CreateValidateCode(4); var cmd = CommandHelper.CreateProcedure(FetchType.Execute, "sp_UpdateValCode"); cmd.Params.Add("@mobile", req.Filter.Mobile); cmd.Params.Add("@code", code); var result = DbContext.GetInstance().Execute(cmd); if (!result.IsSuccess) { return(ResultHelper.Fail("发送验证码失败。")); } var sendResult = SmsHelper.SendValCode(req.Filter.Mobile, code); if (sendResult.result == 0) { return(ResultHelper.Success("发送成功。")); } else { return(ResultHelper.Fail(string.Format("发送验证码失败,错误代码:{0}。", sendResult.errMsg))); } } else { return(ResultHelper.Fail("请输入手机号码。")); } }
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(); string errorMsg; //课程进行中或已完成, 不能修改 var oldCoachCourse = CoachHelper.Instance.GetCoachCourseById(obj.Id); if (oldCoachCourse.State != CoachDic.CourseNotStart) { return(ResultHelper.Fail("课程进行中或已完成, 不能修改!")); } //距离上课时间小于四个小时,不能修改 var beginTime = (DateTime)oldCoachCourse.BeginTime; if (beginTime > DateTime.Now) { var legalTime = DateTime.Now.AddHours(4); //TimeSpan timeSpan = beginTime.Subtract(DateTime.Now); if (legalTime >= beginTime) { return(ResultHelper.Fail("距离上课时间小于四个小时,不能修改")); } } //判断时间是否有效 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("教练这个时间段有课, 请修改时间范围再约 ")); } } var sql = @" UPDATE dbo.CoachCourse SET BeginTime=@BeginTime, EndTime=@EndTime, Remark=@Remark WHERE Id=@Id "; var cmd = CommandHelper.CreateText <CoachCourse>(FetchType.Execute, sql); cmd.Params.Add("@BeginTime", obj.BeginTime); cmd.Params.Add("@EndTime", obj.EndTime); cmd.Params.Add("@Remark", obj.Remark); cmd.Params.Add("@Id", obj.Id); var result = DbContext.GetInstance().Execute(cmd); //返还或者扣除次数 if (result.IsSuccess == true) { result = AddOrSubAmount(result, oldCoachCourse, obj); } if (result.IsSuccess == true) { DeleteCoursePersonInfo(obj); //先删除以前的数据 result = SaveCoursePersonInfoList(obj); //再保存新的约课人信息 } if (result.IsSuccess == true) { //极光推送 SendJG(oldCoachCourse.ReservedPersonId, oldCoachCourse.CoachId, oldCoachCourse.Id, currentUser.Id); //发送短信 obj.CoachId = oldCoachCourse.CoachId; //把查询出来的教练用户id赋值到OBJ SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Coacher, CourseSmsType.Update); //发给教练 SmsHelper.SendCourseSms(currentUser, obj, CoursePersonType.Student, CourseSmsType.Update); //发给学生 } 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); }