using HiTeachCE.Models; using HiTeachCE.Services; using IdentityModel; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Org.BouncyCastle.Ocsp; using SqlSugar; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse; using TEAMModelOS.SDK.Extension.DataResult.RequestData; namespace HiTeachCE.Controllers { [Route("api/[controller]")] [ApiController] public class OrganizationController:BaseController { public OrganizationService organizationService; public MemberService memberService; public LecturerService lecturerService; public OrganizationController(OrganizationService organization , MemberService member, LecturerService lecturer) { organizationService = organization; memberService = member; lecturerService = lecturer; } /// /// 获取组织列表 /// /// /// [HttpPost("list")] [Authorize(Roles = "root")] public BaseJosnRPCResponse List(PaginationJosnRPCRequest> request) { // request.@params.TryAdd("PartitionKey", request.lang); JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); List lecturers = new List(); Expression> linq = null; if (request.@params.data.TryGetValue("code", out string code) && !string.IsNullOrEmpty(code)) { linq = m => m.code == code; } if (request.@params.data.TryGetValue("name", out string name) && !string.IsNullOrEmpty(name)) { linq = m => m.name.Contains(name); } if (request.@params.data.TryGetValue("id", out string id) && !string.IsNullOrEmpty(id)) { linq = m => m.id == id; } if (linq != null) { lecturers = organizationService.GetPageList(linq,request.@params.page); } return builder.Data(lecturers).Page(request.@params.page).build(); } /// /// 更新自己的组织 /// /// /// [HttpPost("updateSelf")] [Authorize(Roles = "admin")] public BaseJosnRPCResponse UpdateSelf(JosnRPCRequest request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); string unionid = GetLoginUser(JwtClaimTypes.Id); Organization organization = organizationService.GetById(request.@params.id); Expression> mlinq = null; mlinq = m => m.orgCode == request.@params.code && m.unionid == unionid; List members = memberService.GetList(mlinq); bool b = false; //确保更新的是自己 if (members.IsNotEmpty() && members[0].role.Equals("admin")) { b = updateOrganization(request, organization); } return builder.Data(b).build(); } public bool updateOrganization(JosnRPCRequest request ,Organization organization) { request.@params.code = organization.code; request.@params.type = organization.type; bool b = organizationService.Update(request.@params); return b; } /// /// 更新组织 /// /// /// [HttpPost("update")] [Authorize(Roles = "root")] public BaseJosnRPCResponse Update(JosnRPCRequest request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); Organization organization = organizationService.GetById(request.@params.id); bool b = false; //确保更新的是自己 if (organization!=null) { b = updateOrganization(request, organization); } return builder.Data(b).build(); } /// /// 更新组织 /// /// /// [HttpPost("add")] [Authorize(Roles = "root")] public BaseJosnRPCResponse Add(JosnRPCRequest request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); string adminCellphone = ""; lecturerService.GetList(); return builder.Data(null).build(); } public class OrgDto{ [Required(ErrorMessage = "组织名称必须填写")] public string orgName { get; set; } [Required(ErrorMessage = "组织类型必须填写")] public string orgType { get; set; } [Required(ErrorMessage = "组织管理员手机号必须填写")] public string adminCellphone { get; set; } [Required(ErrorMessage = "授权上限必须填写")] [Range(1, 1000, ErrorMessage = "请输入1~1000的整数")] public int maximum { get; set; } /// /// 时长-1 永久 ,大于0 按天计算 /// [Required(ErrorMessage = "授权时限必须填写")] [Range(-1, 3650, ErrorMessage = "请输入-1~3650的整数")] public int expires { get; set; } } } }