123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- 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;
- }
- /// <summary>
- /// 获取组织列表
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("list")]
- [Authorize(Roles = "root")]
- public BaseJosnRPCResponse List(PaginationJosnRPCRequest<Dictionary<string, string>> request)
- {
- // request.@params.TryAdd("PartitionKey", request.lang);
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
- List<Organization> lecturers = new List<Organization>();
- Expression<Func<Organization, bool>> 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();
- }
- /// <summary>
- /// 更新自己的组织
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("updateSelf")]
- [Authorize(Roles = "admin")]
- public BaseJosnRPCResponse UpdateSelf(JosnRPCRequest<Organization> request)
- {
- JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom();
- string unionid = GetLoginUser(JwtClaimTypes.Id);
- Organization organization = organizationService.GetById(request.@params.id);
- Expression<Func<Member, bool>> mlinq = null;
- mlinq = m => m.orgCode == request.@params.code && m.unionid == unionid;
- List<Member> 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<Organization> request ,Organization organization) {
- request.@params.code = organization.code;
- request.@params.type = organization.type;
- bool b = organizationService.Update(request.@params);
- return b;
- }
- /// <summary>
- /// 更新组织
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("update")]
- [Authorize(Roles = "root")]
- public BaseJosnRPCResponse Update(JosnRPCRequest<Organization> 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();
- }
- /// <summary>
- /// 更新组织
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("add")]
- [Authorize(Roles = "root")]
- public BaseJosnRPCResponse Add(JosnRPCRequest<OrgDto> 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; }
- /// <summary>
- /// 时长-1 永久 ,大于0 按天计算
- /// </summary>
- [Required(ErrorMessage = "授权时限必须填写")]
- [Range(-1, 3650, ErrorMessage = "请输入-1~3650的整数")]
- public int expires { get; set; }
- }
- }
- }
|