You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
BookingHeChuan/Myshipping.Core/Service/CommonDB/CommonDBService.cs

464 lines
14 KiB
C#

2 years ago
using Furion.DependencyInjection;
2 years ago
using Furion.DynamicApiController;
using Furion.FriendlyException;
using Myshipping.Core.Entity;
using Mapster;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using System;
namespace Myshipping.Core.Service;
/// <summary>
/// 公共库
/// </summary>
[ApiDescriptionSettings(Name = "CommonDB", Order = 1000)]
public class CommonDBService : ICommonDBService, IDynamicApiController, ITransient
{
private readonly SqlSugarRepository<CodeCarrier> _codeCarrierRep;
2 years ago
private readonly SqlSugarRepository<MappingCarrier> _mappingCarrierRep;
2 years ago
private readonly SqlSugarRepository<CodeVessel> _codeVesselRep;
private readonly SqlSugarRepository<CodeForwarder> _codeForwarderRep;
private readonly SqlSugarRepository<CodeYard> _codeYardRep;
private readonly SqlSugarRepository<CodePortLoad> _codePortLoadrRep;
private readonly SqlSugarRepository<CodePort> _codePortRep;
private readonly SqlSugarRepository<CodePackage> _codePackageRep;
private readonly SqlSugarRepository<CodeService> _codeServiceRep;
private readonly SqlSugarRepository<CodeCtn> _codeCtnRep;
private readonly SqlSugarRepository<CodeFrt> _codeFrtRep;
2 years ago
private readonly ISysCacheService _sysCacheService;
public CommonDBService(SqlSugarRepository<CodeCarrier> codeCarrierRep,
SqlSugarRepository<CodeVessel> codeVesselRep,
SqlSugarRepository<CodeForwarder> codeForwarderRep,
SqlSugarRepository<CodeYard> codeYardRep,
SqlSugarRepository<CodePortLoad> codePortLoadrRep,
SqlSugarRepository<CodePort> codePortRep,
SqlSugarRepository<CodePackage> codePackageRep,
SqlSugarRepository<CodeService> codeServiceRep,
SqlSugarRepository<CodeCtn> codeCtnRep,
SqlSugarRepository<CodeFrt> codeFrtRep,
2 years ago
SqlSugarRepository<MappingCarrier> mappingCarrierRep,
2 years ago
ISysCacheService sysCacheService)
{
_codeCarrierRep = codeCarrierRep;
_codeVesselRep = codeVesselRep;
_codeForwarderRep = codeForwarderRep;
_codeYardRep = codeYardRep;
_codePortLoadrRep = codePortLoadrRep;
_codePortRep = codePortRep;
_codePackageRep = codePackageRep;
_codeServiceRep = codeServiceRep;
_codeCtnRep = codeCtnRep;
_codeFrtRep = codeFrtRep;
2 years ago
_mappingCarrierRep = mappingCarrierRep;
2 years ago
_sysCacheService = sysCacheService;
2 years ago
2 years ago
}
2 years ago
#region 船公司
2 years ago
/// <summary>
/// 获取船公司列表信息
/// </summary>
[HttpGet("/commondb/carrierlist")]
public async Task<dynamic> CarrierList([FromQuery] CodeCnEnQueryDto input)
{
2 years ago
var list = await GetAllCarrier();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Code.Contains(input.Code, System.StringComparison.CurrentCultureIgnoreCase))
.WhereIF(!string.IsNullOrEmpty(input.CnName), x => x.Code.Contains(input.CnName))
.WhereIF(!string.IsNullOrEmpty(input.EnName), x => x.Code.Contains(input.EnName, System.StringComparison.CurrentCultureIgnoreCase));
2 years ago
return queryList.ToList();
}
/// <summary>
/// 新增船公司信息
/// </summary>
[HttpPost("/commondb/addcarrier")]
public async Task AddCarrier(CodeCarrier dto)
{
var entity = dto.Adapt<CodeCarrier>();
await _codeCarrierRep.InsertAsync(entity);
await GetAllCarrier();
}
/// <summary>
/// 获取船公司映射列表信息
/// </summary>
[HttpGet("/commondb/mappingcarrierlist")]
public async Task<dynamic> MappingCarrierList([FromQuery] MappingQueryDto input)
{
var list = await GetAllMappingCarrier();
2 years ago
2 years ago
var queryList = list
.WhereIF(!string.IsNullOrEmpty(input.Code), x => x.Code.Contains(input.Code, System.StringComparison.CurrentCultureIgnoreCase))
.WhereIF(!string.IsNullOrEmpty(input.MapCode), x => x.MapCode.Contains(input.MapCode, System.StringComparison.CurrentCultureIgnoreCase))
.WhereIF(!string.IsNullOrEmpty(input.Module), x => x.Module == input.Module)
.WhereIF(!string.IsNullOrEmpty(input.MapName), x => x.Code.Contains(input.MapName, System.StringComparison.CurrentCultureIgnoreCase));
2 years ago
return queryList.ToList();
}
2 years ago
/// <summary>
/// 新增编辑船公司映射信息
/// </summary>
[HttpPost("/commondb/addorupdatecarrier")]
public async Task AddOrUpdateCarrier(MappingCarrier dto)
{
var entity = dto.Adapt<MappingCarrier>();
if (string.IsNullOrWhiteSpace(dto.GID))
{
await _mappingCarrierRep.InsertAsync(entity);
}
else
{
await _mappingCarrierRep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
await GetAllMappingCarrier();
}
#endregion
#region 船名
2 years ago
/// <summary>
/// 获取船名列表信息
/// </summary>
[HttpGet("/commondb/vessellist")]
public async Task<dynamic> VesselList([FromQuery] NameQueryDto input)
{
2 years ago
//数量太多,不允许查询全部
if (string.IsNullOrEmpty(input.Name) || input.Name.Length < 2)
{
return new List<CodeVessel>();
}
2 years ago
List<CodeVessel> list = await GetAllVessel();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
2 years ago
/// <summary>
/// 新增船名信息
/// </summary>
[HttpPost("/commondb/addvessel")]
public async Task AddVessel(CodeVessel dto)
{
var entity = dto.Adapt<CodeVessel>();
await _codeVesselRep.InsertAsync(entity);
}
#endregion
2 years ago
/// <summary>
/// 获取船代列表信息
/// </summary>
[HttpGet("/commondb/forwarderlist")]
public async Task<dynamic> ForwarderList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodeForwarder> list = await GetAllForwarder();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 获取场站列表信息
/// </summary>
[HttpGet("/commondb/yardlist")]
public async Task<dynamic> YardList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodeYard> list = await GetAllYard();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
2 years ago
/// <summary>
/// 获取起始港信息
/// </summary>
[HttpGet("/commondb/portloadlist")]
public async Task<dynamic> PortloadList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodePortLoad> list = await GetAllPortload();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.CnName.Contains(input.Name) || x.EnName.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 获取目的港信息
/// </summary>
[HttpGet("/commondb/portlist")]
public async Task<dynamic> PortList([FromQuery] NameQueryDto input)
{
//数量太多,不允许查询全部
if (string.IsNullOrEmpty(input.Name) || input.Name.Length < 2)
{
return new List<CodePortLoad>();
}
2 years ago
List<CodePort> list = await GetAllPort();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.CnName.Contains(input.Name) || x.EnName.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 获取包装信息
/// </summary>
[HttpGet("/commondb/package")]
public async Task<dynamic> PackageList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodePackage> list = await GetAllPackage();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 获取运输条款信息
/// </summary>
[HttpGet("/commondb/service")]
public async Task<dynamic> ServiceList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodeService> list = await GetAllService();
2 years ago
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 获取箱型信息
/// </summary>
[HttpGet("/commondb/ctn")]
public async Task<dynamic> CtnList([FromQuery] NameQueryDto input)
{
2 years ago
List<CodeCtn> list = await GetAllCtn();
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.Name.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
/// <summary>
/// 付费方式
/// </summary>
[HttpGet("/commondb/frt")]
public async Task<dynamic> FrtList([FromQuery] NameQueryDto input)
{
List<CodeFrt> list = await GetAllFrt();
var queryList = list.WhereIF(!string.IsNullOrEmpty(input.Name), x => x.CnName.Contains(input.Name) || x.EnName.Contains(input.Name, System.StringComparison.CurrentCultureIgnoreCase));
return queryList.ToList();
}
2 years ago
2 years ago
#region 实现接口,获取公共数据并缓存
[NonAction]
2 years ago
public async Task<List<CodeCarrier>> GetAllCarrier()
{
2 years ago
var list = await _codeCarrierRep.ToListAsync();
await _sysCacheService.SetAllCodeCarrier(list);
return list;
2 years ago
}
2 years ago
2 years ago
[NonAction]
public async Task<List<MappingCarrier>> GetAllMappingCarrier()
{
var list = await _mappingCarrierRep.ToListAsync();
await _sysCacheService.SetAllMappingCarrier(list);
return list;
}
[NonAction]
public async Task CacheMappingCarrier()
{
var list = await _mappingCarrierRep.ToListAsync();
await _sysCacheService.SetAllMappingCarrier(list);
}
[NonAction]
2 years ago
public async Task<List<CodeVessel>> GetAllVessel()
{
var list = await _sysCacheService.GetAllCodeVessel();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codeVesselRep.ToListAsync();
await _sysCacheService.SetAllCodeVessel(list);
2 years ago
return list;
}
}
2 years ago
public async Task CacheVessel()
{
var list = await _codeVesselRep.ToListAsync();
await _sysCacheService.SetAllCodeVessel(list);
}
[NonAction]
2 years ago
public async Task<List<CodeForwarder>> GetAllForwarder()
{
var list = await _sysCacheService.GetAllCodeForwarder();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codeForwarderRep.ToListAsync();
await _sysCacheService.SetAllCodeForwarder(list);
2 years ago
return list;
}
}
[NonAction]
2 years ago
public async Task<List<CodeYard>> GetAllYard()
{
var list = await _sysCacheService.GetAllCodeYard();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codeYardRep.ToListAsync();
await _sysCacheService.SetAllCodeYard(list);
2 years ago
return list;
}
}
[NonAction]
2 years ago
public async Task<List<CodePortLoad>> GetAllPortload()
{
var list = await _sysCacheService.GetAllCodePortLoad();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codePortLoadrRep.ToListAsync();
await _sysCacheService.SetAllCodePortLoad(list);
2 years ago
return list;
}
}
[NonAction]
2 years ago
public async Task<List<CodePort>> GetAllPort()
{
var list = await _sysCacheService.GetAllCodePort();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codePortRep.ToListAsync();
await _sysCacheService.SetAllCodePort(list);
2 years ago
return list;
}
}
[NonAction]
2 years ago
public async Task<List<CodePackage>> GetAllPackage()
{
var list = await _sysCacheService.GetAllCodePackage();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codePackageRep.ToListAsync();
await _sysCacheService.SetAllCodePackage(list);
2 years ago
return list;
}
}
[NonAction]
2 years ago
public async Task<List<CodeService>> GetAllService()
{
var list = await _sysCacheService.GetAllCodeService();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codeServiceRep.ToListAsync();
await _sysCacheService.SetAllCodeService(list);
2 years ago
return list;
}
2 years ago
}
2 years ago
[NonAction]
2 years ago
public async Task<List<CodeCtn>> GetAllCtn()
{
var list = await _sysCacheService.GetAllCodeCtn();
if (list != null && list.Count > 0)
2 years ago
{
return list;
2 years ago
}
else
{
list = await _codeCtnRep.ToListAsync();
await _sysCacheService.SetAllCodeCtn(list);
2 years ago
return list;
}
}
[NonAction]
public async Task<List<CodeFrt>> GetAllFrt()
{
var list = await _sysCacheService.GetAllCodeFrt();
if (list != null && list.Count > 0)
{
return list;
}
else
{
list = await _codeFrtRep.ToListAsync();
await _sysCacheService.SetAllCodeFrt(list);
return list;
}
}
2 years ago
#endregion
2 years ago
}