喵你个旺呀 1 год назад
Родитель
Сommit
b5bdbb94eb
61 измененных файлов с 305 добавлено и 294 удалено
  1. 22 23
      Admin.NET/.editorconfig
  2. 12 12
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs
  3. 13 13
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/AliTripRequest.cs
  4. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripAddressRequest.cs
  5. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripAddressResponse.cs
  6. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripFlightOrdersRequest.cs
  7. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripFlightOrdersResponse.cs
  8. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripTrainOrdersRequest.cs
  9. 1 7
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripTrainOrdersResponse.cs
  10. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/IAliTripRequestProxy.cs
  11. 29 32
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/AttendanceRequest.cs
  12. 3 0
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttdendanceApprovalsFinishRequest.cs
  13. 8 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttendanceApprovalsFinishResponse.cs
  14. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttendanceApprovelsCancelResponse.cs
  15. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/Enums.cs
  16. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/GetLeaveStatusResponse.cs
  17. 6 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/IAttendanceRequestProxy.cs
  18. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorRequestId.cs
  19. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorResult.cs
  20. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorResultRequestId.cs
  21. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorSuccess.cs
  22. 0 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseSuccess.cs
  23. 0 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseSuccessResult.cs
  24. 9 9
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/CheckinRequest.cs
  25. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/DTO/GetDeptRecordResponse.cs
  26. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/DTO/GetUserRecordResponse.cs
  27. 8 8
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/ICheckinRequestProxy.cs
  28. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/GetDeptInfoResponse.cs
  29. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/ListSubIdResponse.cs
  30. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/ListSubResponse.cs
  31. 12 12
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DepartmentRequest.cs
  32. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/IDepartmentRequestProxy.cs
  33. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryOnJobRequest.cs
  34. 3 3
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryOnJobResponse.cs
  35. 4 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/RosterListsQueryResponse.cs
  36. 18 18
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/HrmRequest.cs
  37. 2 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/IHrmRequestProxy.cs
  38. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/DTO/SendCorpConversationRequest.cs
  39. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/IMessageRequestProxy.cs
  40. 8 8
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/MessageRequest.cs
  41. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/DTO/GetUserInfoResponse.cs
  42. 2 4
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/ITopRequestProxy.cs
  43. 9 9
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/TopRequest.cs
  44. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/RoleListResponse.cs
  45. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserDetailResponse.cs
  46. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserListIdResponse.cs
  47. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserListSimpleResponse.cs
  48. 5 5
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/IUserRequestProxy.cs
  49. 17 17
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/UserRequest.cs
  50. 12 10
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/DingTalkService.cs
  51. 4 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkBaseResponse.cs
  52. 4 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkCardData.cs
  53. 10 8
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkEmpFieldDataVo.cs
  54. 8 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkEmpRosterFieldVo.cs
  55. 8 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkFieldValueVo.cs
  56. 1 1
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkSendInteractiveCardsInput.cs
  57. 4 2
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesListInput.cs
  58. 6 4
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesListOutput.cs
  59. 8 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesRosterListInput.cs
  60. 6 4
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkToken.cs
  61. 6 6
      Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/IDingTalkApi.cs

+ 22 - 23
Admin.NET/.editorconfig

@@ -1,4 +1,3 @@
-
 [*.cs]
 #### 命名样式 ####
 
@@ -20,31 +19,31 @@ dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case
 
 dotnet_naming_symbols.interface.applicable_kinds = interface
 dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.interface.required_modifiers = 
+dotnet_naming_symbols.interface.required_modifiers =
 
 dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
 dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.types.required_modifiers = 
+dotnet_naming_symbols.types.required_modifiers =
 
 dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
 dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected
-dotnet_naming_symbols.non_field_members.required_modifiers = 
+dotnet_naming_symbols.non_field_members.required_modifiers =
 
 # 命名样式
 
 dotnet_naming_style.begins_with_i.required_prefix = I
-dotnet_naming_style.begins_with_i.required_suffix = 
-dotnet_naming_style.begins_with_i.word_separator = 
+dotnet_naming_style.begins_with_i.required_suffix =
+dotnet_naming_style.begins_with_i.word_separator =
 dotnet_naming_style.begins_with_i.capitalization = pascal_case
 
-dotnet_naming_style.pascal_case.required_prefix = 
-dotnet_naming_style.pascal_case.required_suffix = 
-dotnet_naming_style.pascal_case.word_separator = 
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
 dotnet_naming_style.pascal_case.capitalization = pascal_case
 
-dotnet_naming_style.pascal_case.required_prefix = 
-dotnet_naming_style.pascal_case.required_suffix = 
-dotnet_naming_style.pascal_case.word_separator = 
+dotnet_naming_style.pascal_case.required_prefix =
+dotnet_naming_style.pascal_case.required_suffix =
+dotnet_naming_style.pascal_case.word_separator =
 dotnet_naming_style.pascal_case.capitalization = pascal_case
 csharp_using_directive_placement = outside_namespace:silent
 csharp_style_expression_bodied_methods = false:silent
@@ -111,31 +110,31 @@ dotnet_naming_rule.非字段成员_should_be_帕斯卡拼写法.style = 帕斯
 
 dotnet_naming_symbols.interface.applicable_kinds = interface
 dotnet_naming_symbols.interface.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.interface.required_modifiers = 
+dotnet_naming_symbols.interface.required_modifiers =
 
 dotnet_naming_symbols.类型.applicable_kinds = class, struct, interface, enum
 dotnet_naming_symbols.类型.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.类型.required_modifiers = 
+dotnet_naming_symbols.类型.required_modifiers =
 
 dotnet_naming_symbols.非字段成员.applicable_kinds = property, event, method
 dotnet_naming_symbols.非字段成员.applicable_accessibilities = public, friend, private, protected, protected_friend, private_protected
-dotnet_naming_symbols.非字段成员.required_modifiers = 
+dotnet_naming_symbols.非字段成员.required_modifiers =
 
 # 命名样式
 
 dotnet_naming_style.以_i_开始.required_prefix = I
-dotnet_naming_style.以_i_开始.required_suffix = 
-dotnet_naming_style.以_i_开始.word_separator = 
+dotnet_naming_style.以_i_开始.required_suffix =
+dotnet_naming_style.以_i_开始.word_separator =
 dotnet_naming_style.以_i_开始.capitalization = pascal_case
 
-dotnet_naming_style.帕斯卡拼写法.required_prefix = 
-dotnet_naming_style.帕斯卡拼写法.required_suffix = 
-dotnet_naming_style.帕斯卡拼写法.word_separator = 
+dotnet_naming_style.帕斯卡拼写法.required_prefix =
+dotnet_naming_style.帕斯卡拼写法.required_suffix =
+dotnet_naming_style.帕斯卡拼写法.word_separator =
 dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case
 
-dotnet_naming_style.帕斯卡拼写法.required_prefix = 
-dotnet_naming_style.帕斯卡拼写法.required_suffix = 
-dotnet_naming_style.帕斯卡拼写法.word_separator = 
+dotnet_naming_style.帕斯卡拼写法.required_prefix =
+dotnet_naming_style.帕斯卡拼写法.required_suffix =
+dotnet_naming_style.帕斯卡拼写法.word_separator =
 dotnet_naming_style.帕斯卡拼写法.capitalization = pascal_case
 
 [*.{cs,vb}]

+ 12 - 12
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Job/SyncDingTalkUserJob.cs

@@ -32,12 +32,12 @@ public class SyncDingTalkUserJob : IJob
     public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
     {
         using var serviceScope = _scopeFactory.CreateScope();
-        var _sysUserRep = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<SysUser>>();
-        var _dingTalkUserRepo = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<DingTalkUser>>();
-        var _dingTalkOptions = serviceScope.ServiceProvider.GetRequiredService<IOptions<DingTalkOptions>>();
+        var sysUserRep = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<SysUser>>();
+        var dingTalkUserRepo = serviceScope.ServiceProvider.GetRequiredService<SqlSugarRepository<DingTalkUser>>();
+        var dingTalkOptions = serviceScope.ServiceProvider.GetRequiredService<IOptions<DingTalkOptions>>();
 
         // 获取Token
-        var tokenRes = await _dingTalkApi.GetDingTalkToken(_dingTalkOptions.Value.ClientId, _dingTalkOptions.Value.ClientSecret);
+        var tokenRes = await _dingTalkApi.GetDingTalkToken(dingTalkOptions.Value.ClientId, dingTalkOptions.Value.ClientSecret);
         if (tokenRes.ErrCode != 0)
             throw Oops.Oh(tokenRes.ErrMsg);
 
@@ -62,7 +62,7 @@ public class SyncDingTalkUserJob : IJob
             {
                 UserIdList = string.Join(",", userIdsRes.Result.DataList),
                 FieldFilterList = $"{DingTalkConst.NameField},{DingTalkConst.JobNumberField},{DingTalkConst.MobileField}",
-                AgentId = _dingTalkOptions.Value.AgentId
+                AgentId = dingTalkOptions.Value.AgentId
             });
             if (!rosterRes.Success)
             {
@@ -79,14 +79,14 @@ public class SyncDingTalkUserJob : IJob
         }
 
         // 判断新增还是更新
