Browse Source

[MODIFY]增加短信查看接口

dev-zzj
zhaozhenjing 2 months ago
parent
commit
bb106ceee4
  1. 3
      src/2.services/ATS.NonCustodial.Application/AutoMapperProfile/AdminBusinessProfile.cs
  2. 102
      src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs
  3. 7
      src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/ISMSService.cs
  4. 33
      src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Input/SmsGetpageInput.cs
  5. 50
      src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs

3
src/2.services/ATS.NonCustodial.Application/AutoMapperProfile/AdminBusinessProfile.cs

@ -2,6 +2,7 @@
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Deptcode.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Menu.Input;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Menu.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Unitcode.Input;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Unitcode.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppAnnouncements.Input;
@ -172,6 +173,8 @@ namespace ATS.NonCustodial.Application.AutoMapperProfile
CreateMap<UpFileAccessTemplateInput, AppFileTemplate>();
CreateMap<AppFileTemplate, FileAccessTemplateGetPageInput>();
CreateMap<AppFileTemplate, AppFileAccessTemplateListOutput>();
CreateMap<AppSMS, SmsListDto>();
}
}
}

102
src/2.services/ATS.NonCustodial.Application/Impl/Admins/SMSService.cs

@ -1,15 +1,24 @@
using ATS.NonCustodial.Application.Base;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Input;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppCaseManagements.AppCaseManagement.Input;
using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppCaseManagements.AppCaseManagement.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Business.AppEarlyWarnings.Input;
using ATS.NonCustodial.Domain.Entities.Admins;
using ATS.NonCustodial.Domain.Entities.Business.CaseManagements;
using ATS.NonCustodial.Domain.Entities.Business.EarlyWarning;
using ATS.NonCustodial.Domain.Shared.Enums;
using ATS.NonCustodial.Domain.Shared.OrmRepositories.Basic.EfCore;
using ATS.NonCustodial.DynamicApi;
using ATS.NonCustodial.DynamicApi.Attributes;
using ATS.NonCustodial.Shared.Common.UnifiedResults;
using ATS.NonCustodial.Shared.Configurations.Options;
using ATS.NonCustodial.Shared.Extensions.Collection;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using StackExchange.Profiling.Internal;
using TencentCloud.Common;
using TencentCloud.Common.Profile;
using TencentCloud.Sms.V20210111;
@ -24,11 +33,102 @@ namespace ATS.NonCustodial.Application.Impl.Admins
public class SMSService : AdminAppServiceBase, ISMSService, IDynamicApi
{
private readonly IEfRepository<AppSMS?, long> _appSMSRepository;
private readonly IEfRepository<AppUser, long> _appUserRepository;
public SMSService(
IEfRepository<AppSMS?, long> appSMSRepository)
IEfRepository<AppSMS?, long> appSMSRepository,
IEfRepository<AppUser, long> appUserRepository)
{
_appSMSRepository = appSMSRepository;
_appUserRepository = appUserRepository;
}
/// <summary>
/// 分页查询
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
public async Task<IResultOutput> GetPageAsync(SmsGetpageInput input)
{
//var limits = User.limits;
//var selectLimits = await _appCaseSupervisorRepository.AsQueryable(false, true)
// .Where(w => limits.Contains(w.UnitId.ToString()))
// .ToListAsync();
//var caseIdList = selectLimits.Select(w => w.CaseId).Distinct().ToList();
var express =await GetExpression(input, _appSMSRepository.AsQueryable(false, true));
var rtn = await base.GetPageAsync<AppSMS, SmsGetpageInput, SmsListDto>(input, express);
foreach (var item in rtn.Data)
{
var peoson = await _appUserRepository.AsQueryable(false, true).Where(w => w.Phone == item.Phone).ToListAsync();
item.Name = peoson.FirstOrDefault()?.UserName;
switch(item.Type)
{
case "CheckCode":
item.TypeDes = "验证码"; break;
case "Alert":
item.TypeDes = "预警处理通知"; break;
case "RegulatoryAlert":
item.TypeDes = "监管预警通知"; break;
case "Approved":
item.TypeDes = "审批完成通知"; break;
case "ReviewNotification":
item.TypeDes = "审批提醒通知"; break;
default:
break;
}
if(item.Result.Contains("Code"))
{
int codeStart = item.Result.IndexOf("\"Code\":\"") + 8;
int codeEnd = item.Result.IndexOf("\"", codeStart);
string code = item.Result.Substring(codeStart, codeEnd - codeStart);
int msgStart = item.Result.IndexOf("\"Message\":\"") + 11;
int msgEnd = item.Result.IndexOf("\"", msgStart);
string message = item.Result.Substring(msgStart, msgEnd - msgStart); // "send success"
if (code.Equals("Ok"))
{
item.Message = message;
item.Result = "短信发送成功";
}
else
{
item.Message = message;
item.Result = "短信发送异常";
}
}
else
{
item.Message = item.Result;
item.Result ="短信发送异常";
}
}
var filteredList = rtn.Data
.WhereIf(input.Name.HasValue(),item => item.Name == input.Name) // 筛选条件
.ToList();
rtn.Data = filteredList;
return ResultOutput.Ok(rtn);
}
/// <summary>
/// 查询实时预警条件
/// </summary>
/// <param name="pageInput"></param>
/// <param name="query"></param>
/// <returns></returns>
private async Task<IQueryable<AppSMS>> GetExpression(SmsGetpageInput pageInput, IQueryable<AppSMS?> query)
{
query = query
.WhereIf(pageInput.Phone.HasValue(), w => w.phone == pageInput.Phone)
.WhereIf(pageInput.SendTimeFrom.HasValue, w => w.sendTime >= pageInput.SendTimeFrom)
.WhereIf(pageInput.SendTimeTo.HasValue, w => w.sendTime <= pageInput.SendTimeTo);
return query;
}
/// <summary>

