199 lines
5.9 KiB
C#
199 lines
5.9 KiB
C#
![]() |
// WTM默认页面 Wtm buidin page
|
||
|
using System;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using System.Threading.Tasks;
|
||
|
using Microsoft.AspNetCore.Mvc;
|
||
|
using WalkingTec.Mvvm.Core;
|
||
|
using WalkingTec.Mvvm.Core.Extensions;
|
||
|
using WalkingTec.Mvvm.Mvc;
|
||
|
using WalkingTec.Mvvm.Mvc.Admin.ViewModels.FrameworkRoleVMs;
|
||
|
|
||
|
namespace WalkingTec.Mvvm.Admin.Api
|
||
|
{
|
||
|
[AuthorizeJwtWithCookie]
|
||
|
[ActionDescription("_Admin.RoleApi")]
|
||
|
[ApiController]
|
||
|
[Route("api/_[controller]")]
|
||
|
public class FrameworkRoleController : BaseApiController
|
||
|
{
|
||
|
[ActionDescription("Sys.Search")]
|
||
|
[HttpPost("[action]")]
|
||
|
public string Search(FrameworkRoleSearcher searcher)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleListVM>();
|
||
|
vm.Searcher = searcher;
|
||
|
return vm.GetJson();
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.Get")]
|
||
|
[HttpGet("{id}")]
|
||
|
public FrameworkRoleVM Get(Guid id)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleVM>(id);
|
||
|
return vm;
|
||
|
}
|
||
|
|
||
|
[ActionDescription("GetPageActions")]
|
||
|
[HttpGet("[action]/{id}")]
|
||
|
[AllRights]
|
||
|
public FrameworkRoleMDVM2 GetPageActions(Guid id)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleMDVM2>(id);
|
||
|
return vm;
|
||
|
}
|
||
|
|
||
|
[ActionDescription("_Admin.PageFunction")]
|
||
|
[HttpPut("[action]")]
|
||
|
public async Task<IActionResult> EditPrivilege(FrameworkRoleMDVM2 vm)
|
||
|
{
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
await vm.DoChangeAsync();
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return Ok(vm.Entity);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.Create")]
|
||
|
[HttpPost("[action]")]
|
||
|
public IActionResult Add(FrameworkRoleVM vm)
|
||
|
{
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
vm.DoAdd();
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return Ok(vm.Entity);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.Edit")]
|
||
|
[HttpPut("[action]")]
|
||
|
public IActionResult Edit(FrameworkRoleVM vm)
|
||
|
{
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
vm.DoEdit(false);
|
||
|
if (!ModelState.IsValid)
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return Ok(vm.Entity);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[HttpPost("BatchDelete")]
|
||
|
[ActionDescription("Sys.Delete")]
|
||
|
public async Task<IActionResult> BatchDelete(string[] ids)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleBatchVM>();
|
||
|
List<string> RoleCode = new List<string>();
|
||
|
if (ids != null && ids.Count() > 0)
|
||
|
{
|
||
|
RoleCode = DC.Set<FrameworkRole>().CheckIDs(new List<string>(ids)).Select(x => x.RoleCode).ToList();
|
||
|
vm.Ids = ids;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return Ok();
|
||
|
}
|
||
|
if (!ModelState.IsValid || !vm.DoBatchDelete())
|
||
|
{
|
||
|
return BadRequest(ModelState.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
var ur = DC.Set<FrameworkUserRole>().Where(x => RoleCode.Contains(x.RoleCode)).ToList();
|
||
|
var itcodes = ur.Select(x => x.UserCode).ToArray();
|
||
|
DC.Set<FrameworkUserRole>().RemoveRange(ur);
|
||
|
DC.SaveChanges();
|
||
|
await Wtm.RemoveUserCache(itcodes);
|
||
|
return Ok(ids.Count());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.Export")]
|
||
|
[HttpPost("[action]")]
|
||
|
public IActionResult ExportExcel(FrameworkRoleSearcher searcher)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleListVM>();
|
||
|
vm.Searcher = searcher;
|
||
|
vm.SearcherMode = ListVMSearchModeEnum.Export;
|
||
|
return vm.GetExportData();
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.ExportByIds")]
|
||
|
[HttpPost("[action]")]
|
||
|
public IActionResult ExportExcelByIds(string[] ids)
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleListVM>();
|
||
|
if (ids != null && ids.Count() > 0)
|
||
|
{
|
||
|
vm.Ids = new List<string>(ids);
|
||
|
vm.SearcherMode = ListVMSearchModeEnum.CheckExport;
|
||
|
}
|
||
|
return vm.GetExportData();
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.DownloadTemplate")]
|
||
|
[HttpGet("[action]")]
|
||
|
public IActionResult GetExcelTemplate()
|
||
|
{
|
||
|
var vm = Wtm.CreateVM<FrameworkRoleImportVM>();
|
||
|
var qs = new Dictionary<string, string>();
|
||
|
foreach (var item in Request.Query.Keys)
|
||
|
{
|
||
|
qs.Add(item, Request.Query[item]);
|
||
|
}
|
||
|
vm.SetParms(qs);
|
||
|
var data = vm.GenerateTemplate(out string fileName);
|
||
|
return File(data, "application/vnd.ms-excel", fileName);
|
||
|
}
|
||
|
|
||
|
[ActionDescription("Sys.Import")]
|
||
|
[HttpPost("[action]")]
|
||
|
public ActionResult Import(FrameworkRoleImportVM vm)
|
||
|
{
|
||
|
|
||
|
if (vm.ErrorListVM.EntityList.Count > 0 || !vm.BatchSaveData())
|
||
|
{
|
||
|
return BadRequest(vm.GetErrorJson());
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
return Ok(vm.EntityList.Count);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
}
|