123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- using HiTeachCE.Helpers;
- using HiTeachCE.Models;
- using HiTeachCE.Services;
- using IdentityModel;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using OpenXmlPowerTools;
- 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.Context.Exception;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcRequest;
- using TEAMModelOS.SDK.Extension.DataResult.JsonRpcResponse;
- using TEAMModelOS.SDK.Helper.Common.CollectionHelper;
- namespace HiTeachCE.Controllers
- {
- [Route("api/[controller]")]
- [ApiController]
- public class ActivationCodeController : BaseController
- {
- public ActivationCodeService activationCodeService;
- public OrganizationService organizationService;
- public ActivationCodeController(ActivationCodeService activationCode, OrganizationService organization)
- {
- activationCodeService = activationCode;
- organizationService = organization;
- }
- /// <summary>
- /// 获取组织列表
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("list")]
- [Authorize(Policy = Constant.Role_Root)]
- public BaseJosnRPCResponse List(PaginationJosnRPCRequest<Dictionary<string, string>> request)
- {
- JsonRPCResponseBuilder builder = new JsonRPCResponseBuilder();
- //string role = GetLoginUser(JwtClaimTypes.Role);
- // string loginUnionid = GetLoginUser(JwtClaimTypes.Id);
- bool flag = false;
- return builder.build();
- }
- /// <summary>
- /// 添加
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("Get")]
- [Authorize(Policy = Constant.Role_Root)]
- public BaseJosnRPCResponse Get(JosnRPCRequest<string> request)
- {
- JsonRPCResponseBuilder builder = new JsonRPCResponseBuilder();
- Expression<Func<Organization, bool>> oinq = null;
- oinq = oinq => oinq.code == request.@params;
- List<Organization> organizations = organizationService.GetList(oinq);
- if (organizations.IsNotEmpty())
- {
- Expression<Func<ActivationCode, bool>> linq = null;
- linq = linq => linq.orgCode == request.@params;
- List<ActivationCode> activationCodes = activationCodeService.GetList(linq);
- if (activationCodes.IsNotEmpty())
- {
- return builder.Data(activationCodes[0]).build();
- }
- else {
- throw new BizException("组织机构未被授权!", 2);
- }
- }
- else {
- throw new BizException("组织机构不存在!",2);
- }
- }
- /// <summary>
- /// 添加
- /// </summary>
- /// <param name="request"></param>
- /// <returns></returns>
- [HttpPost("saveOrUpdate")]
- [Authorize(Policy = Constant.Role_Root)]
- public BaseJosnRPCResponse SaveOrUpdate(JosnRPCRequest<ActivationCodeDto> request)
- {
- JsonRPCResponseBuilder builder = new JsonRPCResponseBuilder();
- bool flag = false;
- Expression<Func<Organization, bool>> oinq = null;
- oinq = oinq => oinq.code == request.@params.orgCode;
- List<Organization> organizations = organizationService.GetList(oinq);
- if (organizations.IsNotEmpty())
- {
- //个人只能有一个成员
- Organization organization = organizations[0];
- if (organization.type == 2) {
- request.@params.maximum = 1;
- }
- Expression<Func<ActivationCode, bool>> linq = null;
- linq = linq => linq.orgCode == request.@params.orgCode;
- List<ActivationCode> activationCodes = activationCodeService.GetList(linq);
-
- if (activationCodes.IsNotEmpty())
- {
- ActivationCode activationCode = activationCodes[0];
- if (request.@params.expires > 0)
- {
- activationCode.expires = activationCode.expires + request.@params.expires * 60 * 60 * 24;
- }
- activationCode.maximum = request.@params.maximum;
- activationCode.status = request.@params.status;
- flag = activationCodeService.Update(activationCode);
- }
- else
- {
- string cdkey = "";
- Random rdid = new Random();
- for (int i = 0; i < 25; i++)//从数组随机抽取字符组成新的字符生成机器三
- {
- cdkey += Constant.az09[rdid.Next(0, Constant.az09.Length)];
- if (i != 24 && (i + 1) % 5 == 0)
- {
- cdkey += "-";
- }
- }
- long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
- long expires = time;
- if (request.@params.expires > 0)
- {
- expires = time + request.@params.expires * 60 * 60 * 24;
- }
- ActivationCode activationCode = new ActivationCode
- {
- id = Guid.NewGuid().ToString(),
- cdkey = cdkey.ToUpper(),
- createTime = time,
- clientId = Guid.NewGuid().ToString("N"),
- secret = Guid.NewGuid().ToString("N"),
- status = request.@params.status,
- orgCode = request.@params.orgCode,
- expires = expires,
- maximum = request.@params.maximum
- };
- flag = activationCodeService.Insert(activationCode);
- }
- }
- else {
- throw new BizException("组织机构不存在!", 2);
- }
-
- return builder.Data(flag).build();
- }
- }
- public class ActivationCodeDto {
- [Required(ErrorMessage = "组织必须设置")]
- public string orgCode { get; set; }
- [Required(ErrorMessage = "授权上限必须填写")]
- [Range(1, 1000, ErrorMessage = "请输入1~1000的整数")]
- public int maximum { get; set; }
- /// <summary>
- /// 时长-1 永久 ,大于0 按天计算
- /// </summary>
- [Required(ErrorMessage = "授权时限必须填写")]
- [Range(0, 3650, ErrorMessage = "请输入0~3650的整数")]
- public int expires { get; set; }
- public int status { get; set; }
- }
- }
|