From 2fb831075e44f564df9b0792f9b4d48d817465e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Tue, 27 Feb 2024 10:00:07 +0800 Subject: [PATCH 1/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=85=AC=E5=BC=80=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/AccountService.cs | 1 + .../Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs | 6 +++--- Yi.Bbs.Vue3/src/permission.js | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs index 116d27c5..1f10b92c 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Application/Services/AccountService.cs @@ -269,6 +269,7 @@ namespace Yi.Framework.Rbac.Application.Services } //此处优先从缓存中获取 UserRoleMenuDto output = null; + var cacheData = await _userCache.GetAsync(new UserInfoCacheKey(userId.Value)); if (cacheData is not null) { diff --git a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs index c4d067a2..478a51e0 100644 --- a/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs +++ b/Yi.Abp.Net8/module/rbac/Yi.Framework.Rbac.Domain.Shared/Dtos/UserRoleMenuDto.cs @@ -18,7 +18,7 @@ namespace Yi.Framework.Rbac.Domain.Shared.Dtos /// /// 主键 /// - public Guid Id { get; protected set; } + public Guid Id { get; set; } /// /// 逻辑删除 @@ -134,7 +134,7 @@ namespace Yi.Framework.Rbac.Domain.Shared.Dtos } public class RoleDto { - public Guid Id { get; protected set; } + public Guid Id { get; set; } /// /// 逻辑删除 @@ -194,7 +194,7 @@ namespace Yi.Framework.Rbac.Domain.Shared.Dtos } public class MenuDto { - public Guid Id { get; protected set; } + public Guid Id { get; set; } /// /// 逻辑删除 diff --git a/Yi.Bbs.Vue3/src/permission.js b/Yi.Bbs.Vue3/src/permission.js index 181de09b..853461c4 100644 --- a/Yi.Bbs.Vue3/src/permission.js +++ b/Yi.Bbs.Vue3/src/permission.js @@ -20,6 +20,7 @@ router.beforeEach((to, from, next) => { } else { if (useUserStore().roles.length === 0) { // 判断当前用户是否已拉取完user_info信息 + alert("获取用户信息") useUserStore() .getInfo() .then(() => { From 0b97823f925ebd26a92198aab75475c99ee4e587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Tue, 27 Feb 2024 10:12:07 +0800 Subject: [PATCH 2/9] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=A7=E8=BD=AC?= =?UTF-8?q?=E7=9B=98=E5=81=9C=E6=AD=A2=E8=BD=AC=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/Integral/LuckyService.cs | 22 ++++++++++++++++--- Yi.Bbs.Vue3/src/permission.js | 1 - Yi.Bbs.Vue3/src/views/lucky/Index.vue | 16 +++++++++++++- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Integral/LuckyService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Integral/LuckyService.cs index 778d3132..274f7c9b 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Integral/LuckyService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Integral/LuckyService.cs @@ -2,6 +2,8 @@ using Microsoft.AspNetCore.Authorization; using Volo.Abp.Application.Services; using Volo.Abp.EventBus.Local; +using Yi.Framework.Bbs.Application.Contracts.IServices; +using Yi.Framework.Bbs.Domain.Managers; using Yi.Framework.Bbs.Domain.Shared.Etos; namespace Yi.Framework.Bbs.Application.Services.Integral @@ -9,7 +11,8 @@ namespace Yi.Framework.Bbs.Application.Services.Integral public class LuckyService : ApplicationService { private ILocalEventBus _localEventBus; - public LuckyService(ILocalEventBus localEventBus) { _localEventBus = localEventBus; } + private BbsUserManager _bbsUserManager; + public LuckyService(ILocalEventBus localEventBus, BbsUserManager bbsUserManager) { _bbsUserManager = bbsUserManager; _localEventBus = localEventBus; } /// /// 大转盘 @@ -18,9 +21,22 @@ namespace Yi.Framework.Bbs.Application.Services.Integral [Authorize] public async Task PostWheel() { - int[] values=new int[10] { 0,10,30,50,60,80,90,100,200,666}; + var userInfo = await _bbsUserManager.GetBbsUserInfoAsync(CurrentUser.Id.Value); + if (userInfo.Money < 50) + { + throw new UserFriendlyException("钱钱不足!"); + } + + + int[] values = new int[10] { 0, 10, 30, 50, 60, 80, 90, 100, 200, 666 }; var index = GetWheelIndex(); - var value = values[index]-50; + var value = values[index] - 50; + + //不存在负数钱钱 + if (value < 0) + { + value = 0; + } //修改钱钱,如果钱钱不足,直接会丢出去,那本次抽奖将无效 await _localEventBus.PublishAsync(new MoneyChangeEventArgs { UserId = CurrentUser.Id!.Value, Number = value }, false); diff --git a/Yi.Bbs.Vue3/src/permission.js b/Yi.Bbs.Vue3/src/permission.js index 853461c4..181de09b 100644 --- a/Yi.Bbs.Vue3/src/permission.js +++ b/Yi.Bbs.Vue3/src/permission.js @@ -20,7 +20,6 @@ router.beforeEach((to, from, next) => { } else { if (useUserStore().roles.length === 0) { // 判断当前用户是否已拉取完user_info信息 - alert("获取用户信息") useUserStore() .getInfo() .then(() => { diff --git a/Yi.Bbs.Vue3/src/views/lucky/Index.vue b/Yi.Bbs.Vue3/src/views/lucky/Index.vue index 524cc447..6e2f3b8f 100644 --- a/Yi.Bbs.Vue3/src/views/lucky/Index.vue +++ b/Yi.Bbs.Vue3/src/views/lucky/Index.vue @@ -79,8 +79,22 @@ const startCallback = () => { // 假设后端返回的中奖索引是0 // 调用stop停止旋转并传递中奖索引 }, 3000) + + try + { + const ddd=(await luckyWheel()).data; + console.log(ddd,"dd"); index= (await luckyWheel()).data; - myLucky.value.stop(index) + } + catch + { + + } + finally{ + + myLucky.value.stop(index) + } + }) From 6697649b973a18e95f693c07a05b8f214e53873d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B7=B3?= <454313500@qq.com> Date: Tue, 27 Feb 2024 13:43:56 +0800 Subject: [PATCH 3/9] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=85=A8?= =?UTF-8?q?=E7=AB=99=E5=8E=86=E5=8F=B2=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/AccessLogService.cs | 18 +++ .../Analyses/BbsUserAnalyseService.cs | 1 + Yi.Bbs.Vue3/src/apis/accessApi.js | 7 ++ Yi.Bbs.Vue3/src/components/InfoCard.vue | 7 +- Yi.Bbs.Vue3/src/views/home/Index.vue | 118 ++++++++++-------- .../home/components/AccessLogChart/Index.vue | 31 +++++ .../home/hooks/accessLogEchartsConfig.js | 18 +++ 7 files changed, 148 insertions(+), 52 deletions(-) create mode 100644 Yi.Bbs.Vue3/src/views/home/components/AccessLogChart/Index.vue create mode 100644 Yi.Bbs.Vue3/src/views/home/hooks/accessLogEchartsConfig.js diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/AccessLogService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/AccessLogService.cs index 1cc27cf6..2f1c387e 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/AccessLogService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/AccessLogService.cs @@ -44,6 +44,21 @@ namespace Yi.Framework.Bbs.Application.Services } } + + + + /// + /// 获取全部访问流量 + /// + /// + public async Task> Get() + { + var entities = await _repository._DbQueryable.OrderBy(x => x.CreationTime).ToListAsync(); + var output = entities.Adapt>(); + output?.ForEach(x => x.CreationTime = x.CreationTime.Date); + return output; + } + /// /// 触发 /// @@ -106,5 +121,8 @@ namespace Yi.Framework.Bbs.Application.Services return result.ToArray(); } + + + } } diff --git a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs index 357d6da3..0e23cc1f 100644 --- a/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs +++ b/Yi.Abp.Net8/module/bbs/Yi.Framework.Bbs.Application/Services/Analyses/BbsUserAnalyseService.cs @@ -93,5 +93,6 @@ namespace Yi.Framework.Bbs.Application.Services.Analyses } } + } } diff --git a/Yi.Bbs.Vue3/src/apis/accessApi.js b/Yi.Bbs.Vue3/src/apis/accessApi.js index 8506ccf5..cbbcf2cc 100644 --- a/Yi.Bbs.Vue3/src/apis/accessApi.js +++ b/Yi.Bbs.Vue3/src/apis/accessApi.js @@ -15,3 +15,10 @@ export function getWeek() { method: "get", }); } +// 获取全部数据 +export function getAccessList() { + return request({ + url: "/access-log", + method: "get", + }); +} diff --git a/Yi.Bbs.Vue3/src/components/InfoCard.vue b/Yi.Bbs.Vue3/src/components/InfoCard.vue index 4bf2469e..2820ecb0 100644 --- a/Yi.Bbs.Vue3/src/components/InfoCard.vue +++ b/Yi.Bbs.Vue3/src/components/InfoCard.vue @@ -2,7 +2,12 @@ import { ref } from "vue"; const props = defineProps(["items", "header", "text", "hideDivider", "height"]); +const emit = defineEmits(['onClickText']) const height = ref(props.height + "px"); + +const onClickText=()=>{ + emit('onClickText') +}