Exemple #1
0
        /// <summary>
        /// 添加创意仓库中的触点活动奖品
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int AddContactEventPrizeForCTW(LPrizesEntity entity)
        {
            SqlParameter[] parameters = new SqlParameter[6]
            {
                new SqlParameter {
                    ParameterName = "@EventId", SqlDbType = SqlDbType.NVarChar, Value = entity.EventId
                },

                new SqlParameter {
                    ParameterName = "@PrizesID", SqlDbType = SqlDbType.NVarChar, Value = entity.PrizesID
                },
                new SqlParameter {
                    ParameterName = "@PrizeTypeId", SqlDbType = SqlDbType.NVarChar, Value = entity.PrizeTypeId
                },

                new SqlParameter {
                    ParameterName = "@CouponTypeID", SqlDbType = SqlDbType.NVarChar, Value = entity.CouponTypeID
                },
                new SqlParameter {
                    ParameterName = "@CountTotal", SqlDbType = SqlDbType.Int, Value = entity.CountTotal
                },
                new SqlParameter {
                    ParameterName = "@Creator", SqlDbType = SqlDbType.NVarChar, Value = entity.CreateBy
                }
            };
            return(this.SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure, "[Proc_AddContactEventPrize_CTW]", parameters));
        }
Exemple #2
0
 /// <summary>
 /// 和活动共用一个奖品表
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public int SaveSharePrize(LPrizesEntity entity)
 {
     SqlParameter[] parameters = new SqlParameter[7]
     {
         new SqlParameter {
             ParameterName = "@EventId", SqlDbType = SqlDbType.NVarChar, Value = entity.EventId
         },
         new SqlParameter {
             ParameterName = "@PrizeName", SqlDbType = SqlDbType.NVarChar, Value = entity.PrizeName
         },
         new SqlParameter {
             ParameterName = "@PrizeTypeId", SqlDbType = SqlDbType.NVarChar, Value = entity.PrizeTypeId
         },
         new SqlParameter {
             ParameterName = "@Point", SqlDbType = SqlDbType.Int, Value = entity.Point
         },
         new SqlParameter {
             ParameterName = "@CouponTypeID", SqlDbType = SqlDbType.NVarChar, Value = entity.CouponTypeID
         },
         new SqlParameter {
             ParameterName = "@CountTotal", SqlDbType = SqlDbType.Int, Value = entity.CountTotal
         },
         new SqlParameter {
             ParameterName = "@Creator", SqlDbType = SqlDbType.NVarChar, Value = entity.CreateBy
         }
     };
     return(this.SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure, "Proc_AddShare", parameters));
 }
        /// <summary>
        /// 添加活动分享
        /// </summary>
        /// <param name="pRequest"></param>
        /// <returns></returns>
        public string AddEventShare(string pRequest)
        {
            var                       rd = new EmptyRD();
            var                       rp = pRequest.DeserializeJSONTo <APIRequest <EventShareRP> >();
            var                       loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            LEventsShareBLL           bllShare           = new LEventsShareBLL(loggingSessionInfo);
            PrizeCouponTypeMappingBLL bllPrize           = new PrizeCouponTypeMappingBLL(loggingSessionInfo);

            if (bllShare.HasShare(rp.Parameters.EventId) > 0)
            {
                var errRsp = new ErrorResponse();
                errRsp.Message = "该活动已设置了分享";
                return(errRsp.ToJSON());
            }
            var entityShare = new LEventsShareEntity();


            string strGuid = Guid.NewGuid().ToString();

            entityShare.ShareId = strGuid;
            entityShare.EventId = rp.Parameters.EventId;
            //entityShare.PrizeTypeID = rp.Parameters.PrizeTypeID;
            //entityShare.TotalCount = rp.Parameters.TotalCount;
            entityShare.IsDelete   = 0;
            entityShare.State      = 1;
            entityShare.ShareTimes = rp.Parameters.ShareTimes;

            bllShare.Create(entityShare);

            var entityPrize = new LPrizesEntity();

            entityPrize.EventId      = strGuid;
            entityPrize.PrizeName    = rp.Parameters.PrizeName;
            entityPrize.PrizeTypeId  = rp.Parameters.PrizeTypeID;
            entityPrize.Point        = rp.Parameters.Point;
            entityPrize.CouponTypeID = rp.Parameters.CouponTypeID;
            entityPrize.CountTotal   = rp.Parameters.TotalCount;
            entityPrize.CreateBy     = loggingSessionInfo.UserID;
            bllShare.SaveSharePrize(entityPrize);

            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            return(rsp.ToJSON());
        }
