예제 #1
0
        public ApiResult <ListOutput> List([FromQuery] ListInput parameter)
        {
            var rewardInput = new RewardInput
            {
                PageIndex = parameter.PageIndex,
                UserId    = parameter.LoginUserId,
                PageSize  = parameter.PageSize
            };

            var model     = Resolve <IRewardService>().GetViewRewardPageList(rewardInput, HttpContext);
            var apiOutput = new ListOutput
            {
                TotalSize = model.PageCount,
                StyleType = 1
            };
            var users = Resolve <IUserService>().GetList();

            foreach (var item in model)
            {
                var orderUser = users.FirstOrDefault(u => u.Id == item.OrderUserId);

                var apiData = new ListItem
                {
                    Id    = item.Reward.Id,
                    Intro = $"{item.Reward.CreateTime:yyyy-MM-dd hh:ss}",
                    Title = $"{orderUser.UserName}",
                    Image = Resolve <IApiService>().ApiUserAvator((item.OrderUser?.Id).ConvertToLong()),
                    Url   = $"/pages/index?path=share_show&id={item.Reward.Id}",
                    Extra = item.Reward.Amount.ToStr()
                };
                apiOutput.ApiDataList.Add(apiData);
            }

            return(ApiResult.Success(apiOutput));
        }
예제 #2
0
        /// <summary>
        ///     获取s the 视图 reward 分页 list.
        /// </summary>
        /// <param name="userInput">The 会员 input.</param>
        /// <param name="context">上下文</param>
        public PagedList <ViewAdminReward> GetViewRewardPageList(RewardInput userInput, HttpContext context)
        {
            if (!userInput.Serial.IsNullOrEmpty() && userInput.Serial.Length > 8)
            {
                userInput.Serial = userInput.Serial.Substring(1, userInput.Serial.Length - 1).TrimStart('0');
            }

            var rewardList      = _rewardRepository.GetRewardList(userInput, out var count);
            var shareModuleList = Resolve <ITaskModuleConfigService>().GetList(context);
            var shareUserIds    = rewardList.Select(r => r.UserId).Distinct().ToList();
            var orderUserIds    = rewardList.Select(r => r.OrderUserId).Distinct().ToList();

            shareUserIds = shareUserIds.Concat(orderUserIds).ToList();
            var users      = _userRepository.GetList();
            var moneyTypes = Resolve <IAutoConfigService>().GetList <MoneyTypeConfig>();
            IList <ViewAdminReward> result = new List <ViewAdminReward>();

            foreach (var item in rewardList)
            {
                var viewAdminReward = new ViewAdminReward
                {
                    Reward = item,
                    //OrderUser = users.FirstOrDefault(r => r.Id == item.OrderUserId),
                    //ShareUser = users.FirstOrDefault(r => r.Id == item.UserId),
                    //MoneyType = moneyTypes.FirstOrDefault(r => r.Id == item.MoneyTypeId),
                    //ShareModule = shareModuleList?.FirstOrDefault(r => r.Id == item.ModuleConfigId),
                    //TaskModuleAttribute = Resolve<ITaskQueueService>().GetTaskModuleAttribute(item.ModuleId),

                    Status        = item.Status,
                    RewardId      = item.Id,
                    ModuleId      = item.ModuleId,
                    OrderUserId   = item.OrderUserId,
                    ShareUserId   = item.UserId,
                    OrderUserName = Resolve <IUserService>()
                                    .GetUserStyle(users.FirstOrDefault(r => r.Id == item.OrderUserId)),
                    ShareUserName =
                        Resolve <IUserService>().GetUserStyle(users.FirstOrDefault(r => r.Id == item.UserId)),
                    MoneyTypeName           = moneyTypes.FirstOrDefault(r => r.Id == item.MoneyTypeId).Name,
                    ShareModuleName         = shareModuleList?.FirstOrDefault(r => r.Id == item.ModuleConfigId).Name,
                    TaskModuleAttributeName = Resolve <ITaskQueueService>().GetTaskModuleAttribute(item.ModuleId).Name,
                    RewardAmount            = item.Amount,
                    AfterAmount             = item.AfterAmount,
                    Intro         = item.Intro,
                    CreateTimeStr = item.CreateTime.ToString("yyyy-MM-dd HH:mm")
                };
                if (users.FirstOrDefault(r => r.Id == item.OrderUserId) == null)
                {
                    viewAdminReward.OrderUser = new User();
                }

                if (users.FirstOrDefault(r => r.Id == item.UserId) == null)
                {
                    viewAdminReward.OrderUser = new User();
                }

                result.Add(viewAdminReward);
            }

            return(PagedList <ViewAdminReward> .Create(result, count, userInput.PageSize, userInput.PageIndex));
        }
        public float GetCurrentReward()
        {
            RewardInput.SafeCopyToHost();

            if (this.SumRewards)
            {
                float reward = 0;
                for (int i = 0; i < RewardInput.Count; i++)
                {
                    reward += RewardInput.Host[i];
                }
                return(reward);
            }
            else
            {
                return(RewardInput.Host[0]);
            }
        }
