Files
zszq-trs/YLErpWeb/Controllers/SwapFloatRateController.cs
2024-05-09 14:06:26 +08:00

142 lines
4.8 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Org.BouncyCastle.Ocsp;
using YLErp.Configuration.Enums;
using YLErp.DBModels.Consts;
using YLErp.Model.Enum;
using YLErp.Modules.ClientModule;
using YLErp.Modules.SwapModule;
using YLErp.Modules.TradeModule.QueryModule;
namespace YLErp.Web.Controllers
{
public class SwapFloatRateController : BaseController
{
/// <summary>
/// 互换浮动利率
/// </summary>
/// <returns></returns>
[MyAuthorize("互换簿记预设-浮动利率")]
public ActionResult Index(int? tabIndex)
{
ViewBag.TabIndex = (int)ConstSwapFloatRateEnum.Normal;
return View();
}
public ActionResult SpecialIndex()
{
ViewBag.TabIndex = (int)ConstSwapFloatRateEnum.Special;
return View("Index");
}
/// <summary>
/// 编辑
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
public ActionResult Edit(int? rateMode, string enid)
{
int rateType= (int)ConstSwapFloatRateEnum.Normal;
if (rateMode >0)
{
rateType = (int)ConstSwapFloatRateEnum.Special;
}
if (string.IsNullOrEmpty(enid))
{
var addmodel = new SwapFloatRate();
addmodel.RateMode = rateType;
return View(addmodel);
}
var intid = DecryptInt(enid);
var model = new SwapFloatRateService(CurUser).GetSwapFloatRate(intid);
return View(model);
}
/// <summary>
/// 详细
/// </summary>
/// <param name="enid"></param>
/// <returns></returns>
public ActionResult Detail(string enid)
{
var intid = DecryptInt(enid);
return View(new SwapFloatRateService(CurUser).GetSwapFloatRate(intid));
}
/// <summary>
/// 获取互换浮动利率列表
/// </summary>
/// <returns></returns>
public JsonResult GetSwapFloatRateList(SwapFloatRateSearchRequest req)
{
var SwapFloatRateList = new SwapFloatRateService(CurUser).SearchList(req);
return Json(SwapFloatRateList);
}
/// <summary>
/// 保存互浮动换费率
/// </summary>
/// <returns></returns>
public JsonResult SaveSwapFloatRate(SwapFloatRate req)
{
new SwapFloatRateService(CurUser).SaveSwapFloatRate(req);
return JsonSuccess("");
}
/// <summary>
/// 删除互换浮动利率
/// </summary>
/// <returns></returns>
public JsonResult DeleteSwapFloatRate(string enid)
{
var intid = DecryptInt(enid);
new SwapFloatRateService(CurUser).DeleteSwapFloatRate(intid);
return JsonSuccess("");
}
/// <summary>
/// 匹配最适用的浮动利率
/// </summary>
/// <param name="clientId"></param>
/// <param name="underlyingCode"></param>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
public JsonResult MatchRate(MatchRateRequest req)
{
var floatRate= new SwapFloatRateService(CurUser).MatchRate(req.clientId, req.underlyingCode, req.startDate, req.endDate);
return JsonSuccess("", floatRate);
}
/// <summary>
/// 互换浮动利率导入
/// </summary>
/// <returns></returns>
public JsonResult ImportSwapFloatRate()
{
if (Request.Form.Files.Count == 0)
{
return JsonError("上传文件不存在");
}
var file = Request.Form.Files[0];
if (!System.IO.Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase))
{
return JsonError("请上传.xlsx格式文件");
}
using var stream = file.OpenReadStream();
new SwapFloatRateService(CurUser).ImportSwapFloatRateFromExcel(stream, out var TotalNum, out var SuccessNum);
return Json(new
{
success = true,
totalNum = TotalNum,
successNum = SuccessNum
});
}
/// <summary>
/// 互换浮动利率导出
/// </summary>
/// <param name="req"></param>
/// <returns></returns>
public object ExportSwapFloatRate(SwapFloatRateSearchRequest req)
{
req.page = 1;
req.rows = 10000;
var bytes = new SwapFloatRateService(CurUser).exprotSwapFloatRateExcel(req);
return File(bytes, xlsxMimeType, $"浮动利率信息_{DateTime.Now:yyyyMMddHHmmss}.xlsx");
}
}
}