Przeglądaj źródła

chore: 🙂应该在服务端获取当前用户ID

喵你个旺呀 1 rok temu
rodzic
commit
b1c60dfbf4

+ 0 - 5
Admin.NET/Admin.NET.Core/Service/User/Dto/UserMenuInput.cs

@@ -11,11 +11,6 @@ namespace Admin.NET.Core.Service;
 /// </summary>
 public class UserMenuInput
 {
-    /// <summary>
-    /// 用户Id
-    /// </summary>
-    public long UserId { get; set; }
-
     /// <summary>
     /// 收藏菜单Id集合
     /// </summary>

+ 22 - 23
Admin.NET/Admin.NET.Core/Service/User/SysUserMenuService.cs

@@ -13,10 +13,12 @@ namespace Admin.NET.Core.Service;
 public class SysUserMenuService : IDynamicApiController, ITransient
 {
     private readonly SqlSugarRepository<SysUserMenu> _sysUserMenuRep;
+    private readonly UserManager _userManager;
 
-    public SysUserMenuService(SqlSugarRepository<SysUserMenu> sysUserMenuRep)
+    public SysUserMenuService(SqlSugarRepository<SysUserMenu> sysUserMenuRep, UserManager userManager)
     {
         _sysUserMenuRep = sysUserMenuRep;
+        _userManager = userManager;
     }
 
     /// <summary>
@@ -25,16 +27,16 @@ public class SysUserMenuService : IDynamicApiController, ITransient
     /// <param name="input"></param>
     /// <returns></returns>
     [UnitOfWork]
-    [ApiDescriptionSettings(Name = "Add"), HttpPost]
     [DisplayName("收藏菜单")]
+    [ApiDescriptionSettings(Name = "Add"), HttpPost]
     public async Task AddUserMenu(UserMenuInput input)
     {
-        await _sysUserMenuRep.DeleteAsync(u => u.UserId == input.UserId);
+        await _sysUserMenuRep.DeleteAsync(u => u.UserId == _userManager.UserId);
 
-        if (input.MenuIdList == null || input.MenuIdList.Count < 1) return;
+        if (input.MenuIdList == null || input.MenuIdList.Count == 0) return;
         var menus = input.MenuIdList.Select(u => new SysUserMenu
         {
-            UserId = input.UserId,
+            UserId = _userManager.UserId,
             MenuId = u
         }).ToList();
         await _sysUserMenuRep.InsertRangeAsync(menus);
@@ -45,48 +47,45 @@ public class SysUserMenuService : IDynamicApiController, ITransient
     /// </summary>
     /// <param name="input"></param>
     /// <returns></returns>
-    [ApiDescriptionSettings(Name = "Delete"), HttpPost]
+    [ApiDescriptionSettings(Name = "DeleteUserMenu"), HttpPost]
     [DisplayName("取消收藏菜单")]
     public async Task DeleteUserMenu(UserMenuInput input)
     {
-        await _sysUserMenuRep.DeleteAsync(u => u.UserId == input.UserId && input.MenuIdList.Contains(u.MenuId));
+        await _sysUserMenuRep.DeleteAsync(u => u.UserId == _userManager.UserId && input.MenuIdList.Contains(u.MenuId));
     }
 
     /// <summary>
-    /// 根据用户Id删除收藏菜单 🔖
+    /// 清空当前用户收藏的菜单 🔖
     /// </summary>
-    /// <param name="userId"></param>
     /// <returns></returns>
-    [ApiDescriptionSettings(Name = "DeleteByUserId"), HttpPost]
-    [DisplayName("根据用户Id删除收藏菜单")]
-    public async Task DeleteByUserId(long userId)
+    [ApiDescriptionSettings(Name = "ClearUserMenu"), HttpPost]
+    [DisplayName("清空当前用户收藏的菜单")]
+    public async Task ClearUserMenu()
     {
-        await _sysUserMenuRep.DeleteAsync(u => u.UserId == userId);
+        await _sysUserMenuRep.DeleteAsync(u => u.UserId == _userManager.UserId);
     }
 
     /// <summary>
-    /// 根据用户Id获取收藏菜单集合 🔖
+    /// 获取当前用户收藏的菜单集合 🔖
     /// </summary>
-    /// <param name="userId"></param>
     /// <returns></returns>
-    [DisplayName("根据用户Id获取收藏菜单集合")]
-    public async Task<List<MenuOutput>> GetUserMenuList(long userId)
+    [DisplayName("获取当前用户收藏的菜单集合")]
+    public async Task<List<MenuOutput>> GetUserMenuList()
     {
         var sysUserMenuList = await _sysUserMenuRep.AsQueryable()
             .Includes(u => u.SysMenu)
-            .Where(u => u.UserId == userId).ToListAsync();
+            .Where(u => u.UserId == _userManager.UserId).ToListAsync();
         return sysUserMenuList.Where(u => u.SysMenu != null).Select(u => u.SysMenu).ToList().Adapt<List<MenuOutput>>();
     }
 
     /// <summary>
-    /// 根据用户Id获取收藏菜单Id集合 🔖
+    /// 获取当前用户收藏的菜单Id集合 🔖
     /// </summary>
-    /// <param name="userId"></param>
     /// <returns></returns>
-    [DisplayName("根据用户Id获取收藏菜单Id集合")]
-    public async Task<List<long>> GetUserMenuIdList(long userId)
+    [DisplayName("获取当前用户收藏的菜单Id集合")]
+    public async Task<List<long>> GetUserMenuIdList()
     {
         return await _sysUserMenuRep.AsQueryable()
-            .Where(u => u.UserId == userId).Select(u => u.MenuId).ToListAsync();
+            .Where(u => u.UserId == _userManager.UserId).Select(u => u.MenuId).ToListAsync();
     }
 }

+ 4 - 10
Web/src/views/home/widgets/components/myapp.vue

@@ -58,14 +58,11 @@ export default {
 <script setup lang="ts" name="myapp">
 import { onMounted, ref } from 'vue';
 import { ElMessage } from 'element-plus';
-import { useRequestOldRoutes } from '/@/stores/requestOldRoutes';
-import { storeToRefs } from 'pinia';
 import { VueDraggable } from 'vue-draggable-plus';
-import { useUserInfo } from '/@/stores/userInfo';
-
 import { getAPI } from '/@/utils/axios-utils';
 import { SysUserMenuApi } from '/@/api-services/api';
 import { MenuOutput } from '/@/api-services/models';
+import { useRequestOldRoutes } from '/@/stores/requestOldRoutes';
 
 const mods = ref<MenuOutput[]>([]); // 所有应用
 const myMods = ref<MenuOutput[]>([]); // 我的常用
@@ -73,8 +70,6 @@ const myModsName = ref<Array<string | null | undefined>>([]); // 我的常用
 const filterMods = ref<MenuOutput[]>([]); // 过滤我的常用后的应用
 const modsDrawer = ref<boolean>(false);
 
-const { userInfos } = storeToRefs(useUserInfo());
-
 onMounted(() => {
 	getMods();
 });
@@ -82,7 +77,7 @@ onMounted(() => {
 // 请求已收藏菜单列表
 const getFavoriteMenuList = async () => {
 	try {
-		const res = await getAPI(SysUserMenuApi).apiSysUserMenuUserMenuListUserIdGet(userInfos.value.id);
+		const res = await getAPI(SysUserMenuApi).apiSysUserMenuUserMenuListGet();
 		return res.data.result || [];
 	} catch (error) {
 		return [];
@@ -124,9 +119,8 @@ const filterMenu = (map: MenuOutput[]) => {
 
 // 保存我的常用
 const saveMods = async () => {
-	const myFavoriteMods = myMods.value.map((v: MenuOutput) => v.id) as any;
-	const param = { userId: userInfos.value.id, menuIdList: myFavoriteMods };
-	await getAPI(SysUserMenuApi).apiSysUserMenuAddPost(param);
+	const menuIds = myMods.value.map((v: MenuOutput) => v.id) as any;
+	await getAPI(SysUserMenuApi).apiSysUserMenuAddPost({ menuIdList: menuIds });
 	ElMessage.success('设置常用成功');
 	modsDrawer.value = false;
 };