-        var sysDingTalkUserIdList = await _dingTalkUserRepo.AsQueryable().Select(u => new
+        var sysDingTalkUserIdList = await dingTalkUserRepo.AsQueryable().Select(u => new
         {
             u.Id,
             u.DingTalkUserId
         }).ToListAsync();
 
         var uDingTalkUser = dingTalkUserList.Where(u => sysDingTalkUserIdList.Any(m => m.DingTalkUserId == u.UserId)); // 需要更新的用户Id
-        var iDingTalkUser = dingTalkUserList.Where(u => !sysDingTalkUserIdList.Any(m => m.DingTalkUserId == u.UserId)); // 需要新增的用户Id
+        var iDingTalkUser = dingTalkUserList.Where(u => sysDingTalkUserIdList.All(m => m.DingTalkUserId != u.UserId)); // 需要新增的用户Id
 
         // 新增钉钉用户
         var iUser = iDingTalkUser.Select(res => new DingTalkUser
@@ -101,7 +101,7 @@ public class SyncDingTalkUserJob : IJob
         }).ToList();
         if (iUser.Count > 0)
         {
-            await _dingTalkUserRepo.CopyNew().AsInsertable(iUser).ExecuteCommandAsync();
+            await dingTalkUserRepo.CopyNew().AsInsertable(iUser).ExecuteCommandAsync();
         }
 
         // 更新钉钉用户
