SysUserPostService.cs 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using Infrastructure.Attribute;
  2. using SqlSugar;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using ZR.Model.System;
  6. using ZR.Service.System.IService;
  7. namespace ZR.Service.System
  8. {
  9. /// <summary>
  10. /// 用户岗位
  11. /// </summary>
  12. [AppService(ServiceType = typeof(ISysUserPostService), ServiceLifetime = LifeTime.Transient)]
  13. public class SysUserPostService : BaseService<SysUserPost>, ISysUserPostService
  14. {
  15. /// <summary>
  16. /// 新增用户岗位信息
  17. /// </summary>
  18. /// <param name="user"></param>
  19. public void InsertUserPost(SysUser user)
  20. {
  21. // 新增用户与岗位管理
  22. List<SysUserPost> list = new List<SysUserPost>();
  23. foreach (var item in user.PostIds)
  24. {
  25. list.Add(new SysUserPost() { PostId = item, UserId = user.UserId });
  26. }
  27. Insert(list);
  28. }
  29. /// <summary>
  30. /// 查询用户岗位集合
  31. /// </summary>
  32. /// <param name="userId"></param>
  33. /// <returns></returns>
  34. public List<long> GetUserPostsByUserId(long userId)
  35. {
  36. var list = GetList(f => f.UserId == userId);
  37. return list.Select(x => x.PostId).ToList();
  38. }
  39. /// <summary>
  40. /// 获取用户岗位
  41. /// </summary>
  42. /// <param name="userId"></param>
  43. /// <returns></returns>
  44. public string GetPostsStrByUserId(long userId)
  45. {
  46. var list = SelectPostsByUserId(userId);
  47. return string.Join(',', list.Select(x => x.PostName));
  48. }
  49. public bool Delete(long userId)
  50. {
  51. return Delete(x => x.UserId == userId);
  52. }
  53. /// <summary>
  54. /// 获取用户岗位
  55. /// </summary>
  56. /// <param name="userId"></param>
  57. /// <returns></returns>
  58. public List<SysPost> SelectPostsByUserId(long userId)
  59. {
  60. return Context.Queryable<SysPost, SysUserPost>((p, up) => new JoinQueryInfos(
  61. JoinType.Left, up.PostId == p.PostId
  62. )).Where((p, up) => up.UserId == userId)
  63. .Select<SysPost>().ToList();
  64. }
  65. }
  66. }