using Hei.Captcha; using HiTeachCE.Context; using HiTeachCE.Extension; using HiTeachCE.Helpers; using HiTeachCE.Models; using HiTeachCE.Services; using IdentityModel; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Security.Claims; using System.Text.Json; using System.Threading.Tasks; using TEAMModelOS.SDK.Context.Configuration; using TEAMModelOS.SDK.Context.Exception; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest; using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse; using TEAMModelOS.SDK.Extension.JwtAuth.Models; using TEAMModelOS.SDK.Helper.Common.CollectionHelper; using TEAMModelOS.SDK.Helper.Common.JsonHelper; using TEAMModelOS.SDK.Helper.Security.ShaHash; namespace HiTeachCE.Controllers { [Route("api/[controller]")] [ApiController] public class LecturerController : BaseController { private readonly LecturerService lecturerService; public LecturerController(LecturerService lecturer) { lecturerService = lecturer; } /// /// 获取知识 /// /// /// [HttpPost("list")] [Authorize(Roles = "root")] public BaseJosnRPCResponse list(JosnRPCRequest> request) { // request.@params.TryAdd("PartitionKey", request.lang); JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); List lecturers = new List(); Expression> linq = null; if (request.@params.TryGetValue("cellphone", out string cellphone) && !string.IsNullOrEmpty(cellphone)) { linq = m => m.cellphone == cellphone; } if (request.@params.TryGetValue("account", out string account) && !string.IsNullOrEmpty(account)) { linq = m => m.account == account; } if (request.@params.TryGetValue("username", out string username) && !string.IsNullOrEmpty(username)) { linq = m => m.username.Contains(username); } if (request.@params.TryGetValue("id", out string id) && !string.IsNullOrEmpty(id)) { linq = m => m.id==id; } if (linq != null) { lecturers = lecturerService.GetList(linq); } lecturers.ForEach(x => { x.password = null; }); return builder.Data(lecturers).build(); } /// /// 获取知识 /// /// /// [HttpPost("update")] [Authorize(Roles = "root")] public BaseJosnRPCResponse update(JosnRPCRequest request) { JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); Lecturer lecturer = lecturerService.GetById(request.@params.id); bool b = false; if (lecturer != null) { if (!string.IsNullOrEmpty(request.@params.password)) { request.@params.password = BCrypt.Net.BCrypt.HashPassword(request.@params.password); } else { request.@params.password = lecturer.password; } request.@params.unionid = lecturer.unionid; if (lecturer.setaccount != 0) { request.@params.account = lecturer.account; } request.@params.registerTime = lecturer.registerTime; request.@params.cellphone = lecturer.cellphone; request.@params.areaCode = lecturer.areaCode; b = lecturerService.Update(request.@params); } return builder.Data(b).build(); } /// /// 获取知识 /// /// /// [HttpGet("GetId")] public BaseJosnRPCResponse GetList() { // request.@params.TryAdd("PartitionKey", request.lang); JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); List data = lecturerService.GetList(); return builder.Data(Guid.NewGuid()).build(); } ///// ///// 获取知识 ///// ///// ///// //[HttpPost("GetList")] //[Authorize(Roles = "admin")] //public BaseJosnRPCResponse GetList(JosnRPCRequest> request) //{ // // request.@params.TryAdd("PartitionKey", request.lang); // JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); // List data = lecturerService.GetList() ; // return builder.Data(Guid.NewGuid()).build(); //} /// /// 获取知识 /// /// /// [HttpPost("GetList1")] [Authorize(Policy = "admin")] public BaseJosnRPCResponse GetList1(JosnRPCRequest> request) { // request.@params.TryAdd("PartitionKey", request.lang); JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); List data = lecturerService.GetList(); return builder.Data(Guid.NewGuid()).build(); }/// /// 获取知识 /// /// /// [HttpPost("GetList2")] [Authorize] public BaseJosnRPCResponse GetList2(JosnRPCRequest> request) { // request.@params.TryAdd("PartitionKey", request.lang); JsonRPCResponseBuilder builder = JsonRPCResponseBuilder.custom(); return builder.Data(Guid.NewGuid()).build(); } } }