Exemplo n.º 1
0
        /// <summary>
        ///     获取活动视图
        /// </summary>
        /// <param name="viewInput"></param>
        /// <returns></returns>
        public Tuple <ServiceResult, Hudong> GetView(HuDongViewInput viewInput)
        {
            var view = GetSingle(viewInput.Id, viewInput.Key);

            if (viewInput.Key.IsNullOrEmpty())
            {
                return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("互动类型不能为空"), view));
            }

            var findType = viewInput.Key.GetInstanceByName();

            if (findType == null)
            {
                return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("互动类型不存在"), view));
            }

            if (view == null)
            {
                view = new Hudong
                {
                    Key = findType.GetType().FullName
                };
                if (findType is IHuDong set)
                {
                    view.Setting = set.Setting();
                    view.Awards  = set.DefaultAwards();
                }
            }

            view.Name = $"{findType?.GetType()?.FullName?.GetClassDescription()?.ClassPropertyAttribute?.Name}设置";
            return(new Tuple <ServiceResult, Hudong>(ServiceResult.Success, view));
        }
Exemplo n.º 2
0
        public ApiResult <Hudong> GetView([FromQuery] HuDongViewInput viewInput)
        {
            if (!this.IsFormValid())
            {
                return(ApiResult.Failure <Hudong>(this.FormInvalidReason()));
            }

            var result = Resolve <IHudongService>().GetView(viewInput);

            return(ToResult(result));
        }
Exemplo n.º 3
0
        public ApiResult GetAwards([FromQuery] HuDongViewInput viewInput)
        {
            if (!this.IsFormValid())
            {
                return(ApiResult.Failure <Hudong>(this.FormInvalidReason()));
            }

            var result = Resolve <IHudongService>().GetAwards(viewInput);

            if (result.Item1.Succeeded == false)
            {
                return(ApiResult.Failure(result));
            }

            return(ApiResult.Success(result));
        }
Exemplo n.º 4
0
        /// <summary>
        ///     �齱��¼
        /// </summary>
        /// <param name="viewInput"></param>
        /// <returns></returns>
        public ServiceResult RecordList(HuDongViewInput viewInput)
        {
            var result = Resolve <IHudongRecordService>().GetList(p => p.UserId == viewInput.userId.ToLong());

            return(ServiceResult.SuccessWithObject(result));
        }
Exemplo n.º 5
0
        /// <summary>
        ///     获取活动视图
        /// </summary>
        /// <param name="viewInput"></param>
        /// <returns></returns>
        public Tuple <ServiceResult, Hudong> GetAwards(HuDongViewInput viewInput)
        {
            var view = GetSingle(viewInput.Id, viewInput.Key);

            if (!string.IsNullOrEmpty(viewInput.userId)) //如果用户未登录,无法获取个人信息
            {
                if (viewInput.userId == "0")
                {
                    view.DrawCount = 0;
                }
                else
                {
                    var beginTime = DateTime.Now.GetDayBegin();
                    var endTime   = DateTime.Now.GetDayFinish();

                    var drawCount = Resolve <IHudongRecordService>().GetList(p =>
                                                                             p.UserId == viewInput.userId.ToLong() && p.CreateTime > beginTime && p.CreateTime < endTime)
                                    .Count; //查询是否有抽奖记录,只查询当天

                    if (view != null)
                    {
                        if (view.IsEnable == false)
                        {
                            return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("活动尚未启动"), view));
                        }

                        if (view.DrawCount - drawCount <= 0)
                        {
                            view.DrawCount = 0;
                        }
                        else
                        {
                            view.DrawCount = view.DrawCount - drawCount;
                        }
                    }
                    else
                    {
                        return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("活动尚未启动"), view));
                    }
                }
            }
            else
            {
                view.DrawCount = 0;
            }

            if (viewInput.Key.IsNullOrEmpty())
            {
                return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("互动类型不能为空"), view));
            }

            var findType = viewInput.Key.GetInstanceByName();

            if (findType == null)
            {
                return(new Tuple <ServiceResult, Hudong>(ServiceResult.FailedWithMessage("互动类型不存在"), view));
            }

            if (view == null)
            {
                view = new Hudong
                {
                    Key = findType.GetType().FullName
                };
                if (findType is IHuDong set)
                {
                    view.Setting = set.Setting();
                    view.Awards  = set.DefaultAwards();
                }
            }

            view.Name = $"{findType?.GetType()?.FullName?.GetClassDescription()?.ClassPropertyAttribute?.Name}设置";
            return(new Tuple <ServiceResult, Hudong>(ServiceResult.Success, view));
        }