7
src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/ISMSService.cs

@ -1,14 +1,13 @@
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Auth.Input;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.Auth.Output;
using ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Input;
using ATS.NonCustodial.Domain.Shared.Enums;
using ATS.NonCustodial.Shared.Captcha.Dto;
using ATS.NonCustodial.Shared.Common.Dtos;
using ATS.NonCustodial.Shared.Common.UnifiedResults;
namespace ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS
{
public interface ISMSService
{
Task<IResultOutput> GetPageAsync(SmsGetpageInput input);
/// <summary>
/// 发送验证码
/// </summary>

33
src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Input/SmsGetpageInput.cs

@ -0,0 +1,33 @@
using ATS.NonCustodial.Domain.Shared.Enums;
using ATS.NonCustodial.Shared.Common.Dtos;
namespace ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Input
{
/// <summary>
/// 短信查询入参
/// </summary>
/// Author:ZZJ
/// CreatedTimed:2025-10-15 10点42分
public class SmsGetpageInput : PageRequestBaseInput
{
/// <summary>
/// 电话号码
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? SendTimeFrom { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? SendTimeTo { get; set; }
}
}

50
src/3.contracts/ATS.NonCustodial.Application.Contracts/Interfaces/Admins/SMS/Output/SmsListDto.cs

@ -0,0 +1,50 @@
using ATS.NonCustodial.Domain.Shared.AggRootEntities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ATS.NonCustodial.Application.Contracts.Interfaces.Admins.SMS.Output
{
public class SmsListDto : EntityFull
{
/// <summary>
/// 姓名
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 编码
/// </summary>
public long? Id { get; set; }
/// <summary>
/// 电话
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 验证码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 发送时间
/// </summary>
public DateTime? SendTime { get; set; }
/// <summary>
/// 通知类型
/// </summary>
public string? Type { get; set; }
/// <summary>
/// 通知类型描述
/// </summary>
public string? TypeDes { get; set; }
/// <summary>
/// 发送结果
/// </summary>
public string? Result { get; set; }
/// <summary>
/// 详细描述
/// </summary>
public string? Message { get; set; }
}
}
Loading…
Cancel
Save