增加缓存
This commit is contained in:
Binary file not shown.
@@ -18,6 +18,7 @@ using Google.Protobuf.WellKnownTypes;
|
|||||||
using WMS.Web.Domain.Services;
|
using WMS.Web.Domain.Services;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using WMS.Web.Core.Dto;
|
||||||
|
|
||||||
namespace WMS.Web.Api.Controllers
|
namespace WMS.Web.Api.Controllers
|
||||||
{
|
{
|
||||||
@@ -33,13 +34,16 @@ namespace WMS.Web.Api.Controllers
|
|||||||
private readonly IProductInventoryRepositories _repositories;
|
private readonly IProductInventoryRepositories _repositories;
|
||||||
private readonly QiniuOptions _option;
|
private readonly QiniuOptions _option;
|
||||||
private readonly IExportExcelService _exportExcelService;
|
private readonly IExportExcelService _exportExcelService;
|
||||||
|
private readonly IProductInventoryService _roductInventoryService;
|
||||||
public ProductInventoryController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
public ProductInventoryController(ILoginService loginService, IBasicsRepositories basicsRepositories,
|
||||||
IProductInventoryRepositories repositories, IOptions<QiniuOptions> option, IExportExcelService exportExcelServic) {
|
IProductInventoryRepositories repositories, IOptions<QiniuOptions> option,
|
||||||
|
IExportExcelService exportExcelServic, IProductInventoryService roductInventoryService) {
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
_basicsRepositories = basicsRepositories;
|
_basicsRepositories = basicsRepositories;
|
||||||
_repositories = repositories;
|
_repositories = repositories;
|
||||||
_option = option?.Value;
|
_option = option?.Value;
|
||||||
_exportExcelService = exportExcelServic;
|
_exportExcelService = exportExcelServic;
|
||||||
|
_roductInventoryService = roductInventoryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -100,5 +104,19 @@ namespace WMS.Web.Api.Controllers
|
|||||||
|
|
||||||
return Task.FromResult(Result<string>.ReSuccess(res));
|
return Task.FromResult(Result<string>.ReSuccess(res));
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 刷新数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost]
|
||||||
|
[Route("Refresh")]
|
||||||
|
public async Task<Result> Refresh()
|
||||||
|
{
|
||||||
|
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
|
||||||
|
if (loginInfo == null || loginInfo.UserInfo == null)
|
||||||
|
return Result.ReFailure(ResultCodes.Token_Invalid_Error);
|
||||||
|
|
||||||
|
return await _roductInventoryService.Refresh();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -586,6 +586,12 @@
|
|||||||
<param name="dto"></param>
|
<param name="dto"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:WMS.Web.Api.Controllers.ProductInventoryController.Refresh">
|
||||||
|
<summary>
|
||||||
|
刷新数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:WMS.Web.Api.Controllers.SerialNumberController.Get(System.String)">
|
<member name="M:WMS.Web.Api.Controllers.SerialNumberController.Get(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取序列号信息
|
获取序列号信息
|
||||||
|
|||||||
@@ -12,5 +12,7 @@ namespace WMS.Web.Domain.IService
|
|||||||
Task<Result> LingXing();
|
Task<Result> LingXing();
|
||||||
Task<Result> Erp();
|
Task<Result> Erp();
|
||||||
Task<Result> JuShuiTan();
|
Task<Result> JuShuiTan();
|
||||||
|
|
||||||
|
Task<Result> Refresh();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Storage;
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
using Microsoft.Extensions.Logging;
|
||||||
using NPOI.POIFS.FileSystem;
|
using NPOI.POIFS.FileSystem;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -29,6 +30,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
public readonly IBasicsRepositories _transactionRepositories;
|
public readonly IBasicsRepositories _transactionRepositories;
|
||||||
public readonly IJuShuiTanService _juShuiTanService;
|
public readonly IJuShuiTanService _juShuiTanService;
|
||||||
public readonly IErpInventoryService _erpInventoryService;
|
public readonly IErpInventoryService _erpInventoryService;
|
||||||
|
private readonly ILogger<ProductInventoryService> _logger;
|
||||||
public ProductInventoryService(IErpService erpService,
|
public ProductInventoryService(IErpService erpService,
|
||||||
ISingleDataService singleDataService,
|
ISingleDataService singleDataService,
|
||||||
IErpBasicDataExtendService erpBasicDataExtendService,
|
IErpBasicDataExtendService erpBasicDataExtendService,
|
||||||
@@ -37,7 +39,8 @@ namespace WMS.Web.Domain.Services
|
|||||||
IBasicsRepositories basicsRepositories,
|
IBasicsRepositories basicsRepositories,
|
||||||
IBasicsRepositories transactionRepositories,
|
IBasicsRepositories transactionRepositories,
|
||||||
IJuShuiTanService juShuiTanService,
|
IJuShuiTanService juShuiTanService,
|
||||||
IErpInventoryService erpInventoryService)
|
IErpInventoryService erpInventoryService,
|
||||||
|
ILogger<ProductInventoryService> logger)
|
||||||
{
|
{
|
||||||
_erpService = erpService;
|
_erpService = erpService;
|
||||||
_singleDataService = singleDataService;
|
_singleDataService = singleDataService;
|
||||||
@@ -48,6 +51,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
_transactionRepositories = transactionRepositories;
|
_transactionRepositories = transactionRepositories;
|
||||||
_juShuiTanService = juShuiTanService;
|
_juShuiTanService = juShuiTanService;
|
||||||
_erpInventoryService = erpInventoryService;
|
_erpInventoryService = erpInventoryService;
|
||||||
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -273,5 +277,22 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<Result> Refresh()
|
||||||
|
{
|
||||||
|
_logger.LogInformation($"同步成品仓库存->开始 {DateTime.Now}");
|
||||||
|
|
||||||
|
var res = await this.Erp();
|
||||||
|
if(!res.IsSuccess)return res;
|
||||||
|
|
||||||
|
res = await this.JuShuiTan();
|
||||||
|
if (!res.IsSuccess) return res;
|
||||||
|
|
||||||
|
res = await this.LingXing();
|
||||||
|
if (!res.IsSuccess) return res;
|
||||||
|
|
||||||
|
_logger.LogInformation($"同步成品仓库存->结束 {DateTime.Now}");
|
||||||
|
return Result.ReSuccess();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ using System.Net;
|
|||||||
using System.Security.Cryptography;
|
using System.Security.Cryptography;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using WMS.Web.Core.Dto.Erp;
|
||||||
using WMS.Web.Core.Dto.JuShuiTan;
|
using WMS.Web.Core.Dto.JuShuiTan;
|
||||||
|
using WMS.Web.Core.Help;
|
||||||
using WMS.Web.Core.Internal.Results;
|
using WMS.Web.Core.Internal.Results;
|
||||||
using WMS.Web.Domain.IService.Public;
|
using WMS.Web.Domain.IService.Public;
|
||||||
using WMS.Web.Domain.Options;
|
using WMS.Web.Domain.Options;
|
||||||
@@ -26,7 +28,6 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
private readonly IMemoryCache _memoryCache;
|
private readonly IMemoryCache _memoryCache;
|
||||||
private int hours = 10;//过期时间 默认10小时
|
private int hours = 10;//过期时间 默认10小时
|
||||||
private readonly JuShuiTanOptions _option;
|
private readonly JuShuiTanOptions _option;
|
||||||
|
|
||||||
public JuShuiTanService(IHttpClientService httpClientService, ILogger<JuShuiTanService> logger,
|
public JuShuiTanService(IHttpClientService httpClientService, ILogger<JuShuiTanService> logger,
|
||||||
IMemoryCache memoryCache, IOptions<JuShuiTanOptions> option)
|
IMemoryCache memoryCache, IOptions<JuShuiTanOptions> option)
|
||||||
{
|
{
|
||||||
@@ -45,6 +46,10 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
|
|
||||||
public async Task<Result<List<JuShuiTanStockResponse>>> GetStock()
|
public async Task<Result<List<JuShuiTanStockResponse>>> GetStock()
|
||||||
{
|
{
|
||||||
|
var stock_list = _memoryCache.Get<List<JuShuiTanStockResponse>>("jushuitan_stock");
|
||||||
|
if (stock_list != null && stock_list.Count > 0)
|
||||||
|
return Result<List<JuShuiTanStockResponse>>.ReSuccess(stock_list);
|
||||||
|
|
||||||
List<JuShuiTanStockResponse> list = new List<JuShuiTanStockResponse>();
|
List<JuShuiTanStockResponse> list = new List<JuShuiTanStockResponse>();
|
||||||
|
|
||||||
JuShuiTanStockRequst request = new JuShuiTanStockRequst();
|
JuShuiTanStockRequst request = new JuShuiTanStockRequst();
|
||||||
@@ -70,6 +75,9 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
datas = JsonConvert.DeserializeObject<List<JuShuiTanStockResponse>>(json);
|
datas = JsonConvert.DeserializeObject<List<JuShuiTanStockResponse>>(json);
|
||||||
list.AddRange(datas);
|
list.AddRange(datas);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//设置缓存
|
||||||
|
_memoryCache.Set("jushuitan_stock", list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan())));
|
||||||
return Result<List<JuShuiTanStockResponse>>.ReSuccess(list);
|
return Result<List<JuShuiTanStockResponse>>.ReSuccess(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ using System.Reflection;
|
|||||||
using WMS.Web.Core.Help;
|
using WMS.Web.Core.Help;
|
||||||
using static System.Net.WebRequestMethods;
|
using static System.Net.WebRequestMethods;
|
||||||
using WMS.Web.Domain.Values;
|
using WMS.Web.Domain.Values;
|
||||||
|
using WMS.Web.Core.Dto.JuShuiTan;
|
||||||
|
|
||||||
namespace WMS.Web.Domain.Services.Public
|
namespace WMS.Web.Domain.Services.Public
|
||||||
{
|
{
|
||||||
@@ -71,6 +72,10 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result<List<LingXingStockResponse>>> GetStock()
|
public async Task<Result<List<LingXingStockResponse>>> GetStock()
|
||||||
{
|
{
|
||||||
|
var stock_list = _memoryCache.Get<List<LingXingStockResponse>>("lingxing_stock");
|
||||||
|
if (stock_list != null && stock_list.Count > 0)
|
||||||
|
return Result<List<LingXingStockResponse>>.ReSuccess(stock_list);
|
||||||
|
|
||||||
//默认获取本地仓库 如果需要海外仓 另外需传参数type
|
//默认获取本地仓库 如果需要海外仓 另外需传参数type
|
||||||
var request = new LingXingRequest();
|
var request = new LingXingRequest();
|
||||||
var resUrl = await GetStr<LingXingRequest>("/erp/sc/data/local_inventory/warehouse", request);
|
var resUrl = await GetStr<LingXingRequest>("/erp/sc/data/local_inventory/warehouse", request);
|
||||||
@@ -79,7 +84,11 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
var res = await _httpClientService.PostAsync<LingXingResponse>(resUrl.Data, JsonConvert.SerializeObject(request), null);
|
var res = await _httpClientService.PostAsync<LingXingResponse>(resUrl.Data, JsonConvert.SerializeObject(request), null);
|
||||||
if (res.Code != 0) return Result<List<LingXingStockResponse>>.ReFailure(ResultCodes.LingXingDataError);
|
if (res.Code != 0) return Result<List<LingXingStockResponse>>.ReFailure(ResultCodes.LingXingDataError);
|
||||||
|
|
||||||
return Result<List<LingXingStockResponse>>.ReSuccess(JsonConvert.DeserializeObject<List<LingXingStockResponse>>(res.Data.ToString()));
|
var list = JsonConvert.DeserializeObject<List<LingXingStockResponse>>(res.Data.ToString());
|
||||||
|
//设置缓存
|
||||||
|
_memoryCache.Set("lingxing_stock", list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan())));
|
||||||
|
|
||||||
|
return Result<List<LingXingStockResponse>>.ReSuccess(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -89,6 +98,10 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
/// <exception cref="NotImplementedException"></exception>
|
/// <exception cref="NotImplementedException"></exception>
|
||||||
public async Task<Result<List<LingXingSellerResponse>>> GetSeller()
|
public async Task<Result<List<LingXingSellerResponse>>> GetSeller()
|
||||||
{
|
{
|
||||||
|
var seller_list = _memoryCache.Get<List<LingXingSellerResponse>>("lingxing_seller");
|
||||||
|
if (seller_list != null && seller_list.Count > 0)
|
||||||
|
return Result<List<LingXingSellerResponse>>.ReSuccess(seller_list);
|
||||||
|
|
||||||
var request = new LingXingKongRequest();
|
var request = new LingXingKongRequest();
|
||||||
var resUrl = await GetStr<LingXingKongRequest>("/erp/sc/data/seller/lists", request);
|
var resUrl = await GetStr<LingXingKongRequest>("/erp/sc/data/seller/lists", request);
|
||||||
if (!resUrl.IsSuccess) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingUrlError);
|
if (!resUrl.IsSuccess) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingUrlError);
|
||||||
@@ -96,7 +109,11 @@ namespace WMS.Web.Domain.Services.Public
|
|||||||
var res = await _httpClientService.GetAsync<LingXingResponse>(resUrl.Data);
|
var res = await _httpClientService.GetAsync<LingXingResponse>(resUrl.Data);
|
||||||
if (res.Code != 0) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingDataError);
|
if (res.Code != 0) return Result<List<LingXingSellerResponse>>.ReFailure(ResultCodes.LingXingDataError);
|
||||||
|
|
||||||
return Result<List<LingXingSellerResponse>>.ReSuccess(JsonConvert.DeserializeObject<List<LingXingSellerResponse>>(res.Data.ToString()));
|
var list = JsonConvert.DeserializeObject<List<LingXingSellerResponse>>(res.Data.ToString());
|
||||||
|
//设置缓存
|
||||||
|
_memoryCache.Set("lingxing_seller", list, new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(DateTimeUtil.GetTotalMinutesTimeSpan())));
|
||||||
|
|
||||||
|
return Result<List<LingXingSellerResponse>>.ReSuccess(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user