Пример #1
0
        /// <summary>
        /// 店铺人气排重
        /// </summary>
        /// <param name="openId"></param>
        /// <param name="shopId"></param>
        /// <returns></returns>
        private async Task AddSingleTotalAsync(string openId, Guid?shopId)
        {
            try
            {
                StatisticalDetailEditDto input = new StatisticalDetailEditDto();
                input.OpenId    = openId;
                input.Type      = CountTypeEnum.店铺人气;
                input.ArticleId = Guid.Parse(Convert.ToString(shopId));
                var result    = input.MapTo <StatisticalDetail>();
                var readCount = await _statisticaldetailRepository.GetAll().Where(v => v.OpenId == input.OpenId && v.ArticleId == input.ArticleId && v.Type == CountTypeEnum.店铺人气).CountAsync();

                if (readCount == 0)
                {
                    await _statisticaldetailRepository.InsertAsync(result);

                    var shop = await _shopRepository.GetAll().Where(v => v.Id == input.ArticleId).FirstOrDefaultAsync();

                    if (shop.SingleTotal == null)
                    {
                        shop.SingleTotal = 0;
                    }
                    shop.SingleTotal++;
                    var shopInfoUpdate = await _shopRepository.UpdateAsync(shop);
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat("店铺人气增加失败 error:{0} Exception:{1}", ex.Message, ex);
            }
        }
        public async Task <ShopListDto> AddSingleTotalAsync(StatisticalDetailEditDto input)
        {
            using (CurrentUnitOfWork.SetTenantId(input.TenantId))
            {
                var  result   = input.MapTo <StatisticalDetail>();
                Shop shopInfo = await _shopRepository.GetAsync(input.ArticleId);

                shopInfo.ReadTotal++;
                var readCount = await _statisticaldetailRepository.GetAll().Where(v => v.OpenId == input.OpenId && v.ArticleId == input.ArticleId && v.Type == CountTypeEnum.店铺人气).CountAsync();

                if (readCount == 0)
                {
                    await _statisticaldetailRepository.InsertAsync(result);

                    var shop = await _shopRepository.GetAll().Where(v => v.Id == input.ArticleId).FirstOrDefaultAsync();

                    if (shop.SingleTotal == null)
                    {
                        shop.SingleTotal = 0;
                    }
                    shop.SingleTotal++;
                    var shopInfoUpdate = await _shopRepository.UpdateAsync(shop);

                    return(shopInfoUpdate.MapTo <ShopListDto>());
                }
                return(shopInfo.MapTo <ShopListDto>());
                //return new APIResultDto() { Code = 0, Msg = "成功" };
            }
        }
        protected virtual async Task UpdateStatisticalDetailAsync(StatisticalDetailEditDto input)
        {
            //TODO:更新前的逻辑判断,是否允许更新
            var entity = await _statisticaldetailRepository.GetAsync(input.Id.Value);

            input.MapTo(entity);

            // ObjectMapper.Map(input, entity);
            await _statisticaldetailRepository.UpdateAsync(entity);
        }
        /// <summary>
        /// 导出StatisticalDetail为excel表
        /// </summary>
        /// <returns></returns>
        //public async Task<FileDto> GetStatisticalDetailsToExcel(){
        //var users = await UserManager.Users.ToListAsync();
        //var userListDtos = ObjectMapper.Map<List<UserListDto>>(users);
        //await FillRoleNames(userListDtos);
        //return _userListExcelExporter.ExportToFile(userListDtos);
        //}
        /// <summary>
        /// MPA版本才会用到的方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <GetStatisticalDetailForEditOutput> GetStatisticalDetailForEdit(NullableIdDto <Guid> input)
        {
            var output = new GetStatisticalDetailForEditOutput();
            StatisticalDetailEditDto statisticaldetailEditDto;

            if (input.Id.HasValue)
            {
                var entity = await _statisticaldetailRepository.GetAsync(input.Id.Value);

                statisticaldetailEditDto = entity.MapTo <StatisticalDetailEditDto>();

                //statisticaldetailEditDto = ObjectMapper.Map<List <statisticaldetailEditDto>>(entity);
            }
            else
            {
                statisticaldetailEditDto = new StatisticalDetailEditDto();
            }

            output.StatisticalDetail = statisticaldetailEditDto;
            return(output);
        }
        public async Task <APIResultDto> AddGoodAsync(StatisticalDetailEditDto input)
        {
            var result    = input.MapTo <StatisticalDetail>();
            var goodCount = await _statisticaldetailRepository.GetAll().Where(v => v.OpenId == input.OpenId && v.ArticleId == input.ArticleId && v.Type == CountTypeEnum.点赞).CountAsync();

            if (goodCount == 0)
            {
                await _statisticaldetailRepository.InsertAsync(result);

                var article = await _articleRepository.GetAll().Where(v => v.Id == input.ArticleId).FirstOrDefaultAsync();

                if (article.ReadTotal == null)
                {
                    article.GoodTotal = 0;
                }
                article.GoodTotal++;
                await _articleRepository.UpdateAsync(article);
            }
            return(new APIResultDto()
            {
                Code = 0, Msg = "成功"
            });
        }
        protected virtual async Task <StatisticalDetailEditDto> CreateStatisticalDetailAsync(StatisticalDetailEditDto input)
        {
            //TODO:新增前的逻辑判断,是否允许新增
            var entity = ObjectMapper.Map <StatisticalDetail>(input);

            entity = await _statisticaldetailRepository.InsertAsync(entity);

            return(entity.MapTo <StatisticalDetailEditDto>());
        }