Ejemplo n.º 1
0
        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("请输入手机号码。"));
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }