OrganizationController.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using HiTeachCE.Models;
  2. using HiTeachCE.Services;
  3. using IdentityModel;
  4. using Microsoft.AspNetCore.Authorization;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Org.BouncyCastle.Ocsp;
  7. using SqlSugar;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.ComponentModel.DataAnnotations;
  11. using System.Linq;
  12. using System.Linq.Expressions;
  13. using System.Threading.Tasks;
  14. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
  15. using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
  16. using TEAMModelOS.SDK.Extension.DataResult.RequestData;
  17. namespace HiTeachCE.Controllers
  18. {
  19. [Route("api/[controller]")]
  20. [ApiController]
  21. public class OrganizationController:BaseController
  22. {
  23. public OrganizationService organizationService;
  24. public MemberService memberService;
  25. public LecturerService lecturerService;
  26. public OrganizationController(OrganizationService organization , MemberService member, LecturerService lecturer) {
  27. organizationService = organization;
  28. memberService = member;
  29. lecturerService = lecturer;
  30. }
  31. /// <summary>
  32. /// 获取组织列表
  33. /// </summary>
  34. /// <param name="request"></param>
  35. /// <returns></returns>
  36. [HttpPost("list")]
  37. [Authorize(Roles = "root")]
  38. public BaseJosnRPCResponse List(PaginationJosnRPCRequest<Dictionary<string, string>> request)
  39. {
  40. // request.@params.TryAdd("PartitionKey", request.lang);
  41. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  42. List<Organization> lecturers = new List<Organization>();
  43. Expression<Func<Organization, bool>> linq = null;
  44. if (request.@params.data.TryGetValue("code", out string code) && !string.IsNullOrEmpty(code))
  45. {
  46. linq = m => m.code == code;
  47. }
  48. if (request.@params.data.TryGetValue("name", out string name) && !string.IsNullOrEmpty(name))
  49. {
  50. linq = m => m.name.Contains(name);
  51. }
  52. if (request.@params.data.TryGetValue("id", out string id) && !string.IsNullOrEmpty(id))
  53. {
  54. linq = m => m.id == id;
  55. }
  56. if (linq != null)
  57. {
  58. lecturers = organizationService.GetPageList(linq,request.@params.page);
  59. }
  60. return builder.Data(lecturers).Page(request.@params.page).build();
  61. }
  62. /// <summary>
  63. /// 更新自己的组织
  64. /// </summary>
  65. /// <param name="request"></param>
  66. /// <returns></returns>
  67. [HttpPost("updateSelf")]
  68. [Authorize(Roles = "admin")]
  69. public BaseJosnRPCResponse UpdateSelf(JosnRPCRequest<Organization> request)
  70. {
  71. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  72. string unionid = GetLoginUser(JwtClaimTypes.Id);
  73. Organization organization = organizationService.GetById(request.@params.id);
  74. Expression<Func<Member, bool>> mlinq = null;
  75. mlinq = m => m.orgCode == request.@params.code && m.unionid == unionid;
  76. List<Member> members = memberService.GetList(mlinq);
  77. bool b = false;
  78. //确保更新的是自己
  79. if (members.IsNotEmpty() && members[0].role.Equals("admin"))
  80. {
  81. b = updateOrganization(request, organization);
  82. }
  83. return builder.Data(b).build();
  84. }
  85. public bool updateOrganization(JosnRPCRequest<Organization> request ,Organization organization) {
  86. request.@params.code = organization.code;
  87. request.@params.type = organization.type;
  88. bool b = organizationService.Update(request.@params);
  89. return b;
  90. }
  91. /// <summary>
  92. /// 更新组织
  93. /// </summary>
  94. /// <param name="request"></param>
  95. /// <returns></returns>
  96. [HttpPost("update")]
  97. [Authorize(Roles = "root")]
  98. public BaseJosnRPCResponse Update(JosnRPCRequest<Organization> request)
  99. {
  100. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  101. Organization organization = organizationService.GetById(request.@params.id);
  102. bool b = false;
  103. //确保更新的是自己
  104. if (organization!=null)
  105. {
  106. b = updateOrganization(request, organization);
  107. }
  108. return builder.Data(b).build();
  109. }
  110. /// <summary>
  111. /// 更新组织
  112. /// </summary>
  113. /// <param name="request"></param>
  114. /// <returns></returns>
  115. [HttpPost("add")]
  116. [Authorize(Roles = "root")]
  117. public BaseJosnRPCResponse Add(JosnRPCRequest<OrgDto> request)
  118. {
  119. JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
  120. string adminCellphone = "";
  121. lecturerService.GetList();
  122. return builder.Data(null).build();
  123. }
  124. public class OrgDto{
  125. [Required(ErrorMessage = "组织名称必须填写")]
  126. public string orgName { get; set; }
  127. [Required(ErrorMessage = "组织类型必须填写")]
  128. public string orgType { get; set; }
  129. [Required(ErrorMessage = "组织管理员手机号必须填写")]
  130. public string adminCellphone { get; set; }
  131. [Required(ErrorMessage = "授权上限必须填写")]
  132. [Range(1, 1000, ErrorMessage = "请输入1~1000的整数")]
  133. public int maximum { get; set; }
  134. /// <summary>
  135. /// 时长-1 永久 ,大于0 按天计算
  136. /// </summary>
  137. [Required(ErrorMessage = "授权时限必须填写")]
  138. [Range(-1, 3650, ErrorMessage = "请输入-1~3650的整数")]
  139. public int expires { get; set; }
  140. }
  141. }
  142. }