|
|
|
@ -32,6 +32,8 @@ using Myshipping.Core.Service;
|
|
|
|
|
using System.Reflection.Emit;
|
|
|
|
|
using Myshipping.Application.Service.DataSync.Dto;
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
|
using Myshipping.Application.Service.BookingOrder.Dto;
|
|
|
|
|
using Myshipping.Application.Enum;
|
|
|
|
|
|
|
|
|
|
namespace Myshipping.Application
|
|
|
|
|
{
|
|
|
|
@ -64,6 +66,7 @@ namespace Myshipping.Application
|
|
|
|
|
private readonly SqlSugarRepository<RelaPortCarrierLane> _relaPortLane;
|
|
|
|
|
private readonly ICommonDBService _commonDBService;
|
|
|
|
|
private readonly SqlSugarRepository<CodeForwarder> _codeForwarder;
|
|
|
|
|
private readonly SqlSugarRepository<BookingFile> _bookingfile;
|
|
|
|
|
private readonly SqlSugarRepository<DjyWebsiteAccountConfig> _accountconfig;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -75,7 +78,7 @@ namespace Myshipping.Application
|
|
|
|
|
SqlSugarRepository<BookingGoodsStatus> goodsStatus, SqlSugarRepository<BookingGoodsStatusConfig> goodsStatusConfig, SqlSugarRepository<DjyTenantLine> repline,
|
|
|
|
|
SqlSugarRepository<BookingRemark> bookingremark, SqlSugarRepository<MappingCarrier> mapcarrier, SqlSugarRepository<CodeForwarder> codeForwarder,
|
|
|
|
|
SqlSugarRepository<CodePort> codePortRep, SqlSugarRepository<CodeLane> codeLaneRep, ICommonDBService commonDBService, SqlSugarRepository<RelaPortCarrierLane> relaPortLane,
|
|
|
|
|
SqlSugarRepository<DjyWebsiteAccountConfig> accountconfig)
|
|
|
|
|
SqlSugarRepository<DjyWebsiteAccountConfig> accountconfig, SqlSugarRepository<BookingFile> bookingfile)
|
|
|
|
|
{
|
|
|
|
|
this._logger = logger;
|
|
|
|
|
this._rep = rep;
|
|
|
|
@ -100,7 +103,8 @@ namespace Myshipping.Application
|
|
|
|
|
this._commonDBService = commonDBService;
|
|
|
|
|
this._relaPortLane = relaPortLane;
|
|
|
|
|
this._codeForwarder = codeForwarder;
|
|
|
|
|
this._accountconfig= accountconfig;
|
|
|
|
|
this._accountconfig = accountconfig;
|
|
|
|
|
this._bookingfile = bookingfile;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2080,7 +2084,8 @@ namespace Myshipping.Application
|
|
|
|
|
|
|
|
|
|
accountConfig = await _accountconfig.AsQueryable().InnerJoin<SysUser>((d, t) => d.TenantId == t.TenantId).Where((d, t) => d.TypeCode == TypeCode && t.TenantId == UserManager.TENANT_ID && d.IsTenant == true).FirstAsync();
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
accountConfig = await _accountconfig.FirstOrDefaultAsync(x => x.TypeCode == TypeCode && x.CreatedUserId == UserId);
|
|
|
|
|
}
|
|
|
|
|
return accountConfig;
|
|
|
|
@ -2094,12 +2099,69 @@ namespace Myshipping.Application
|
|
|
|
|
public dynamic GetParamValue()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
var list = _cache.GetAllTenantParam().Result.Where( x=>x.TenantId == UserManager.TENANT_ID).OrderBy(x => x.Sort).ToList();
|
|
|
|
|
var list = _cache.GetAllTenantParam().Result.Where(x => x.TenantId == UserManager.TENANT_ID).OrderBy(x => x.Sort).ToList();
|
|
|
|
|
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 挂载订舱文件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="file"></param>
|
|
|
|
|
/// <param name="dto"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost("/DataSync/AddFile"), ApiUser(ApiCode = "AddFile")]
|
|
|
|
|
public async Task AddFile(IFormFile file, [FromForm] BookingFileDto dto)
|
|
|
|
|
{
|
|
|
|
|
//未上传文件
|
|
|
|
|
if (file == null || file.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
throw Oops.Bah(BookingErrorCode.BOOK200);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var opt = App.GetOptions<BookingAttachOptions>();
|
|
|
|
|
var originalFilename = file.FileName; // 文件原始名称
|
|
|
|
|
var fileSuffix = Path.GetExtension(file.FileName).ToLower(); // 文件后缀
|
|
|
|
|
if (!opt.fileType.Contains(fileSuffix))
|
|
|
|
|
{
|
|
|
|
|
throw Oops.Bah(BookingErrorCode.BOOK114);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var dirAbs = string.Empty;
|
|
|
|
|
if (string.IsNullOrEmpty(opt.basePath))
|
|
|
|
|
{
|
|
|
|
|
dirAbs = Path.Combine(App.WebHostEnvironment.WebRootPath, opt.relativePath);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
dirAbs = Path.Combine(opt.basePath, opt.relativePath);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!Directory.Exists(dirAbs))
|
|
|
|
|
Directory.CreateDirectory(dirAbs);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 先存库获取Id
|
|
|
|
|
var id = YitIdHelper.NextId();
|
|
|
|
|
var fileSaveName = $"{id}{fileSuffix}".ToLower();
|
|
|
|
|
var fileRelaPath = Path.Combine(opt.relativePath, fileSaveName).ToLower();
|
|
|
|
|
var fileAbsPath = Path.Combine(dirAbs, fileSaveName).ToLower();
|
|
|
|
|
var newFile = new BookingFile
|
|
|
|
|
{
|
|
|
|
|
Id = id,
|
|
|
|
|
FileName = originalFilename,
|
|
|
|
|
FilePath = fileRelaPath,
|
|
|
|
|
TypeCode = dto.TypeCode,
|
|
|
|
|
TypeName = dto.TypeName,
|
|
|
|
|
BookingId = dto.BookingId,
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
await _bookingfile.InsertAsync(newFile);
|
|
|
|
|
using (var stream = File.Create(fileAbsPath))
|
|
|
|
|
{
|
|
|
|
|
await file.CopyToAsync(stream);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|