protected override EmptyResponseData ProcessRequest(DTO.Base.APIRequest <SetActivityApplyRP> pRequest) { var rd = new EmptyResponseData(); var para = pRequest.Parameters; var vipActivityApplyBLL = new X_VipActivityApplyBLL(CurrentUserInfo); var vipActivityApply = new X_VipActivityApplyEntity() { VipID = CurrentUserInfo.UserID, CustomerID = CurrentUserInfo.ClientID, Nickname = para.Nickname, Territory = para.Territory, Age = para.Age, Phone = para.Phone, LikeTea = para.LikeTea }; vipActivityApplyBLL.Create(vipActivityApply); return(rd); }
/// <summary> /// 更新 /// </summary> /// <param name="pEntity">实体实例</param> /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param> public void Update(X_VipActivityApplyEntity pEntity, IDbTransaction pTran) { _currentDAO.Update(pEntity, pTran); }
protected override LuckDrawRD ProcessRequest(DTO.Base.APIRequest <EmptyRequestParameter> pRequest) { var rd = new LuckDrawRD(); var activityBLL = new X_ActivityBLL(CurrentUserInfo); var para = pRequest.Parameters; var activityPrizesBLL = new X_ActivityPrizesBLL(CurrentUserInfo); var vipPointBLL = new X_VipPointMarkBLL(CurrentUserInfo); var activityJoinBLL = new X_ActivityJoinBLL(CurrentUserInfo); var vipActivityApplyBLL = new X_VipActivityApplyBLL(CurrentUserInfo); X_VipActivityApplyEntity vipActivityApply = null; vipActivityApply = vipActivityApplyBLL.QueryByEntity(new X_VipActivityApplyEntity() { VipID = CurrentUserInfo.UserID }, null).FirstOrDefault(); //判断是否报名 if (vipActivityApply == null) { rd.Flag = 6;//未报名 return(rd); } DateTime dtNow = DateTime.Now; //当前时间 DateTime startWeekTime = DateTimeHelper.GetMondayDate(dtNow).Date; //本周周一 DateTime endWeekTime = DateTimeHelper.GetSundayDate(dtNow).AddDays(1).Date; //本周周日 int point = 0; //用户当前积点 int joinLimit = 0; //每周参与次数限制 int LowestPointLimit = 0; //可参与的最小积点限制 //判断活动是否已结束 var activityInfo = activityBLL.QueryByEntity(new X_ActivityEntity() { CustomerID = CurrentUserInfo.ClientID }, null).FirstOrDefault(); if (activityInfo != null) { if (dtNow < activityInfo.BeginTime || dtNow > activityInfo.EndTime) { rd.Flag = 5;//活动已结束 return(rd); } joinLimit = activityInfo.JoinLimit.Value; LowestPointLimit = activityInfo.LowestPointLimit.Value; } //判断用户当前积点是否够 var vipPointInfo = vipPointBLL.QueryByEntity(new X_VipPointMarkEntity() { VipID = pRequest.UserID }, null).FirstOrDefault(); if (vipPointInfo != null) { point = vipPointInfo.Count.Value; } if (point < LowestPointLimit) { rd.Flag = 4;//积点不足 return(rd); } //判断用户本周是否已抽奖 var activityJoinInfo = activityJoinBLL.GetActivityJoinByWeek(pRequest.UserID, startWeekTime, endWeekTime); if (activityJoinInfo != null) { rd.Flag = 3;//本周已抽奖 return(rd); } //读取所有奖品 var activityPrizesList = activityPrizesBLL.QueryByEntity(new X_ActivityPrizesEntity() { CustomerID = this.CurrentUserInfo.ClientID } , new OrderBy[] { new OrderBy() { FieldName = "CAST(ImageUrl AS int ) ", Direction = OrderByDirections.Asc } }); #region 判断是否中奖 Random Random1 = new Random(); int i = Random1.Next(0, 100); string prizesId = string.Empty; string prizesName = string.Empty; foreach (var item in activityPrizesList) { if (int.Parse(item.ImageUrl) >= i)//ImageUrl字段临时作为中奖概率范围 { prizesId = item.PrizesID.ToString(); break; } } var activityPrizesInfo = activityPrizesBLL.GetByID(prizesId); if (activityPrizesInfo != null) { //判断该奖品是否已兑完 if (activityPrizesInfo.RemainingQty <= 0) { rd.Flag = 2; //未中奖 rd.DisplayIndex = 4; } //判断本周奖品是否已抽完 int weekCount = activityJoinBLL.GetPrizesCountByWeek(activityPrizesInfo.PrizesID.Value, startWeekTime, endWeekTime); if (activityPrizesInfo.WeekCount <= weekCount) { rd.Flag = 2; //未中奖 rd.DisplayIndex = 4; } //判断积点是否足够兑奖,不够则为不中 if (point < activityPrizesInfo.UsePoint) { rd.Flag = 2; //未中奖 rd.DisplayIndex = 4; } if (rd.Flag == 0) //中奖 { rd.Flag = 1; //中奖 rd.PrizesID = activityPrizesInfo.PrizesID; rd.PrizesName = activityPrizesInfo.PrizesName; rd.DisplayIndex = activityPrizesInfo.DisplayIndex; //显示序号 } var activityJoinInfoNew = new X_ActivityJoinEntity() { VipID = pRequest.UserID, ActivityID = activityInfo.ActivityID, IsWinPrice = rd.Flag == 1 ? 1 : 2, PrizesID = activityPrizesInfo.PrizesID, IsExchange = 2, CustomerID = this.CurrentUserInfo.ClientID }; activityJoinBLL.Create(activityJoinInfoNew); } #endregion return(rd); }
/// <summary> /// 创建一个新实例 /// </summary> /// <param name="pEntity">实体实例</param> public void Create(X_VipActivityApplyEntity pEntity) { _currentDAO.Create(pEntity); }
/// <summary> /// 分页根据实体条件查询实体 /// </summary> /// <param name="pQueryEntity">以实体形式传入的参数</param> /// <param name="pOrderBys">排序组合</param> /// <returns>符合条件的实体集</returns> public PagedQueryResult <X_VipActivityApplyEntity> PagedQueryByEntity(X_VipActivityApplyEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex) { return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex)); }
/// <summary> /// 根据实体条件查询实体 /// </summary> /// <param name="pQueryEntity">以实体形式传入的参数</param> /// <param name="pOrderBys">排序组合</param> /// <returns>符合条件的实体集</returns> public X_VipActivityApplyEntity[] QueryByEntity(X_VipActivityApplyEntity pQueryEntity, OrderBy[] pOrderBys) { return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys)); }
/// <summary> /// 删除 /// </summary> /// <param name="pEntity"></param> public void Delete(X_VipActivityApplyEntity pEntity) { _currentDAO.Delete(pEntity); }
/// <summary> /// 更新 /// </summary> /// <param name="pEntity">实体实例</param> public void Update(X_VipActivityApplyEntity pEntity) { _currentDAO.Update(pEntity); }