😎1、升级Furion v4.9.6.17 2、去掉.NET 6
This commit is contained in:
parent
943944aac1
commit
7f476010b5
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<DocumentationFile></DocumentationFile>
|
<DocumentationFile></DocumentationFile>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
"Microsoft.AspNetCore": "Warning",
|
"Microsoft.AspNetCore": "Warning",
|
||||||
"Microsoft.EntityFrameworkCore": "Information",
|
"Microsoft.EntityFrameworkCore": "Information",
|
||||||
"AspNetCoreRateLimit": "None",
|
"AspNetCoreRateLimit": "None",
|
||||||
"System.Net.Http.HttpClient": "Error"
|
"System.Net.Http.HttpClient": "Warning"
|
||||||
},
|
},
|
||||||
"File": {
|
"File": {
|
||||||
"Enabled": false, // 启用文件日志
|
"Enabled": false, // 启用文件日志
|
||||||
|
|||||||
@ -4,12 +4,6 @@
|
|||||||
//
|
//
|
||||||
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Admin.NET.Application.Entity;
|
namespace Admin.NET.Application.Entity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<DocumentationFile></DocumentationFile>
|
<DocumentationFile></DocumentationFile>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
@ -18,9 +18,9 @@
|
|||||||
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
<PackageReference Include="AspectCore.Extensions.Reflection" Version="2.4.0" />
|
||||||
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
<PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
|
||||||
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.16.3" />
|
<PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.16.3" />
|
||||||
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.5.26" />
|
<PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.6.17" />
|
||||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.5.26" />
|
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.6.17" />
|
||||||
<PackageReference Include="Furion.Pure" Version="4.9.5.26" />
|
<PackageReference Include="Furion.Pure" Version="4.9.6.17" />
|
||||||
<PackageReference Include="Hardware.Info" Version="101.0.0" />
|
<PackageReference Include="Hardware.Info" Version="101.0.0" />
|
||||||
<PackageReference Include="Hashids.net" Version="1.7.0" />
|
<PackageReference Include="Hashids.net" Version="1.7.0" />
|
||||||
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
<PackageReference Include="IPTools.China" Version="1.6.0" />
|
||||||
@ -51,17 +51,6 @@
|
|||||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net6.0' ">
|
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
|
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
|
|
||||||
<PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
|
|
||||||
<PackageReference Include="SkiaSharp.NativeAssets.Linux.NoDependencies" Version="2.88.9" />
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.36" />
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="6.0.36" />
|
|
||||||
<PackageReference Include="Microsoft.AspNetCore.SignalR.StackExchangeRedis" Version="6.0.36" />
|
|
||||||
<PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.9" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
|
<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="8.3.0" />
|
<PackageReference Include="AspNet.Security.OAuth.Gitee" Version="8.3.0" />
|
||||||
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="8.3.0" />
|
<PackageReference Include="AspNet.Security.OAuth.Weixin" Version="8.3.0" />
|
||||||
|
|||||||
@ -17,7 +17,7 @@ global using Furion.EventBus;
|
|||||||
global using Furion.FriendlyException;
|
global using Furion.FriendlyException;
|
||||||
global using Furion.JsonSerialization;
|
global using Furion.JsonSerialization;
|
||||||
global using Furion.Logging;
|
global using Furion.Logging;
|
||||||
global using Furion.RemoteRequest.Extensions;
|
global using Furion.HttpRemote;
|
||||||
global using Furion.Schedule;
|
global using Furion.Schedule;
|
||||||
global using Furion.UnifyResult;
|
global using Furion.UnifyResult;
|
||||||
global using Furion.ViewEngine;
|
global using Furion.ViewEngine;
|
||||||
|
|||||||
@ -138,8 +138,9 @@ public class SysFileService : IDynamicApiController, ITransient
|
|||||||
var filePath = Path.Combine(file.FilePath ?? "", file.Id + file.Suffix);
|
var filePath = Path.Combine(file.FilePath ?? "", file.Id + file.Suffix);
|
||||||
if (_OSSProviderOptions.Enabled)
|
if (_OSSProviderOptions.Enabled)
|
||||||
{
|
{
|
||||||
var stream = await (await _OSSService.PresignedGetObjectAsync(file.BucketName, filePath, 5)).GetAsStreamAsync();
|
var httpRemoteService = App.GetRequiredService<IHttpRemoteService>();
|
||||||
return new FileStreamResult(stream.Stream, "application/octet-stream") { FileDownloadName = fileName + file.Suffix };
|
var stream = await httpRemoteService.GetAsStreamAsync(await _OSSService.PresignedGetObjectAsync(file.BucketName, filePath, 5));
|
||||||
|
return new FileStreamResult(stream, "application/octet-stream") { FileDownloadName = fileName + file.Suffix };
|
||||||
}
|
}
|
||||||
|
|
||||||
if (App.Configuration["SSHProvider:Enabled"].ToBoolean())
|
if (App.Configuration["SSHProvider:Enabled"].ToBoolean())
|
||||||
|
|||||||
@ -161,7 +161,8 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
var syncLevel = await _sysConfigService.GetConfigValueByCode<int>(ConfigConst.SysRegionSyncLevel);
|
var syncLevel = await _sysConfigService.GetConfigValueByCode<int>(ConfigConst.SysRegionSyncLevel);
|
||||||
if (syncLevel is < 1 or > 5) syncLevel = 3; // 默认区县级
|
if (syncLevel is < 1 or > 5) syncLevel = 3; // 默认区县级
|
||||||
|
|
||||||
var html = await "http://xzqh.mca.gov.cn/map".GetAsStringAsync();
|
var httpRemoteService = App.GetRequiredService<IHttpRemoteService>();
|
||||||
|
var html = await httpRemoteService.GetAsStringAsync("http://xzqh.mca.gov.cn/map");
|
||||||
var municipalityList = new List<string> { "北京", "天津", "上海", "重庆" };
|
var municipalityList = new List<string> { "北京", "天津", "上海", "重庆" };
|
||||||
var provList = Regex.Match(html, @"(?<=var json = )(\[\{.*?\}\])(?=;)").Value.ToJsonEntity<List<Dictionary<string, string>>>();
|
var provList = Regex.Match(html, @"(?<=var json = )(\[\{.*?\}\])(?=;)").Value.ToJsonEntity<List<Dictionary<string, string>>>();
|
||||||
foreach (var dict1 in provList)
|
foreach (var dict1 in provList)
|
||||||
@ -224,11 +225,11 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
// 获取选择数据
|
// 获取选择数据
|
||||||
async Task<List<Dictionary<string, string>>> GetSelectList(string prov, string prefecture = null)
|
async Task<List<Dictionary<string, string>>> GetSelectList(string prov, string prefecture = null)
|
||||||
{
|
{
|
||||||
var json = await "http://xzqh.mca.gov.cn/selectJson".SetQueries(new
|
var json = await httpRemoteService.PostAsStringAsync("http://xzqh.mca.gov.cn/selectJson", builder => builder.SetJsonContent(new
|
||||||
{
|
{
|
||||||
shengji = prov,
|
shengji = prov,
|
||||||
diji = prefecture,
|
diji = prefecture,
|
||||||
}).PostAsStringAsync();
|
}));
|
||||||
return json.ToJsonEntity<List<Dictionary<string, string>>>();
|
return json.ToJsonEntity<List<Dictionary<string, string>>>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -247,7 +248,8 @@ public class SysRegionService : IDynamicApiController, ITransient
|
|||||||
var syncLevel = await _sysConfigService.GetConfigValueByCode<int>(ConfigConst.SysRegionSyncLevel);
|
var syncLevel = await _sysConfigService.GetConfigValueByCode<int>(ConfigConst.SysRegionSyncLevel);
|
||||||
if (syncLevel is < 1 or > 5) syncLevel = 3; // 默认区县级
|
if (syncLevel is < 1 or > 5) syncLevel = 3; // 默认区县级
|
||||||
|
|
||||||
var res = await $"https://restapi.amap.com/v3/config/district?subdistrict={syncLevel}&key={key}".GetAsync();
|
var httpRemoteService = App.GetRequiredService<IHttpRemoteService>();
|
||||||
|
var res = await httpRemoteService.GetAsync($"https://restapi.amap.com/v3/config/district?subdistrict={syncLevel}&key={key}");
|
||||||
if (!res.IsSuccessStatusCode) return;
|
if (!res.IsSuccessStatusCode) return;
|
||||||
|
|
||||||
var gdResponse = JSON.Deserialize<GDResponse<List<GDRegionResponse>>>(res.Content.ReadAsStringAsync().Result);
|
var gdResponse = JSON.Deserialize<GDResponse<List<GDRegionResponse>>>(res.Content.ReadAsStringAsync().Result);
|
||||||
|
|||||||
@ -16,24 +16,12 @@ namespace Admin.NET.Core;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class SignatureAuthenticationHandler : AuthenticationHandler<SignatureAuthenticationOptions>
|
public sealed class SignatureAuthenticationHandler : AuthenticationHandler<SignatureAuthenticationOptions>
|
||||||
{
|
{
|
||||||
#if NET6_0
|
|
||||||
|
|
||||||
public SignatureAuthenticationHandler(IOptionsMonitor<SignatureAuthenticationOptions> options,
|
|
||||||
ILoggerFactory logger,
|
|
||||||
UrlEncoder encoder,
|
|
||||||
ISystemClock clock)
|
|
||||||
: base(options, logger, encoder, clock)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#else
|
|
||||||
public SignatureAuthenticationHandler(IOptionsMonitor<SignatureAuthenticationOptions> options,
|
public SignatureAuthenticationHandler(IOptionsMonitor<SignatureAuthenticationOptions> options,
|
||||||
ILoggerFactory logger,
|
ILoggerFactory logger,
|
||||||
UrlEncoder encoder)
|
UrlEncoder encoder)
|
||||||
: base(options, logger, encoder)
|
: base(options, logger, encoder)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
private new SignatureAuthenticationEvent Events
|
private new SignatureAuthenticationEvent Events
|
||||||
{
|
{
|
||||||
@ -68,12 +56,7 @@ public sealed class SignatureAuthenticationHandler : AuthenticationHandler<Signa
|
|||||||
return await AuthenticateResultFailAsync("timestamp 值不合法");
|
return await AuthenticateResultFailAsync("timestamp 值不合法");
|
||||||
|
|
||||||
var requestDate = DateTimeUtil.ConvertUnixTime(timestamp);
|
var requestDate = DateTimeUtil.ConvertUnixTime(timestamp);
|
||||||
|
|
||||||
#if NET6_0
|
|
||||||
var utcNow = Clock.UtcNow;
|
|
||||||
#else
|
|
||||||
var utcNow = TimeProvider.GetUtcNow();
|
var utcNow = TimeProvider.GetUtcNow();
|
||||||
#endif
|
|
||||||
if (requestDate > utcNow.Add(Options.AllowedDateDrift).LocalDateTime || requestDate < utcNow.Subtract(Options.AllowedDateDrift).LocalDateTime)
|
if (requestDate > utcNow.Add(Options.AllowedDateDrift).LocalDateTime || requestDate < utcNow.Subtract(Options.AllowedDateDrift).LocalDateTime)
|
||||||
return await AuthenticateResultFailAsync("timestamp 值已超过允许的偏差范围");
|
return await AuthenticateResultFailAsync("timestamp 值已超过允许的偏差范围");
|
||||||
|
|
||||||
|
|||||||
@ -152,7 +152,8 @@ public static class ComputerUtil
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var url = "https://www.ip.cn/api/index?ip&type=0";
|
var url = "https://www.ip.cn/api/index?ip&type=0";
|
||||||
var str = url.GetAsStringAsync().GetAwaiter().GetResult();
|
var httpRemoteService = App.GetRequiredService<IHttpRemoteService>();
|
||||||
|
var str = httpRemoteService.GetAsStringAsync(url).GetAwaiter().GetResult();
|
||||||
var resp = JSON.Deserialize<IpCnResp>(str);
|
var resp = JSON.Deserialize<IpCnResp>(str);
|
||||||
return resp.Ip + " " + resp.Address;
|
return resp.Ip + " " + resp.Address;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591</NoWarn>
|
<NoWarn>1701;1702;1591</NoWarn>
|
||||||
<DocumentationFile></DocumentationFile>
|
<DocumentationFile></DocumentationFile>
|
||||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||||
|
|||||||
@ -70,7 +70,7 @@ public class Startup : AppStartup
|
|||||||
// 允许跨域
|
// 允许跨域
|
||||||
services.AddCorsAccessor();
|
services.AddCorsAccessor();
|
||||||
// 远程请求
|
// 远程请求
|
||||||
services.AddRemoteRequest();
|
services.AddHttpRemote();
|
||||||
// 任务队列
|
// 任务队列
|
||||||
services.AddTaskQueue();
|
services.AddTaskQueue();
|
||||||
// 作业调度
|
// 作业调度
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
|
<SatelliteResourceLanguages>zh-Hans</SatelliteResourceLanguages>
|
||||||
<PublishReadyToRunComposite>true</PublishReadyToRunComposite>
|
<PublishReadyToRunComposite>true</PublishReadyToRunComposite>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
@ -10,8 +10,7 @@ global using Furion.ConfigurableOptions;
|
|||||||
global using Furion.DependencyInjection;
|
global using Furion.DependencyInjection;
|
||||||
global using Furion.DynamicApiController;
|
global using Furion.DynamicApiController;
|
||||||
global using Furion.FriendlyException;
|
global using Furion.FriendlyException;
|
||||||
global using Furion.RemoteRequest;
|
global using Furion.HttpRemote;
|
||||||
global using Microsoft.AspNetCore.Http;
|
|
||||||
global using Microsoft.AspNetCore.Mvc;
|
global using Microsoft.AspNetCore.Mvc;
|
||||||
global using Microsoft.Extensions.Options;
|
global using Microsoft.Extensions.Options;
|
||||||
global using Newtonsoft.Json;
|
global using Newtonsoft.Json;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
namespace Admin.NET.Plugin.DingTalk;
|
namespace Admin.NET.Plugin.DingTalk;
|
||||||
|
|
||||||
public interface IDingTalkApi : IHttpDispatchProxy
|
public interface IDingTalkApi : IHttpDeclarative
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取企业内部应用的access_token
|
/// 获取企业内部应用的access_token
|
||||||
@ -15,7 +15,7 @@ public interface IDingTalkApi : IHttpDispatchProxy
|
|||||||
/// <param name="appsecret"> 应用的密钥。AppKey和AppSecret可在钉钉开发者后台的应用详情页面获取。</param>
|
/// <param name="appsecret"> 应用的密钥。AppKey和AppSecret可在钉钉开发者后台的应用详情页面获取。</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Get("https://oapi.dingtalk.com/gettoken")]
|
[Get("https://oapi.dingtalk.com/gettoken")]
|
||||||
Task<GetDingTalkTokenOutput> GetDingTalkToken([QueryString] string appkey, [QueryString] string appsecret);
|
Task<GetDingTalkTokenOutput> GetDingTalkToken([Query] string appkey, [Query] string appsecret);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取在职员工列表
|
/// 获取在职员工列表
|
||||||
@ -24,7 +24,7 @@ public interface IDingTalkApi : IHttpDispatchProxy
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/queryonjob")]
|
[Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/queryonjob")]
|
||||||
Task<DingTalkBaseResponse<GetDingTalkCurrentEmployeesListOutput>> GetDingTalkCurrentEmployeesList([QueryString] string access_token,
|
Task<DingTalkBaseResponse<GetDingTalkCurrentEmployeesListOutput>> GetDingTalkCurrentEmployeesList([Query] string access_token,
|
||||||
[Body, Required] GetDingTalkCurrentEmployeesListInput input);
|
[Body, Required] GetDingTalkCurrentEmployeesListInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -34,7 +34,7 @@ public interface IDingTalkApi : IHttpDispatchProxy
|
|||||||
/// <param name="input"></param>
|
/// <param name="input"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/list")]
|
[Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/list")]
|
||||||
Task<DingTalkBaseResponse<List<DingTalkEmpRosterFieldVo>>> GetDingTalkCurrentEmployeesRosterList([QueryString] string access_token,
|
Task<DingTalkBaseResponse<List<DingTalkEmpRosterFieldVo>>> GetDingTalkCurrentEmployeesRosterList([Query] string access_token,
|
||||||
[Body, Required] GetDingTalkCurrentEmployeesRosterListInput input);
|
[Body, Required] GetDingTalkCurrentEmployeesRosterListInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -45,7 +45,7 @@ public interface IDingTalkApi : IHttpDispatchProxy
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("https://api.dingtalk.com/v1.0/im/interactiveCards/send")]
|
[Post("https://api.dingtalk.com/v1.0/im/interactiveCards/send")]
|
||||||
Task<DingTalkSendInteractiveCardsOutput> DingTalkSendInteractiveCards(
|
Task<DingTalkSendInteractiveCardsOutput> DingTalkSendInteractiveCards(
|
||||||
[Headers("x-acs-dingtalk-access-token")] string token,
|
[Header("x-acs-dingtalk-access-token")] string token,
|
||||||
[Body] DingTalkSendInteractiveCardsInput input);
|
[Body] DingTalkSendInteractiveCardsInput input);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -56,6 +56,6 @@ public interface IDingTalkApi : IHttpDispatchProxy
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Get("https://api.dingtalk.com/v1.0/robot/oToMessages/readStatus")]
|
[Get("https://api.dingtalk.com/v1.0/robot/oToMessages/readStatus")]
|
||||||
Task<GetDingTalkCardMessageReadStatusOutput> GetDingTalkCardMessageReadStatus(
|
Task<GetDingTalkCardMessageReadStatusOutput> GetDingTalkCardMessageReadStatus(
|
||||||
[Headers("x-acs-dingtalk-access-token")] string token,
|
[Header("x-acs-dingtalk-access-token")] string token,
|
||||||
[QueryString] GetDingTalkCardMessageReadStatusInput input);
|
[Query] GetDingTalkCardMessageReadStatusInput input);
|
||||||
}
|
}
|
||||||
@ -16,6 +16,11 @@ public class Startup : AppStartup
|
|||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddConfigurableOptions<DingTalkOptions>();
|
services.AddConfigurableOptions<DingTalkOptions>();
|
||||||
|
|
||||||
|
services.AddHttpRemote(builder =>
|
||||||
|
{
|
||||||
|
builder.AddHttpDeclarative<IDingTalkApi>();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
@ -6,3 +6,4 @@
|
|||||||
|
|
||||||
global using Furion;
|
global using Furion;
|
||||||
global using Furion.ConfigurableOptions;
|
global using Furion.ConfigurableOptions;
|
||||||
|
global using Furion.HttpRemote;
|
||||||
@ -4,15 +4,13 @@
|
|||||||
//
|
//
|
||||||
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
|
||||||
|
|
||||||
using Furion.RemoteRequest;
|
|
||||||
|
|
||||||
namespace Admin.NET.Plugin.K3Cloud.Service;
|
namespace Admin.NET.Plugin.K3Cloud.Service;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 金蝶云星空ERP接口
|
/// 金蝶云星空ERP接口
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Client("K3Cloud")]
|
[HttpClientName("K3Cloud")]
|
||||||
public interface IK3CloudApi : IHttpDispatchProxy
|
public interface IK3CloudApi : IHttpDeclarative
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 验证用户
|
/// 验证用户
|
||||||
@ -21,7 +19,7 @@ public interface IK3CloudApi : IHttpDispatchProxy
|
|||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc")]
|
[Post("Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc")]
|
||||||
Task<K3CloudLoginOutput> ValidateUser([Body] K3CloudLoginInput input, [Interceptor(InterceptorTypes.Response)] Action<HttpClient, HttpResponseMessage> action = default);
|
Task<K3CloudLoginOutput> ValidateUser([Body] K3CloudLoginInput input, Action<HttpClient, HttpResponseMessage> action = default);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 保存表单
|
/// 保存表单
|
||||||
@ -30,7 +28,7 @@ public interface IK3CloudApi : IHttpDispatchProxy
|
|||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc")]
|
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Save.common.kdsvc")]
|
||||||
Task<K3CloudPushResultOutput> Save<T>([Body] K3CloudBaeInput<T> input, [Interceptor(InterceptorTypes.Request)] Action<HttpClient, HttpRequestMessage> action = default);
|
Task<K3CloudPushResultOutput> Save<T>([Body] K3CloudBaeInput<T> input, Action<HttpClient, HttpRequestMessage> action = default);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 提交表单
|
/// 提交表单
|
||||||
@ -39,7 +37,7 @@ public interface IK3CloudApi : IHttpDispatchProxy
|
|||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc")]
|
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Submit.common.kdsvc")]
|
||||||
Task<K3CloudPushResultOutput> Submit<T>([Body] K3CloudBaeInput<T> input, [Interceptor(InterceptorTypes.Request)] Action<HttpClient, HttpRequestMessage> action = default);
|
Task<K3CloudPushResultOutput> Submit<T>([Body] K3CloudBaeInput<T> input, Action<HttpClient, HttpRequestMessage> action = default);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 审核表单
|
/// 审核表单
|
||||||
@ -48,5 +46,5 @@ public interface IK3CloudApi : IHttpDispatchProxy
|
|||||||
/// <param name="action"></param>
|
/// <param name="action"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc")]
|
[Post("Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc")]
|
||||||
Task<K3CloudPushResultOutput> Audit<T>([Body] K3CloudBaeInput<T> input, [Interceptor(InterceptorTypes.Request)] Action<HttpClient, HttpRequestMessage> action = default);
|
Task<K3CloudPushResultOutput> Audit<T>([Body] K3CloudBaeInput<T> input, Action<HttpClient, HttpRequestMessage> action = default);
|
||||||
}
|
}
|
||||||
@ -16,12 +16,10 @@ public class Startup : AppStartup
|
|||||||
public void ConfigureServices(IServiceCollection services)
|
public void ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddConfigurableOptions<K3CloudOptions>();
|
services.AddConfigurableOptions<K3CloudOptions>();
|
||||||
services.AddRemoteRequest(options =>
|
|
||||||
|
services.AddHttpClient("K3Cloud", client =>
|
||||||
{
|
{
|
||||||
options.AddHttpClient("K3Cloud", u =>
|
client.BaseAddress = new Uri(App.GetConfig<K3CloudOptions>("K3Cloud", true).Url);
|
||||||
{
|
|
||||||
u.BaseAddress = new Uri(App.GetConfig<K3CloudOptions>("K3Cloud", true).Url);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net6.0;net8.0;net9.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0</TargetFrameworks>
|
||||||
<NoWarn>1701;1702;1591;8632</NoWarn>
|
<NoWarn>1701;1702;1591;8632</NoWarn>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>disable</Nullable>
|
<Nullable>disable</Nullable>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user