.net6.0 webapi demo

RoleMenuBusiness.cs 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using EFCore.Sharding;
  2. using Microsoft.Extensions.Caching.Distributed;
  3. using Net6Demo_Api.Entity;
  4. using Net6Demo_Api.IBusiness;
  5. using Net6Demo_Api.Util;
  6. namespace Net6Demo_Api.Business
  7. {
  8. public class RoleMenuBusiness : BaseBusiness<T_Sys_RoleMenu>, IRoleMenuBusiness, ITransientDependency
  9. {
  10. public RoleMenuBusiness(IDbAccessor db, IDistributedCache cache) : base(db, cache, true)
  11. {
  12. }
  13. /// <summary>
  14. /// 保存角色菜单
  15. /// </summary>
  16. /// <param name="roleid">角色ID</param>
  17. /// <param name="menuids">菜单ID集合</param>
  18. /// <returns></returns>
  19. public async Task<bool> SaveRoleMenuAsync(int roleid, List<int> menuids)
  20. {
  21. (bool Success, Exception ex) = await _db.RunTransactionAsync(async () =>
  22. {
  23. await DeleteAsync(p => p.F_RoleId == roleid);
  24. List<T_Sys_RoleMenu> list = new List<T_Sys_RoleMenu>();
  25. foreach (int mid in menuids)
  26. {
  27. list.Add(new T_Sys_RoleMenu() { F_RoleId = roleid, F_MenuId = mid });
  28. }
  29. await InsertAsync(list);
  30. });
  31. return Success;
  32. }
  33. }
  34. }