From 72cbffd477ac2b1e9ca7f0c066b1df22364ea5cf Mon Sep 17 00:00:00 2001
From: Abbh1 <86962549+Abbh1@users.noreply.github.com>
Date: Thu, 23 Nov 2023 14:26:02 +0800
Subject: [PATCH] =?UTF-8?q?feat=20=E5=88=9D=E5=A7=8B=E5=8C=96=E6=B6=89?=
=?UTF-8?q?=E5=8F=8A=E4=BA=A7=E5=93=81=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ProductsInvolvedApiDto.cs | 33 +++++++
.../ProductsInvolvedApiVo.cs | 66 +++++++++++++
.../ProductsInvolvedServiceApi.cs | 92 +++++++++++++++++++
.../IProductsInvolvedServiceApi.cs | 36 ++++++++
.../ProductsInvolvedApiController.cs | 81 ++++++++++++++++
5 files changed, 308 insertions(+)
create mode 100644 ARW.Model/Dto/Api/ProductsInvolveds/ProductsInvolvedApiDto.cs
create mode 100644 ARW.Model/Vo/Api/ProductsInvolveds/ProductsInvolvedApiVo.cs
create mode 100644 ARW.Service/Api/BusinessService/ProductsInvolveds/ProductsInvolvedServiceApi.cs
create mode 100644 ARW.Service/Api/IBusinessService/ProductsInvolveds/IProductsInvolvedServiceApi.cs
create mode 100644 ARW.WebApi/Controllers/Api/ProductsInvolveds/ProductsInvolvedApiController.cs
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);
+ }
+ }
+
+ }
+}