예제 #4
0
        public override Empty Reward(RewardInput input)
        {
            var novelInfo = State.NovelInfos[input.NovelId];

            // Transfer tokens from user.
            State.TokenContract.TransferFrom.Send(new TransferFromInput
            {
                From   = Context.Sender,
                To     = Context.Self,
                Amount = input.Amount,
                Symbol = State.SubscribeTokenSymbol.Value
            });

            var currentReward = State.RewardStatus[Context.Sender][novelInfo.PublisherAddress];

            State.RewardStatus[Context.Sender][novelInfo.PublisherAddress] =
                currentReward.Add(input.Amount);

            return(new Empty());
        }
예제 #5
0
        public IList <Reward> GetRewardList(RewardInput userInput, out long count)
        {
            if (userInput.PageIndex < 0)
            {
                throw new ArgumentNullException("pageIndex", "pageindex has to be greater than 1");
            }

            if (userInput.PageSize > 100)
            {
                userInput.PageSize = 100;
            }

            var sqlWhere = string.Empty;

            //if (userInput.BeginAmount.HasValue)
            //    sqlWhere = $"{sqlWhere} AND BeginAmount={(decimal)userInput.BeginAmount}";
            //if (userInput.EndAmount.HasValue)
            //    sqlWhere = $"{sqlWhere} AND EndAmount={(decimal)userInput.EndAmount}";
            //if (userInput.EneTime.HasValue)
            //    sqlWhere = $"{sqlWhere} AND CreateTime> '{userInput.EneTime}' ";

            //if (!userInput.MoneyTypeId.IsGuidNullOrEmpty())
            //    sqlWhere = $"{sqlWhere} AND MoneyTypeId= '{userInput.MoneyTypeId}' ";
            //if (userInput.Serial.IsNullOrEmpty())
            //    sqlWhere = $"{sqlWhere} AND Serial='{userInput.Serial}' ";
            if (userInput.UserId > 0)
            {
                sqlWhere = $"{sqlWhere} AND UserId='{userInput.UserId}' ";
            }

            if (userInput.OrderId > 0)
            {
                sqlWhere = $"{sqlWhere} AND OrderId='{userInput.OrderId}' ";
            }

            if (!userInput.ModuleId.IsGuidNullOrEmpty())
            {
                sqlWhere = $"{sqlWhere} AND ModuleId='{userInput.ModuleId}' ";
            }

            if (userInput.ModuleConfigId > 0)
            {
                sqlWhere = $"{sqlWhere} AND ModuleConfigId='{userInput.ModuleConfigId}' ";
            }

            var sqlCount = $"SELECT COUNT(Id) [Count] FROM [Share_Reward] where 1=1 {sqlWhere}";

            count = RepositoryContext.ExecuteScalar(sqlCount)?.ConvertToLong() ?? 0;

            var result = new List <Reward>();
            var sql    = $@"SELECT TOP {userInput.PageSize} * FROM (
                        SELECT  ROW_NUMBER() OVER (ORDER BY id desc) AS RowNumber,[Id] ,[UserId] ,[OrderUserId] ,[OrderId],[MoneyTypeId],[Amount] ,[AfterAmount]
                      ,[ModuleId],[RuleId] ,[Intro],[CreateTime] ,[Status] FROM [Share_Reward] where 1=1 {sqlWhere}
                               ) as A
                        WHERE RowNumber > {userInput.PageSize}*({userInput.PageIndex}-1)  ";

            using (var dr = RepositoryContext.ExecuteDataReader(sql)) {
                while (dr.Read())
                {
                    result.Add(ReadReward(dr));
                }
            }

            return(result);
        }