Exemple #4
0
 /// <summary>
 /// 追缴分享设置奖品的数量
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public int AppendSharePrize(LPrizesEntity entity)
 {
     SqlParameter[] parameters = new SqlParameter[4]
     {
         new SqlParameter {
             ParameterName = "@EventId", SqlDbType = SqlDbType.NVarChar, Value = entity.EventId
         },
         new SqlParameter {
             ParameterName = "@PrizesId", SqlDbType = SqlDbType.NVarChar, Value = entity.PrizesID
         },
         new SqlParameter {
             ParameterName = "@Qty", SqlDbType = SqlDbType.Int, Value = entity.CountTotal
         },
         new SqlParameter {
             ParameterName = "@UpdateBy", SqlDbType = SqlDbType.NVarChar, Value = entity.CreateBy
         }
     };
     return(this.SQLHelper.ExecuteNonQuery(CommandType.StoredProcedure, "[Proc_AppendShare]", parameters));
 }
        public string AppendEventShare(string pRequest)
        {
            var                       rp = pRequest.DeserializeJSONTo <APIRequest <AppendShareRP> >();
            var                       loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            LEventsShareBLL           bllShare           = new LEventsShareBLL(loggingSessionInfo);
            PrizeCouponTypeMappingBLL bllPrize           = new PrizeCouponTypeMappingBLL(loggingSessionInfo);

            var entityPrize = new LPrizesEntity();

            entityPrize.PrizesID     = rp.Parameters.PrizesId;
            entityPrize.EventId      = rp.Parameters.ShareId;
            entityPrize.CountTotal   = rp.Parameters.AppendQty;
            entityPrize.LastUpdateBy = loggingSessionInfo.UserID;

            bllShare.AppendSharePrize(entityPrize);

            var rd  = new EmptyRD();
            var rsp = new SuccessResponse <IAPIResponseData>(rd);

            return(rsp.ToJSON());
        }
Exemple #6
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Delete(LPrizesEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Delete(pEntity, pTran);
 }
Exemple #7
0
 /// <summary>
 /// 删除
 /// </summary>
 /// <param name="pEntity"></param>
 public void Delete(LPrizesEntity pEntity)
 {
     _currentDAO.Delete(pEntity);
 }
Exemple #8
0
 public void Update(LPrizesEntity pEntity, bool pIsUpdateNullField)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField);
 }
Exemple #9
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Update(LPrizesEntity pEntity)
 {
     Update(pEntity, true);
 }
Exemple #10
0
 /// <summary>
 /// 更新
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Update(LPrizesEntity pEntity, IDbTransaction pTran)
 {
     Update(pEntity, true, pTran);
 }
Exemple #11
0
 /// <summary>
 /// 创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 public void Create(LPrizesEntity pEntity)
 {
     _currentDAO.Create(pEntity);
 }