@@ -118,7 +118,7 @@ public class SyncDingTalkUserJob : IJob
         }).ToList();
         if (uUser.Count > 0)
         {
-            await _dingTalkUserRepo.CopyNew().AsUpdateable(uUser).UpdateColumns(u => new
+            await dingTalkUserRepo.CopyNew().AsUpdateable(uUser).UpdateColumns(u => new
             {
                 u.DingTalkUserId,
                 u.Name,
@@ -134,13 +134,13 @@ public class SyncDingTalkUserJob : IJob
         }
 
         // 通过系统用户账号(工号),更新钉钉用户表里面的系统用户Id
-        var sysUser = await _sysUserRep.AsQueryable()
+        var sysUser = await sysUserRep.AsQueryable()
             .Select(u => new
             {
                 u.Id,
                 u.Account
             }).ToListAsync();
-        var sysDingTalkUser = await _dingTalkUserRepo.AsQueryable()
+        var sysDingTalkUser = await dingTalkUserRepo.AsQueryable()
             .Where(u => sysUser.Any(m => m.Account == u.JobNumber))
             .Select(u => new
             {
@@ -157,7 +157,7 @@ public class SyncDingTalkUserJob : IJob
             SysUserId = sysUser.Where(m => m.Account == u.JobNumber).Select(u => u.Id).FirstOrDefault(),
         }).ToList();
 
-        await _dingTalkUserRepo.CopyNew().AsUpdateable(uSysDingTalkUser).UpdateColumns(u => new
+        await dingTalkUserRepo.CopyNew().AsUpdateable(uSysDingTalkUser).UpdateColumns(u => new
         {
             u.SysUserId,
             u.UpdateTime,

+ 13 - 13
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/AliTripRequest.cs

@@ -9,46 +9,46 @@ using Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip;
 public class AliTripRequest
 {
-    private IAliTripRequestProxy request;
+    private readonly IAliTripRequestProxy _request;
 
     public AliTripRequest(IAliTripRequestProxy request)
     {
-        this.request = request;
+        _request = request;
     }
 
     /// <summary>
     /// 获取阿里商旅访问地址
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="req"></param>
     /// <returns></returns>
-    public async Task<GetAlitripAddressResponse> GetAlitripAddress(string AccessToken, OpenApiJumpInfoRq req)
+    public async Task<GetAliTripAddressResponse> GetAliTripAddress(string accessToken, OpenApiJumpInfoRq req)
     {
-        var resStr = await request.GetAlitripAddress(AccessToken, new GetAlitripAddressRequest
+        var resStr = await _request.GetAliTripAddress(accessToken, new GetAliTripAddressRequest
         {
             Request = req
         });
-        var res = resStr.ToObject<GetAlitripAddressResponse>();
+        var res = resStr.ToObject<GetAliTripAddressResponse>();
         return res;
     }
 
     /// <summary>
     /// 获取企业机票订单数据
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="rq"></param>
     /// <returns></returns>
-    public async Task<GetAlitripFlightOrdersResponse> GetAlitripFlightOrders(string AccessToken, GetAlitripFlightOrdersRequest rq)
+    public async Task<GetAliTripFlightOrdersResponse> GetAliTripFlightOrders(string accessToken, GetAliTripFlightOrdersRequest rq)
     {
-        var resStr = await request.GetAlitripFlightOrders(AccessToken, rq);
-        var res = resStr.ToObject<GetAlitripFlightOrdersResponse>();
+        var resStr = await _request.GetAliTripFlightOrders(accessToken, rq);
+        var res = resStr.ToObject<GetAliTripFlightOrdersResponse>();
         return res;
     }
 
-    public async Task<GetAlitripTrainOrdersResponse> GetAlitripTrainOrders(string AccessToken, GetAlitripTrainOrdersRequest rq)
+    public async Task<GetAliTripTrainOrdersResponse> GetAliTripTrainOrders(string accessToken, GetAliTripTrainOrdersRequest rq)
     {
-        var resStr = await request.GetAlitripTrainOrders(AccessToken, rq);
-        var res = resStr.ToObject<GetAlitripTrainOrdersResponse>();
+        var resStr = await _request.GetAliTripTrainOrders(accessToken, rq);
+        var res = resStr.ToObject<GetAliTripTrainOrdersResponse>();
         return res;
     }
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripAddressRequest.cs

@@ -8,7 +8,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
 
-public class GetAlitripAddressRequest
+public class GetAliTripAddressRequest
 {
     [JsonProperty("request")]
     [JsonPropertyName("request")]

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripAddressResponse.cs

@@ -9,7 +9,7 @@ using Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
 using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
-public class GetAlitripAddressResponse : DingtalkResponseErrorResult<OpenApiJumpInfoRs>
+public class GetAliTripAddressResponse : DingtalkResponseErrorResult<OpenApiJumpInfoRs>
 {
 }
 

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripFlightOrdersRequest.cs

@@ -7,12 +7,12 @@
 using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
-public class GetAlitripFlightOrdersRequest
+public class GetAliTripFlightOrdersRequest
 {
-    public GetAlitripFlightOrdersRequestDomain rq;
+    public GetAliTripFlightOrdersRequestDomain rq;
 }
 
-public class GetAlitripFlightOrdersRequestDomain
+public class GetAliTripFlightOrdersRequestDomain
 {
     /// <summary>
     /// 开始时间 2017-05-01 00:00:00

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripFlightOrdersResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
 
-public class GetAlitripFlightOrdersResponse : DingtalkResponseErrorSuccess
+public class GetAliTripFlightOrdersResponse : DingtalkResponseErrorSuccess
 {
     /// <summary>
     /// 机票列表

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripTrainOrdersRequest.cs

@@ -7,11 +7,11 @@
 using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
-public class GetAlitripTrainOrdersRequest
+public class GetAliTripTrainOrdersRequest
 {
-    public GetAlitripTrainOrdersRequestDomain rq { get; set; }
+    public GetAliTripTrainOrdersRequestDomain rq { get; set; }
 }
-public class GetAlitripTrainOrdersRequestDomain
+public class GetAliTripTrainOrdersRequestDomain
 {
     /// <summary>
     /// 开始时间 2017-05-01 00:00:00

+ 1 - 7
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/DTO/GetAlitripTrainOrdersResponse.cs

@@ -5,16 +5,10 @@
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
 using Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
 using System.Text.Json.Serialization;
-using System.Threading.Tasks;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
-public class GetAlitripTrainOrdersResponse : DingtalkResponseErrorSuccess
+public class GetAliTripTrainOrdersResponse : DingtalkResponseErrorSuccess
 {
     /// <summary>
     /// 机票列表

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/AliTrip/IAliTripRequestProxy.cs

@@ -10,13 +10,13 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip;
 public interface IAliTripRequestProxy: IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/alitrip/btrip/address/get"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetAlitripAddress([QueryString("access_token")] string AccessToken, [Body] GetAlitripAddressRequest request);
+    Task<string> GetAliTripAddress([QueryString("access_token")] string accessToken, [Body] GetAliTripAddressRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/alitrip/btrip/flight/order/search"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
 
-    Task<string> GetAlitripFlightOrders([QueryString("access_token")] string AccessToken, GetAlitripFlightOrdersRequest rq);
+    Task<string> GetAliTripFlightOrders([QueryString("access_token")] string accessToken, GetAliTripFlightOrdersRequest rq);
 
     [Post("https://oapi.dingtalk.com/topapi/alitrip/btrip/train/order/search"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetAlitripTrainOrders([QueryString("access_token")] string AccessToken, GetAlitripTrainOrdersRequest rq);
+    Task<string> GetAliTripTrainOrders([QueryString("access_token")] string accessToken, GetAliTripTrainOrdersRequest rq);
 
 }

+ 29 - 32
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/AttendanceRequest.cs

@@ -12,32 +12,32 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance;
 
 public class AttendanceRequest : IScoped
 {
-    private IAttendanceRequestProxy request;
+    private readonly IAttendanceRequestProxy _request;
 
-    public AttendanceRequest(IAttendanceRequestProxy _request)
+    public AttendanceRequest(IAttendanceRequestProxy request)
     {
-        request = _request;
+        _request = request;
     }
 
     /// <summary>
     /// 获取打卡详情
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="useridList">企业内的员工ID列表,最大值50</param>
     /// <param name="from">查询考勤打卡记录的起始工作日</param>
     /// <param name="to">查询考勤打卡记录的结束工作日</param>
-    /// <param name="isI18n">是否为海外企业使用</param>
+    /// <param name="isI18N">是否为海外企业使用</param>
     /// <returns></returns>
-    public async Task<ListRecordResponse> ListRecord(string AccessToken, List<string> useridList, DateTime from, DateTime to,bool isI18n=false)
+    public async Task<ListRecordResponse> ListRecord(string accessToken, List<string> useridList, DateTime from, DateTime to,bool isI18N=false)
     {
         var requestBody = new ListRecordRequest
         {
             UserIds = useridList,
             CheckDateFrom = from.ToString("yyyy-MM-dd HH:mm:ss"),
             CheckDateTo = to.ToString("yyyy-MM-dd HH:mm:ss"),
-            IsI18n = isI18n
+            IsI18n = isI18N
         };
-        var resStr = await request.ListRecord(AccessToken, requestBody);
+        var resStr = await _request.ListRecord(accessToken, requestBody);
         var res = resStr.ToObject<ListRecordResponse>();
         return res;
     }
@@ -45,12 +45,12 @@ public class AttendanceRequest : IScoped
     /// <summary>
     /// 通知审批通过
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="userid">员工的userId</param>
     /// <param name="approveId">审批单ID,最大长度100个字符,自定义值</param>
     /// <param name="tagName">审批单类型名称,最大长度20个字符。 支持类型如下:请假, 出差,外出,加班</param>
     /// <param name="jumpUrl">审批单跳转地址,最大长度200个字符</param>
-    /// <param name="BizType">审批单类型,可取值:1:加班,2:出差、外出,3:请假</param>
+    /// <param name="bizType">审批单类型,可取值:1:加班,2:出差、外出,3:请假</param>
     /// <param name="fromTime">开始时间。开始时间不能早于当前时间前31天</param>
     /// <param name="toTime">结束时间</param>
     /// <param name="durationUnit">时长单位,支持格式如下:day,halfDay,hour:biz_type为1时仅支持hou</param>
@@ -60,35 +60,32 @@ public class AttendanceRequest : IScoped
     /// <param name="overTimeDuration">biz_type为1时必传,加班时长单位小时</param>
     /// <param name="overTimeToMore">biz_type为1时必传:1:加班转调休,2:加班转工资</param>
     /// <returns></returns>
-    public async Task<AttendanceApprovalsFinishResponse> ApproveFinish(string AccessToken, string userid, string approveId, string tagName, string jumpUrl,
-        BizTypeEnum BizType, DateTime fromTime, DateTime toTime, DurationUnitEnum durationUnit, CalculateModelEnum calculateModel, string? leaveCode = null,
+    public async Task<AttendanceApprovalsFinishResponse> ApproveFinish(string accessToken, string userid, string approveId, string tagName, string jumpUrl,
+        BizTypeEnum bizType, DateTime fromTime, DateTime toTime, DurationUnitEnum durationUnit, CalculateModelEnum calculateModel, string? leaveCode = null,
         string? subType = null, string? overTimeDuration = null, long? overTimeToMore = null)
     {
-        if (BizType == BizTypeEnum.请假 && string.IsNullOrEmpty(subType))
+        if (bizType == BizTypeEnum.请假 && string.IsNullOrEmpty(subType))
             throw Oops.Oh("审批单类型biz_type=3时,subType必传。");
-        if (BizType == BizTypeEnum.加班 && (string.IsNullOrEmpty(overTimeDuration) || !overTimeToMore.HasValue))
+        if (bizType == BizTypeEnum.加班 && (string.IsNullOrEmpty(overTimeDuration) || !overTimeToMore.HasValue))
             throw Oops.Oh("biz_type为1时,overTimeDuration和overTimeToMore必传");
         var fromTimeStr = "";
         var toTimeStr = "";
         switch (durationUnit)
         {
-            case DurationUnitEnum.day:
+            case DurationUnitEnum.Day:
                 fromTimeStr = fromTime.ToString("yyyy-MM-dd");
                 toTimeStr = toTime.ToString("yyyy-MM-dd");
                 break;
 
-            case DurationUnitEnum.halfDay:
+            case DurationUnitEnum.HalfDay:
                 fromTimeStr = TimeToHalfDay(fromTime);
                 toTimeStr = TimeToHalfDay(toTime);
                 break;
 
-            case DurationUnitEnum.hour:
+            case DurationUnitEnum.Hour:
                 fromTimeStr = fromTime.ToString("yyyy-MM-dd HH:mm");
                 toTimeStr = toTime.ToString("yyyy-MM-dd HH:mm");
                 break;
-
-            default:
-                break;
         }
         var requestBody = new AttdendanceApprovalsFinishRequest
         {
@@ -100,7 +97,7 @@ public class AttendanceRequest : IScoped
             SubType = subType,
             TopCalculateApproveDurationParam = new TopCalculateApproveDurationParamDomain
             {
-                BizType = BizType,
+                BizType = bizType,
                 FromTime = fromTimeStr,
                 ToTime = toTimeStr,
                 DurationUnit = durationUnit.ToString(),
@@ -110,7 +107,7 @@ public class AttendanceRequest : IScoped
         };
         try
         {
-            var resStr = await request.ApprovalsFinish(userid, AccessToken, requestBody);
+            var resStr = await _request.ApprovalsFinish(userid, accessToken, requestBody);
             var res = resStr.ToObject<AttendanceApprovalsFinishResponse>();
             return res;
         }
@@ -123,13 +120,13 @@ public class AttendanceRequest : IScoped
     /// <summary>
     /// 通知审批撤销
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="userid">员工的userId</param>
     /// <param name="approveId">审批ID</param>
     /// <returns></returns>
-    public async Task<AttendanceApprovelsCancelResponse> ApproveCancel(string AccessToken, string userid, string approveId)
+    public async Task<AttendanceApprovelsCancelResponse> ApproveCancel(string accessToken, string userid, string approveId)
     {
-        var resStr = await request.ApprovalsCancel(AccessToken, new AttendanceApprovelsCancelRequest
+        var resStr = await _request.ApprovalsCancel(accessToken, new AttendanceApprovelsCancelRequest
         {
             ApproveId = approveId,
             UserId = userid,
@@ -137,15 +134,15 @@ public class AttendanceRequest : IScoped
         return resStr.ToObject<AttendanceApprovelsCancelResponse>();
     }
 
-    public async Task<GetLeaveStatusResponse> GetLeaveStatus(string AccessToken,List<string> UserIdList,DateTime StartTime,DateTime EndTime,int Offset=0,int Size=10)
+    public async Task<GetLeaveStatusResponse> GetLeaveStatus(string accessToken, List<string> userIdList, DateTime startTime, DateTime endTime, int offset = 0, int size = 10)
     {
-        var resStr = await request.GetLeaveStatus(AccessToken, new GetLeaveStatusRequest
+        var resStr = await _request.GetLeaveStatus(accessToken, new GetLeaveStatusRequest
         {
-            UserIdList = UserIdList.Join(","),
-            StartTime = new DateTimeOffset(StartTime).ToUnixTimeMilliseconds(),
-            EndTime = new DateTimeOffset(EndTime).ToUnixTimeMilliseconds(),
-            Offset = Offset,
-            Size = Size
+            UserIdList = userIdList.Join(),
+            StartTime = new DateTimeOffset(startTime).ToUnixTimeMilliseconds(),
+            EndTime = new DateTimeOffset(endTime).ToUnixTimeMilliseconds(),
+            Offset = offset,
+            Size = size
         });
         return resStr.ToObject<GetLeaveStatusResponse>();
     }

+ 3 - 0
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttdendanceApprovalsFinishRequest.cs

@@ -8,6 +8,9 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance.DTO;
 
+/// <summary>
+/// 出勤审批完成请求入参
+/// </summary>
 public class AttdendanceApprovalsFinishRequest
 {
     /// <summary>

+ 8 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttendanceApprovalsFinishResponse.cs

@@ -10,11 +10,16 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance.DTO;
 
-public class AttendanceApprovalsFinishResponse:DingtalkResponseSuccessResult<AttendanceApprovalsFinishResponseResult>
+/// <summary>
+/// 出勤批准完成响应
+/// </summary>
+public class AttendanceApprovalsFinishResponse : DingtalkResponseSuccessResult<AttendanceApprovalsFinishResponseResult>
 {
 }
 
-
+/// <summary>
+/// 考勤批准完成响应结果
+/// </summary>
 public class AttendanceApprovalsFinishResponseResult
 {
     /// <summary>
@@ -27,6 +32,7 @@ public class AttendanceApprovalsFinishResponseResult
     /// </summary>
     public List<DurationDetailDomain> DurationDetail;
 }
+
 public class DurationDetailDomain
 {
     /// <summary>

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/AttendanceApprovelsCancelResponse.cs

@@ -10,6 +10,6 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance.DTO;
 
-public class AttendanceApprovelsCancelResponse:DingtalkResponseError
+public class AttendanceApprovelsCancelResponse : DingtalkResponseError
 {
 }

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/Enums.cs

@@ -15,9 +15,9 @@ public enum BizTypeEnum
 
 public enum DurationUnitEnum
 {
-    day,
-    halfDay,
-    hour
+    Day,
+    HalfDay,
+    Hour
 }
 
 public enum CalculateModelEnum

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/DTO/GetLeaveStatusResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance.DTO;
 
-public class GetLeaveStatusResponse:DingtalkResponseErrorResultRequestid<GetLeaveStatusResult>
+public class GetLeaveStatusResponse:DingtalkResponseErrorResultRequestId<GetLeaveStatusResult>
 {
     /// <summary>
     /// 请求是否成功。true:成功, false:失败

+ 6 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Attendance/IAttendanceRequestProxy.cs

@@ -11,17 +11,17 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Attendance;
 public interface IAttendanceRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/attendance/listRecord"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> ListRecord([QueryString("access_token")] string AccessToken, [Body] ListRecordRequest request);
+    Task<string> ListRecord([QueryString("access_token")] string accessToken, [Body] ListRecordRequest request);
 
     [Post("https://api.dingtalk.com/v1.0/attendance/approvals/finish"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> ApprovalsFinish([QueryString] string userId, [Headers("x-acs-dingtalk-access-token")] string AccessToken
+    Task<string> ApprovalsFinish([QueryString] string userId, [Headers("x-acs-dingtalk-access-token")] string accessToken
         , [Body] AttdendanceApprovalsFinishRequest request);
 
-    [Post("https://oapi.dingtalk.com/topapi/attendance/approve/cancel?access_token={AccessToken}"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> ApprovalsCancel(string AccessToken, [Body] AttendanceApprovelsCancelRequest request);
+    [Post("https://oapi.dingtalk.com/topapi/attendance/approve/cancel?access_token={accessToken}"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
+    Task<string> ApprovalsCancel(string accessToken, [Body] AttendanceApprovelsCancelRequest request);
 
-    [Post("https://oapi.dingtalk.com/topapi/attendance/getleavestatus?access_token={AccessToken}"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
+    [Post("https://oapi.dingtalk.com/topapi/attendance/getleavestatus?access_token={accessToken}"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
     
-    Task<string> GetLeaveStatus(string AccessToken, [Body]GetLeaveStatusRequest request);
+    Task<string> GetLeaveStatus(string accessToken, [Body]GetLeaveStatusRequest request);
 
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorRequestId.cs

@@ -7,7 +7,7 @@
 using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
-public abstract class DingtalkResponseErrorRequestId:DingtalkResponseError
+public abstract class DingtalkResponseErrorRequestId : DingtalkResponseError
 {
     /// <summary>
     /// 请求ID

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorResult.cs

@@ -8,7 +8,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
 
-public abstract class DingtalkResponseErrorResult<T>:DingtalkResponseError
+public abstract class DingtalkResponseErrorResult<T> : DingtalkResponseError
 {
     /// <summary>
     /// 返回结果

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorResultRequestid.cs → Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorResultRequestId.cs

@@ -8,7 +8,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
 
-public class DingtalkResponseErrorResultRequestid<T> : DingtalkResponseErrorResult<T>
+public class DingtalkResponseErrorResultRequestId<T> : DingtalkResponseErrorResult<T>
 {
     /// <summary>
     /// 请求ID

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseErrorSuccess.cs

@@ -7,7 +7,7 @@
 using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
-public abstract class DingtalkResponseErrorSuccess:DingtalkResponseError
+public abstract class DingtalkResponseErrorSuccess : DingtalkResponseError
 {
     /// <summary>
     /// 接口调用是否成功

+ 0 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseSuccess.cs

@@ -4,8 +4,6 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
-using System.Text.Json.Serialization;
-
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
 public abstract class DingtalkResponseSuccess
 {

+ 0 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/BaseTypes/DingtalkResponseSuccessResult.cs

@@ -4,8 +4,6 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
-using System.Text.Json.Serialization;
-
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.BaseTypes;
 public abstract class DingtalkResponseSuccessResult<T>:DingtalkResponseSuccess
 {

+ 9 - 9
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/CheckinRequest.cs

@@ -10,28 +10,28 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Checkin;
 
 public class CheckinRequest : IScoped
 {
-    private ICheckinRequestProxy request;
+    private readonly ICheckinRequestProxy _request;
 
     public CheckinRequest(ICheckinRequestProxy request)
     {
-        this.request = request;
+        _request = request;
     }
 
     /// <summary>
     /// 获取用户签到记录
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="useridList">需要查询的用户列表,最大列表长度为10</param>
     /// <param name="startTime">开始时间</param>
     /// <param name="endTime">截止时间。如果是取1个人的数据,时间范围最大10天。如果是取多个人的数据,时间范围最大1天。</param>
     /// <param name="cursor">分页查询的游标,最开始可以传0</param>
     /// <param name="size">分页查询的每页大小,最大100</param>
     /// <returns></returns>
-    public async Task<DTO.GetUserRecordResponse> GetUserRecord(string AccessToken, List<string> useridList, DateTime startTime, DateTime endTime, long cursor = 0, long size = 100)
+    public async Task<DTO.GetUserRecordResponse> GetUserRecord(string accessToken, List<string> useridList, DateTime startTime, DateTime endTime, long cursor = 0, long size = 100)
     {
-        var resStr = await request.GetUserRecord(AccessToken, new DTO.GetUserRecordRequest
+        var resStr = await _request.GetUserRecord(accessToken, new DTO.GetUserRecordRequest
         {
-            UserIdList = useridList.Join(","),
+            UserIdList = useridList.Join(),
             StartTime = new DateTimeOffset(startTime).ToUnixTimeMilliseconds(),
             EndTime = new DateTimeOffset(endTime).ToUnixTimeMilliseconds(),
             Cursor = cursor,
@@ -44,7 +44,7 @@ public class CheckinRequest : IScoped
     /// <summary>
     /// 获取部门用户签到记录
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">部门ID,1表示根部门</param>
     /// <param name="startTime">开始时间</param>
     /// <param name="endTime">结束时间</param>
@@ -52,9 +52,9 @@ public class CheckinRequest : IScoped
     /// <param name="size">支持分页查询,与offset 参数同时设置时才生效,此参数代表分页大小,最大100</param>
     /// <param name="order">排序。asc:正序,desc:倒序</param>
     /// <returns></returns>
-    public async Task<DTO.GetDeptRecordResponse> GetDeptRecord(string AccessToken, long deptId, DateTime startTime, DateTime endTime, long offset = 1, long size = 100, string order = "asc")
+    public async Task<DTO.GetDeptRecordResponse> GetDeptRecord(string accessToken, long deptId, DateTime startTime, DateTime endTime, long offset = 1, long size = 100, string order = "asc")
     {
-        var resStr = await request.GetDeptRecord(AccessToken, deptId.ToString(),new DateTimeOffset(startTime).ToUnixTimeMilliseconds(),new DateTimeOffset(endTime).ToUnixTimeMilliseconds(), offset, size, order);
+        var resStr = await _request.GetDeptRecord(accessToken, deptId.ToString(),new DateTimeOffset(startTime).ToUnixTimeMilliseconds(),new DateTimeOffset(endTime).ToUnixTimeMilliseconds(), offset, size, order);
         var res = resStr.ToObject<DTO.GetDeptRecordResponse>();
         return res;
     }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/DTO/GetDeptRecordResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Checkin.DTO;
 
-public class GetDeptRecordResponse:DingtalkResponseError
+public class GetDeptRecordResponse : DingtalkResponseError
 {
     /// <summary>
     /// 返回结果

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/DTO/GetUserRecordResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Checkin.DTO;
 
-public class GetUserRecordResponse : DingtalkResponseErrorResultRequestid<GetUserRecordResponseResultDomain>
+public class GetUserRecordResponse : DingtalkResponseErrorResultRequestId<GetUserRecordResponseResultDomain>
 {
 }
 

+ 8 - 8
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Checkin/ICheckinRequestProxy.cs

@@ -9,15 +9,15 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Checkin;
 public interface ICheckinRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/checkin/record/get"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetUserRecord([QueryString("access_token")] string AccessToken, [Body] DTO.GetUserRecordRequest request);
+    Task<string> GetUserRecord([QueryString("access_token")] string accessToken, [Body] DTO.GetUserRecordRequest request);
 
     [Get(("https://oapi.dingtalk.com/checkin/record")), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetDeptRecord([QueryString("access_token")] string AccessToken,
-        [QueryString("department_id")] string DepartmentId,
-        [QueryString("start_time")] long StartTime,
-        [QueryString("end_time")] long EndTime,
-        [QueryString("offset")] long Offset,
-        [QueryString("size")] long Size,
-        [QueryString("order")] string Order
+    Task<string> GetDeptRecord([QueryString("access_token")] string accessToken,
+        [QueryString("department_id")] string departmentId,
+        [QueryString("start_time")] long startTime,
+        [QueryString("end_time")] long endTime,
+        [QueryString("offset")] long offset,
+        [QueryString("size")] long size,
+        [QueryString("order")] string order
         );
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/GetDeptInfoResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Department.DTO;
 
-public class GetDeptInfoResponse : DingtalkResponseErrorResultRequestid<GetDeptInfoResponseResultDomain>
+public class GetDeptInfoResponse : DingtalkResponseErrorResultRequestId<GetDeptInfoResponseResultDomain>
 {
 }
 

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/ListSubIdResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Department.DTO;
 
-public class ListSubIdResponse : DingtalkResponseErrorResultRequestid<ListSubIdResponseResultDomain>
+public class ListSubIdResponse : DingtalkResponseErrorResultRequestId<ListSubIdResponseResultDomain>
 {
 }
 

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DTO/ListSubResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Department.DTO;
 
-public class ListSubResponse : DingtalkResponseErrorResultRequestid<List<ListSubResponseResultDomain>>
+public class ListSubResponse : DingtalkResponseErrorResultRequestId<List<ListSubResponseResultDomain>>
 {
 }
 

+ 12 - 12
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/DepartmentRequest.cs

@@ -10,23 +10,23 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Department;
 
 public class DepartmentRequest : IScoped
 {
-    private readonly IDepartmentRequestProxy request;
+    private readonly IDepartmentRequestProxy _request;
 
-    public DepartmentRequest(IDepartmentRequestProxy _request)
+    public DepartmentRequest(IDepartmentRequestProxy request)
     {
-        this.request = _request;
+        _request = request;
     }
 
     /// <summary>
     /// 获取部门详情
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">部门ID,根部门ID为1</param>
     /// <param name="language">通讯录语言:zh_CN(默认):中文,en_US:英文</param>
     /// <returns></returns>
-    public async Task<GetDeptInfoResponse> GetDeptInfo(string AccessToken, long deptId = 1, string language = "zh_CN")
+    public async Task<GetDeptInfoResponse> GetDeptInfo(string accessToken, long deptId = 1, string language = "zh_CN")
     {
-        var resStr = await request.GetDeptInfo(AccessToken, new DTO.GetDeptInfoRequest
+        var resStr = await _request.GetDeptInfo(accessToken, new DTO.GetDeptInfoRequest
         {
             DeptId = deptId,
             Language = language
@@ -38,12 +38,12 @@ public class DepartmentRequest : IScoped
     /// <summary>
     /// 获取子部门ID列表
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">父部门ID,根部门传1</param>
     /// <returns></returns>
-    public async Task<ListSubIdResponse> ListSubId(string AccessToken, long deptId = 1)
+    public async Task<ListSubIdResponse> ListSubId(string accessToken, long deptId = 1)
     {
-        var resStr = await request.ListSubId(AccessToken, new DTO.ListSubIdRequest
+        var resStr = await _request.ListSubId(accessToken, new DTO.ListSubIdRequest
         {
             DeptId = deptId
         });
@@ -54,13 +54,13 @@ public class DepartmentRequest : IScoped
     /// <summary>
     /// 获取部门列表
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">父部门ID</param>
     /// <param name="language">通讯录语言:,zh_CN(默认):中文,en_US:英文</param>
     /// <returns></returns>
-    public async Task<ListSubResponse> ListSub(string AccessToken, long deptId = 1, string language = "zh_CN")
+    public async Task<ListSubResponse> ListSub(string accessToken, long deptId = 1, string language = "zh_CN")
     {
-        var resStr = await request.ListSub(AccessToken, new ListSubRequest
+        var resStr = await _request.ListSub(accessToken, new ListSubRequest
         {
             DeptId = deptId,
             Language = language

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Department/IDepartmentRequestProxy.cs

@@ -9,11 +9,11 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Department;
 public interface IDepartmentRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/v2/department/get"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetDeptInfo([QueryString("access_token")] string AccessToken, [Body] DTO.GetDeptInfoRequest request);
+    Task<string> GetDeptInfo([QueryString("access_token")] string accessToken, [Body] DTO.GetDeptInfoRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/v2/department/listsubid"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> ListSubId([QueryString("access_token")] string AccessToken, [Body] DTO.ListSubIdRequest request);
+    Task<string> ListSubId([QueryString("access_token")] string accessToken, [Body] DTO.ListSubIdRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/v2/department/listsub"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> ListSub([QueryString("access_token")] string AccessToken, [Body] DTO.ListSubRequest request);
+    Task<string> ListSub([QueryString("access_token")] string accessToken, [Body] DTO.ListSubRequest request);
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryonjobRequest.cs → Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryOnJobRequest.cs

@@ -8,7 +8,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.NET.Plugin.DingTalk.RequestProxy.HRM.DTO;
 
-public class EmployeeQueryonjobRequest
+public class EmployeeQueryOnJobRequest
 {
     /// <summary>
     /// 在职员工状态筛选,可以查询多个状态。不同状态之间使用英文逗号分隔。2:试用期、3:正式、5:待离职、-1:无状态

+ 3 - 3
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryonjobResponse.cs → Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/EmployeeQueryOnJobResponse.cs

@@ -10,17 +10,17 @@ using System.Text.Json.Serialization;
 
 namespace Admin.NET.Plugin.DingTalk.RequestProxy.HRM.DTO;
 
-public class EmployeeQueryonjobResponse: DingtalkResponseErrorSuccess
+public class EmployeeQueryOnJobResponse: DingtalkResponseErrorSuccess
 {
     [JsonProperty("request_id")]
     [JsonPropertyName("request_id")]
     public string RequestId { get; set; }
 
 
-    public EmployeeQueryonjobResponseResultDomain Result { get; set; }
+    public EmployeeQueryOnJobResponseResultDomain Result { get; set; }
 }
 
-public class EmployeeQueryonjobResponseResultDomain
+public class EmployeeQueryOnJobResponseResultDomain
 {
     /// <summary>
     /// 查询到的员工userId列表

+ 4 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/DTO/RosterListsQueryResponse.cs

@@ -4,8 +4,6 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
-using System.Text.Json.Serialization;
-
 namespace Admin.NET.Plugin.DingTalk.RequestProxy.HRM.DTO;
 
 public class RosterListsQueryResponse
@@ -35,9 +33,9 @@ public class RosterListsQueryResponse
         /// <summary>
         /// 返回的字段信息列表
         /// </summary>
-        public List<FielddataDomain> FieldDataList { get; set; }
+        public List<FieldDataDomain> FieldDataList { get; set; }
 
-        public class FielddataDomain
+        public class FieldDataDomain
         {
             /// <summary>
             /// 字段标识
@@ -57,9 +55,9 @@ public class RosterListsQueryResponse
             /// <summary>
             /// 字段值列表
             /// </summary>
-            public List<FieldvalueDomain> FieldValueList { get; set; }
+            public List<FieldValueDomain> FieldValueList { get; set; }
 
-            public class FieldvalueDomain
+            public class FieldValueDomain
             {
                 /// <summary>
                 /// 字段取值,选项类型字段对应选项的key

+ 18 - 18
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/HrmRequest.cs

@@ -10,46 +10,46 @@ using NewLife;
 namespace Admin.NET.Plugin.DingTalk.RequestProxy.HRM;
 public class HrmRequest : IScoped
 {
-    private readonly IHrmRequestProxy request;
-    public HrmRequest(IHrmRequestProxy _request)
+    private readonly IHrmRequestProxy _request;
+    public HrmRequest(IHrmRequestProxy request)
     {
-        request = _request;
+        _request = request;
     }
 
     /// <summary>
     /// 获取在职员工列表
     /// </summary>
-    /// <param name="AccessToken"></param>
-    /// <param name="StatusList">在职员工状态筛选,可以查询多个状态。不同状态之间使用英文逗号分隔。2:试用期、3:正式、5:待离职、-1:无状态</param>
+    /// <param name="accessToken"></param>
+    /// <param name="statusList">在职员工状态筛选,可以查询多个状态。不同状态之间使用英文逗号分隔。2:试用期、3:正式、5:待离职、-1:无状态</param>
     /// <param name="size">分页大小,最大50</param>
     /// <param name="offset">分页游标,从0开始。根据返回结果里的next_cursor是否为空来判断是否还有下一页,且再次调用时offset设置成next_cursor的值</param>
     /// <returns></returns>
-    public async Task<EmployeeQueryonjobResponse> EmployeeQueryonjob(string AccessToken, List<string> StatusList, int size = 50, int offset = 0)
+    public async Task<EmployeeQueryOnJobResponse> EmployeeQueryOnJob(string accessToken, List<string> statusList, int size = 50, int offset = 0)
     {
-        var resStr = await request.EmployeeQueryonjob(AccessToken, new EmployeeQueryonjobRequest
+        var resStr = await _request.EmployeeQueryonjob(accessToken, new EmployeeQueryOnJobRequest
         {
-            StatusList = StatusList.Join(),
+            StatusList = statusList.Join(),
             Size = size,
             Offset = offset
         });
-        return resStr.ToObject<EmployeeQueryonjobResponse>();
+        return resStr.ToObject<EmployeeQueryOnJobResponse>();
     }
 
     /// <summary>
     /// 获取员工花名册字段信息
     /// </summary>
-    /// <param name="AccessToken"></param>
-    /// <param name="UseridList">员工的 userId 列表,一次最多支持传100个值</param>
-    /// <param name="FieldFilterList">需要获取的花名册字段field_code值列表,一次最多支持传100个值</param>
-    /// <param name="AgentId">应用的AgentId</param>
+    /// <param name="accessToken"></param>
+    /// <param name="useridList">员工的 userId 列表,一次最多支持传100个值</param>
+    /// <param name="fieldFilterList">需要获取的花名册字段field_code值列表,一次最多支持传100个值</param>
+    /// <param name="agentId">应用的AgentId</param>
     /// <returns></returns>
-    public async Task<RosterListsQueryResponse> RosterListsQuery(string AccessToken, List<string> UseridList, List<string> FieldFilterList, long AgentId)
+    public async Task<RosterListsQueryResponse> RosterListsQuery(string accessToken, List<string> useridList, List<string> fieldFilterList, long agentId)
     {
-        var resStr = await request.RosterListsQuery(AccessToken, new RosterListsQueryRequest
+        var resStr = await _request.RosterListsQuery(accessToken, new RosterListsQueryRequest
         {
-            UserIdList = UseridList.Join(),
-            FieldFilterList = FieldFilterList.Join(),
-            AgentId = AgentId
+            UserIdList = useridList.Join(),
+            FieldFilterList = fieldFilterList.Join(),
+            AgentId = agentId
         });
         return resStr.ToObject<RosterListsQueryResponse>();
     }

+ 2 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/HRM/IHrmRequestProxy.cs

@@ -11,9 +11,9 @@ namespace Admin.NET.Plugin.DingTalk.RequestProxy.HRM;
 public interface IHrmRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/queryonjob"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> EmployeeQueryonjob([QueryString("access_token")] string AccessToken, [Body] DTO.EmployeeQueryonjobRequest request);
+    Task<string> EmployeeQueryonjob([QueryString("access_token")] string accessToken, [Body] DTO.EmployeeQueryOnJobRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/v2/list")]
-    Task<string> RosterListsQuery([Headers("x-acs-dingtalk-access-token")] string AccessToken,
+    Task<string> RosterListsQuery([Headers("x-acs-dingtalk-access-token")] string accessToken,
     [Body] RosterListsQueryRequest request);
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/DTO/SendCorpConversationRequest.cs

@@ -257,7 +257,7 @@ public class MsgOaDomain
         /// </summary>
         [JsonProperty("bgcolor")]
         [JsonPropertyName("bgcolor")]
-        public string Bgcolor { get; set; }
+        public string BgColor { get; set; }
 
         /// <summary>
         /// 消息的头部标题

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/IMessageRequestProxy.cs

@@ -11,5 +11,5 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Message;
 public interface IMessageRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> SendCorpConversation([QueryString("access_token")] string AccessToken, [Body] SendCorpConversationRequest request);
+    Task<string> SendCorpConversation([QueryString("access_token")] string accessToken, [Body] SendCorpConversationRequest request);
 }

+ 8 - 8
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Message/MessageRequest.cs

@@ -14,21 +14,21 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Message;
 
 public class MessageRequest : IScoped
 {
-    private IMessageRequestProxy request;
+    private readonly IMessageRequestProxy _request;
 
     public MessageRequest(IMessageRequestProxy request)
     {
-        this.request = request;
+        _request = request;
     }
 
-    public async Task<SendCorpConversationResponse> SendCorpMarkdown(string AccessToken, long agentId, List<string>? useridList, List<long> deptidList
+    public async Task<SendCorpConversationResponse> SendCorpMarkdown(string accessToken, long agentId, List<string>? useridList, List<long> deptIdList
         , string mdTitle, string mdText, bool toAllUser = false)
     {
-        var resStr = await request.SendCorpConversation(AccessToken, new SendCorpConversationRequest
+        var resStr = await _request.SendCorpConversation(accessToken, new SendCorpConversationRequest
         {
             AgentId = agentId,
             UserIdList = useridList?.ToArray().Join(),
-            DeptIdList = deptidList?.ToArray().Join(),
+            DeptIdList = deptIdList?.ToArray().Join(),
             ToAllUser = toAllUser,
             Msg = new MsgDomain
             {
@@ -44,16 +44,16 @@ public class MessageRequest : IScoped
         return res;
     }
 
-    public async Task<SendCorpConversationResponse> SendCorpActionCard(string AccessToken, long agentId, List<string>? useridList, List<long>? deptidList
+    public async Task<SendCorpConversationResponse> SendCorpActionCard(string accessToken, long agentId, List<string>? useridList, List<long>? deptIdList
         , string markdown, string? title = null, string? singleTitle = null, string? singleUrl = null
         , BenOrientationEnum? btnOrientation = null, MsgActionCardBtnJsonListDomain[]? btnJsonList = null
         , bool toAllUser = false)
     {
-        var resStr = await request.SendCorpConversation(AccessToken, new SendCorpConversationRequest
+        var resStr = await _request.SendCorpConversation(accessToken, new SendCorpConversationRequest
         {
             AgentId = agentId,
             UserIdList = useridList?.ToArray().Join(),
-            DeptIdList = deptidList?.ToArray().Join(),
+            DeptIdList = deptIdList?.ToArray().Join(),
             ToAllUser = toAllUser,
             Msg = new MsgDomain
             {

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/DTO/GetUserInfoResponse.cs

@@ -9,7 +9,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Top.DTO;
 
-public class GetUserInfoResponse : DingtalkResponseErrorResultRequestid<UserGetByCodeResponse>
+public class GetUserInfoResponse : DingtalkResponseErrorResultRequestId<UserGetByCodeResponse>
 {
 }
 

+ 2 - 4
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/ITopRequestProxy.cs

@@ -4,18 +4,16 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
-using Admin.Net.Plugin.DingTalk.RequestProxy.AliTrip.DTO;
-
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.Top;
 
 public interface ITopRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/v2/user/getuserinfo"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetUserInfo([QueryString("access_token")] string AccessToken, [Body] DTO.GetUserInfoRequest request);
+    Task<string> GetUserInfo([QueryString("access_token")] string accessToken, [Body] DTO.GetUserInfoRequest request);
 
     [Post("https://api.dingtalk.com/v1.0/oauth2/accessToken"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
     Task<string> GetAccessToken([Body] DTO.GetAccessTokenRequest request);
 
     [Post("https://api.dingtalk.com/v1.0/oauth2/jsapiTickets"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> GetApiTickets([Headers("x-acs-dingtalk-access-token")] string AccessToken);
+    Task<string> GetApiTickets([Headers("x-acs-dingtalk-access-token")] string accessToken);
 }

+ 9 - 9
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/Top/TopRequest.cs

@@ -11,22 +11,22 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.Top;
 
 public class TopRequest : IScoped
 {
-    private ITopRequestProxy request;
+    private readonly ITopRequestProxy _request;
 
     public TopRequest(ITopRequestProxy request)
     {
-        this.request = request;
+        _request = request;
     }
 
     /// <summary>
     /// 通过免登码获取用户信息
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="code">免登授权码</param>
     /// <returns></returns>
-    public async Task<GetUserInfoResponse> GetUserInfo(string AccessToken, string code)
+    public async Task<GetUserInfoResponse> GetUserInfo(string accessToken, string code)
     {
-        var resStr = await request.GetUserInfo(AccessToken, new GetUserInfoRequest { Code = code });
+        var resStr = await _request.GetUserInfo(accessToken, new GetUserInfoRequest { Code = code });
         var res = resStr.ToObject<GetUserInfoResponse>();
         return res;
     }
@@ -39,7 +39,7 @@ public class TopRequest : IScoped
     /// <returns></returns>
     public async Task<GetAccessTokenResponse> GetAccessToken(string appKey, string appSecret)
     {
-        var resStr = await request.GetAccessToken(new GetAccessTokenRequest
+        var resStr = await _request.GetAccessToken(new GetAccessTokenRequest
         {
             AppKey = appKey,
             AppSecret = appSecret
@@ -51,11 +51,11 @@ public class TopRequest : IScoped
     /// <summary>
     /// 获取jsapiTicket
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <returns></returns>
-    public async Task<GetApiTicketResponse> GetJsApiTicket(string AccessToken)
+    public async Task<GetApiTicketResponse> GetJsApiTicket(string accessToken)
     {
-        var resStr = await request.GetApiTickets(AccessToken);
+        var resStr = await _request.GetApiTickets(accessToken);
         var res = resStr.ToObject<GetApiTicketResponse>();
         return res;
     }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/RoleListResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.User.DTO;
 
-public class RoleListResponse : DingtalkResponseErrorResultRequestid<RoleListResultDomain>
+public class RoleListResponse : DingtalkResponseErrorResultRequestId<RoleListResultDomain>
 {
 }
 

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserDetailResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.User.DTO;
 
-public class UserDetailResponse : DingtalkResponseErrorResultRequestid<UserDetailResponseResultDomain>
+public class UserDetailResponse : DingtalkResponseErrorResultRequestId<UserDetailResponseResultDomain>
 {
 }
 

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserListIdResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.User.DTO;
 
-public class UserListIdResponse : DingtalkResponseErrorResultRequestid<UserListIdResponseResultDomain>
+public class UserListIdResponse : DingtalkResponseErrorResultRequestId<UserListIdResponseResultDomain>
 {
 }
 

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/DTO/UserListSimpleResponse.cs

@@ -10,7 +10,7 @@ using System.Text.Json.Serialization;
 
 namespace Admin.Net.Plugin.DingTalk.RequestProxy.User.DTO;
 
-public class UserListSimpleResponse : DingtalkResponseErrorResultRequestid<DingtalkResponseHasMoreList<UserListSimpleResponseDomain>>
+public class UserListSimpleResponse : DingtalkResponseErrorResultRequestId<DingtalkResponseHasMoreList<UserListSimpleResponseDomain>>
 {
 }
 

+ 5 - 5
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/IUserRequestProxy.cs

@@ -9,18 +9,18 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.User;
 public interface IUserRequestProxy : IHttpDispatchProxy
 {
     [Post("https://oapi.dingtalk.com/topapi/v2/user/get"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> UserDetail([QueryString("access_token")] string AccessToken, [Body] DTO.UserDetailRequest request);
+    Task<string> UserDetail([QueryString("access_token")] string accessToken, [Body] DTO.UserDetailRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/user/listsimple"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> UserListSimple([QueryString("access_token")] string AccessToken, [Body] DTO.UserListSimpleRequest request);
+    Task<string> UserListSimple([QueryString("access_token")] string accessToken, [Body] DTO.UserListSimpleRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/user/listid"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> UserListId([QueryString("access_token")] string AccessToken, [Body] DTO.UserListIdRequest request);
+    Task<string> UserListId([QueryString("access_token")] string accessToken, [Body] DTO.UserListIdRequest request);
 
     [Post("https://oapi.dingtalk.com/topapi/v2/user/list"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> UserList([QueryString("access_token")] string AccessToken, [Body] DTO.UserListRequest request);
+    Task<string> UserList([QueryString("access_token")] string accessToken, [Body] DTO.UserListRequest request);
 
 
     [Post("https://oapi.dingtalk.com/topapi/role/list"), JsonSerialization(typeof(NewtonsoftJsonSerializerProvider))]
-    Task<string> RoleList([QueryString("access_token")] string AccessToken, [Body] DTO.RoleListRequest request);
+    Task<string> RoleList([QueryString("access_token")] string accessToken, [Body] DTO.RoleListRequest request);
 }

+ 17 - 17
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/RequestProxy/User/UserRequest.cs

@@ -10,23 +10,23 @@ namespace Admin.Net.Plugin.DingTalk.RequestProxy.User;
 
 public class UserRequest : IScoped
 {
-    private readonly IUserRequestProxy request;
+    private readonly IUserRequestProxy _request;
 
-    public UserRequest(IUserRequestProxy _request)
+    public UserRequest(IUserRequestProxy request)
     {
-        this.request = _request;
+        _request = request;
     }
 
     /// <summary>
     /// 查询用户详情
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="userid">用户的userId</param>
     /// <param name="language">通讯录语言。zh_CN:中文(默认值),en_US:英文</param>
     /// <returns></returns>
-    public async Task<UserDetailResponse> UserDetail(string AccessToken, string userid, string language = "zh_CN")
+    public async Task<UserDetailResponse> UserDetail(string accessToken, string userid, string language = "zh_CN")
     {
-        var res = await request.UserDetail(AccessToken, new UserDetailRequest
+        var res = await _request.UserDetail(accessToken, new UserDetailRequest
         {
             UserId = userid,
             Language = language
@@ -37,7 +37,7 @@ public class UserRequest : IScoped
     /// <summary>
     /// 获取部门用户基础信息
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">部门ID,如果是根部门,该参数传1</param>
     /// <param name="cursor">分页查询的游标,最开始传0,后续传返回参数中的next_cursor值</param>
     /// <param name="size">分页长度,最大值100</param>
@@ -45,9 +45,9 @@ public class UserRequest : IScoped
     /// <param name="containAccessLimit">是否返回访问受限的员工</param>
     /// <param name="language">通讯录语言,取值。 zh_CN:中文(默认值)。 en_US:英文。</param>
     /// <returns></returns>
-    public async Task<UserListSimpleResponse> UserListSimple(string AccessToken, long deptId = 1, long cursor = 0, long size = 100, string orderField = "custom", bool containAccessLimit = false, string language = "zh_CN")
+    public async Task<UserListSimpleResponse> UserListSimple(string accessToken, long deptId = 1, long cursor = 0, long size = 100, string orderField = "custom", bool containAccessLimit = false, string language = "zh_CN")
     {
-        var resStr = await request.UserListSimple(AccessToken, new UserListSimpleRequest
+        var resStr = await _request.UserListSimple(accessToken, new UserListSimpleRequest
         {
             DeptId = deptId,
             Cursor = cursor,
@@ -63,12 +63,12 @@ public class UserRequest : IScoped
     /// <summary>
     /// 获取部门用户userid列表
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">部门deptId</param>
     /// <returns></returns>
-    public async Task<UserListIdResponse> UserListId(string AccessToken, long deptId = 1)
+    public async Task<UserListIdResponse> UserListId(string accessToken, long deptId = 1)
     {
-        var resStr = await request.UserListId(AccessToken, new UserListIdRequest
+        var resStr = await _request.UserListId(accessToken, new UserListIdRequest
         {
             DeptId = deptId
         });
@@ -78,7 +78,7 @@ public class UserRequest : IScoped
     /// <summary>
     /// 获取部门用户详情
     /// </summary>
-    /// <param name="AccessToken"></param>
+    /// <param name="accessToken"></param>
     /// <param name="deptId">部门ID,如果是根部门,该参数传1</param>
     /// <param name="cursor">分页查询的游标,最开始传0,后续传返回参数中的next_cursor值</param>
     /// <param name="size">分页大小</param>
@@ -86,9 +86,9 @@ public class UserRequest : IScoped
     /// <param name="containAccessLimit">是否返回访问受限的员工</param>
     /// <param name="language">通讯录语言,取值。zh_CN:中文(默认值)。en_US:英文。</param>
     /// <returns></returns>
-    public async Task<UserListResponse> UserList(string AccessToken, long deptId = 1, long cursor = 0, long size = 100, string orderField = "custom", bool containAccessLimit = false, string language = "zh_CN")
+    public async Task<UserListResponse> UserList(string accessToken, long deptId = 1, long cursor = 0, long size = 100, string orderField = "custom", bool containAccessLimit = false, string language = "zh_CN")
     {
-        var resStr = await request.UserList(AccessToken, new UserListRequest
+        var resStr = await _request.UserList(accessToken, new UserListRequest
         {
             DeptId = deptId,
             Cursor = cursor,
@@ -101,9 +101,9 @@ public class UserRequest : IScoped
         return res;
     }
 
-    public async Task<RoleListResponse> RoleList(string AccessToken, int size=20, int offset=0)
+    public async Task<RoleListResponse> RoleList(string accessToken, int size=20, int offset=0)
     {
-        var resStr = await request.RoleList(AccessToken, new RoleListRequest { Offset = offset, Size = size });
+        var resStr = await _request.RoleList(accessToken, new RoleListRequest { Offset = offset, Size = size });
         var res = resStr.ToObject<RoleListResponse>();
         return res;
     }

+ 12 - 10
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/DingTalkService.cs

@@ -47,38 +47,40 @@ public class DingTalkService : IDynamicApiController, IScoped
     /// <summary>
     /// 获取在职员工列表 🔖
     /// </summary>
-    /// <param name="access_token"></param>
+    /// <param name="accessToken"></param>
     /// <param name="statusList"></param>
     /// <param name="size"></param>
     /// <param name="offset"></param>
     /// <returns></returns>
     [HttpPost, DisplayName("获取在职员工列表")]
-    public async Task<EmployeeQueryonjobResponse> GetDingTalkCurrentEmployeesList(string access_token,List<string> statusList,int size,int offset)
+    public async Task<EmployeeQueryOnJobResponse> GetDingTalkCurrentEmployeesList(string accessToken, List<string> statusList, int size, int offset)
     {
-        return await _hrmRequest.EmployeeQueryonjob(access_token, statusList, size, offset);
+        return await _hrmRequest.EmployeeQueryOnJob(accessToken, statusList, size, offset);
     }
 
     /// <summary>
     /// 获取员工花名册字段信息 🔖
     /// </summary>
-    /// <param name="access_token"></param>
-    /// <param name="input"></param>
+    /// <param name="accessToken"></param>
+    /// <param name="userIdList"></param>
+    /// <param name="fieldFilterList"></param>
+    /// <param name="appAgentId"></param>
     /// <returns></returns>
     [HttpPost, DisplayName("获取员工花名册字段信息")]
-    public async Task<RosterListsQueryResponse> GetDingTalkCurrentEmployeesRosterList(string access_token, List<string> useridList,List<string> fieldFilterList,long appAgentId)
+    public async Task<RosterListsQueryResponse> GetDingTalkCurrentEmployeesRosterList(string accessToken, List<string> userIdList, List<string> fieldFilterList, long appAgentId)
     {
-        return await _hrmRequest.RosterListsQuery(access_token,useridList,fieldFilterList,appAgentId);
+        return await _hrmRequest.RosterListsQuery(accessToken,userIdList,fieldFilterList,appAgentId);
     }
 
     /// <summary>
     /// 发送钉钉互动卡片 🔖
     /// </summary>
-    /// <param name="token"></param>
+    /// <param name="accessToken"></param>
     /// <param name="input"></param>
     /// <returns></returns>
     [DisplayName("给指定用户发送钉钉互动卡片")]
-    public async Task<DingTalkSendInteractiveCardsOutput> DingTalkSendInteractiveCards(string token, DingTalkSendInteractiveCardsInput input)
+    public async Task<DingTalkSendInteractiveCardsOutput> DingTalkSendInteractiveCards(string accessToken, DingTalkSendInteractiveCardsInput input)
     {
-        return await _dingTalkApi.DingTalkSendInteractiveCards(token, input);
+        return await _dingTalkApi.DingTalkSendInteractiveCards(accessToken, input);
     }
 }

+ 4 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkBaseResponse.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 /// <summary>
@@ -35,7 +37,7 @@ public class DingTalkBaseResponse<T>
     /// <summary>
     /// 请求Id
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("request_id")]
-    [System.Text.Json.Serialization.JsonPropertyName("request_id")]
+    [JsonProperty("request_id")]
+    [JsonPropertyName("request_id")]
     public string RequestId { get; set; }
 }

+ 4 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkCardData.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 /// <summary>
@@ -30,7 +32,7 @@ public class DingTalkCardParamMap
     /// <summary>
     /// 片模板内容替换参数
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("sys_full_json_obj")]
-    [System.Text.Json.Serialization.JsonPropertyName("sys_full_json_obj")]
+    [JsonProperty("sys_full_json_obj")]
+    [JsonPropertyName("sys_full_json_obj")]
     public string SysFullJsonObj { get; set; }
 }

+ 10 - 8
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkEmpFieldDataVo.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class DingTalkEmpFieldDataVo
@@ -11,28 +13,28 @@ public class DingTalkEmpFieldDataVo
     /// <summary>
     /// 字段名称
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("field_name")]
-    [System.Text.Json.Serialization.JsonPropertyName("field_name")]
+    [JsonProperty("field_name")]
+    [JsonPropertyName("field_name")]
     public string FieldName { get; set; }
 
     /// <summary>
     /// 字段标识
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("field_code")]
-    [System.Text.Json.Serialization.JsonPropertyName("field_code")]
+    [JsonProperty("field_code")]
+    [JsonPropertyName("field_code")]
     public string FieldCode { get; set; }
 
     /// <summary>
     /// 分组标识
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("group_id")]
-    [System.Text.Json.Serialization.JsonPropertyName("group_id")]
+    [JsonProperty("group_id")]
+    [JsonPropertyName("group_id")]
     public string GroupId { get; set; }
 
     /// <summary>
     ///
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("field_value_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("field_value_list")]
+    [JsonProperty("field_value_list")]
+    [JsonPropertyName("field_value_list")]
     public List<DingTalkFieldValueVo> FieldValueList { get; set; }
 }

+ 8 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkEmpRosterFieldVo.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class DingTalkEmpRosterFieldVo
@@ -11,21 +13,21 @@ public class DingTalkEmpRosterFieldVo
     /// <summary>
     /// 企业的corpid
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("corp_id")]
-    [System.Text.Json.Serialization.JsonPropertyName("corp_id")]
+    [JsonProperty("corp_id")]
+    [JsonPropertyName("corp_id")]
     public string CorpId { get; set; }
 
     /// <summary>
     /// 返回的字段信息列表
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("field_data_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("field_data_list")]
+    [JsonProperty("field_data_list")]
+    [JsonPropertyName("field_data_list")]
     public List<DingTalkEmpFieldDataVo> FieldDataList { get; set; }
 
     /// <summary>
     /// 员工的userid
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("userid")]
-    [System.Text.Json.Serialization.JsonPropertyName("userid")]
+    [JsonProperty("userid")]
+    [JsonPropertyName("userid")]
     public string UserId { get; set; }
 }

+ 8 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkFieldValueVo.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class DingTalkFieldValueVo
@@ -11,21 +13,21 @@ public class DingTalkFieldValueVo
     /// <summary>
     /// 第几条的明细标识,下标从0开始
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("item_index")]
-    [System.Text.Json.Serialization.JsonPropertyName("item_index")]
+    [JsonProperty("item_index")]
+    [JsonPropertyName("item_index")]
     public int ItemIndex { get; set; }
 
     /// <summary>
     /// 字段展示值,选项类型字段对应选项的value
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("label")]
-    [System.Text.Json.Serialization.JsonPropertyName("label")]
+    [JsonProperty("label")]
+    [JsonPropertyName("label")]
     public string Label { get; set; }
 
     /// <summary>
     /// 字段取值,选项类型字段对应选项的key
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("value")]
-    [System.Text.Json.Serialization.JsonPropertyName("value")]
+    [JsonProperty("value")]
+    [JsonPropertyName("value")]
     public string Value { get; set; }
 }

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/DingTalkSendInteractiveCardsInput.cs

@@ -86,7 +86,7 @@ public class GetDingTalkCardMessageReadStatusOutput
     public string SendStatus { get; set; }
 
     /// <summary>
-    ///
+    /// 卡片信息列表
     /// </summary>
     public DingTalkCardMessageReadInfoList MessageReadInfoList { get; set; }
 }

+ 4 - 2
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesListInput.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 /// <summary>
@@ -14,8 +16,8 @@ public class GetDingTalkCurrentEmployeesListInput
     /// <summary>
     /// 在职员工状态筛选,可以查询多个状态。不同状态之间使用英文逗号分隔。2:试用期、3:正式、5:待离职、-1:无状态
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("status_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("status_list")]
+    [JsonProperty("status_list")]
+    [JsonPropertyName("status_list")]
     public string StatusList { get; set; }
 
     /// <summary>

+ 6 - 4
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesListOutput.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class GetDingTalkCurrentEmployeesListOutput
@@ -11,14 +13,14 @@ public class GetDingTalkCurrentEmployeesListOutput
     /// <summary>
     /// 查询到的员工userId列表
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("data_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("data_list")]
+    [JsonProperty("data_list")]
+    [JsonPropertyName("data_list")]
     public List<string> DataList { get; set; }
 
     /// <summary>
     /// 下一次分页调用的offset值,当返回结果里没有next_cursor时,表示分页结束。
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("next_cursor")]
-    [System.Text.Json.Serialization.JsonPropertyName("next_cursor")]
+    [JsonProperty("next_cursor")]
+    [JsonPropertyName("next_cursor")]
     public int? NextCursor { get; set; }
 }

+ 8 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkCurrentEmployeesRosterListInput.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class GetDingTalkCurrentEmployeesRosterListInput
@@ -11,21 +13,21 @@ public class GetDingTalkCurrentEmployeesRosterListInput
     /// <summary>
     /// 员工的userId列表,多个userid之间使用逗号分隔,一次最多支持传100个值。
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("userid_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("userid_list")]
+    [JsonProperty("userid_list")]
+    [JsonPropertyName("userid_list")]
     public string UserIdList { get; set; }
 
     /// <summary>
     /// 需要获取的花名册字段field_code值列表,多个字段之间使用逗号分隔,一次最多支持传100个值。
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("field_filter_list")]
-    [System.Text.Json.Serialization.JsonPropertyName("field_filter_list")]
+    [JsonProperty("field_filter_list")]
+    [JsonPropertyName("field_filter_list")]
     public string FieldFilterList { get; set; }
 
     /// <summary>
     /// 应用的AgentId
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("agentid")]
-    [System.Text.Json.Serialization.JsonPropertyName("agentid")]
+    [JsonProperty("agentid")]
+    [JsonPropertyName("agentid")]
     public string AgentId { get; set; }
 }

+ 6 - 4
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/Dto/GetDingTalkToken.cs

@@ -4,6 +4,8 @@
 //
 // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!
 
+using System.Text.Json.Serialization;
+
 namespace Admin.NET.Plugin.DingTalk;
 
 public class GetDingTalkTokenOutput
@@ -11,15 +13,15 @@ public class GetDingTalkTokenOutput
     /// <summary>
     /// 生成的access_token
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("access_token")]
-    [System.Text.Json.Serialization.JsonPropertyName("access_token")]
+    [JsonProperty("access_token")]
+    [JsonPropertyName("access_token")]
     public string AccessToken { get; set; }
 
     /// <summary>
     /// access_token的过期时间,单位秒
     /// </summary>
-    [Newtonsoft.Json.JsonProperty("expires_in")]
-    [System.Text.Json.Serialization.JsonPropertyName("expires_in")]
+    [JsonProperty("expires_in")]
+    [JsonPropertyName("expires_in")]
     public int ExpiresIn { get; set; }
 
     /// <summary>

+ 6 - 6
Admin.NET/Plugins/Admin.NET.Plugin.DingTalk/Service/IDingTalkApi.cs

@@ -11,30 +11,30 @@ public interface IDingTalkApi : IHttpDispatchProxy
     /// <summary>
     /// 获取企业内部应用的access_token
     /// </summary>
-    /// <param name="appkey">应用的唯一标识key</param>
+    /// <param name="appKey">应用的唯一标识key</param>
     /// <param name="appsecret"> 应用的密钥。AppKey和AppSecret可在钉钉开发者后台的应用详情页面获取。</param>
     /// <returns></returns>
     [Get("https://oapi.dingtalk.com/gettoken")]
-    Task<GetDingTalkTokenOutput> GetDingTalkToken([QueryString] string appkey, [QueryString] string appsecret);
+    Task<GetDingTalkTokenOutput> GetDingTalkToken([QueryString] string appKey, [QueryString] string appsecret);
 
     /// <summary>
     /// 获取在职员工列表
     /// </summary>
-    /// <param name="access_token">调用该接口的应用凭证</param>
+    /// <param name="accessToken">调用该接口的应用凭证</param>
     /// <param name="input"></param>
     /// <returns></returns>
     [Post("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/queryonjob")]
-    Task<DingTalkBaseResponse<GetDingTalkCurrentEmployeesListOutput>> GetDingTalkCurrentEmployeesList([QueryString] string access_token,
+    Task<DingTalkBaseResponse<GetDingTalkCurrentEmployeesListOutput>> GetDingTalkCurrentEmployeesList([QueryString] string accessToken,
         [Body, Required] GetDingTalkCurrentEmployeesListInput input);
 
     /// <summary>
     /// 获取员工花名册字段信息
     /// </summary>
-    /// <param name="access_token">调用该接口的应用凭证</param>
+    /// <param name="accessToken">调用该接口的应用凭证</param>
     /// <param name="input"></param>
     /// <returns></returns>
     [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([QueryString] string accessToken,
         [Body, Required] GetDingTalkCurrentEmployeesRosterListInput input);
 
     /// <summary>