24小时一体机服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

427 lines
18 KiB

using com.sun.xml.@internal.xsom;
using Dto;
using Elight.Entity.APPDto.Lawyer;
using Elight.Utility;
using Elight.Utility.Code;
using Elight.Utility.Extensions;
using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Mvc;
namespace _24Hour
{
public class TwentySystemProxyClient
{
private readonly HttpClient httpCliet;
private readonly IConfiguration configuration;
public TwentySystemProxyClient(HttpClient _httpCliet, IConfiguration _configuration)
{
this.httpCliet = _httpCliet;
this.configuration = _configuration;
httpCliet.DefaultRequestHeaders.Add("Accept", "application/json");
httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
httpCliet.DefaultRequestHeaders.ConnectionClose = true;
}
/// <summary>
/// 申请人资格资料
/// </summary>
/// <returns></returns>
[HttpPost("UploadImage")]
public async Task<Result> UploadImage(UploadDto dto)
{
var request = await httpCliet.PostAsJsonAsync($"/TwentySystem/UploadImage", dto);
var response = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return response.ConvertToModel<Result>();
}
public async Task<Result<SaveBhdlDjxxDto>> Register(RegisterDto dto)
{
try
{
var request = await httpCliet.PostAsJsonAsync($"/TwentySystem/Register", dto);
var response = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return response.ConvertToModel<Result<SaveBhdlDjxxDto>>();
}
catch(Exception ex)
{
return null;
}
}
public async Task<Result<AjgldsrxxDto>> QueryDsrList(string Bmsah, string UnitCode, string PartyIdCard)
{
var UseOfflineData = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
var bodu = new
{
Bmsah = Bmsah,
UnitCode = UnitCode,
PartyIdCard = PartyIdCard
}.ConvertToGetParam();
var response = await Task.Run(async () =>
{
if (UseOfflineData == "true")
{
var json = "{\"data\":{\"endRow\":1,\"firstPage\":1,\"hasNextPage\":false,\"isFirstPage\":true,\"isLastPage\":true,\"lastPage\":1,\"list\":[{\"bmsah\":\"安北检刑诉受[2023]410503000002号\",\"gjdm\":\"9911180200001\",\"gjmc\":\"中国\",\"mzdm\":\"9912180100001\",\"mzmc\":\"汉族\",\"xbdm\":\"9909180000001\",\"xbmc\":\"男性\",\"xm\":\"李四\",\"zjhm\":\"410502199606164872\",\"zjlxdm\":\"9910180300001\",\"zjlxmc\":\"居民身份证\",\"zrrbm\":\"4105030323000001\",\"zrrlxdm\":\"0009000900001\",\"zrrlxmc\":\"嫌疑人\"}],\"navigateFirstPage\":1,\"navigateLastPage\":1,\"navigatePages\":8,\"navigatepageNums\":[1],\"nextPage\":0,\"pageNum\":1,\"pageSize\":20,\"pages\":1,\"prePage\":0,\"size\":1,\"startRow\":1,\"total\":1},\"code\":\"0\",\"success\":true,\"message\":\"操作成功\"}";
return json;
}
else
{
var request = await httpCliet.GetAsync($"/TwentySystem/DsrList{bodu}");
return await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
}
});
var data = response.ConvertToAnonymousType(new
{
message = default(string),
success = default(bool),
code = default(string),
data = default(AjgldsrxxDto)
});
Result<AjgldsrxxDto> result = new Result<AjgldsrxxDto>();
if (data?.success == true)
{
result.IsSucceed = true;
result.Message = "操作成功";
result.result = data?.data;
}
else
{
result.IsSucceed = false;
result.Message = data?.message ?? "操作失败";
}
if (UseOfflineData == "true")
{
result.Message = "操作成功(测试数据)";
}
return result;
}
public async Task<Result<FindSqrxxDto>> GetAllLsList()
{
var response = await Task.Run(async () =>
{
var request = await httpCliet.GetAsync($"/TwentySystem/GetAllLsList");
return await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
});
var data = response.ConvertToAnonymousType(new
{
message = default(string),
success = default(bool),
code = default(string),
data = default(FindSqrxxDto)
});
Result<FindSqrxxDto> result = new Result<FindSqrxxDto>();
if (data?.success == true)
{
result.IsSucceed = true;
result.Message = "操作成功";
result.result = data?.data;
}
else
{
result.IsSucceed = false;
result.Message = data?.message ?? "操作失败";
}
return result;
}
public async Task<Result<FindSqrxxDto>> QueryLsList(string ProposerZJHM)
{
var UseOfflineData = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
var bodu = new
{
ProposerZJHM = ProposerZJHM,
}.ConvertToGetParam();
var response = await Task.Run(async () =>
{
if (UseOfflineData == "true")
{
var json = "{\"data\":{\"content\":[{\"cjsj\":\"2021-01-12T16:12:34.004+0800\",\"djdwbm\":\"410403\",\"djdwmc\":\"卫东区院\",\"jmsfzh\":\"123345666777778\",\"lxdh\":null,\"lxdz\":null,\"sfsc\":\"N\",\"sjbsbh\":\"8cdbeb3ce3da483780b4e1acf60677e0\",\"sjly\":\"3\",\"sqrbh\":\"42b84c481b734f52b37d5b99157057f4\",\"sqrlxdm\":\"1403187300001\",\"sqrlxmc\":\"辩护人\",\"sqrsfdm\":\"1404187300003\",\"sqrsfmc\":\"律师\",\"sqrxm\":\"张能能\",\"szlssws\":\"河南千会律师事务所\",\"tyshxydm\":null,\"zbls\":null,\"zhxgsj\":\"2021-01-21T15:10:51.982+0800\",\"zjhm\":\"123445788876677\",\"zjlxdm\":\"9910180300010\",\"zjlxmc\":\"律师执业证\",\"zyzh\":null}],\"empty\":false,\"first\":true,\"last\":true,\"number\":0,\"numberOfElements\":1,\"pageable\":{\"offset\":0,\"pageNumber\":0,\"pageSize\":20,\"paged\":true,\"unpaged\":false,\"sort\":{\"empty\":false,\"sorted\":true,\"unsorted\":false}},\"size\":20,\"sort\":{\"empty\":false,\"sorted\":true,\"unsorted\":false},\"totalPages\":1,\"totalElements\":1},\"code\":\"0\",\"success\":true,\"message\":\"操作成功\"}";
return json;
}
else
{
var request = await httpCliet.GetAsync($"/TwentySystem/LsList{bodu}");
return await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
}
});
var data = response.ConvertToAnonymousType(new
{
message = default(string),
success = default(bool),
code = default(string),
data = default(FindSqrxxDto)
});
Result<FindSqrxxDto> result = new Result<FindSqrxxDto>();
if (data?.success == true)
{
result.IsSucceed = true;
result.Message = "操作成功";
result.result = data?.data;
}
else
{
result.IsSucceed = false;
result.Message = data?.message ?? "操作失败";
}
if (UseOfflineData == "true")
{
result.Message = "操作成功(测试数据)";
}
return result;
}
public async Task<Result<ApplyMarKingBackDto>> ApplyMarKing(ApplyMarKingDto dto)
{
var UseOfflineData = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
var response = await Task.Run(async () =>
{
if (UseOfflineData == "true")
{
var json = "{\"result\":{\"applyMarKingDto\":{\"bhdlbh\":\"e027a707f262435d9fc29b080101beed\",\"bmsah\":\"安北检刑诉受[2023]410503000002号\",\"clqkbm\":\"\",\"clqkmc\":\"\",\"czr\":\"曲超艺\",\"czrybm\":\"4105030058\",\"dwbm\":\"410503\",\"jwgksxid\":\"\",\"sqrlxdm\":\"1403187300001\",\"sqrmc\":\"辩护人\",\"sqrq\":\"2023-11-30\",\"sqrsfdm\":\"1404187300003\",\"sxlxdm\":\"1405187400001\",\"sxlxmc\":\"申请阅卷\",\"zrrmc\":\"李四\"},\"sxbh\":\"5d89f1bd6df142aeb6d4d7582116811a\"},\"isSucceed\":true,\"message\":null}";
return json;
}
else
{
var content = dto.ConvertToJsonStr();
var request = await httpCliet.PostAsJsonAsync("/TwentySystem/ApplyMarKing", dto);
var res = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return res;
}
});
return response.ConvertToModel<Result<ApplyMarKingBackDto>>();
}
public async Task<Result> Arrange(ArrangeDto dto)
{
var UseOfflineData = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
var response = await Task.Run(async () =>
{
if (UseOfflineData == "true")
{
var json = "{\"isSucceed\":true,\"message\":null,\"result\":null}";
return json;
}
else
{
var request = await httpCliet.PostAsJsonAsync($"/TwentySystem/Arrange", dto);
var res = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return res;
}
});
return response.ConvertToModel<Result>();
}
public async Task<Result<QueryResult<CaseInfo>>> GetCaseList(string? casename, string? bmsah, string? dwbm, DateTime? starttime, DateTime? endtime, int page, int size)
{
Result<QueryResult<CaseInfo>> Result = new();
var param = new
{
casename = casename ?? "",
bmsah = bmsah ?? "",
dwbm = dwbm ?? "",
starttime = starttime ?? DateTime.Now.AddDays(-180),
endtime = endtime ?? DateTime.Now,
page,
size
}.ConvertToGetParam();
try
{
var response = await Task.Run(async () =>
{
var connectionString = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
if (connectionString == "false")
{
var request = await httpCliet.GetAsync($"/TwentySystem/GetCaseInfo{param}");
var response = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return response;
}
else
{
return await File.ReadAllTextAsync(Path.Combine(Environment.CurrentDirectory, "caselist.txt"));
}
});
if (string.IsNullOrEmpty(response) == false)
{
var data = response.ConvertToModel<Result<Paging<CaseInfo>>>();
if (data.result != null)
{
var a = new QueryResult<CaseInfo>(new Paging()
{
PageCount = data.result.pages ?? 0,
PageIndex = data.result.pageNum ?? 0,
PageSize = data.result.pageSize ?? 0,
RowsCount = data.result.total ?? 0
}, data.result.List.ToList());
Result.IsSucceed = true;
Result.result = a;
}
else
{
Result.IsSucceed = true;
Result.Message = data.Message ?? "查询成功";
Result.result = new QueryResult<CaseInfo>(new Paging()
{
PageCount = 0,
PageIndex = 0,
PageSize = 0,
RowsCount = 0,
}, new List<CaseInfo>());
}
}
else
{
Result.IsSucceed = false;
Result.Message = "查询失败";
}
}
catch (Exception ex)
{
Result.IsSucceed = false;
Result.Message = ex.Message;
}
return Result;
}
public async Task<Result<JZJBXXDto>> GetArchivesInfo(string bmsah, string dwbm)
{
var result = new Result<JZJBXXDto>();
var connectionString = configuration.GetSection("CaseTwenty:UseOfflineData").Value;
//var path = Path.Combine(Environment.CurrentDirectory, "datajson.txt");
//var json = await System.IO.File.ReadAllTextAsync(path);
var param = new
{
bmsah = bmsah,
dwbm = dwbm
}.ConvertToGetParam();
var json = await Task.Run(async () =>
{
if (connectionString == "false")
{
var request = await httpCliet.GetAsync($"/TwentySystem/GetJZXX{param}");
var jsonstr = await request.EnsureSuccessStatusCode().Content.ReadAsStringAsync();
return jsonstr;
}
else
{
return await File.ReadAllTextAsync(Path.Combine(Environment.CurrentDirectory, "jzlist.txt"));
}
});
var res = json.ConvertToModel<Result<JZJBXXDto>>();
if (res.IsSucceed == true)
{
if (res.result == null)
{
result.IsSucceed = false;
result.Message = "卷宗目录为空";
return result;
}
var convert = res.result;
if (convert == null)
{
result.IsSucceed = false;
result.Message = "未找到对应卷宗";
return result;
}
convert.Id = Guid.NewGuid().ToString();
if (convert?.jzml?.Any() == true)
{
await Task.Delay(5);
foreach (var ml in convert.jzml)
{
ml.Id = Guid.NewGuid().ToString();
ml.jzId = convert.Id;
await Task.Delay(5);
foreach (var item in ml.jzwj)
{
item.jzmlId = ml.Id;
item.Id = Guid.NewGuid().ToString();
}
}
}
result.IsSucceed = true;
result.result = convert;
}
else
{
result.IsSucceed = false;
result.Message = res.Message;
}
return result;
}
public class Paging<T>
{
public int? pageNum { get; set; }
public int? pageSize { get; set; }
public int? total { get; set; }
public int? pages { get; set; }
public IEnumerable<T>? List { get; set; }
}
public class CaseInfo
{
public string? jzbh { get; set; }
public string? ajmc { get; set; }
public string? bmsah { get; set; }
public string? cbdwbm { get; set; }
public string? rybm { get; set; }
public string? rymc { get; set; }
public int? cs { get; set; }
public int? ys { get; set; }
public DateTime? cjsj { get; set; }
public DateTime? cjrq { get; set; }
public string? zzr { get; set; }
public string? zzrbm { get; set; }
public string? zzzt { get; set; }
public string? jzms { get; set; }
public string? jzxh { get; set; }
public string? nfbd { get; set; }
public string? jzsd { get; set; }
public string? ajlbbm { get; set; }
public string? ajlbmc { get; set; }
public DateTime? slrq { get; set; }
public string? jzocrzt { get; set; }
public string? id { get; set; }
public string? yjzmc { get; set; }
public string? sfck { get; set; }
public string? sfkcz { get; set; }
public string? qlzt { get; set; }
}
class MyClass
{
/// <summary>
/// 部门受案号
/// </summary>
public string bmsah { get; set; }
/// <summary>
/// base64字符串
/// </summary>
public string ImageStr { get; set; }
/// <summary>
/// 1423000000100-律师执业证书,
/// 1423000000200-律师事务所证,
/// 1423000000300-授权委托书,
/// 1423000000400-法律援助公函,
/// 1423000000500-身份证件 ,
/// 1423000000600-关系证明材料,
/// 1423000000700-其他
/// </summary>
public string Code { get; set; }
}
}
}