/*
*接口编写处...
*如果接口需要做Action的权限验证,请在Action上使用属性
*如: [ApiActionPermission("Sys_PrintOptions",Enums.ActionPermissionOptions.Search)]
*/
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
using VolPro.Entity.DomainModels;
using VolPro.Sys.IServices;
using VolPro.Core.Print;
using VolPro.Sys.IRepositories;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using VolPro.Core.DbSqlSugar;
using VolPro.Core.Configuration;
using VolPro.Core.ManageUser;
using VolPro.Core.Tenancy;
namespace VolPro.Sys.Controllers
{
public partial class Sys_PrintOptionsController
{
private readonly ISys_PrintOptionsService _service;//访问业务代码
private readonly ISys_PrintOptionsRepository _repository;//访问业务代码
private readonly IHttpContextAccessor _httpContextAccessor;
[ActivatorUtilitiesConstructor]
public Sys_PrintOptionsController(
ISys_PrintOptionsService service,
IHttpContextAccessor httpContextAccessor,
ISys_PrintOptionsRepository repository
)
: base(service)
{
_service = service;
_repository = repository;
_httpContextAccessor = httpContextAccessor;
}
///
/// 获取数据源
///
///
[HttpGet, Route("getSelect")]
public IActionResult GetSelect()
{
var data = PrintContainer.GetSelect();
return Json(data);
}
[HttpGet, Route("getPrintFields")]
public IActionResult GetPrintFields(string table)
{
var data = PrintContainer.GetOptions(table);
return Json(data);
}
///
/// 获取打印模板
///
///
///
[HttpGet, Route("getPrintTemplateName")]
public async Task GetPrintTemplateName(string table)
{
var data = await _repository.FindAsIQueryable(x => x.TableName == table)
.WhereIF(AppSetting.UseDynamicShareDB, x => x.DbServiceId == UserContext.CurrentServiceId)
.FilterTenancy()
.OrderByDescending(x => x.CreateDate)
.Select(x => new
{
id = x.PrintOptionsId,
name = x.CustomName
}).ToListAsync();
return Json(data);
}
[HttpGet, Route("getPrintDetail")]
public async Task GetPrintDetail(Guid id)
{
var data = await _repository.FindAsIQueryable(x => x.PrintOptionsId == id)
.FirstOrDefaultAsync();
return Json(data);
}
///
/// 获取打印数据
///
///
///
[HttpPost, Route("getPrintData")]
public async Task GetPrintData([FromBody] PrintQuery query)
{
var data = await PrintContainer.GetPrintDataAsync(query);
return JsonNormal(data);
}
}
}