public static async Task <int> SubmitZeroActivityApplicationAsync(ZeroActivityRequest requestModel, ZeroActivityDetailModel activityDetail, string userMobile) { using (var cmd = new SqlCommand(InsertZeroActivityApplication)) { cmd.CommandType = CommandType.Text; cmd.Parameters.AddWithValue("@Period", requestModel.Period); cmd.Parameters.AddWithValue("@UserID", requestModel.UserId); cmd.Parameters.AddWithValue("@UserName", requestModel.UserName); cmd.Parameters.AddWithValue("@PID", activityDetail.PID); cmd.Parameters.AddWithValue("@ProductName", activityDetail.ProductName); cmd.Parameters.AddWithValue("@Quantity", (activityDetail.NumOfWinners == 0 ? 0 : activityDetail.Quantity / activityDetail.NumOfWinners)); cmd.Parameters.AddWithValue("@ProvinceID", requestModel.ProvinceID); cmd.Parameters.AddWithValue("@CityID", requestModel.CityID); cmd.Parameters.AddWithValue("@ApplyReason", requestModel.ApplicationReason); cmd.Parameters.AddWithValue("@CarID", requestModel.CarID); cmd.Parameters.AddWithValue("@Mobile", userMobile); var count = Convert.ToInt32(await DbHelper.ExecuteScalarAsync(cmd)); if (count > 0) { await RedisHelper.CreateZeroActivityApplyCache(); await RedisHelper.CreateZeroActivityApplyCacheOnPeriod(requestModel.Period); await RedisHelper.CreateZeroActivityApplyCacheOnUserId(requestModel.UserId); } return(count); } }
public static async Task <int> SubmitZeroActivityApplicationAsync(ZeroActivityRequest requestModel) { try { var activityDetail = await FetchZeroActivityDetailAsync(requestModel.Period); if (activityDetail == null) { return(-2); } else if (activityDetail.StatusOfActivity != 1) { return(-3); } else if (activityDetail.PID == null || activityDetail.ProductName == null) { return(-4); } if (await DalZeroActivity.HasZeroActivityApplicationSubmittedAsync(requestModel.UserId, requestModel.Period)) { return(-1); } string userMobile = ""; using (var uClient = new UserAccountClient()) { var result = await uClient.GetUserByIdAsync(requestModel.UserId); if (result.Success && !string.IsNullOrWhiteSpace(result.Result?.MobileNumber) && result.Result.MobileNumber.Length <= 30) { userMobile = result.Result.MobileNumber; } } var count = await DalZeroActivity.SubmitZeroActivityApplicationAsync(requestModel, activityDetail, userMobile); if (count > 0) { var actionQueueDic = new Dictionary <string, string>(); actionQueueDic["UserId"] = requestModel.UserId.ToString("B"); actionQueueDic["ActionName"] = "12PublicTest"; TuhuNotification.SendNotification("notification.TaskActionQueue", actionQueueDic); using (var client = CacheHelper.CreateCacheClient(DefaultClientName)) { var existenceResult = await client.ExistsAsync(GlobalConstant.MyZeroApplyApplications + requestModel.UserId.ToString("B") + "/0/"); if (existenceResult.Success) { var removeResult = await client.RemoveAsync(GlobalConstant.MyZeroApplyApplications + requestModel.UserId.ToString("B") + "/0/"); if (!removeResult.Success) { Logger.Warn($"删除用户众测申请列表(申请中)缓存redis失败MyZeroApplyApplications:{GlobalConstant.MyZeroApplyApplications + requestModel.UserId.ToString("B") + "/0/"};Error:{removeResult.Message}", removeResult.Exception); } } } } return(count); } catch (Exception ex) { Logger.ErrorException("SubmitZeroActivityApplication逻辑进行中出现异常", ex); return(0); } }
/// <summary> ///提交众测申请 /// </summary> /// <returns></returns> public async Task <OperationResult <bool> > SubmitZeroActivityApplicationAsync(ZeroActivityRequest requestModel) { if (requestModel == null) { return(OperationResult.FromError <bool>(ErrorCode.ParameterError, "传入的requestModel不能为空")); } else if (requestModel.Period < 0) { return(OperationResult.FromError <bool>(ErrorCode.ParameterError, "period参数出错,应该大于0")); } else if (requestModel.UserId == null || requestModel.UserId == Guid.Empty) { return(OperationResult.FromError <bool>(ErrorCode.ParameterError, "UserId参数不能为空")); } else if (string.IsNullOrWhiteSpace(requestModel.UserName)) { return(OperationResult.FromError <bool>(ErrorCode.ParameterError, "UserName参数不能为空")); } var result = await ZeroActivityManager.SubmitZeroActivityApplicationAsync(requestModel); if (result > 0) { return(OperationResult.FromResult(true)); } else if (result == -2) { return(OperationResult.FromError <bool>("ActivityNotExisted", "该期活动不存在")); } else if (result == -3) { return(OperationResult.FromError <bool>("ActivityNotProceeding", "该期活动不在进行中")); } else if (result == -4) { return(OperationResult.FromError <bool>("ActivityNotProceeding", "该期活动的PID或ProductName为空,无法插入")); } else if (result == -1) { return(OperationResult.FromError <bool>("ApplyExisted", "您已经申请了本期活动")); } else { return(OperationResult.FromError <bool>("InsertFailure", "新建数据失败")); } }