SysUserPostService.cs 2.1 KB

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