Exemple #1
0
        public async Task <JsonResult> UserApplyActivity(UserApplyActivityModel userActivityModel, string userName)
        {
            if (userActivityModel.ActivityId == Guid.Empty || string.IsNullOrWhiteSpace(userActivityModel.Mobile) || string.IsNullOrWhiteSpace(userActivityModel.CarNum) || string.IsNullOrWhiteSpace(userActivityModel.DriverNum))
            {
                return(AjaxHelper.MvcJsonResult(HttpStatusCode.BadRequest, "缺少必要参数"));
            }
            userActivityModel.UserName = userName;
            using (var activityClient = new ActivityClient())
            {
                //检查活动是否开始
                var activityModel = await activityClient.GetActivityModelByActivityIdAsync(userActivityModel.ActivityId);

                if (activityModel.Success)
                {
                    if (activityModel.Result.StartTime > DateTime.Now.Date)
                    {
                        return(AjaxHelper.MvcJsonResult(HttpStatusCode.Accepted, "活动暂未开始"));
                    }
                }
                else
                {
                    return(AjaxHelper.MvcJsonResult(HttpStatusCode.BadGateway, "服务器内部错误"));
                }
                //检查用户手机号、车牌号、驾驶证号是否已经使用
                var isExistResult = await activityClient.CheckUserApplyActivityInfoIsExistAsync(userActivityModel.ActivityId, userActivityModel.Mobile, userActivityModel.CarNum, userActivityModel.DriverNum);

                if (isExistResult.Success)
                {
                    if (!isExistResult.Result)
                    {
                        var activity = await activityClient.GetActivityModelByActivityIdAsync(userActivityModel.ActivityId);

                        //获取报名用户审核通过数
                        var auditPassCount =
                            await activityClient.GetActivityApplyUserPassCountByActivityIdAsync(userActivityModel
                                                                                                .ActivityId);

                        if (activity.Success && auditPassCount.Success && auditPassCount.Result < activity.Result.Quota)
                        {
                            var cacheResult =
                                await activityClient.AddUserApplyActivitySortedSetCacheAsync(userActivityModel);

                            if (cacheResult.Success)
                            {
                                return(AjaxHelper.MvcJsonResult(HttpStatusCode.OK,
                                                                "报名成功,审核通过后服务码将会以短信形式发送到您的手机,请注意查收"));
                            }
                        }
                        else
                        {
                            return(AjaxHelper.MvcJsonResult(HttpStatusCode.Accepted, "报名人数已满!"));
                        }
                    }
                    else
                    {
                        return(AjaxHelper.MvcJsonResult(HttpStatusCode.Accepted, "手机号、车牌号、驾驶证号已经被使用"));
                    }
                }
            }
            return(AjaxHelper.MvcJsonResult(HttpStatusCode.BadGateway, "服务器内部错误"));
        }