From 75144dc8e4e665a743d9e9659f2365b7c4c3b414 Mon Sep 17 00:00:00 2001
From: Abbh1 <86962549+Abbh1@users.noreply.github.com>
Date: Fri, 24 Nov 2023 10:39:39 +0800
Subject: [PATCH] =?UTF-8?q?fixed=20=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95?=
=?UTF-8?q?=E7=9A=84=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E4=B8=BA1?=
=?UTF-8?q?=E4=B8=AA=E6=9C=88=EF=BC=8C=E5=88=9D=E5=A7=8B=E5=8C=96=E8=A1=A8?=
=?UTF-8?q?=E6=A0=BC=E6=95=B0=E6=8D=AE=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../TableDatas/TableDataApiDto.cs | 39 ++++
.../TableDatas/TableDataApiVo.cs | 111 +++++++++++
.../TableDatas/TableDataServiceApi.cs | 179 ++++++++++++++++++
.../TableDatas/ITableDataServiceApi.cs | 36 ++++
.../TableDatas/TableDataApiController.cs | 79 ++++++++
ARW.WebApi/appsettings.json | 2 +-
6 files changed, 445 insertions(+), 1 deletion(-)
create mode 100644 ARW.Model/Dto/Api/TableDataManage/TableDatas/TableDataApiDto.cs
create mode 100644 ARW.Model/Vo/Api/TableDataManage/TableDatas/TableDataApiVo.cs
create mode 100644 ARW.Service/Api/BusinessService/TableDataManage/TableDatas/TableDataServiceApi.cs
create mode 100644 ARW.Service/Api/IBusinessService/TableDataManage/TableDatas/ITableDataServiceApi.cs
create mode 100644 ARW.WebApi/Controllers/Api/TableDataManage/TableDatas/TableDataApiController.cs
diff --git a/ARW.Model/Dto/Api/TableDataManage/TableDatas/TableDataApiDto.cs b/ARW.Model/Dto/Api/TableDataManage/TableDatas/TableDataApiDto.cs
new file mode 100644
index 0000000..8559484
--- /dev/null
+++ b/ARW.Model/Dto/Api/TableDataManage/TableDatas/TableDataApiDto.cs
@@ -0,0 +1,39 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using ARW.Model.Models.Business.TableDataManage.TableDatas;
+
+namespace ARW.Model.Dto.Api.TableDataManage.TableDatas
+{
+
+ ///
+ /// 表格数据查询对象Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ public class TableDataQueryDtoApi : PagerInfo
+ {
+ public string Search { get; set; }
+ public string TableDataProcurementContent { get; set; }
+ public string TableDataProcurementUnit { get; set; }
+ public DateTime? BeginTableDataDate { get; set; }
+ public DateTime? EndTableDataDate { get; set; }
+ public DateTime? BeginTableDataDeadline { get; set; }
+ public DateTime? EndTableDataDeadline { get; set; }
+ }
+
+
+ ///
+ /// 表格数据详情输入对象Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ public class TableDataDtoApi
+ {
+ [Required(ErrorMessage = "TableDataId不能为空")]
+ public int TableDataId { get; set; }
+ }
+
+}
diff --git a/ARW.Model/Vo/Api/TableDataManage/TableDatas/TableDataApiVo.cs b/ARW.Model/Vo/Api/TableDataManage/TableDatas/TableDataApiVo.cs
new file mode 100644
index 0000000..cb1c1c1
--- /dev/null
+++ b/ARW.Model/Vo/Api/TableDataManage/TableDatas/TableDataApiVo.cs
@@ -0,0 +1,111 @@
+using Newtonsoft.Json;
+using OfficeOpenXml.Attributes;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+
+namespace ARW.Model.Vo.Api.TableDataManage.TableDatas
+{
+ ///
+ /// 表格数据展示对象Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ public class TableDataVoApi
+ {
+
+
+ ///
+ /// 描述 :
+ ///
+ [EpplusIgnore]
+ public int TableDataId { get; set; }
+
+
+ ///
+ /// 描述 :
+ ///
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [EpplusIgnore]
+ public long TableDataGuid { get; set; }
+
+
+ ///
+ /// 描述 :采购内容
+ ///
+ public string TableDataProcurementContent { get; set; }
+
+
+ ///
+ /// 描述 :日期
+ ///
+ public string TableDataDate { get; set; }
+
+
+ ///
+ /// 描述 :截至日期
+ ///
+ public string TableDataDeadline { get; set; }
+
+ ///
+ /// 描述 :中标金额
+ ///
+ public decimal TableDataBidWinningPrice { get; set; }
+
+
+ ///
+ /// 涉及产品名称
+ ///
+ public List ProductsInvolvedName { get; set; }
+
+ }
+
+
+ ///
+ /// 表格数据详情展示对象Api
+ ///
+ public class TableDataApiDetailsVo
+ {
+ [EpplusIgnore]
+ public int TableDataId { get; set; }
+ [JsonConverter(typeof(ValueToStringConverter))]
+ [EpplusIgnore]
+ public long TableDataGuid { get; set; }
+ public string ProductsInvolvedName { get; set; }
+ [EpplusTableColumn(Header = "采购内容")]
+ public string TableDataProcurementContent { get; set; }
+ [EpplusTableColumn(Header = "采购单位名称")]
+ public string TableDataProcurementUnit { get; set; }
+ [EpplusIgnore]
+ public string TableDataProcurementMethod { get; set; }
+ [EpplusIgnore]
+ public string TableDataSupplierName { get; set; }
+ [EpplusIgnore]
+ public string TableDataProjectPricingForm { get; set; }
+ [EpplusIgnore]
+ public string TableDataLink { get; set; }
+ [EpplusTableColumn(Header = "日期", NumberFormat = "yyyy-MM-dd HH:mm:ss")]
+ public string TableDataDate { get; set; }
+ [EpplusIgnore]
+ public string TableDataDeadline { get; set; }
+ [EpplusIgnore]
+ public string TableDataWinningBidde { get; set; }
+ [EpplusIgnore]
+ public decimal TableDataBidWinningPrice { get; set; }
+ [EpplusTableColumn(Header = "是否为中标公告")]
+ public string TableDataIsBidAnnouncement { get; set; }
+ [EpplusTableColumn(Header = "是否是人力资源池或框架协议")]
+ public string TableDataIsHumanResourcePoolOrFrameworkAgreement { get; set; }
+ [EpplusTableColumn(Header = "公告中是否包含多个包/标段/采购内容")]
+ public string TableDataIsMultiple { get; set; }
+ [EpplusTableColumn(Header = "是否仅有一个中标人")]
+ public string TableDataIsOnlyBidder { get; set; }
+ [EpplusIgnore]
+ public string TableDataSingleSource { get; set; }
+ [EpplusIgnore]
+ public string TableDataDetails { get; set; }
+
+ }
+
+}
diff --git a/ARW.Service/Api/BusinessService/TableDataManage/TableDatas/TableDataServiceApi.cs b/ARW.Service/Api/BusinessService/TableDataManage/TableDatas/TableDataServiceApi.cs
new file mode 100644
index 0000000..9a3eccf
--- /dev/null
+++ b/ARW.Service/Api/BusinessService/TableDataManage/TableDatas/TableDataServiceApi.cs
@@ -0,0 +1,179 @@
+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.TableDataManage.TableDatas;
+using ARW.Service.Api.IBusinessService.TableDataManage.TableDatas;
+using ARW.Model.Dto.Api.TableDataManage.TableDatas;
+using ARW.Model.Models.Business.TableDataManage.TableDatas;
+using ARW.Model.Vo.Api.TableDataManage.TableDatas;
+using ARW.Model.Models.Business.ProductsInvolveds;
+using ARW.Repository.Business.ProductsInvolveds;
+using ARW.Repository.Business.TableDataManage.TableDataProductsInvolves;
+using ARW.Model.Vo.Api.Custom.Customers;
+using ARW.Repository.Business.Custom.GoodsBrowsingHistorys;
+using ARW.Repository.Business.Custom.GoodsCollections;
+using Newtonsoft.Json;
+using Senparc.CO2NET.Extensions;
+using Senparc.Weixin.WxOpen.AdvancedAPIs.WxApp.WxAppJson;
+
+namespace ARW.Service.Api.BusinessService.TableDataManage.TableDatas
+{
+ ///
+ /// 表格数据接口实现类Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ [AppService(ServiceType = typeof(ITableDataServiceApi), ServiceLifetime = LifeTime.Transient)]
+ public class TableDataServiceImplApi : BaseService, ITableDataServiceApi
+ {
+ private readonly TableDataRepository _TableDataRepository;
+ private readonly TableDataProductsInvolveRepository _TableDataProductsInvolveRepository;
+ private readonly ProductsInvolvedRepository _ProductsInvolvedRepository;
+
+ public TableDataServiceImplApi(TableDataRepository TableDataRepository, TableDataProductsInvolveRepository tableDataProductsInvolveRepository, ProductsInvolvedRepository productsInvolveRepository)
+ {
+ this._TableDataRepository = TableDataRepository;
+ _TableDataProductsInvolveRepository = tableDataProductsInvolveRepository;
+ _ProductsInvolvedRepository = productsInvolveRepository;
+ }
+
+ #region Api接口代码
+
+
+ ///
+ /// 查询表格数据列表(Api)
+ ///
+ ///
+ ///
+ public async Task> GetTableDataListApi(TableDataQueryDtoApi parm)
+ {
+ //开始拼装查询条件d
+ var predicate = Expressionable.Create();
+
+ predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Search), s => s.TableDataProcurementContent.Contains(parm.TableDataProcurementContent));
+ predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.Search), s => s.TableDataProcurementUnit.Contains(parm.TableDataProcurementUnit));
+ //predicate = predicate.AndIF(parm.BeginTableDataDeadline == null, it => it.TableDataDeadline >= DateTime.Now.AddDays(-1));
+ //predicate = predicate.AndIF(parm.BeginTableDataDeadline != null, it => it.TableDataDeadline >= parm.BeginTableDataDeadline && it.TableDataDeadline <= parm.EndTableDataDeadline);
+ var query = _TableDataRepository
+ .Queryable()
+ .Where(predicate.ToExpression())
+ .OrderBy(s => s.TableDataSort, OrderByType.Desc)
+ .Select(s => new TableDataVoApi
+ {
+ TableDataId = s.TableDataId,
+ TableDataGuid = s.TableDataGuid,
+ TableDataProcurementContent = s.TableDataProcurementContent,
+ TableDataDate = s.TableDataDate.ToString("yyyy-MM-dd"),
+ TableDataDeadline = s.TableDataDeadline.ToString("yyyy-MM-dd"),
+ TableDataBidWinningPrice = s.TableDataBidWinningPrice,
+ });
+ var list = await query.ToPageAsync(parm);
+
+ foreach (var item in list.Result)
+ {
+ var productsInvolvedList = await _TableDataProductsInvolveRepository.GetListAsync(s => s.TableGuid == item.TableDataGuid);
+ if (productsInvolvedList.Count > 0)
+ {
+ List stringName = new List();
+ foreach (var item1 in productsInvolvedList)
+ {
+ var productsInvolved = await _ProductsInvolvedRepository.GetFirstAsync(s => s.ProductsInvolvedId == item1.ProductsInvolvedId);
+ if (productsInvolved != null)
+ {
+ stringName.Add(productsInvolved.ProductsInvolvedName);
+ }
+ }
+ item.ProductsInvolvedName = stringName;
+ }
+ }
+
+ return list;
+ }
+
+ ///
+ /// 查询表格数据详情(Api)
+ ///
+ ///
+ ///
+ public async Task GetTableDataDetails(TableDataDtoApi parm)
+ {
+
+ var query = _TableDataRepository
+ .Queryable()
+ .Where(s => s.TableDataId == parm.TableDataId)
+ .Select(s => new TableDataApiDetailsVo
+ {
+ TableDataId = s.TableDataId,
+ TableDataGuid = s.TableDataGuid,
+ TableDataProcurementContent = s.TableDataProcurementContent,
+ TableDataProcurementUnit = s.TableDataProcurementUnit,
+ TableDataProcurementMethod = s.TableDataProcurementMethod,
+ TableDataSupplierName = s.TableDataSupplierName,
+ TableDataProjectPricingForm = s.TableDataProjectPricingForm,
+ TableDataLink = s.TableDataLink,
+ TableDataDate = s.TableDataDate.ToString("yyyy-MM-dd"),
+ TableDataDeadline = s.TableDataDeadline.ToString("yyyy-MM-dd"),
+ TableDataWinningBidde = s.TableDataWinningBidde,
+ TableDataBidWinningPrice = s.TableDataBidWinningPrice,
+ TableDataIsBidAnnouncement = s.TableDataIsBidAnnouncement == 1 ? "是" : "否",
+ TableDataIsHumanResourcePoolOrFrameworkAgreement = s.TableDataIsHumanResourcePoolOrFrameworkAgreement == 1 ? "是" : "否",
+ TableDataIsMultiple = s.TableDataIsMultiple == 1 ? "是" : "否",
+ TableDataIsOnlyBidder = s.TableDataIsOnlyBidder == 1 ? "是" : "否",
+ TableDataSingleSource = s.TableDataSingleSource,
+ TableDataDetails = s.TableDataDetails,
+ }).Take(1);
+
+
+ var json = await query.ToJsonAsync();
+
+ if (json != "[]")
+ {
+ json = json.Remove(0, 1);
+ json = json.Substring(0, json.Length - 1);
+ var data = JsonConvert.DeserializeObject(json);
+
+ var productsInvolvedList = await _TableDataProductsInvolveRepository.GetListAsync(s => s.TableGuid == data.TableDataGuid);
+ if (productsInvolvedList.Count > 0)
+ {
+ var str = "";
+ List stringId = new List();
+ foreach (var item1 in productsInvolvedList)
+ {
+ var productsInvolved = await _ProductsInvolvedRepository.GetFirstAsync(s => s.ProductsInvolvedId == item1.ProductsInvolvedId);
+ if (productsInvolved != null)
+ {
+ str += productsInvolved.ProductsInvolvedName + ",";
+ stringId.Add(item1.ProductsInvolvedId);
+ }
+ }
+ // 检查字符串是否以逗号结尾
+ if (str.EndsWith(","))
+ {
+ // 去掉字符串末尾的逗号
+ str = str.TrimEnd(',');
+ }
+ data.ProductsInvolvedName = str;
+ }
+
+ json = data.ToJson();
+ }
+
+ return json;
+ }
+
+
+
+
+
+ #endregion
+
+ }
+}
diff --git a/ARW.Service/Api/IBusinessService/TableDataManage/TableDatas/ITableDataServiceApi.cs b/ARW.Service/Api/IBusinessService/TableDataManage/TableDatas/ITableDataServiceApi.cs
new file mode 100644
index 0000000..3ce50c9
--- /dev/null
+++ b/ARW.Service/Api/IBusinessService/TableDataManage/TableDatas/ITableDataServiceApi.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.TableDataManage.TableDatas;
+using ARW.Model.Models.Business.TableDataManage.TableDatas;
+using ARW.Model.Vo.Api.TableDataManage.TableDatas;
+
+namespace ARW.Service.Api.IBusinessService.TableDataManage.TableDatas
+{
+ ///
+ /// 表格数据接口类Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ public interface ITableDataServiceApi : IBaseService
+ {
+ ///
+ /// 获取表格数据分页列表(Api)
+ ///
+ ///
+ ///
+ Task> GetTableDataListApi(TableDataQueryDtoApi parm);
+
+ ///
+ /// 获取表格数据详情(Api)
+ ///
+ ///
+ ///
+ Task GetTableDataDetails(TableDataDtoApi parm);
+
+ }
+}
diff --git a/ARW.WebApi/Controllers/Api/TableDataManage/TableDatas/TableDataApiController.cs b/ARW.WebApi/Controllers/Api/TableDataManage/TableDatas/TableDataApiController.cs
new file mode 100644
index 0000000..c506f5e
--- /dev/null
+++ b/ARW.WebApi/Controllers/Api/TableDataManage/TableDatas/TableDataApiController.cs
@@ -0,0 +1,79 @@
+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.TableDataManage.TableDatas;
+using ARW.Service.Api.IBusinessService.TableDataManage.TableDatas;
+using ARW.Model.Models.Business.TableDataManage.TableDatas;
+using ARW.Model.Vo.Api.TableDataManage.TableDatas;
+using Microsoft.AspNetCore.Authorization;
+using Geocoding;
+
+namespace ARW.WebApi.Controllers.Api.TableDataManage.TableDatas
+{
+ ///
+ /// 表格数据控制器Api
+ ///
+ /// @author lwh
+ /// @date 2023-11-23
+ ///
+ [Verify]
+ [Route("api/[controller]")]
+ public class TableDataApiController : BaseController
+ {
+ private readonly ITableDataServiceApi _TableDataServiceApi;
+
+ ///
+ /// 依赖注入
+ ///
+ /// 表格数据表格数据Api服务
+ public TableDataApiController(ITableDataServiceApi TableDataServiceApi)
+ {
+ _TableDataServiceApi = TableDataServiceApi;
+ }
+
+
+ ///
+ /// 获取表格数据列表(Api)
+ ///
+ /// 查询参数
+ ///
+ [HttpGet("getTableDataList")]
+ public async Task GetTableDataListApi([FromQuery] TableDataQueryDtoApi parm)
+ {
+ var res = await _TableDataServiceApi.GetTableDataListApi(parm);
+ return SUCCESS(res);
+ }
+
+ ///
+ /// 获取TableData详情(Api)
+ ///
+ /// 查询参数
+ ///
+ [HttpGet("getTableDataDetails")]
+ public async Task GetTableDataDetails([FromQuery] TableDataDtoApi parm)
+ {
+ //if (parm == null) throw new CustomException("参数错误!");
+
+ var res = await _TableDataServiceApi.GetTableDataDetails(parm);
+
+ if (res != "[]")
+ {
+ var data = res.FromJSON();
+ return SUCCESS(data);
+ }
+ else
+ {
+ return SUCCESS(res);
+ }
+ }
+
+ }
+}
diff --git a/ARW.WebApi/appsettings.json b/ARW.WebApi/appsettings.json
index 48397aa..c9cabdd 100644
--- a/ARW.WebApi/appsettings.json
+++ b/ARW.WebApi/appsettings.json
@@ -17,7 +17,7 @@
"Issuer": "ARWAdmin.NET",
"Audience": "ARWAdmin.NET",
"SecretKey": "SecretKey-ARWADMIN.NET-20210101",
- "Expire": 1440 //jwt登录过期时间(分)
+ "Expire": 43200 //jwt登录过期时间(分)
},
"InitDb": false, //是否初始化db
"DemoMode": false, //是否演示模式