using AutoMapper;
using Elight.Entity;
using Elight.Entity.APPDto.Lawyer;
using Elight.Entity.AppMode.Lawyer;
using Elight.Logic;
using Elight.Utility.Code;
using Elight.Utility.logs;
using java.util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Text;
using static _24Hour.Controllers.Common.LawyerArchivesController;
namespace _24Hour.Controllers.Common
{
///
/// 律师服务
///
[ApiController]
[Route("api/LawyerUnAuthorize")]
public class LawyerArchivesUnAuthorizeController : Controller
{
#region Identity
private readonly SqlSugarClient _db;//数据库
private readonly ILogger logger;//日志
private readonly IMapper mapper;
public LawyerArchivesUnAuthorizeController(ILogger _logger, SqlSugarClient db, IMapper _mapper)
{
this.logger = _logger;
_db = db;
this.mapper = _mapper;
}
#endregion
///
/// 一体机查询所有的未完成的预约信息
///
///
[HttpGet("GetAllArchivesUncompleted")]
public async Task>> GetAllArchivesUncompleted(string unitcode)
{
var res = new Result>();
var list = await _db.Queryable()
.Where(x => x.IsDeleted == 0)
.Where(x => x.status != 2 && x.permissibleEndTime > DateTime.Now)
.Where(x => x.unitcode == unitcode)
.Where(x => x.IsDeleted == 0)
.ToListAsync();
var data = mapper.Map>(list);
res.result = data;
res.IsSucceed = true;
return res;
}
///
/// 获取卷宗下所有的文件信息
///
///
///
[HttpPost("GetJzFileInfo")]
public async Task GetJzFileInfo(IEnumerable jzids)
{
var result = new Result();
var list = await _db.Queryable()
.Includes(x => x.jzml, q => q.jzwj)
.Where(x => jzids.Contains(x.Id))
.ToListAsync();
var dtos = mapper.Map>(list);
var listdata = dtos.Select(x => new
{
jzid = x.Id,
files = x.jzml.OrderBy(x => x.mlsxh)
.SelectMany(e => e.jzwj.OrderBy(x => x.wjsxh))
.Select((q) => new
{
order = q.wjsxh,
fileid = q.Id,
filepath = q.jpgwjlj
}).OrderBy(x => x.order)
}).ToList();
result.result = listdata;
result.IsSucceed = true;
return result;
}
///
/// 上传一体机的文件缓存状态
///
///
///
[HttpPost("UploadWJDownloadStatus")]
public async Task UploadWJDownloadStatus(IEnumerable dtos)
{
var result = new Result();
try
{
_db.BeginTran();
var updatelist = await _db.Queryable().In(q => q.jzlbxxId, dtos.Select(x => x.jzlbxxId).ToList()).ToListAsync();
updatelist.ForEach(q =>
{
var value = dtos.FirstOrDefault(x => x.jzlbxxId == q.jzlbxxId);
q.downloadedCount = value?.downloadedCount;
});
var num = await _db.Updateable(updatelist).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "更新成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
}
return result;
}
///
/// 解密字符串信息
///
///
///
[HttpPost]
[Route("DecodeData")]
public Task> DecodeData(DecodeQRDataModel data)
{
Result result = new();
try
{
result.result = Encoding.UTF8.GetString(Convert.FromBase64String(data.QRData));
result.IsSucceed = true;
return Task.FromResult(result);
}
catch (Exception ex)
{
logger.LogError(ex, "");
result.IsSucceed = false;
return Task.FromResult(result);
}
}
}
}