郑州市第一人民医院

Sys_Work_GroupRepository.cs 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. using MadRunFabric.Common;
  2. using MadRunFabric.Common.Options;
  3. using MadRunFabric.Model;
  4. using Microsoft.Extensions.Logging;
  5. using Microsoft.Extensions.Options;
  6. using MongoDB.Driver;
  7. using SignTokenApi.IRepositories;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Text;
  11. using System.Linq;
  12. namespace SignTokenApi.Repositories
  13. {
  14. public class Sys_Work_GroupRepository : BaseRepository<Sys_Work_Group, string>, ISys_Work_GroupRepository
  15. {
  16. protected readonly ILogger<BaseRepository<Sys_Work_Group, string>> _logger;
  17. protected readonly IMongoCollection<Pro_Project_Info> _collection_pro_project_info;
  18. public Sys_Work_GroupRepository(IOptions<MongodbOptions> settings, ILogger<BaseRepository<Sys_Work_Group, string>> logger) : base(settings, logger)
  19. {
  20. _logger = logger;
  21. _collection_pro_project_info = _context.GetCollection<Pro_Project_Info>();
  22. }
  23. /// <summary>
  24. /// 获取分页
  25. /// </summary>
  26. /// <param name="projectid"></param>
  27. /// <param name="keyword"></param>
  28. /// <param name="userinfo"></param>
  29. /// <param name="pageindex"></param>
  30. /// <param name="pagesize"></param>
  31. /// <param name="recordcount"></param>
  32. /// <returns></returns>
  33. public IEnumerable<object> GetListsByPage(string projectid, string keyword, UserInfoModel userinfo, int pageindex, int pagesize, out int recordcount)
  34. {
  35. var query =
  36. from p in _collection.AsQueryable()
  37. join proje in _collection_pro_project_info.AsQueryable() on p.projectid equals proje.id into projeDefa
  38. where p.isdelete == 0
  39. select new
  40. {
  41. p.id,
  42. p.projectid,
  43. projectname = projeDefa.Count() > 0 ? projeDefa.First().project_name : "",
  44. p.code,
  45. p.name,
  46. p.starttime,
  47. p.endtime,
  48. p.remark,
  49. p.createby,
  50. p.createtime
  51. };
  52. #region 查询条件
  53. if (!string.IsNullOrEmpty(projectid))
  54. query = query.Where(it => it.projectid.Equals(projectid));
  55. if (!string.IsNullOrEmpty(keyword))
  56. query = query.Where(it => it.name.Contains(keyword) || it.code.Contains(keyword));
  57. if (userinfo.isallproject == 0)
  58. query = query.Where(it => userinfo.projectlist.Contains(it.projectid));
  59. #endregion
  60. recordcount = query.Count();
  61. var list = query.OrderByDescending(it => it.createtime).Skip((pageindex - 1) * pagesize).Take(pagesize);
  62. return list;
  63. }
  64. /// <summary>
  65. /// 获取详情
  66. /// </summary>
  67. /// <param name="id"></param>
  68. /// <returns></returns>
  69. public object GetDetails(string id)
  70. {
  71. var query =
  72. from p in _collection.AsQueryable()
  73. join proje in _collection_pro_project_info.AsQueryable() on p.projectid equals proje.id into projeDefa
  74. where p.isdelete == 0 && p.id== id
  75. select new
  76. {
  77. p.id,
  78. p.projectid,
  79. projectname = projeDefa.Count() > 0 ? projeDefa.First().project_name : "",
  80. p.code,
  81. p.name,
  82. p.starttime,
  83. p.endtime,
  84. p.remark,
  85. p.createby,
  86. p.createtime
  87. };
  88. var model = query.FirstOrDefault();
  89. if (model != null)
  90. {
  91. return model;
  92. }
  93. return null;
  94. }
  95. }
  96. }