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

127 lines
5.1 KiB
C#

using System.Data;
using YLErp.Configuration.Enums;
using YLErp.Modules.UnderlyingModule;
using YLErp.Office.ExcelModule;
namespace YLErp.Web.Controllers
{
public class StockBlackWhiteController : BaseController
{
public ActionResult StockBlackWhiteList(int tabIndex = (int)StockBlackWhiteEnum.黑名单)
{
ViewBag.TabIndex = tabIndex;
return View();
}
public ActionResult AddStockBlackWhite()
{
return View(new StockBlackWhite());
}
public JsonResult StockBlackWhiteAddJson(StockBlackWhite data, bool checkStatus)
{
new StockBlackWhiteService(CurUser).StockBlackWhiteAddJson(new List<StockBlackWhite> { data }, checkStatus);
return JsonSuccess();
}
public JsonResult StockBlackWhiteQuery(StockBlackWhiteQuery req)
{
var sList = new StockBlackWhiteService(CurUser).SearchList(req, req.BlackWhiteState == 1);
return Json(sList);
}
public FileContentResult StockBlackWhiteExport(StockBlackWhiteQuery req)
{
req.page = 1;
req.rows = 100000;
SearchListResult<StockBlackWhite> sList = null;
try
{
sList = new StockBlackWhiteService(CurUser).SearchList(req);
var templateFile = OtcAppContext.MapPath("~/App_Docs/导出模板/个股黑(白)名单导出模板.xlsx");
var fileDownloadName = $"{(req.BlackWhiteState == 0 ? "个股黑名单" : "个股白名单")}_{DateTime.Now:yyyyMMddhhmmss}.xlsx";
var buffer =
ExcelGenerator.UseTemplateGenerator(templateFile)
.AddVariable(
new
{
optionList = sList.rows.Where(O => O.LimitRange == LimitRangeEnum.All || O.LimitRange == LimitRangeEnum.Option),
swapList = sList.rows.Where(O => O.LimitRange == LimitRangeEnum.All || O.LimitRange == LimitRangeEnum.Swap),
})
.GenerateBytes();
return File(buffer, xlsxMimeType, fileDownloadName);
}
catch (Exception ex)
{
throw new Exception("导出失败", ex);
}
}
public static List<SelectListItem> GetAllStockBlackWhiteType()
{
var AllClientType = new List<SelectListItem>()
{
new SelectListItem(){
Text = StockBlackWhiteEnum.黑名单.ToString(),
Value =((int)StockBlackWhiteEnum.黑名单).ToString()
},
new SelectListItem(){
Text = StockBlackWhiteEnum.白名单.ToString(),
Value =((int)StockBlackWhiteEnum.白名单).ToString()
}
};
return AllClientType;
}
public static List<SelectListItem> GetAllLimitRangeType()
{
var AllClientType =
EnumHelper.GetDescriptionsByEnum(typeof(LimitRangeEnum))
.Select(O => new SelectListItem() { Text = O.Key, Value = O.Value })
.ToList();
return AllClientType;
}
public ActionResult DeleteStockBlackWhite(IEnumerable<int> optionIds, IEnumerable<int> swapIds, int blackWhiteState)
{
if ((optionIds == null || !optionIds.Any()) && (swapIds == null || !swapIds.Any()))
{
return JsonError("没有要删除的标的");
}
var service = new StockBlackWhiteService(CurUser);
if (optionIds?.Any() == true)
{
service.DeleteStockBlackWhite(optionIds, LimitRangeEnum.Option, blackWhiteState);
}
if (swapIds?.Any() == true)
{
service.DeleteStockBlackWhite(swapIds, LimitRangeEnum.Swap, blackWhiteState);
}
return JsonSuccess("删除成功");
}
/// <summary>
/// 导入个股黑白名单
/// </summary>
[HttpPost]
public ActionResult UploadSettlementBill(int blackWhiteState, bool checkStatus)
{
try
{
var file = Request.Form.Files[0];
if (file == null || string.IsNullOrWhiteSpace(file.FileName))
{
return JsonError("未获取上传文件");
}
var fileExtension = Path.GetExtension(file.FileName);
using var stream = file.OpenReadStream();
var Result = new StockBlackWhiteService(CurUser).ImportStockBlackWhitePublic(stream, blackWhiteState, checkStatus);
return JsonSuccess("导入成功");
}
catch (ServiceException ex)
{
return JsonError(ex.Message);
}
catch (Exception ex)
{
LogFactory.GetLogger("导入个股黑白名单").Error("导入黑白名单出错", ex);
return JsonError(ex.Message);
}
}
}
}