///////////////////////////////////////////////////////////////////////////////// // 宁波拓通e智造平台 ToTong Next Builder // // https://git.tuotong-tech.com/tnb/tnb-server // ///////////////////////////////////////////////////////////////////////////////// using JNPF.Common.Security; using Mapster; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; using Tnb.Core; using Tnb.Vengine.DataAccess; using Tnb.Vengine.Domain; namespace Tnb.Vengine.AppService; /// /// 增删改查基类 /// [Authorize] [ApiDescriptionSettings(Tag = ModuleConst.Tag, Area = ModuleConst.Area, Order = 100)] [Route("/")] public class VengineAppService : BaseAppService, IVengineAppService { private readonly IDataAccess _dataAccess; private readonly ISqlSugarClient _db; /// /// 构造函数 /// public VengineAppService(IDataAccess da) { _dataAccess = da; _db = _dataAccess.GetSqlSugar(); } #region 按模型的id进行增删改查接口 /// /// 获取一条 数据信息 /// [HttpGet("api/[area]/[controller]/{vmid}/get")] public async Task GetAsync(string vmid, VmGetInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid, true); VmQueryInput arg = input.Adapt(); if (input.id != null) { if (arg.q == null) arg.q = new DObject(); arg.q.Add(vm.GetPrimary().code, input.id); } var ls = await _dataAccess.QueryDataAsync(vm, arg); return ls.items.FirstOrDefault(); } /// /// 获取多条 数据列表 /// [HttpGet("api/[area]/[controller]/{vmid}/get-list")] public async Task GetListAsync(string vmid, VmGetListInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid, true); VmQueryInput arg = input.Adapt(); if (!string.IsNullOrEmpty(input.q)) { arg.q = input.q.ToObject(); } var ls = await _dataAccess.QueryDataAsync(vm, arg); return ls; } /// /// 获取多条 数据列表 /// [HttpPost("api/[area]/[controller]/{vmid}/query")] public async Task QueryAsync(string vmid, VmQueryInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid, true); var ls = await _dataAccess.QueryDataAsync(vm, input); return ls; } /// /// 新增 数据 /// [HttpPost("api/[area]/[controller]/{vmid}/create")] public async Task CreateAsync(string vmid, VmCreateInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid); var ret = await _dataAccess.CreateDataAsync(vm, input); return ret; } /// /// 更新 数据 /// [HttpPut("api/[area]/[controller]/{vmid}/update")] public async Task UpdateAsync(string vmid, VmUpdateInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid); var ret = await _dataAccess.UpdateDataAsync(vm, input); return ret; } /// /// 删除 数据 /// [HttpDelete("api/[area]/[controller]/{vmid}/delete")] public async Task DeleteAsync(string vmid, VmDeleteInput input) { var vm = await _dataAccess.GetVmodelAsync(vmid); var ret = await _dataAccess.DeleteDataAsync(vm, input); return ret; } #endregion #region 按模型的areaCode和vmcode进行增删改查接口 private async Task GetVmodelAsync(string areaCode, string vmCode) { var vm = await _dataAccess.GetVmodelAsync(areaCode, vmCode, false); return vm; } /// /// 获取一条 数据信息 /// [HttpGet("api/{areaCode}/{vmCode}/get")] public async Task GetAsync(string areaCode, string vmCode, VmGetInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); VmQueryInput arg = input.Adapt(); if (input.id != null) { if (arg.q == null) arg.q = new DObject(); arg.q.Add(vm.GetPrimary().code, input.id); } var ls = await _dataAccess.QueryDataAsync(vm, arg); return ls.items.FirstOrDefault(); } /// /// 获取多条 数据列表 /// [HttpGet("api/{areaCode}/{vmCode}/get-list")] public async Task GetListAsync(string areaCode, string vmCode, VmGetListInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); VmQueryInput arg = input.Adapt(); if (!string.IsNullOrEmpty(input.q)) { arg.q = input.q.ToObject(); } var ls = await _dataAccess.QueryDataAsync(vm, arg); return ls; } /// /// 获取多条 数据列表 /// [HttpPost("api/{areaCode}/{vmCode}/query")] public async Task QueryAsync(string areaCode, string vmCode, VmQueryInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); var ls = await _dataAccess.QueryDataAsync(vm, input); return ls; } /// /// 新增 数据 /// [HttpPost("api/{areaCode}/{vmCode}/create")] public async Task CreateAsync(string areaCode, string vmCode, VmCreateInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); var ret = await _dataAccess.CreateDataAsync(vm, input); return ret; } /// /// 更新 数据 /// [HttpPut("api/{areaCode}/{vmCode}/update")] public async Task UpdateAsync(string areaCode, string vmCode, VmUpdateInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); var ret = await _dataAccess.UpdateDataAsync(vm, input); return ret; } /// /// 删除 数据 /// [HttpDelete("api/{areaCode}/{vmCode}/delete")] public async Task DeleteAsync(string areaCode, string vmCode, VmDeleteInput input) { var vm = await GetVmodelAsync(areaCode, vmCode); var ret = await _dataAccess.DeleteDataAsync(vm, input); return ret; } #endregion }