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();
}
}
}