Esempio n. 1
0
        public async Task <JsonResult> GetActivityModels(int pageIndex = 1, int pageSize = 10)
        {
            using (var client = new ActivityClient())
            {
                var result = await client.GetActivityModelsPagedAsync(pageIndex, pageSize);

                if (result.Success)
                {
                    foreach (var activity in result.Result.Item1)
                    {
                        var applyUserCountResult =
                            await client.GetActivityApplyUserCountByActivityIdAsync(activity.ActivityId);

                        var auditPassUserCount =
                            await client.GetActivityApplyUserPassCountByActivityIdAsync(activity.ActivityId);

                        activity.ApplyUserCount     = applyUserCountResult.Success ? applyUserCountResult.Result : 0;
                        activity.AuditPassUserCount = auditPassUserCount.Success ? auditPassUserCount.Result : 0;
                    }
                    return(AjaxHelper.MvcJsonResult(HttpStatusCode.OK, "成功", result.Result));
                }
                else
                {
                    return(AjaxHelper.MvcJsonResult(HttpStatusCode.BadGateway, "服务器内部错误"));
                }
            }
        }
        private async Task <bool> CheckApplyUserCountAsync(Guid activityId)
        {
            //判断当前活动审核通过人数是否已达上限
            using (var activityClient = new ActivityClient())
            {
                //检查活动审核通过人数是否已满
                var applyUserPassCountResult =
                    await activityClient.GetActivityApplyUserPassCountByActivityIdAsync(activityId);

                var activityModelResult =
                    await activityClient.GetActivityModelByActivityIdAsync(activityId);

                if (applyUserPassCountResult.Success && activityModelResult.Success)
                {
                    if (applyUserPassCountResult.Result >= activityModelResult.Result.Quota)
                    {
                        return(false);
                    }
                }
                else
                {
                    Logger.Error($"审核通过人数查询失败。Message:{(applyUserPassCountResult.Success ? applyUserPassCountResult.Exception : activityModelResult.Exception)}");
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 3
0
        private async Task <bool> CheckApplyUserCountAsync(Guid activityId, int quota)
        {
            //判断当前活动审核通过人数是否已达上限
            using (var client = new ActivityClient())
            {
                var auditPassUserCount =
                    await client.GetActivityApplyUserPassCountByActivityIdAsync(activityId);

                if (auditPassUserCount.Success)
                {
                    if (auditPassUserCount.Result >= quota)
                    {
                        return(false);
                    }
                }
                else
                {
                    Logger.Error($"审核通过人数查询失败。Message:{auditPassUserCount.Exception}");
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 4
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, "服务器内部错误"));
        }