FlexJobApi.Core/FlexJobApi.Core.xml
@@ -2165,16 +2165,6 @@ 编号 </summary> </member> <member name="T:FlexJobApi.Core.DictionaryDataQueryResult"> <summary> 数据字典查询结果 </summary> </member> <member name="P:FlexJobApi.Core.DictionaryDataQueryResult.Content"> <summary> 内容 </summary> </member> <member name="T:FlexJobApi.Core.DeleteDictionaryCategoryCommand"> <summary> 删除数据字典类别 @@ -2455,11 +2445,6 @@ 类别名称 </summary> </member> <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.Category"> <summary> 类别 </summary> </member> <member name="P:FlexJobApi.Core.GetDictionaryDatasQueryResultItem.ParentId"> <summary> 上级Id @@ -2590,6 +2575,26 @@ 保存企业 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.LegalIdentity"> <summary> 法人身份证号 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.EnterpriseAuth"> <summary> 企业认证 @@ -2600,29 +2605,14 @@ 所在省份Id </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.Province"> <summary> 所在省份 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.CityId"> <summary> 所在城市Id </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.City"> <summary> 所在城市 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.IndustryTypeId"> <summary> 所属行业Id </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.IndustryType"> <summary> 所属行业 </summary> </member> <member name="P:FlexJobApi.Core.SaveEnterpriseCommand.MainBusiness"> @@ -2730,6 +2720,181 @@ 短信费用 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseElectronSignSettingQuery"> <summary> 查询企业电子签配置 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQuery.Id"> <summary> Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQueryResult.Id"> <summary> Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQueryResult.RealAccess"> <summary> 实名通道 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQueryResult.RealVerifyCost"> <summary> 实名费用 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQueryResult.SignCost"> <summary> 签约费用 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseElectronSignSettingQueryResult.MergeSignCost"> <summary> 一口价 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseQuery"> <summary> 查询企业详情 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQuery.Id"> <summary> Id </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseQueryResult"> <summary> 查询企业详情-结果 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.Id"> <summary> Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.LegalIdentity"> <summary> 法人身份证号 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.EnterpriseAuth"> <summary> 企业认证 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.ProvinceContent"> <summary> 所在省份 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.CityContent"> <summary> 所在城市 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.IndustryTypeContent"> <summary> 所属行业 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.MainBusiness"> <summary> 主营业务 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.Contacts"> <summary> 联系人 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.ContactPhoneNumber"> <summary> 联系电话 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.ContactEmail"> <summary> 联系邮箱 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResult.UserName"> <summary> 账号 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseQueryResultAuth"> <summary> 查询企业详情-结果-企业认证 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResultAuth.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResultAuth.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResultAuth.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseQueryResultAuth.LegalIdentity"> <summary> 法人身份证号 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseSmsSettingQuery"> <summary> 查询企业短信配置 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseSmsSettingQuery.Id"> <summary> Id </summary> </member> <member name="T:FlexJobApi.Core.GetEnterpriseSmsSettingQueryResult"> <summary> 查询企业短信配置-结果 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseSmsSettingQueryResult.Id"> <summary> Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseSmsSettingQueryResult.SmsAccess"> <summary> 短信通道 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterpriseSmsSettingQueryResult.SmsCost"> <summary> 短信费用 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterprisesQuery"> <summary> 查询企业信息分页列表数据 @@ -2755,89 +2920,54 @@ Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IsReal"> <summary> 是否实名 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.Contacts"> <summary> 联系人 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.ContactNumber"> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.ContactPhoneNumber"> <summary> 联系电话 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.ProvinceId"> <summary> 所在省份Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.Province"> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.ProvinceContent"> <summary> 所在省份 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.CityId"> <summary> 所在城市Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.City"> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.CityContent"> <summary> 所在城市 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IndustryTypeId"> <summary> 所属行业Id </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IndustryType"> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IndustryTypeContent"> <summary> 所属行业 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IsCheckedBankCard"> <summary> 是否已校验银行账户 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.RealAccess"> <summary> 实名通道 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.SmsAccess"> <summary> 短信通道 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItem.IsConfigured"> <summary> 是否已配置 </summary> </member> <member name="T:FlexJobApi.Core.GetEnterprisesQueryResultItemAuth"> <summary> 查询企业信息分页列表数据-结果-项-认证 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItemAuth.EnterpriseName"> <summary> 企业全称 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItemAuth.LegalPerson"> <summary> 法人姓名 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItemAuth.SocietyCreditCode"> <summary> 统一社会信用代码 </summary> </member> <member name="P:FlexJobApi.Core.GetEnterprisesQueryResultItemAuth.IsReal"> <summary> 是否实名 </summary> </member> <member name="T:FlexJobApi.Core.DeleteMenuCommand"> @@ -4205,6 +4335,16 @@ <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.DbUtils.GetPagedListAsync``1(FlexJobApi.Core.PagedListQueryPageModel,System.Linq.IQueryable{``0},System.Threading.CancellationToken)"> <summary> 查询分页列表数据 </summary> <typeparam name="TItem"></typeparam> <param name="page"></param> <param name="q"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.DbUtils.OrderBy``1(System.Linq.IQueryable{``0},System.Collections.Generic.List{FlexJobApi.Core.PagedListQueryPageModelOrderInput})"> <summary> 排序 @@ -4633,6 +4773,43 @@ <param name="errors"></param> <returns></returns> </member> <member name="T:FlexJobApi.Core.Utils.JsonUtils.NewtonsoftJsonSerializerProvider"> <summary> Newtonsoft.Json 实现 </summary> </member> <member name="M:FlexJobApi.Core.Utils.JsonUtils.NewtonsoftJsonSerializerProvider.Serialize(System.Object,System.Object)"> <summary> 序列化对象 </summary> <param name="value"></param> <param name="jsonSerializerOptions"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.Utils.JsonUtils.NewtonsoftJsonSerializerProvider.Deserialize``1(System.String,System.Object)"> <summary> 反序列化字符串 </summary> <typeparam name="T"></typeparam> <param name="json"></param> <param name="jsonSerializerOptions"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.Utils.JsonUtils.NewtonsoftJsonSerializerProvider.Deserialize(System.String,System.Type,System.Object)"> <summary> 反序列化字符串 </summary> <param name="json"></param> <param name="returnType"></param> <param name="jsonSerializerOptions"></param> <returns></returns> </member> <member name="M:FlexJobApi.Core.Utils.JsonUtils.NewtonsoftJsonSerializerProvider.GetSerializerOptions"> <summary> 返回读取全局配置的 JSON 选项 </summary> <returns></returns> </member> <member name="P:FlexJobApi.Core.CurrentLogier.UserInfoId"> <summary> 用户Id FlexJobApi.Core/Models/Common/DictionaryDataQueryResult.cs
File was deleted FlexJobApi.Core/Models/Main/Dictionaries/Queries/GetDictionaryDatasQuery.cs
@@ -49,19 +49,12 @@ /// <summary> /// 类别编号 /// </summary> [AdaptIgnore] public string CategoryCode => Category?.Code; public string CategoryCode { get; set; } /// <summary> /// 类别名称 /// </summary> [AdaptIgnore] public string CategoryName => Category?.Name; /// <summary> /// 类别 /// </summary> public GetDictionaryDatasQueryResultItemCategory Category { get; set; } public string CategoryName { get; set; } /// <summary> /// 上级Id FlexJobApi.Core/Models/User/Enterprises/Commands/SaveEnterpriseCommand.cs
@@ -1,4 +1,5 @@ using System; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; @@ -14,10 +15,42 @@ public class SaveEnterpriseCommand : SaveDataCommand { /// <summary> /// 企业认证 /// 企业全称 /// </summary> [Required] public SaveEnterpriseCommandAuth EnterpriseAuth { get; set; } [MaxLength(128)] public string EnterpriseName { get; set; } /// <summary> /// 统一社会信用代码 /// </summary> [Required] [MaxLength(18)] public string SocietyCreditCode { get; set; } /// <summary> /// 法人姓名 /// </summary> [MaxLength(32)] public string LegalPerson { get; set; } /// <summary> /// 法人身份证号 /// </summary> [MaxLength(18)] public string LegalIdentity { get; set; } /// <summary> /// 企业认证 /// </summary> [Newtonsoft.Json.JsonIgnore, Swashbuckle.AspNetCore.Annotations.SwaggerIgnore] public SaveEnterpriseCommandAuth EnterpriseAuth => new SaveEnterpriseCommandAuth { EnterpriseName = EnterpriseName, SocietyCreditCode = SocietyCreditCode, LegalPerson = LegalPerson, LegalIdentity = LegalIdentity, }; /// <summary> /// 所在省份Id @@ -25,29 +58,14 @@ public Guid? ProvinceId { get; set; } /// <summary> /// 所在省份 /// </summary> public DictionaryData Province { get; set; } /// <summary> /// 所在城市Id /// </summary> public Guid? CityId { get; set; } /// <summary> /// 所在城市 /// </summary> public DictionaryData City { get; set; } /// <summary> /// 所属行业Id /// </summary> public Guid? IndustryTypeId { get; set; } /// <summary> /// 所属行业 /// </summary> public DictionaryData IndustryType { get; set; } /// <summary> /// 主营业务 FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterpriseElectronSignSettingQuery.cs
New file @@ -0,0 +1,49 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 查询企业电子签配置 /// </summary> [Resource([EnumResourceController.Enterprise])] public class GetEnterpriseElectronSignSettingQuery : IRequest<GetEnterpriseElectronSignSettingQueryResult> { /// <summary> /// Id /// </summary> public Guid Id { get; set; } } public class GetEnterpriseElectronSignSettingQueryResult { /// <summary> /// Id /// </summary> public Guid Id { get; set; } /// <summary> /// 实名通道 /// </summary> public EnumRealAccess? RealAccess { get; set; } /// <summary> /// 实名费用 /// </summary> public decimal? RealVerifyCost { get; set; } /// <summary> /// 签约费用 /// </summary> public decimal? SignCost { get; set; } /// <summary> /// 一口价 /// </summary> public decimal? MergeSignCost { get; set; } } } FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterpriseQuery.cs
New file @@ -0,0 +1,130 @@ using Mapster; using MediatR; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 查询企业详情 /// </summary> [Resource([EnumResourceController.Enterprise])] public class GetEnterpriseQuery : IRequest<GetEnterpriseQueryResult> { /// <summary> /// Id /// </summary> public Guid Id { get; set; } } /// <summary> /// 查询企业详情-结果 /// </summary> public class GetEnterpriseQueryResult { /// <summary> /// Id /// </summary> public Guid Id { get; set; } /// <summary> /// 企业全称 /// </summary> [AdaptIgnore] public string EnterpriseName => EnterpriseAuth.EnterpriseName; /// <summary> /// 统一社会信用代码 /// </summary> [AdaptIgnore] public string SocietyCreditCode => EnterpriseAuth.SocietyCreditCode; /// <summary> /// 法人姓名 /// </summary> [AdaptIgnore] public string LegalPerson => EnterpriseAuth.LegalPerson; /// <summary> /// 法人身份证号 /// </summary> [AdaptIgnore] public string LegalIdentity => EnterpriseAuth.LegalIdentity; /// <summary> /// 企业认证 /// </summary> [Newtonsoft.Json.JsonIgnore, Swashbuckle.AspNetCore.Annotations.SwaggerIgnore] public SaveEnterpriseCommandAuth EnterpriseAuth { get; set; } /// <summary> /// 所在省份 /// </summary> public string ProvinceContent { get; set; } /// <summary> /// 所在城市 /// </summary> public string CityContent { get; set; } /// <summary> /// 所属行业 /// </summary> public string IndustryTypeContent { get; set; } /// <summary> /// 主营业务 /// </summary> public string MainBusiness { get; set; } /// <summary> /// 联系人 /// </summary> public string Contacts { get; set; } /// <summary> /// 联系电话 /// </summary> public string ContactPhoneNumber { get; set; } /// <summary> /// 联系邮箱 /// </summary> public string ContactEmail { get; set; } /// <summary> /// 账号 /// </summary> public string UserName { get; set; } } /// <summary> /// 查询企业详情-结果-企业认证 /// </summary> public class GetEnterpriseQueryResultAuth { /// <summary> /// 企业全称 /// </summary> public string EnterpriseName { get; set; } /// <summary> /// 统一社会信用代码 /// </summary> public string SocietyCreditCode { get; set; } /// <summary> /// 法人姓名 /// </summary> public string LegalPerson { get; set; } /// <summary> /// 法人身份证号 /// </summary> public string LegalIdentity { get; set; } } } FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterpriseSmsSettingQuery.cs
New file @@ -0,0 +1,42 @@ using MediatR; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core { /// <summary> /// 查询企业短信配置 /// </summary> [Resource([EnumResourceController.Enterprise])] public class GetEnterpriseSmsSettingQuery : IRequest<GetEnterpriseSmsSettingQueryResult> { /// <summary> /// Id /// </summary> public Guid Id { get; set; } } /// <summary> /// 查询企业短信配置-结果 /// </summary> public class GetEnterpriseSmsSettingQueryResult { /// <summary> /// Id /// </summary> public Guid Id { get; set; } /// <summary> /// 短信通道 /// </summary> public EnumSmsAccess? SmsAccess { get; set; } /// <summary> /// 短信费用 /// </summary> public decimal SmsCost { get; set; } } } FlexJobApi.Core/Models/User/Enterprises/Queries/GetEnterprisesQuery.cs
@@ -1,6 +1,5 @@ using Mapster; using MediatR; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; @@ -38,76 +37,6 @@ public Guid Id { get; set; } /// <summary> /// 联系人 /// </summary> public string Contacts { get; set; } /// <summary> /// 联系电话 /// </summary> public string ContactNumber { get; set; } /// <summary> /// 所在省份Id /// </summary> public Guid? ProvinceId { get; set; } /// <summary> /// 所在省份 /// </summary> public DictionaryDataQueryResult Province { get; set; } /// <summary> /// 所在城市Id /// </summary> public Guid? CityId { get; set; } /// <summary> /// 所在城市 /// </summary> public DictionaryDataQueryResult City { get; set; } /// <summary> /// 所属行业Id /// </summary> public Guid? IndustryTypeId { get; set; } /// <summary> /// 所属行业 /// </summary> public DictionaryDataQueryResult IndustryType { get; set; } /// <summary> /// 是否已校验银行账户 /// </summary> [JsonIgnore] public bool IsCheckedBankCard { get; set; } /// <summary> /// 实名通道 /// </summary> [JsonIgnore] public EnumRealAccess? RealAccess { get; set; } /// <summary> /// 短信通道 /// </summary> [JsonIgnore] public EnumSmsAccess? SmsAccess { get; set; } /// <summary> /// 是否已配置 /// </summary> [AdaptIgnore] public bool IsConfigured => IsCheckedBankCard && RealAccess.HasValue && SmsAccess.HasValue; } /// <summary> /// 查询企业信息分页列表数据-结果-项-认证 /// </summary> public class GetEnterprisesQueryResultItemAuth { /// <summary> /// 企业全称 /// </summary> public string EnterpriseName { get; set; } @@ -126,5 +55,35 @@ /// 是否实名 /// </summary> public bool IsReal { get; set; } /// <summary> /// 联系人 /// </summary> public string Contacts { get; set; } /// <summary> /// 联系电话 /// </summary> public string ContactPhoneNumber { get; set; } /// <summary> /// 所在省份 /// </summary> public string ProvinceContent { get; set; } /// <summary> /// 所在城市 /// </summary> public string CityContent { get; set; } /// <summary> /// 所属行业 /// </summary> public string IndustryTypeContent { get; set; } /// <summary> /// 是否已配置 /// </summary> public bool IsConfigured { get; set; } } } FlexJobApi.Core/Models/User/UserInfos/Queries/GetOperationUserInfosQuery.cs
@@ -75,7 +75,7 @@ /// <summary> /// 用户Id /// </summary> [JsonIgnore] [Newtonsoft.Json.JsonIgnore, Swashbuckle.AspNetCore.Annotations.SwaggerIgnore] public Guid UserInfoId { get; set; } /// <summary> FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
@@ -1,4 +1,5 @@ using Furion; using Consul.Filtering; using Furion; using Furion.DatabaseAccessor; using Furion.DistributedIDGenerator; using Furion.FriendlyException; @@ -160,6 +161,30 @@ } /// <summary> /// 查询分页列表数据 /// </summary> /// <typeparam name="TItem"></typeparam> /// <param name="page"></param> /// <param name="q"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public static async Task<PagedListQueryResult<TItem>> GetPagedListAsync<TItem>( this PagedListQueryPageModel page, IQueryable<TItem> q, CancellationToken cancellationToken = default) where TItem : class, new() { q = q.OrderBy(page.OrderInput); var pagedList = await q.ToPagedListAsync(page.Page, page.Rows, cancellationToken); var result = new PagedListQueryResult<TItem>(); result.PageModel = page.Adapt<PagedListQueryResultPageModel>(); result.PageModel.TotalCount = pagedList.TotalCount; result.PageModel.TotalPage = pagedList.TotalPages; result.Data = pagedList.Items.ToList(); return result; } /// <summary> /// 排序 /// </summary> /// <typeparam name="T"></typeparam> FlexJobApi.Core/Utils/JsonUtils/JsonSerializerProvider.cs
New file @@ -0,0 +1,63 @@ using Furion; using Furion.DependencyInjection; using Furion.JsonSerialization; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FlexJobApi.Core.Utils.JsonUtils { /// <summary> /// Newtonsoft.Json 实现 /// </summary> public class NewtonsoftJsonSerializerProvider : IJsonSerializerProvider, ISingleton { /// <summary> /// 序列化对象 /// </summary> /// <param name="value"></param> /// <param name="jsonSerializerOptions"></param> /// <returns></returns> public string Serialize(object value, object jsonSerializerOptions = null) { return JsonConvert.SerializeObject(value, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings); } /// <summary> /// 反序列化字符串 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="json"></param> /// <param name="jsonSerializerOptions"></param> /// <returns></returns> public T Deserialize<T>(string json, object jsonSerializerOptions = null) { return JsonConvert.DeserializeObject<T>(json, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings); } /// <summary> /// 反序列化字符串 /// </summary> /// <param name="json"></param> /// <param name="returnType"></param> /// <param name="jsonSerializerOptions"></param> /// <returns></returns> public object Deserialize(string json, Type returnType, object jsonSerializerOptions = null) { return JsonConvert.DeserializeObject(json, returnType, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings); } /// <summary> /// 返回读取全局配置的 JSON 选项 /// </summary> /// <returns></returns> public object GetSerializerOptions() { return App.GetOptions<MvcNewtonsoftJsonOptions>()?.SerializerSettings; } } } FlexJobApi.User.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -52,11 +52,18 @@ await rep.UpdateAsync(entity); } var checkExist = await repUserInfo.AsQueryable() .AnyAsync(it => it.Type == EnumUserType.Enterprise && it.EnterpriseId != entity.Id && it.UserAuth.UserName == request.UserName); if (checkExist) throw Oops.Oh(EnumErrorCodeType.s405, "该账号"); var userInfo = await repUserInfo.AsQueryable() .Include(it => it.UserAuth) .FirstOrDefaultAsync(it => it.Type == EnumUserType.Enterprise && it.UserAuth.UserName == request.UserName); && it.EnterpriseId == entity.Id); if (userInfo == null) { userInfo = new UserInfo @@ -66,16 +73,16 @@ Status = EnumUserInfoStatus.Normal, UserAuth = new UserAuth { Name = request.Contacts, UserName = request.UserName, PhoneNumber = request.ContactPhoneNumber, Password = PBKDF2Encryption.Encrypt(request.Password) Password = PBKDF2Encryption.Encrypt(MD5Encryption.Encrypt(request.Password)) } }; await repUserInfo.InsertAsync(userInfo); } else { if (userInfo.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "该账号"); userInfo.UserAuth.PhoneNumber = request.ContactPhoneNumber; await repUserInfo.UpdateAsync(userInfo); } FlexJobApi.User.Application/Enterprises/Queries/EnterprisesQueryHandler.cs
@@ -1,5 +1,9 @@ using FlexJobApi.Core; using Furion.DatabaseAccessor; using Furion.FriendlyException; using Mapster; using MediatR; using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -11,9 +15,19 @@ /// <summary> /// 企业查询处理器 /// </summary> public class EnterprisesQueryHandler : IRequestHandler<GetEnterprisesQuery, PagedListQueryResult<GetEnterprisesQueryResultItem>> public class EnterprisesQueryHandler( IRepository<Enterprise> rep, IRepository<EnterpriseAuth> repEnterpriseAuth, IRepository<DictionaryData> repDictionaryData ) : IRequestHandler<GetEnterprisesQuery, PagedListQueryResult<GetEnterprisesQueryResultItem>>, IRequestHandler<GetEnterpriseQuery, GetEnterpriseQueryResult>, IRequestHandler<GetEnterpriseElectronSignSettingQuery, GetEnterpriseElectronSignSettingQueryResult>, IRequestHandler<GetEnterpriseSmsSettingQuery, GetEnterpriseSmsSettingQueryResult> { private readonly IRepository<Enterprise> rep = rep; private readonly IRepository<EnterpriseAuth> repEnterpriseAuth = repEnterpriseAuth; /// <summary> /// 查询企业信息分页列表数据 /// </summary> @@ -22,22 +36,94 @@ /// <returns></returns> public Task<PagedListQueryResult<GetEnterprisesQueryResultItem>> Handle(GetEnterprisesQuery request, CancellationToken cancellationToken) { return request.PageModel.GetPagedListAsync<Enterprise, GetEnterprisesQueryResultItem>( q => { if (request.Keywords.IsNotNull()) { q = q.Where(it => it.EnterpriseAuth.EnterpriseName.Contains(request.Keywords) || it.EnterpriseAuth.LegalPerson.Contains(request.Keywords) || it.Contacts.Contains(request.Keywords)); } if (request.IsConfigured.HasValue) { q = q.Where(it => (it.IsCheckedBankCard && it.RealAccess.HasValue && it.SmsAccess.HasValue) == request.IsConfigured); } return q; }, cancellationToken: cancellationToken); var q = rep.AsQueryable().AsNoTracking(); if (request.Keywords.IsNotNull()) { q = q.Where(it => it.EnterpriseAuth.EnterpriseName.Contains(request.Keywords) || it.EnterpriseAuth.LegalPerson.Contains(request.Keywords) || it.Contacts.Contains(request.Keywords)); } if (request.IsConfigured.HasValue) { q = q.Where(it => (it.IsCheckedBankCard && it.RealAccess.HasValue && it.SmsAccess.HasValue) == request.IsConfigured); } var s = (from e in q join a in repEnterpriseAuth.AsQueryable().AsNoTracking() on e.EnterpriseAuthId equals a.Id join p in repDictionaryData.AsQueryable().AsNoTracking() on e.ProvinceId equals p.Id into pg from pgi in pg.DefaultIfEmpty() join c in repDictionaryData.AsQueryable().AsNoTracking() on e.CityId equals c.Id into cg from cgi in cg.DefaultIfEmpty() join i in repDictionaryData.AsQueryable().AsNoTracking() on e.IndustryTypeId equals i.Id into ig from igi in ig.DefaultIfEmpty() select new GetEnterprisesQueryResultItem { Id = e.Id, EnterpriseName = a.EnterpriseName, LegalPerson = a.LegalPerson, SocietyCreditCode = a.SocietyCreditCode, Contacts = e.Contacts, ContactPhoneNumber = e.ContactPhoneNumber, ProvinceContent = pgi.Content, CityContent = cgi.Content, IndustryTypeContent = igi.Content, IsReal = a.IsReal, IsConfigured = e.IsCheckedBankCard && e.RealAccess.HasValue && e.SmsAccess.HasValue }); return request.PageModel.GetPagedListAsync(s, cancellationToken: cancellationToken); } /// <summary> /// 查询企业详情 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<GetEnterpriseQueryResult> Handle(GetEnterpriseQuery request, CancellationToken cancellationToken) { var model = await rep.AsQueryable().AsNoTracking() .Where(it => it.Id == request.Id) .ProjectToType<GetEnterpriseQueryResult>() .FirstOrDefaultAsync(cancellationToken); if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业"); model.UserName = await rep.Change<UserInfo>().AsQueryable().AsNoTracking() .Include(it => it.UserAuth) .Where(it => it.EnterpriseId == model.Id) .Select(it => it.UserAuth.UserName) .FirstOrDefaultAsync(cancellationToken); return model; } /// <summary> /// 查询企业电子签配置 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<GetEnterpriseElectronSignSettingQueryResult> Handle(GetEnterpriseElectronSignSettingQuery request, CancellationToken cancellationToken) { var model = await rep.AsQueryable().AsNoTracking() .Where(it => it.Id == request.Id) .ProjectToType<GetEnterpriseElectronSignSettingQueryResult>() .FirstOrDefaultAsync(cancellationToken); if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业"); return model; } /// <summary> /// 查询企业短信配置 /// </summary> /// <param name="request"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public async Task<GetEnterpriseSmsSettingQueryResult> Handle(GetEnterpriseSmsSettingQuery request, CancellationToken cancellationToken) { var model = await rep.AsQueryable().AsNoTracking() .Where(it => it.Id == request.Id) .ProjectToType<GetEnterpriseSmsSettingQueryResult>() .FirstOrDefaultAsync(cancellationToken); if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "该企业"); return model; } } } FlexJobApi.User.Application/FlexJobApi.User.Application.xml
@@ -98,6 +98,11 @@ 企业查询处理器 </summary> </member> <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.#ctor(Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.Enterprise},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.EnterpriseAuth},Furion.DatabaseAccessor.IRepository{FlexJobApi.Core.DictionaryData})"> <summary> 企业查询处理器 </summary> </member> <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.Handle(FlexJobApi.Core.GetEnterprisesQuery,System.Threading.CancellationToken)"> <summary> 查询企业信息分页列表数据 @@ -106,6 +111,30 @@ <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.Handle(FlexJobApi.Core.GetEnterpriseQuery,System.Threading.CancellationToken)"> <summary> 查询企业详情 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.Handle(FlexJobApi.Core.GetEnterpriseElectronSignSettingQuery,System.Threading.CancellationToken)"> <summary> 查询企业电子签配置 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="M:FlexJobApi.User.Application.EnterprisesQueryHandler.Handle(FlexJobApi.Core.GetEnterpriseSmsSettingQuery,System.Threading.CancellationToken)"> <summary> 查询企业短信配置 </summary> <param name="request"></param> <param name="cancellationToken"></param> <returns></returns> </member> <member name="F:FlexJobApi.User.Application.EnumUserErrorCodeType.u1000"> <summary> 账号或密码不存在