diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Collectibles/CollectiblesAccountInfoDto.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Collectibles/CollectiblesAccountInfoDto.cs new file mode 100644 index 00000000..22085518 --- /dev/null +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Collectibles/CollectiblesAccountInfoDto.cs @@ -0,0 +1,6 @@ +namespace Yi.Framework.DigitalCollectibles.Application.Contracts.Dtos.Collectibles; + +public class CollectiblesAccountInfoDto +{ + public decimal TotalValue { get; set; } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Market/ShelvedGoodsDto.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Market/ShelvedGoodsDto.cs index 5c74a17f..ac78037b 100644 --- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Market/ShelvedGoodsDto.cs +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application.Contracts/Dtos/Market/ShelvedGoodsDto.cs @@ -6,5 +6,5 @@ public class ShelvedGoodsDto public Guid CollectiblesId { get; set; } public int Number { get; set; } - public decimal Mmoney { get; set; } + public decimal Money { get; set; } } \ No newline at end of file diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/CollectiblesService.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/CollectiblesService.cs index 8b0f8f11..36521977 100644 --- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/CollectiblesService.cs +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/CollectiblesService.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc; using SqlSugar; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Volo.Abp.Users; using Yi.Framework.DigitalCollectibles.Application.Contracts.Dtos.Collectibles; using Yi.Framework.DigitalCollectibles.Application.Contracts.Dtos.Market; using Yi.Framework.DigitalCollectibles.Domain.Entities; @@ -24,6 +25,23 @@ public class CollectiblesService : ApplicationService _collectiblesUserStoreRepository = collectiblesUserStoreRepository; } + /// + /// 获取该用户的信息 + /// + [HttpGet("collectibles/account")] + [Authorize] + public async Task GetAccountInfoAsync() + { + var userId = CurrentUser.GetId(); + var totalValue = await _collectiblesUserStoreRepository._DbQueryable.Where(store => store.UserId == userId) + .LeftJoin((store, c) => store.CollectiblesId == c.Id) + .SumAsync((store, c) => c.ValueNumber); + return new CollectiblesAccountInfoDto + { + TotalValue = totalValue + }; + } + /// /// 获取当前用户的藏品 /// @@ -40,7 +58,7 @@ public class CollectiblesService : ApplicationService input.StartTime is not null && input.EndTime is not null, u => u.CreationTime >= input.StartTime && u.CreationTime <= input.EndTime) .LeftJoin((u, c) => u.CollectiblesId == c.Id) - .OrderBy((u,c) => c.OrderNum) + .OrderBy((u, c) => c.OrderNum) .GroupBy((u, c) => u.CollectiblesId) .Select((u, c) => new CollectiblesUserGetOutputDto diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/MarketService.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/MarketService.cs index 4ed1d4c0..4eb3a425 100644 --- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/MarketService.cs +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Application/Services/MarketService.cs @@ -52,6 +52,7 @@ public class MarketService : ApplicationService CreationTime = m.CreationTime, SellUserId = m.SellUserId, SellNumber = m.SellNumber, + UnitPrice=m.UnitPrice, Collectibles = new CollectiblesDto { Id = c.Id, @@ -75,17 +76,17 @@ public class MarketService : ApplicationService /// /// 上架商品 /// - [HttpPost("shelved")] + [HttpPost("market/shelved")] [Authorize] public async Task ShelvedGoodsAsync(ShelvedGoodsDto input) { - await _marketManager.ShelvedGoodsAsync(CurrentUser.GetId(), input.CollectiblesId, input.Number, input.Mmoney); + await _marketManager.ShelvedGoodsAsync(CurrentUser.GetId(), input.CollectiblesId, input.Number, input.Money); } /// /// 购买商品 /// - [HttpPut("purchase")] + [HttpPut("market/purchase")] [Authorize] public async Task PurchaseGoodsAsync(PurchaseGoodsDto input) { diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Consts/RarityEnum.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Consts/RarityEnum.cs index 2d988935..ccdbf00f 100644 --- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Consts/RarityEnum.cs +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain.Shared/Consts/RarityEnum.cs @@ -9,11 +9,11 @@ namespace Yi.Framework.DigitalCollectibles.Domain.Shared.Consts; /// public enum RarityEnum { - [Display(Name = "普通")][Probability(0.8f)] Ordinary = 0, - [Display(Name = "高级")][Probability(0.1f)] Senior = 1, - [Display(Name = "稀有")][Probability(0.06f)] Rare = 2, - [Display(Name = "珍品")][Probability(0.039f)] Gem = 3, - [Display(Name = "传说")][Probability(0.001f)] Legend = 4 + [Display(Name = "普通")][Probability(0.6f)] Ordinary = 0, + [Display(Name = "高级")][Probability(0.25f)] Senior = 1, + [Display(Name = "稀有")][Probability(0.1f)] Rare = 2, + [Display(Name = "珍品")][Probability(0.04f)] Gem = 3, + [Display(Name = "传说")][Probability(0.01f)] Legend = 4 } public static class RarityEnumExtensions diff --git a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MarketManager.cs b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MarketManager.cs index 3c9cdd99..d70b2fc1 100644 --- a/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MarketManager.cs +++ b/Yi.Abp.Net8/module/digital-collectibles/Yi.Framework.DigitalCollectibles.Domain/Managers/MarketManager.cs @@ -42,11 +42,11 @@ public class MarketManager : DomainService .Where(x => x.CollectiblesId == collectiblesId).ToListAsync(); if (collectiblesList.Count < number) { - throw new UserFriendlyException($"您的藏品不足{number}个,上架失败"); + throw new UserFriendlyException($"您的非上架该藏品不足{number}个,上架失败"); } //上架收藏品 - var shelvedcollectibles = collectiblesList.Take(2); + var shelvedcollectibles = collectiblesList.Take(number); foreach (var store in shelvedcollectibles) { store.ShelvedMarket(); @@ -99,7 +99,7 @@ public class MarketManager : DomainService var marketTaxRate = decimal.Parse(await _settingProvider.GetOrNullAsync("MarketTaxRate")); await _localEventBus.PublishAsync(new MoneyChangeEventArgs() { UserId = userId, Number = number*(1-marketTaxRate) },false); - //3-出售者删除对应库存,购买者新增对应库存 + //3-出售者删除对应库存,购买者新增对应库存(只需更改用户者即可) var collectiblesList = await _collectiblesUserStoreRepository._DbQueryable.Where(x => x.IsAtMarketing == true) .Where(x => x.UserId == marketGoods.SellUserId) .Where(x => x.CollectiblesId == marketGoods.CollectiblesId)