key1_beacon_api/ARW.WebApi/Controllers/Business/TableDataManage/TableDatas/TableDataController.cs
2023-11-23 14:17:53 +08:00

181 lines
7.9 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Infrastructure;
using Infrastructure.Attribute;
using Infrastructure.Enums;
using Infrastructure.Model;
using Mapster;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ARW.Admin.WebApi.Extensions;
using ARW.Admin.WebApi.Filters;
using ARW.Common;
using ARW.Model.Dto.Business.TableDataManage.TableDatas;
using ARW.Service.Business.IBusinessService.TableDataManage.TableDatas;
using ARW.Admin.WebApi.Controllers;
using ARW.Model.Models.Business.TableDataManage.TableDatas;
using ARW.Model.Vo.Business.TableDataManage.TableDatas;
using Microsoft.AspNetCore.Authorization;
using ARW.Admin.WebApi.Framework;
namespace ARW.WebApi.Controllers.Business.TableDataManage.TableDatas
{
/// <summary>
/// 表格数据控制器
///
/// @author lwh
/// @date 2023-11-22
/// </summary>
[Verify]
[Route("business/[controller]")]
public class TableDataController : BaseController
{
private readonly ITableDataService _TableDataService;
/// <summary>
/// 依赖注入
/// </summary>
/// <param name="TableDataService">表格数据服务</param>
public TableDataController(ITableDataService TableDataService)
{
_TableDataService = TableDataService;
}
/// <summary>
/// 获取表格数据列表
/// </summary>
/// <param name="parm">查询参数</param>
/// <returns></returns>
[HttpGet("getTableDataList")]
[ActionPermissionFilter(Permission = "business:tabledata:list")]
public async Task<IActionResult> GetTableDataList([FromQuery] TableDataQueryDto parm)
{
var res = await _TableDataService.GetTableDataList(parm);
return SUCCESS(res);
}
/// <summary>
/// 添加或修改表格数据
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("addOrUpdateTableData")]
[ActionPermissionFilter(Permission = "business:tabledata:addOrUpdate")]
[Log(Title = "添加或修改表格数据", BusinessType = BusinessType.ADDORUPDATE)]
public async Task<IActionResult> AddOrUpdateTableData([FromBody] TableDataDto parm)
{
if (parm == null) { throw new CustomException("请求参数错误"); }
var modal = new TableData();
if (parm.TableDataId != 0) modal = parm.Adapt<TableData>().ToUpdate(HttpContext);
else modal = parm.Adapt<TableData>().ToCreate(HttpContext);
var res = await _TableDataService.AddOrUpdateTableData(modal, parm);
return SUCCESS(res);
}
/// <summary>
/// 删除表格数据
/// </summary>
/// <returns></returns>
[HttpDelete("{ids}")]
[ActionPermissionFilter(Permission = "business:tabledata:delete")]
[Log(Title = "表格数据删除", BusinessType = BusinessType.DELETE)]
public IActionResult Delete(string ids)
{
long[] idsArr = Tools.SpitLongArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
var response = _TableDataService.Delete(idsArr);
return SUCCESS("删除成功!");
}
/// <summary>
/// 导入表格数据
/// </summary>
/// <param name="formFile">使用IFromFile必须使用name属性否则获取不到文件</param>
/// <param name="updateSupport">是否需要更新</param>
/// <returns></returns>
[HttpPost("importData")]
[Log(Title = "表格数据导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
[ActionPermissionFilter(Permission = "business:tabledata:import")]
public async Task<IActionResult> ImportExcel([FromForm(Name = "file")] IFormFile formFile, bool updateSupport)
{
var isUpdateSupport = updateSupport;
IEnumerable<TableDataVo> parm = ExcelHelper<TableDataVo>.ImportData(formFile.OpenReadStream());
var i = 0;
var msgList = new List<string>();
foreach (TableDataVo item in parm)
{
i++;
//var TableData = await _TableDataService.HandleImportData(item);
//var modal = TableData.Adapt<TableData>().ToCreate(HttpContext);
var user = JwtUtil.GetLoginUser(App.HttpContext).UserName;
var msg = await _TableDataService.ImportExcel(item, i, isUpdateSupport, user);
msgList.Add(msg);
}
return SUCCESS(msgList.ToArray());
}
/// <summary>
/// 表格数据导入模板下载
/// </summary>
/// <returns></returns>
[HttpGet("importTemplate")]
[Log(Title = "表格数据模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = false, IsSaveResponseData = false)]
[AllowAnonymous]
public IActionResult ImportTemplateExcel()
{
List<TableDataVo> TableData = new List<TableDataVo>();
MemoryStream stream = new MemoryStream();
// 示例数据
var values = new List<string>() { "房产,人工智能", "渤银理财理财分销对接代销系统采购项目", "渤银理财有限责任公司", "竞争性采购", "北京开科唯识技术股份有限公司", "总价", "https://www.jianyu360.cn/nologin/content/ABCY1xGZCkFAjg6RHt3cFxbCzMCEjJ3XGB1Kw4ZKDogcFFzcz9UCaI=.html", "22/11/2023", "23/11/2023", "北京开科唯识技术股份有限公司","31926", "是", "否", "是", "是", "", "渤银理财理财分销对接代销系统采购项目成交公示       受渤海银行股份有限公司委托金采联合北京招标有限公司于2022年8月4日以竞争性采购方式对渤银理财理财分销对接代销系统采购项目项目编号FUTC-2022-H031B组织了采购。现将成交供应商公布如下北京开科唯识技术股份有限公司为成交供应商。公示期限自2022年8月22日至2022年8月24日采购代理机构金采联合北京招标有限公司联系地址北京市西城区佟麟阁路95号尚信大厦联系人刘世平、刘松樵、谭永江代理机构联系方式13682015217、16622986307、010-51813597特此公告金采联合北京招标有限公司2022年8月19日", "100" };
string sFileName = DownloadImportTemplate(TableData, stream, "表格数据导入模板", values);
return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", $"{sFileName}");
}
/// <summary>
/// 导出表格数据
/// </summary>
/// <returns></returns>
[Log(Title = "表格数据导出", BusinessType = BusinessType.EXPORT, IsSaveResponseData = false)]
[HttpGet("exportTableData")]
[ActionPermissionFilter(Permission = "business:tabledata:export")]
public async Task<IActionResult> ExportExcel([FromQuery] TableDataQueryDto parm)
{
parm.PageSize = 10000;
var list = await _TableDataService.GetTableDataList(parm);
var data = list.Result;
// 选中数据
if (!string.IsNullOrEmpty(parm.ids))
{
int[] idsArr = Tools.SpitIntArrary(parm.ids);
var selectDataList = new List<TableDataVo>();
foreach (var item in idsArr)
{
var select_data = data.Where(s => s.TableDataId == item).First();
selectDataList.Add(select_data);
}
data = selectDataList;
}
// 导出数据处理
var handleData = await _TableDataService.HandleExportData(data);
string sFileName = ExportExcel(handleData, "TableData", "表格数据列表");
return SUCCESS(new { path = "/export/" + sFileName, fileName = sFileName });
}
}
}