diff --git a/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs b/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs new file mode 100644 index 0000000..26d6a53 --- /dev/null +++ b/ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using ARW.Model.Models.Business.ProductsInvolveds; + +namespace ARW.Model.Dto.Api.ProductsInvolveds +{ + + /// + /// 涉及产品查询对象Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + public class ProductsInvolvedQueryDtoApi : PagerInfo + { + public string ProductsInvolvedName { get; set; } + } + + + /// + /// 涉及产品详情输入对象Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + public class ProductsInvolvedDtoApi + { + [Required(ErrorMessage = "ProductsInvolvedGuid不能为空")] + public long ProductsInvolvedGuid { get; set; } + } + +} diff --git a/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs b/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs new file mode 100644 index 0000000..8318149 --- /dev/null +++ b/ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs @@ -0,0 +1,66 @@ +using Newtonsoft.Json; +using OfficeOpenXml.Attributes; +using SqlSugar; +using System; + +namespace ARW.Model.Vo.Api.ProductsInvolveds +{ + /// + /// 涉及产品展示对象Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + public class ProductsInvolvedVoApi + { + + + /// + /// 描述 : + /// + [EpplusIgnore] + public int ProductsInvolvedId { get; set; } + + + /// + /// 描述 : + /// + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long ProductsInvolvedGuid { get; set; } + + + /// + /// 描述 :名称 + /// + [EpplusTableColumn(Header = "名称")] + public string ProductsInvolvedName { get; set; } + + + /// + /// 描述 :排序 + /// + [EpplusTableColumn(Header = "排序")] + public int ProductsInvolvedSort { get; set; } + + } + + + /// + /// 涉及产品详情展示对象Api + /// + public class ProductsInvolvedApiDetailsVo + { + [EpplusIgnore] + public int ProductsInvolvedId { get; set; } + [JsonConverter(typeof(ValueToStringConverter))] + [EpplusIgnore] + public long ProductsInvolvedGuid { get; set; } + [EpplusTableColumn(Header = "名称")] + public string ProductsInvolvedName { get; set; } + [EpplusTableColumn(Header = "排序")] + public int ProductsInvolvedSort { get; set; } + + } + +} diff --git a/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs b/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs new file mode 100644 index 0000000..c812024 --- /dev/null +++ b/ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs @@ -0,0 +1,92 @@ +using Infrastructure.Attribute; +using Microsoft.AspNetCore.Http; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Repository; +using ARW.Repository.Business.ProductsInvolveds; +using ARW.Service.Api.IBusinessService.ProductsInvolveds; +using ARW.Model.Dto.Api.ProductsInvolveds; +using ARW.Model.Models.Business.ProductsInvolveds; +using ARW.Model.Vo.Api.ProductsInvolveds; + +namespace ARW.Service.Api.BusinessService.ProductsInvolveds +{ + /// + /// 涉及产品接口实现类Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + [AppService(ServiceType = typeof(IProductsInvolvedServiceApi), ServiceLifetime = LifeTime.Transient)] + public class ProductsInvolvedServiceImplApi : BaseService, IProductsInvolvedServiceApi + { + private readonly ProductsInvolvedRepository _ProductsInvolvedRepository; + + public ProductsInvolvedServiceImplApi(ProductsInvolvedRepository ProductsInvolvedRepository) + { + this._ProductsInvolvedRepository = ProductsInvolvedRepository; + } + + #region Api接口代码 + + + /// + /// 查询涉及产品列表(Api) + /// + /// + /// + public async Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm) + { + //开始拼装查询条件d + var predicate = Expressionable.Create(); + + predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.ProductsInvolvedName), s => s.ProductsInvolvedName.Contains(parm.ProductsInvolvedName)); + var query = _ProductsInvolvedRepository + .Queryable() + .Where(predicate.ToExpression()) + .OrderBy(s => s.ProductsInvolvedSort,OrderByType.Desc) + .Select(s => new ProductsInvolvedVoApi + { + ProductsInvolvedId = s.ProductsInvolvedId, + ProductsInvolvedGuid = s.ProductsInvolvedGuid, + ProductsInvolvedName = s.ProductsInvolvedName, + ProductsInvolvedSort = s.ProductsInvolvedSort, + }); + + + return await query.ToPageAsync(parm); + } + + /// + /// 查询涉及产品详情(Api) + /// + /// + /// + public async Task GetProductsInvolvedDetails(ProductsInvolvedDtoApi parm) + { + + var query = _ProductsInvolvedRepository + .Queryable() + .Where(s => s.ProductsInvolvedGuid == parm.ProductsInvolvedGuid) + .Select(s => new ProductsInvolvedApiDetailsVo + { + ProductsInvolvedId = s.ProductsInvolvedId, + ProductsInvolvedGuid = s.ProductsInvolvedGuid, + ProductsInvolvedName = s.ProductsInvolvedName, + ProductsInvolvedSort = s.ProductsInvolvedSort, + }).Take(1); + + + return await query.ToJsonAsync(); + } + + +#endregion + + } +} diff --git a/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs b/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs new file mode 100644 index 0000000..9cce15f --- /dev/null +++ b/ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ARW.Model; +using ARW.Model.Dto.Api.ProductsInvolveds; +using ARW.Model.Models.Business.ProductsInvolveds; +using ARW.Model.Vo.Api.ProductsInvolveds; + +namespace ARW.Service.Api.IBusinessService.ProductsInvolveds +{ + /// + /// 涉及产品接口类Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + public interface IProductsInvolvedServiceApi : IBaseService + { + /// + /// 获取涉及产品分页列表(Api) + /// + /// + /// + Task> GetProductsInvolvedListApi(ProductsInvolvedQueryDtoApi parm); + + /// + /// 获取涉及产品详情(Api) + /// + /// + /// + Task GetProductsInvolvedDetails(ProductsInvolvedDtoApi parm); + + } +} diff --git a/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs b/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs new file mode 100644 index 0000000..56f1e10 --- /dev/null +++ b/ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs @@ -0,0 +1,81 @@ +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.Admin.WebApi.Controllers; +using ARW.Model.Dto.Api.ProductsInvolveds; +using ARW.Service.Api.IBusinessService.ProductsInvolveds; +using ARW.Model.Models.Business.ProductsInvolveds; +using ARW.Model.Vo.Api.ProductsInvolveds; +using Microsoft.AspNetCore.Authorization; +using Geocoding; + +namespace ARW.WebApi.Controllers.Api.ProductsInvolveds +{ + /// + /// 涉及产品控制器Api + /// + /// @author lwh + /// @date 2023-11-23 + /// + [Verify] + [Route("api/[controller]")] + public class ProductsInvolvedApiController : BaseController + { + private readonly IProductsInvolvedServiceApi _ProductsInvolvedServiceApi; + + /// + /// 依赖注入 + /// + /// 涉及产品涉及产品Api服务 + public ProductsInvolvedApiController(IProductsInvolvedServiceApi ProductsInvolvedServiceApi) + { + _ProductsInvolvedServiceApi = ProductsInvolvedServiceApi; + } + + + /// + /// 获取涉及产品列表(Api) + /// + /// 查询参数 + /// + [HttpGet("getProductsInvolvedList")] + public async Task GetProductsInvolvedListApi([FromQuery] ProductsInvolvedQueryDtoApi parm) + { + var res = await _ProductsInvolvedServiceApi.GetProductsInvolvedListApi(parm); + return SUCCESS(res); + } + + /// + /// 获取ProductsInvolved详情(Api) + /// + /// 查询参数 + /// + [HttpGet("getProductsInvolvedDetails")] + public async Task GetProductsInvolvedDetails([FromQuery] ProductsInvolvedDtoApi parm) + { + //if (parm == null) throw new CustomException("参数错误!"); + + var res = await _ProductsInvolvedServiceApi.GetProductsInvolvedDetails(parm); + + if (res != "[]") + { + res = res.Remove(0, 1); + res = res.Substring(0, res.Length - 1); + var data = res.FromJSON(); + return SUCCESS(data); + } + else + { + return SUCCESS(res); + } + } + + } +}