Exemple #12
0
 /// <summary>
 /// 添加分享设置奖品
 /// </summary>
 /// <param name="pEntity"></param>
 public void SaveSharePrize(LPrizesEntity pEntity)
 {
     this._currentDAO.SaveSharePrize(pEntity);
 }
        protected override SetContactEventRD ProcessRequest(DTO.Base.APIRequest <SetContactEventRP> pRequest)
        {
            var rd = new SetContactEventRD();

            var    para = pRequest.Parameters;
            var    loggingSessionInfo = new SessionManager().CurrentUserLoginInfo;
            var    bllContactEvent    = new ContactEventBLL(loggingSessionInfo);
            var    bllEvent           = new LEventsBLL(loggingSessionInfo);
            var    bllPrizes          = new LPrizesBLL(loggingSessionInfo);
            string strErrMsg          = string.Empty;

            try
            {
                string[] CouponTypeIdList = para.CouponTypeID;

                if (para.ContactEventId != null && para.ContactEventId != "")
                {
                    var contactEvent = bllContactEvent.GetByID(para.ContactEventId);
                    //if (contactEvent.Status == 2 || contactEvent.Status==3)//状态为运行时只可追加数量
                    if (para.Method == "Append")
                    {
                        contactEvent.PrizeCount = (contactEvent.PrizeCount == null ? 0 : contactEvent.PrizeCount) + para.PrizeCount;
                        LPrizesBLL bllPrize    = new LPrizesBLL(loggingSessionInfo);
                        var        entityPrize = bllPrize.QueryByEntity(new LPrizesEntity()
                        {
                            EventId = para.ContactEventId, IsDelete = 0
                        }, null).FirstOrDefault();
                        var CouponTypeTemp = bllContactEvent.QueryByEntity(new ContactEventEntity()
                        {
                            ContactEventId = new Guid(para.ContactEventId), IsDelete = 0
                        }, null).SingleOrDefault().CouponTypeID;
                        if (CouponTypeTemp != null)
                        {
                            CouponTypeIdList = CouponTypeTemp.Split(',');
                            if (CouponTypeIdList != null && CouponTypeIdList.Count() > 0)
                            {
                                var bllCoupon = new CouponBLL(loggingSessionInfo);

                                foreach (var cou in CouponTypeIdList)
                                {
                                    //优惠券未被使用了的数量
                                    int     intHaveCout = (int)entityPrize.CountTotal;
                                    DataSet ds          = bllCoupon.GetCouponCountByCouponTypeID(cou);
                                    if (ds != null & ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                                    {
                                        int intUnUsedCouponCount = Convert.ToInt32(ds.Tables[0].Rows[0]["RemainCount"].ToString());
                                        if ((para.PrizeCount + intHaveCout) > intUnUsedCouponCount)
                                        {
                                            strErrMsg += ds.Tables[0].Rows[0]["CouponTypeName"].ToString() + "奖品总数量超过未使用优惠券数量,未使用量:" + intUnUsedCouponCount.ToString() + "<br/>";
                                        }
                                    }
                                }
                                if (!string.IsNullOrEmpty(strErrMsg) && strErrMsg.Length > 0)
                                {
                                    throw new APIException(strErrMsg)
                                          {
                                              ErrorCode = 342
                                          };
                                }
                            }
                        }

                        entityPrize.CountTotal   = para.PrizeCount;
                        entityPrize.LastUpdateBy = loggingSessionInfo.UserID;
                        bllPrize.AppendPrize(entityPrize);

                        //入奖品池队列
                        LPrizePoolsBLL bllPools = new LPrizePoolsBLL(loggingSessionInfo);
                        DataSet        dsPools  = bllPools.GetPrizePoolsByEvent(loggingSessionInfo.ClientID, para.ContactEventId);
                        if (dsPools != null && dsPools.Tables.Count > 0 && dsPools.Tables[0].Rows.Count > 0)
                        {
                            var poolsList = DataTableToObject.ConvertToList <CC_PrizePool>(dsPools.Tables[0]);
                            if (poolsList != null && poolsList.Count > 0)
                            {
                                var          redisPrizePoolsBLL = new JIT.CPOS.BS.BLL.RedisOperationBLL.PrizePools.RedisPrizePoolsBLL();
                                CC_PrizePool prizePool          = new CC_PrizePool();
                                prizePool.CustomerId = loggingSessionInfo.ClientID;
                                prizePool.EventId    = para.ContactEventId;

                                redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
                                redisPrizePoolsBLL.SetPrizePoolsToRedis(poolsList);
                            }
                        }
                    }
                    else
                    {
                        if (para.PrizeType == "Point")
                        {
                            contactEvent.Integral = para.Integral;
                        }
                        if (para.PrizeType == "Coupon")
                        {
                            contactEvent.CouponTypeID = string.Join(",", para.CouponTypeID);
                            var bllCoupon = new CouponBLL(loggingSessionInfo);
                            if (CouponTypeIdList != null && CouponTypeIdList.Count() > 0)
                            {
                                foreach (var cou in CouponTypeIdList)
                                {
                                    //优惠券未被使用了的数量
                                    DataSet ds = bllCoupon.GetCouponCountByCouponTypeID(cou);
                                    if (ds != null & ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                                    {
                                        int intUnUsedCouponCount = Convert.ToInt32(ds.Tables[0].Rows[0]["RemainCount"].ToString());
                                        if (para.PrizeCount > intUnUsedCouponCount)
                                        {
                                            strErrMsg += ds.Tables[0].Rows[0]["CouponTypeName"].ToString() + "奖品总数量超过未使用优惠券数量,未使用量:" + intUnUsedCouponCount.ToString() + "<br/>";
                                        }
                                    }
                                }
                            }
                            if (!string.IsNullOrEmpty(strErrMsg) && strErrMsg.Length > 0)
                            {
                                throw new APIException(strErrMsg)
                                      {
                                          ErrorCode = 342
                                      };
                            }
                        }
                        if (para.PrizeType == "Chance")
                        {
                            contactEvent.EventId     = para.EventId;
                            contactEvent.ChanceCount = para.ChanceCount;
                        }

                        contactEvent.PrizeCount       = para.PrizeCount;
                        contactEvent.ContactTypeCode  = para.ContactTypeCode;
                        contactEvent.ContactEventName = para.ContactEventName;
                        contactEvent.BeginDate        = para.BeginDate;
                        contactEvent.EndDate          = para.EndDate;
                        contactEvent.PrizeType        = para.PrizeType;
                        contactEvent.CustomerID       = CurrentUserInfo.ClientID;
                        contactEvent.RewardNumber     = para.RewardNumber;
                        contactEvent.ShareEventId     = para.ShareEventId;
                        contactEvent.UnLimited        = para.UnLimited;
                        contactEvent.IsCTW            = 0;

                        if (para.ContactTypeCode == "Share" && para.ShareEventId != null && para.ShareEventId != "")
                        {
                            bllEvent.UpdateEventIsShare(para.ShareEventId);
                        }
                        //开始日期是当天的 状态直接变为运行中
                        if (DateTime.Compare(Convert.ToDateTime(para.BeginDate), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) <= 0 && DateTime.Compare(Convert.ToDateTime(para.EndDate), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) >= 0)
                        {
                            contactEvent.Status = 2;
                        }
                    }


                    bllContactEvent.Update(contactEvent);
                    rd.ContactEventId = para.ContactEventId.ToString();
                    rd.ErrMsg         = "操作成功";
                    rd.Success        = true;
                }
                else
                {
                    ContactEventEntity entityContactEvent = new ContactEventEntity();


                    //RewardType:Point,Coupon,Chance
                    if (para.PrizeType == "Point")
                    {
                        entityContactEvent.Integral = para.Integral;
                    }
                    if (para.PrizeType == "Coupon")
                    {
                        entityContactEvent.CouponTypeID = string.Join(",", para.CouponTypeID);;

                        var bllCoupon = new CouponBLL(loggingSessionInfo);
                        if (CouponTypeIdList != null && CouponTypeIdList.Count() > 0)
                        {
                            foreach (var cou in CouponTypeIdList)
                            {
                                //优惠券未被使用了的数量

                                DataSet ds = bllCoupon.GetCouponCountByCouponTypeID(cou);
                                if (ds != null & ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
                                {
                                    int intUnUsedCouponCount = Convert.ToInt32(ds.Tables[0].Rows[0]["RemainCount"].ToString());
                                    if (para.PrizeCount > intUnUsedCouponCount)
                                    {
                                        strErrMsg += ds.Tables[0].Rows[0]["CouponTypeName"].ToString() + "奖品总数量超过未使用优惠券数量,未使用量:" + intUnUsedCouponCount.ToString() + "<br/>";
                                    }
                                }
                            }
                        }
                        if (!string.IsNullOrEmpty(strErrMsg) && strErrMsg.Length > 0)
                        {
                            throw new APIException(strErrMsg)
                                  {
                                      ErrorCode = 342
                                  };
                        }
                    }
                    if (para.PrizeType == "Chance")
                    {
                        entityContactEvent.EventId     = para.EventId;
                        entityContactEvent.ChanceCount = para.ChanceCount;
                    }

                    if (bllContactEvent.ExistsContact(para.ContactTypeCode, string.IsNullOrEmpty(para.ShareEventId) == true ? "" : para.ShareEventId) > 0)
                    {
                        if (para.ContactTypeCode == "Share" && para.ShareEventId != null && para.ShareEventId.Length > 0)
                        {
                            rd.ErrMsg = "该分享活动已存在";
                        }
                        else
                        {
                            rd.ErrMsg = "该触点活动类型已存在";
                        }
                        rd.Success = false;
                        return(rd);
                    }

                    if (para.ShareEventId != null && para.ShareEventId.Length > 0)
                    {
                        //判断触点中的分享设置的开始时间和结束时间是否在被分享的活动时间范围内
                        var entityEvent = bllEvent.GetByID(para.ShareEventId);
                        if (DateTime.Compare(Convert.ToDateTime(para.BeginDate), Convert.ToDateTime(entityEvent.BeginTime)) < 0 || DateTime.Compare(Convert.ToDateTime(para.EndDate), Convert.ToDateTime(entityEvent.EndTime)) > 0)
                        {
                            rd.Success = false;

                            rd.ErrMsg = "活动的时间不在被分享的活动时间范围内";
                            return(rd);
                        }
                        entityContactEvent.ShareEventId = para.ShareEventId;
                        entityEvent.IsShare             = 1;
                        bllEvent.Update(entityEvent, false);
                    }


                    entityContactEvent.PrizeCount       = para.PrizeCount;
                    entityContactEvent.ContactTypeCode  = para.ContactTypeCode;
                    entityContactEvent.ContactEventName = para.ContactEventName;
                    entityContactEvent.BeginDate        = para.BeginDate;
                    entityContactEvent.EndDate          = para.EndDate;
                    entityContactEvent.PrizeType        = para.PrizeType;
                    entityContactEvent.CustomerID       = CurrentUserInfo.ClientID;
                    entityContactEvent.RewardNumber     = para.RewardNumber;
                    entityContactEvent.UnLimited        = para.UnLimited;
                    entityContactEvent.IsCTW            = 0;
                    //开始日期是当天的 状态直接变为运行中
                    if (DateTime.Compare(Convert.ToDateTime(para.BeginDate), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) <= 0 && DateTime.Compare(Convert.ToDateTime(para.EndDate), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) >= 0)
                    {
                        entityContactEvent.Status = 2;
                    }
                    else
                    {
                        entityContactEvent.Status = 1;
                    }
                    bllContactEvent.Create(entityContactEvent);

                    ///保存奖品 生成奖品池
                    var entityPrize = new LPrizesEntity();
                    entityPrize.EventId      = entityContactEvent.ContactEventId.ToString();
                    entityPrize.PrizeName    = para.ContactEventName;
                    entityPrize.PrizeTypeId  = para.PrizeType;
                    entityPrize.Point        = para.Integral;
                    entityPrize.CouponTypeID = string.Join(",", para.CouponTypeID);;
                    entityPrize.CountTotal   = para.PrizeCount;
                    entityPrize.CreateBy     = loggingSessionInfo.UserID;

                    bllContactEvent.DeleteContactPrize(entityContactEvent.ContactEventId.ToString());
                    bllContactEvent.AddContactEventPrize(entityPrize);

                    //入奖品池队列
                    LPrizePoolsBLL bllPools = new LPrizePoolsBLL(loggingSessionInfo);
                    DataSet        dsPools  = bllPools.GetPrizePoolsByEvent(loggingSessionInfo.ClientID, entityContactEvent.ContactEventId.ToString());
                    if (dsPools != null && dsPools.Tables.Count > 0 && dsPools.Tables[0].Rows.Count > 0)
                    {
                        var poolsList = DataTableToObject.ConvertToList <CC_PrizePool>(dsPools.Tables[0]);
                        if (poolsList != null && poolsList.Count > 0)
                        {
                            var          redisPrizePoolsBLL = new JIT.CPOS.BS.BLL.RedisOperationBLL.PrizePools.RedisPrizePoolsBLL();
                            CC_PrizePool prizePool          = new CC_PrizePool();
                            prizePool.CustomerId = loggingSessionInfo.ClientID;
                            prizePool.EventId    = entityContactEvent.ContactEventId.ToString();

                            redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
                            redisPrizePoolsBLL.SetPrizePoolsToRedis(poolsList);
                        }
                    }

                    rd.ContactEventId = entityContactEvent.ContactEventId.ToString();
                    rd.ErrMsg         = "操作成功";
                    rd.Success        = true;
                }
            }
            catch (APIException apiEx)
            {
                rd.Success = false;
                rd.ErrMsg  = apiEx.Message;
                throw new APIException(apiEx.ErrorCode, apiEx.Message);
            }

            return(rd);
        }
Exemple #14
0
 /// <summary>
 /// 根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public LPrizesEntity[] QueryByEntity(LPrizesEntity pQueryEntity, OrderBy[] pOrderBys)
 {
     return(_currentDAO.QueryByEntity(pQueryEntity, pOrderBys));
 }
Exemple #15
0
 /// <summary>
 /// 追加分享设置奖品
 /// </summary>
 /// <param name="pEntity"></param>
 public void AppendSharePrize(LPrizesEntity pEntity)
 {
     this._currentDAO.AppendSharePrize(pEntity);
 }
Exemple #16
0
 /// <summary>
 /// 分页根据实体条件查询实体
 /// </summary>
 /// <param name="pQueryEntity">以实体形式传入的参数</param>
 /// <param name="pOrderBys">排序组合</param>
 /// <returns>符合条件的实体集</returns>
 public PagedQueryResult <LPrizesEntity> PagedQueryByEntity(LPrizesEntity pQueryEntity, OrderBy[] pOrderBys, int pPageSize, int pCurrentPageIndex)
 {
     return(_currentDAO.PagedQueryByEntity(pQueryEntity, pOrderBys, pPageSize, pCurrentPageIndex));
 }
Exemple #17
0
        /// <summary>
        /// 保存更新游戏信息
        /// </summary>
        /// <param name="para"></param>
        /// <returns></returns>
        public void SaveGameEvent(SetCTWEventRP para, LPrizesBLL bllPrize, T_CTW_LEventInteractionBLL bllCustomerInteraction, string strThemeId, out string strStartDate, out string strEndDate, out string strGameEventGuid)
        {
            strGameEventGuid = string.Empty;

            var imageBll = new ObjectImagesBLL(loggingSessionInfo);

            LEventsBLL bllGameEvent = new LEventsBLL(loggingSessionInfo);

            var eventEntity = new LEventsEntity();

            strStartDate = para.GameEventInfo.BeginTime;
            strEndDate   = para.GameEventInfo.EndTime + " 23:59:59";
            if (string.IsNullOrEmpty(para.GameEventInfo.LeventId))
            {
                strGameEventGuid          = Guid.NewGuid().ToString();
                eventEntity.EventID       = strGameEventGuid;
                eventEntity.Title         = para.GameEventInfo.Title;
                eventEntity.BeginTime     = para.GameEventInfo.BeginTime;
                eventEntity.EndTime       = para.GameEventInfo.EndTime;
                eventEntity.DrawMethodId  = GetDrawMethodIdByDrawMethodCode(para.DrawMethodCode);
                eventEntity.PersonCount   = para.GameEventInfo.PersonCount;
                eventEntity.PointsLottery = para.GameEventInfo.PointsLottery;
                eventEntity.LotteryNum    = para.GameEventInfo.LotteryNum;
                eventEntity.IsDelete      = 0;

                if (DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.BeginTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) <= 0 && DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.EndTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) >= 0)
                {
                    eventEntity.EventStatus = 20;    //10=未开始,20=运行中,30=暂停,40=结束
                }
                else if (DateTime.Compare(Convert.ToDateTime(para.GameEventInfo.BeginTime), Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"))) > 0)
                {
                    eventEntity.EventStatus = 10;    //10=未开始,20=运行中,30=暂停,40=结束
                }
                eventEntity.IsCTW      = 1;
                eventEntity.CustomerId = loggingSessionInfo.ClientID;
                bllGameEvent.Create(eventEntity);
            }
            else
            {
                strGameEventGuid          = para.GameEventInfo.LeventId;
                eventEntity               = bllGameEvent.GetByID(strGameEventGuid);
                eventEntity.Title         = para.GameEventInfo.Title;
                eventEntity.BeginTime     = para.GameEventInfo.BeginTime;
                eventEntity.EndTime       = para.GameEventInfo.EndTime;
                eventEntity.DrawMethodId  = GetDrawMethodIdByDrawMethodCode(para.DrawMethodCode);
                eventEntity.PersonCount   = para.GameEventInfo.PersonCount;
                eventEntity.PointsLottery = para.GameEventInfo.PointsLottery;
                eventEntity.LotteryNum    = para.GameEventInfo.LotteryNum;

                bllGameEvent.Update(eventEntity);
            }

            ///图片
            if (para.GameEventInfo.ImageList.Count > 0)
            {
                imageBll.DeleteByObjectID(strGameEventGuid);

                foreach (var i in para.GameEventInfo.ImageList)
                {
                    imageEntity             = new ObjectImagesEntity();
                    imageEntity.ImageURL    = i.ImageURL;
                    imageEntity.ObjectId    = strGameEventGuid;
                    imageEntity.CreateBy    = loggingSessionInfo.UserID;
                    imageEntity.ImageId     = Guid.NewGuid().ToString();
                    imageEntity.BatId       = i.BatId;
                    imageEntity.RuleId      = para.GameEventInfo.RuleId ?? 1;
                    imageEntity.RuleContent = para.GameEventInfo.RuleContent;
                    imageEntity.IsDelete    = 0;
                    imageEntity.CustomerId  = loggingSessionInfo.ClientID;
                    imageBll.Create(imageEntity);
                }
            }
            //奖品信息
            var entityPrize        = new LPrizesEntity();
            var redisPrizePoolsBLL = new JIT.CPOS.BS.BLL.RedisOperationBLL.PrizePools.RedisPrizePoolsBLL();

            if (!string.IsNullOrEmpty(para.GameEventInfo.LeventId))
            {
                //bllPrize.Delete(new LPrizesEntity() { EventId = para.GameEventInfo.LeventId });
                bllPrize.DeletePrizesByEventId(para.GameEventInfo.LeventId);

                CC_PrizePool prizePool = new CC_PrizePool();
                prizePool.CustomerId = loggingSessionInfo.ClientID;
                prizePool.EventId    = para.GameEventInfo.LeventId;
                redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
            }
            if (para.GameEventInfo.PrizeList.Count > 0)
            {
                foreach (var i in para.GameEventInfo.PrizeList)
                {
                    entityPrize.EventId      = strGameEventGuid;
                    entityPrize.PrizeTypeId  = i.PrizeTypeId;
                    entityPrize.Point        = i.Point;
                    entityPrize.CouponTypeID = i.CouponTypeID;
                    entityPrize.PrizeName    = i.PrizeName;
                    entityPrize.CountTotal   = i.PrizeCount;
                    entityPrize.CreateBy     = loggingSessionInfo.UserID;
                    entityPrize.PrizesID     = Guid.NewGuid().ToString();

                    bllPrize.SavePrize(entityPrize);
                }

                //入奖品池队列
                LPrizePoolsBLL bllPools = new LPrizePoolsBLL(loggingSessionInfo);
                DataSet        dsPools  = bllPools.GetPrizePoolsByEvent(loggingSessionInfo.ClientID, strGameEventGuid);
                if (dsPools != null && dsPools.Tables.Count > 0 && dsPools.Tables[0].Rows.Count > 0)
                {
                    var poolTemp  = DataTableToObject.ConvertToList <CC_PrizePool>(dsPools.Tables[0]);
                    var poolsList = Utils.GetRandomList <CC_PrizePool>(poolTemp);   //随机列表
                    if (poolsList != null && poolsList.Count > 0)
                    {
                        CC_PrizePool prizePool = new CC_PrizePool();
                        prizePool.CustomerId = loggingSessionInfo.ClientID;
                        prizePool.EventId    = strGameEventGuid;

                        redisPrizePoolsBLL.DeletePrizePoolsList(prizePool);
                        redisPrizePoolsBLL.SetPrizePoolsToRedis(poolsList);
                    }
                }
            }
            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllCustomerInteraction.DeleteByCTWEventID(para.CTWEventId);
            }
            ///互动类型与(游戏或促销)关联
            entityInteraction = new T_CTW_LEventInteractionEntity()
            {
                CTWEventId       = new Guid(strCTWEventId),
                ThemeId          = new Guid(strThemeId),
                InteractionType  = para.InteractionType,
                DrawMethodCode   = para.DrawMethodCode,
                LeventId         = strGameEventGuid,
                OriginalLeventId = new Guid(para.OriginalLeventId),
                CustomerId       = loggingSessionInfo.ClientID
            };
            bllCustomerInteraction.Create(entityInteraction);
        }
Exemple #18
0
 /// <summary>
 /// 在事务内创建一个新实例
 /// </summary>
 /// <param name="pEntity">实体实例</param>
 /// <param name="pTran">事务实例,可为null,如果为null,则不使用事务来更新</param>
 public void Create(LPrizesEntity pEntity, IDbTransaction pTran)
 {
     _currentDAO.Create(pEntity, pTran);
 }
Exemple #19
0
        /// <summary>
        /// 保存触点奖励
        /// </summary>
        /// <param name="para"></param>
        /// <param name="bllPrize"></param>
        /// <param name="strStartDate"></param>
        /// <param name="strEndDate"></param>
        public void SaveContactPrize(SetCTWEventRP para, LPrizesBLL bllPrize, string strStartDate, string strEndDate)
        {
            var bllContactEvent = new ContactEventBLL(loggingSessionInfo);



            if (!string.IsNullOrEmpty(para.CTWEventId))
            {
                bllContactEvent.DeleteContact(para.CTWEventId);
            }
            foreach (var cItem in para.ContactPrizeList)
            {
                ContactEventEntity contactEvent = new ContactEventEntity();
                int PrizeCount = 0;
                if (cItem.PrizeList != null && cItem.PrizeList.Count > 0)
                {
                    foreach (var ItemPrize in cItem.PrizeList)
                    {
                        PrizeCount = PrizeCount + ItemPrize.PrizeCount;
                    }
                    contactEvent.PrizeCount       = PrizeCount;
                    contactEvent.ContactTypeCode  = cItem.ContactTypeCode;
                    contactEvent.ContactEventName = cItem.ContactTypeCode;
                    contactEvent.BeginDate        = Convert.ToDateTime(strStartDate);
                    contactEvent.EndDate          = Convert.ToDateTime(strEndDate);
                    contactEvent.PrizeType        = "";
                    contactEvent.CustomerID       = loggingSessionInfo.ClientID;
                    contactEvent.RewardNumber     = "OnlyOne";
                    contactEvent.EventId          = strCTWEventId;
                    if (cItem.ContactTypeCode == "Share")
                    {
                        contactEvent.ShareEventId = strCTWEventId;
                    }
                    contactEvent.Status = 1;
                    contactEvent.IsCTW  = 1;
                    bllContactEvent.Create(contactEvent);
                    ///保存奖品 生成奖品池
                    var entityPrize = new LPrizesEntity();
                    //entityPrize.EventId = contactEvent.ContactEventId.ToString();
                    //entityPrize.PrizeName = cItem.ContactTypeCode;
                    //entityPrize.PrizeTypeId = cItem.PrizeType;
                    //entityPrize.Point = cItem.Point;
                    //entityPrize.CountTotal = PrizeCount;
                    //entityPrize.CreateBy = loggingSessionInfo.UserID;
                    //entityPrize.PrizesID = Guid.NewGuid().ToString();
                    //bllPrize.Create(entityPrize);

                    //if (cItem.PrizeType == "Coupon")
                    //{
                    bllContactEvent.DeleteContactPrize(contactEvent.ContactEventId.ToString());
                    foreach (var ItemPrize in cItem.PrizeList)
                    {
                        entityPrize              = new LPrizesEntity();
                        entityPrize.EventId      = contactEvent.ContactEventId.ToString();
                        entityPrize.PrizeName    = ItemPrize.PrizeName;
                        entityPrize.PrizeTypeId  = ItemPrize.PrizeTypeId;
                        entityPrize.Point        = ItemPrize.Point;
                        entityPrize.CouponTypeID = ItemPrize.CouponTypeID;
                        entityPrize.CountTotal   = ItemPrize.PrizeCount;
                        entityPrize.CreateBy     = loggingSessionInfo.UserID;
                        entityPrize.PrizesID     = Guid.NewGuid().ToString();
                        //bllContactEvent.AddContactEventPrizeForCTW(entityPrize);
                        bllContactEvent.AddContactEventPrize(entityPrize);
                    }

                    //}
                }
                else
                {
                    contactEvent.PrizeCount       = 0;
                    contactEvent.ContactTypeCode  = cItem.ContactTypeCode;
                    contactEvent.ContactEventName = cItem.ContactTypeCode;
                    contactEvent.BeginDate        = Convert.ToDateTime(strStartDate);
                    contactEvent.EndDate          = Convert.ToDateTime(strEndDate);
                    contactEvent.PrizeType        = "";
                    contactEvent.CustomerID       = loggingSessionInfo.ClientID;
                    contactEvent.RewardNumber     = "OnlyOne";
                    contactEvent.EventId          = strCTWEventId;
                    contactEvent.Status           = 1;
                    contactEvent.IsCTW            = 1;
                    bllContactEvent.Create(contactEvent);
                }
            }
        }
Exemple #20
0
 public void Update(LPrizesEntity pEntity, bool pIsUpdateNullField, IDbTransaction pTran)
 {
     _currentDAO.Update(pEntity, pIsUpdateNullField, pTran);
 }
Exemple #21
0
 /// <summary>
 /// 添加创意仓库中的触点活动奖品
 /// </summary>
 /// <param name="entity"></param>
 /// <returns></returns>
 public void AddContactEventPrizeForCTW(LPrizesEntity pEntity)
 {
     this._currentDAO.AddContactEventPrizeForCTW(pEntity);
 }