chenzx
2024-10-14 0b1aa41d0a32b4b83589d0e19b9aa6535282a47a
20241014czx接口更新
8个文件已添加
248 ■■■■■ 已修改文件
.vs/PolicyControl/FileContentIndex/12af23d3-d0bb-48e1-91e4-94f86efd37c8.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/361bbe05-c6f2-4b9c-8aea-12ec3e353685.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/4e51cb36-0384-47e6-b70c-4791ed6749e5.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/de543528-16a8-4c91-8920-3d5ef921ad11.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.BLL/SubsidyDataBLL.cs 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.DAL/SubsidyDataDAL.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.Entity/SubsidyDataPage.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend/Controllers/SubsidyDataController.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/12af23d3-d0bb-48e1-91e4-94f86efd37c8.vsidx
Binary files differ
.vs/PolicyControl/FileContentIndex/361bbe05-c6f2-4b9c-8aea-12ec3e353685.vsidx
Binary files differ
.vs/PolicyControl/FileContentIndex/4e51cb36-0384-47e6-b70c-4791ed6749e5.vsidx
Binary files differ
.vs/PolicyControl/FileContentIndex/de543528-16a8-4c91-8920-3d5ef921ad11.vsidx
Binary files differ
GasolineBlend.BLL/SubsidyDataBLL.cs
New file
@@ -0,0 +1,89 @@
using CommonHelper;
using GasolineBlend.DAL;
using GasolineBlend.Entity;
using Microsoft.Office.Interop.Word;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using static GasolineBlend.Entity.SubsidyDataPage;
using RegexMatch = System.Text.RegularExpressions.Match;
using NPOIMatch = NPOI.SS.Formula.Functions.Match;
namespace GasolineBlend.BLL
{
    public class SubsidyDataBLL
    {
        private SubsidyDataDAL _acc = new SubsidyDataDAL();
        /// <summary>
        /// 获取用益信托网记录数据
        /// </summary>
        /// <returns></returns>
        public PaginatedResult<SubsidyDataPage> GetSubsidyDataList(int PageNumber, int PageSize,  string Keyword, string CompanyName)
        {
            // 设置API的URL
            string apiUrl = "http://open.api.tianyancha.com/services/open/ic/baseinfoV3/2.0";
            // 设置授权令牌
            string authToken = "5d4c3939-53bb-422f-8ab6-91865b958e3a";
            // 设置请求的JSON内容
            string district="";
            // 创建HttpClient实例
            using (var client = new HttpClient())
            {
                // 添加Authorization头部
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authToken);
                // 添加keyword参数到查询字符串
                var queryString = $"?keyword={Uri.EscapeDataString(CompanyName)}";
                // 构建完整的URL
                string fullUrl = apiUrl + queryString;
                try
                {
                    // 发送GET请求
                    HttpResponseMessage response = client.GetAsync(fullUrl).Result;
                    // 确保响应状态为成功
                    response.EnsureSuccessStatusCode();
                    // 读取响应内容
                    string responseBody = response.Content.ReadAsStringAsync().Result;
                    // 将JSON字符串反序列化为JObject
                    JObject jsonData = JObject.Parse(responseBody);
                    // 访问嵌套的JSON属性
                    district = (string)jsonData["result"]["regLocation"];
                }
                catch (HttpRequestException e)
                {
                    LogHelper.Write(Level.Error, "获取政策列表数据 GetSubsidyDataListAPi查询", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                }
            }
            // 正则表达式匹配市和区
            Regex regex = new Regex(@"(?<city>.+?市)(?<region>.+?区)", RegexOptions.Compiled);
            System.Text.RegularExpressions.Match match = regex.Match(district);
            string City = "";
            string Region = "";
            if (match.Success)
            {
                City = match.Groups["city"].Value;
                Region = match.Groups["region"].Value;
            }
            else
            {
                Console.WriteLine("No match found.");
            }
            int totalCount = _acc.GetSubsidyDataCount(Keyword,City, Region);
            int totalPage = (int)Math.Ceiling((double)totalCount / PageSize);
            List<SubsidyDataPage> totalData = _acc.GetSubsidyDataList(PageNumber, PageSize, Keyword, City, Region);
            return new PaginatedResult<SubsidyDataPage>(totalData, totalCount, totalPage);
        }
    }
}
GasolineBlend.DAL/SubsidyDataDAL.cs
New file
@@ -0,0 +1,56 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CommonHelper;
using Dapper;
using GasolineBlend.Entity;
using Google.Protobuf.WellKnownTypes;
using Microsoft.Office.Interop.Excel;
using MySql.Data.MySqlClient;
namespace GasolineBlend.DAL
{
    public class SubsidyDataDAL : BaseMySQLDAL
    {
        public List<SubsidyDataPage> GetSubsidyDataList(int PageNumber, int PageSize, string Keyword, string City, string Region)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
            {
                var sql = $"SELECT id,projecttitle,subsidyurl,policyrewards,projecttype,platform,startdate,deadline from subsidydata WHERE  platform IN (SELECT department FROM departmentdata WHERE region IN ('{City}','{Region}')) ";
                if (!string.IsNullOrEmpty(Keyword))
                {
                    sql += $" and projecttitle like '%{Keyword.Trim()}%' ";
                }
                int offset = (PageNumber - 1) * PageSize;
                sql += $" ORDER BY startdate DESC  LIMIT {PageSize} OFFSET {offset}";
                return connection.Query<SubsidyDataPage>(sql).ToList();
            }
        }
        public int GetSubsidyDataCount(string Keyword, string City, string Region)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
            {
                var sql = $"SELECT  COUNT(*)  from subsidydata WHERE platform IN (SELECT department FROM departmentdata WHERE region IN ('{City}','{Region}')) ";
                if (!string.IsNullOrEmpty(Keyword))
                {
                    sql += $" and projecttitle like '%{Keyword.Trim()}%' ";
                }
                sql += $" ORDER BY startdate DESC ";
                int Count = connection.Query<int>(sql).FirstOrDefault();
                return Count;
            }
        }
    }
}
GasolineBlend.Entity/SubsidyDataPage.cs
New file
@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GasolineBlend.Entity
{
    public class SubsidyDataPage
    {
        /// <summary>
        /// 序号
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 补贴标题
        /// </summary>
        public string ProjectTitle { get; set; }
        /// <summary>
        /// 补贴连接
        /// </summary>
        public string SubsidyUrl { get; set; }
        /// <summary>
        /// 补贴类型
        /// </summary>
        public string PolicyRewards { get; set; }
        /// <summary>
        /// 来源形式
        /// </summary>
        public string ProjectType { get; set; }
        /// <summary>
        /// 补贴来源
        /// </summary>
        public string PlatForm { get; set; }
        /// <summary>
        ///时间
        /// </summary>
        public DateTime StartDate { get; set; }
        /// <summary>
        ///时间
        /// </summary>
        public DateTime Deadline { get; set; }
        public int Count { get; set; }
        public class PaginatedResult<T>
        {
            public List<T> Data { get; set; }
            public int TotalCount { get; set; }
            public int TotalPages { get; set; }
            public PaginatedResult(List<T> totalData, int totalCount, int totalPages)
            {
                Data = totalData;
                TotalCount = totalCount;
                TotalPages = totalPages;
            }
        }
    }
}
GasolineBlend/Controllers/SubsidyDataController.cs
New file
@@ -0,0 +1,44 @@
using CommonHelper;
using GasolineBlend.BLL;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Mvc;
using System.Web.Razor.Tokenizer.Symbols;
namespace GasolineBlend.Controllers
{
    public class SubsidyDataController : BaseController
    {
        private SubsidyDataBLL _acc = new SubsidyDataBLL();
        /// <summary>
        ///获取补贴列表数据
        /// </summary>
        /// <param name="PageNumber"></param>
        /// <param name="PageSize"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult GetSubsidyDataList(int PageNumber,int PageSize,string Keyword,string CompanyName)
        {
            try
            {
                var list = _acc.GetSubsidyDataList(PageNumber, PageSize, Keyword, CompanyName);
                var response = new
                {
                    Data = list.Data,
                    TotalCount = list.TotalCount,
                    TotalPages = list.TotalPages
                };
                return SuccessNoShow(data: response);
            }
            catch (Exception e)
            {
                LogHelper.Write(Level.Error, "获取政策列表数据 GetSubsidyDataList", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                return Error();
            }
        }
    }
}