|
|
|
@ -19,14 +19,18 @@ using Microsoft.AspNetCore.Authorization;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc; |
|
|
|
|
using Microsoft.AspNetCore.Mvc.Filters; |
|
|
|
|
using Newtonsoft.Json; |
|
|
|
|
using NPOI.OpenXmlFormats.Spreadsheet; |
|
|
|
|
using NPOI.SS.Formula.Functions; |
|
|
|
|
using SqlSugar; |
|
|
|
|
using SqlSugar.Extensions; |
|
|
|
|
using System.Data; |
|
|
|
|
using System.IO.Compression; |
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Net.WebSockets; |
|
|
|
|
using System.Text; |
|
|
|
|
using static _24Hour.TwentySystemProxyClient; |
|
|
|
|
using static com.sun.tools.@internal.xjc.reader.xmlschema.bindinfo.BIConversion; |
|
|
|
|
using static NPOI.HSSF.Util.HSSFColor; |
|
|
|
|
using Exception = System.Exception; |
|
|
|
|
using User = Elight.Utility.User; |
|
|
|
|
|
|
|
|
@ -1098,6 +1102,232 @@ namespace _24Hour.Controllers.Common
|
|
|
|
|
|
|
|
|
|
return Task.FromResult(result); |
|
|
|
|
} |
|
|
|
|
[HttpGet] |
|
|
|
|
[Route("ImportLawyerArchivesInfo")] |
|
|
|
|
public async Task<Result> ImportLawyerArchivesInfo(string path) |
|
|
|
|
{ |
|
|
|
|
if (System.IO.File.Exists(path)==false) |
|
|
|
|
{ |
|
|
|
|
result.Message = "文件丢失"; |
|
|
|
|
result.IsSucceed = false; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
var dir = Path.Combine(Environment.CurrentDirectory,"wwwroot","CaseFile","imports"); |
|
|
|
|
var userdir = Path.Combine(dir, "users"); |
|
|
|
|
var lawyersvcs = Path.Combine(dir, "lawyersvcs"); |
|
|
|
|
|
|
|
|
|
var extratname = Path.GetFileNameWithoutExtension(path); |
|
|
|
|
var extratdirpath = Path.Combine(dir, extratname); |
|
|
|
|
ZipFile.ExtractToDirectory(path, extratdirpath,true); |
|
|
|
|
var zipusers = Path.Combine(extratdirpath, "users"); |
|
|
|
|
var ziplawyersvcs = Path.Combine(extratdirpath, "lawyerservices"); |
|
|
|
|
var zipjson = Path.Combine(extratdirpath, "data"); |
|
|
|
|
if (System.IO.File.Exists(zipjson)==false) |
|
|
|
|
{ |
|
|
|
|
result.Message = "文件丢失"; |
|
|
|
|
result.IsSucceed = false; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
var json = System.IO.File.ReadAllText(zipjson); |
|
|
|
|
|
|
|
|
|
var jsonstr = Encoding.UTF8.GetString(Convert.FromBase64String(json)); |
|
|
|
|
|
|
|
|
|
var importdata = jsonstr.ConvertToAnonymousType(new |
|
|
|
|
{ |
|
|
|
|
lawyerservices=default(List<App_LawyerServicesModel>), |
|
|
|
|
users=default(List<App_Sys_UserModel>) |
|
|
|
|
}); |
|
|
|
|
foreach (var userim in importdata.users) |
|
|
|
|
{ |
|
|
|
|
var user = await _db.Queryable<App_Sys_UserModel>() |
|
|
|
|
.Where(x => x.cardId == userim.cardId) |
|
|
|
|
.Where(x => x.IsDeleted == 0) |
|
|
|
|
.Where(x => x.isdeactivate == 0) |
|
|
|
|
.Where(x => x.identity == "律师") |
|
|
|
|
.FirstAsync(); |
|
|
|
|
var identityphotopath = Path.Combine(zipusers, userim.cardId, "identityphotos"); |
|
|
|
|
var files = new DirectoryInfo(identityphotopath) |
|
|
|
|
.GetFiles() |
|
|
|
|
.Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) |
|
|
|
|
.Replace(@"\", @"/")) |
|
|
|
|
.ToList() |
|
|
|
|
.ConvertToJsonStr(); |
|
|
|
|
|
|
|
|
|
var departmentPhotos = Path.Combine(zipusers, userim.cardId, "departmentPhotos"); |
|
|
|
|
var departments = new DirectoryInfo(departmentPhotos) |
|
|
|
|
.GetFiles() |
|
|
|
|
.Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) |
|
|
|
|
.Replace(@"\", @"/")) |
|
|
|
|
.ToList() |
|
|
|
|
.ConvertToJsonStr(); |
|
|
|
|
|
|
|
|
|
var cardidphotos = Path.Combine(zipusers, userim.cardId, "cardids"); |
|
|
|
|
var cardids = new DirectoryInfo(cardidphotos) |
|
|
|
|
.GetFiles() |
|
|
|
|
.Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) |
|
|
|
|
.Replace(@"\", @"/")) |
|
|
|
|
.ToList() |
|
|
|
|
.ConvertToJsonStr(); |
|
|
|
|
|
|
|
|
|
if (user==null) |
|
|
|
|
{ |
|
|
|
|
userim.cardIdphoto = cardids; |
|
|
|
|
userim.identityphoto = files; |
|
|
|
|
userim.departmentPhoto = departments; |
|
|
|
|
|
|
|
|
|
_db.BeginTran(); |
|
|
|
|
var num = await _db.Insertable(userim).ExecuteCommandAsync(); |
|
|
|
|
_db.CommitTran(); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
user.cardIdphoto = cardids; |
|
|
|
|
user.identityphoto = files; |
|
|
|
|
user.departmentPhoto = departments; |
|
|
|
|
_db.BeginTran(); |
|
|
|
|
var num = await _db.Updateable(user) |
|
|
|
|
.UpdateColumns(x => new |
|
|
|
|
{ |
|
|
|
|
x.cardIdphoto, |
|
|
|
|
x.identityphoto, |
|
|
|
|
x.departmentPhoto |
|
|
|
|
}) |
|
|
|
|
.IgnoreColumns(ignoreAllNullColumns: true) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
_db.CommitTran(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
foreach (var lawyersvc in importdata.lawyerservices) |
|
|
|
|
{ |
|
|
|
|
var svc =await _db.Queryable<App_LawyerServicesModel>() |
|
|
|
|
.Where(x => x.Id == lawyersvc.Id).FirstAsync(); |
|
|
|
|
var annexphoto = Path.Combine(ziplawyersvcs, lawyersvc.Id, "annexs"); |
|
|
|
|
var annexs = new DirectoryInfo(annexphoto) |
|
|
|
|
.GetFiles() |
|
|
|
|
.Select(x => "/CaseFile/imports/" + Path.GetRelativePath(dir, x.FullName) |
|
|
|
|
.Replace(@"\", @"/")) |
|
|
|
|
.ToList() |
|
|
|
|
.ConvertToJsonStr(); |
|
|
|
|
if (svc==null) |
|
|
|
|
{ |
|
|
|
|
lawyersvc.annex = annexs; |
|
|
|
|
_db.BeginTran(); |
|
|
|
|
var num = await _db.Insertable(lawyersvc).ExecuteCommandAsync(); |
|
|
|
|
_db.CommitTran(); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
svc.annex = annexs; |
|
|
|
|
_db.BeginTran(); |
|
|
|
|
var num = await _db.Updateable(svc) |
|
|
|
|
.UpdateColumns(x => new |
|
|
|
|
{ |
|
|
|
|
x.annex |
|
|
|
|
}) |
|
|
|
|
.IgnoreColumns(ignoreAllNullColumns: true) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
_db.CommitTran(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("PackegLawyerArchivesInfo")] |
|
|
|
|
public async Task<Result> ExportLawyerArchivesInfo(IEnumerable<string> ids) |
|
|
|
|
{ |
|
|
|
|
var lawyerarchives = await _db.Queryable<App_LawyerServicesModel>() |
|
|
|
|
.In(info => info.Id, ids) |
|
|
|
|
.ToListAsync(); |
|
|
|
|
var userids=lawyerarchives |
|
|
|
|
.Select(x=>x.createuserId) |
|
|
|
|
.Distinct() |
|
|
|
|
.ToList(); |
|
|
|
|
var users = await _db.Queryable<App_Sys_UserModel>() |
|
|
|
|
.In(x => x.Id, userids) |
|
|
|
|
.ToListAsync(); |
|
|
|
|
var packegdirname = DateTime.Now.Ticks.ToString(); |
|
|
|
|
var dir = Path.Combine(Environment.CurrentDirectory,"wwwroot","temp"); |
|
|
|
|
var packegdir = Path.Combine(dir, packegdirname); |
|
|
|
|
var packegzipname = Path.ChangeExtension(packegdir, ".zip"); |
|
|
|
|
if (Directory.Exists(packegdir) == false) Directory.CreateDirectory(packegdir); |
|
|
|
|
var jsonfilepath = Path.Combine(packegdir, "data"); |
|
|
|
|
var jsonstr = new |
|
|
|
|
{ |
|
|
|
|
lawyerservices = lawyerarchives, |
|
|
|
|
users = users |
|
|
|
|
}.ConvertToJsonStr().ConvertToBase64(); |
|
|
|
|
System.IO.File.WriteAllText(jsonfilepath, jsonstr); |
|
|
|
|
//存储预约申请的相关附件 |
|
|
|
|
foreach (var item in lawyerarchives) |
|
|
|
|
{ |
|
|
|
|
var lawyerdir = Path.Combine(packegdir,"lawyerservices", item.Id); |
|
|
|
|
if (Directory.Exists(lawyerdir)==false) Directory.CreateDirectory(lawyerdir); |
|
|
|
|
var files = item.annex.ConvertToModel<List<string>>(); |
|
|
|
|
var annecdir = Path.Combine(lawyerdir,"annexs"); |
|
|
|
|
if (Directory.Exists(annecdir) == false) Directory.CreateDirectory(annecdir); |
|
|
|
|
|
|
|
|
|
foreach (var file in files) |
|
|
|
|
{ |
|
|
|
|
var filepath = Path.Combine(Environment.CurrentDirectory,"wwwroot") + file.Replace("/",@"\"); |
|
|
|
|
if (System.IO.File.Exists(filepath)) |
|
|
|
|
{ |
|
|
|
|
var targetfile = Path.Combine(annecdir, Path.GetFileName(filepath)); |
|
|
|
|
System.IO.File.Copy(filepath, targetfile); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//存储用户的相关附件 |
|
|
|
|
foreach (var item in users) |
|
|
|
|
{ |
|
|
|
|
//["/CaseFile/card/2023-11-21/20231121200659497.jpg"] |
|
|
|
|
var userdir= Path.Combine(packegdir, "users", item.cardId); |
|
|
|
|
|
|
|
|
|
//保存身份证图片 |
|
|
|
|
var cardids = item.cardIdphoto.ConvertToModel<List<string>>(); |
|
|
|
|
var cardidDir = Path.Combine(userdir, "cardids"); |
|
|
|
|
if (Directory.Exists(cardidDir) == false) Directory.CreateDirectory(cardidDir); |
|
|
|
|
foreach (var file in cardids) |
|
|
|
|
{ |
|
|
|
|
var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); |
|
|
|
|
if (System.IO.File.Exists(filepath)) |
|
|
|
|
{ |
|
|
|
|
System.IO.File.Copy(filepath, Path.Combine(cardidDir, Path.GetFileName(filepath))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
//保存工作证图片 律师职业证书 |
|
|
|
|
var identityphotos = item.identityphoto.ConvertToModel<List<string>>(); |
|
|
|
|
var identityphotosDir = Path.Combine(userdir, "identityphotos"); |
|
|
|
|
if (Directory.Exists(identityphotosDir) == false) Directory.CreateDirectory(identityphotosDir); |
|
|
|
|
foreach (var file in identityphotos) |
|
|
|
|
{ |
|
|
|
|
var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); |
|
|
|
|
if (System.IO.File.Exists(filepath)) |
|
|
|
|
{ |
|
|
|
|
System.IO.File.Copy(filepath, Path.Combine(identityphotosDir, Path.GetFileName(filepath))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var departmentPhotos = item.departmentPhoto.ConvertToModel<List<string>>(); |
|
|
|
|
var departmentPhotosDir = Path.Combine(userdir, "departmentPhotos"); |
|
|
|
|
if (Directory.Exists(departmentPhotosDir) == false) Directory.CreateDirectory(departmentPhotosDir); |
|
|
|
|
foreach (var file in departmentPhotos) |
|
|
|
|
{ |
|
|
|
|
var filepath = Path.Combine(Environment.CurrentDirectory, "wwwroot") + file.Replace("/", @"\"); |
|
|
|
|
if (System.IO.File.Exists(filepath)) |
|
|
|
|
{ |
|
|
|
|
System.IO.File.Copy(filepath, Path.Combine(departmentPhotosDir, Path.GetFileName(filepath))); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ZipFile.CreateFromDirectory(packegdir, packegzipname); |
|
|
|
|
Directory.Delete(packegdir, true); |
|
|
|
|
|
|
|
|
|
result.result = $"/temp/{packegdirname}.zip"; |
|
|
|
|
result.IsSucceed = true; |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[HttpPost] |
|
|
|
|
[Route("UploadSignImage")] |
|
|
|
|
/// <summary> |
|
|
|
|