chenzx
2024-12-26 bbcf5a65e0aeae3e6a4bae91284ce80ae8d3d5f9
czx20241226接口
2个文件已删除
8个文件已修改
376 ■■■■ 已修改文件
.vs/PolicyControl/FileContentIndex/8b23b19c-d383-4f29-9e93-4349fc8d4876.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/ca483df9-86f2-402c-b594-6a0e280cb29e.vsidx 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.BLL/ChatHistoryBLL.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.BLL/SubsidyDataBLL.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.DAL/ChatHistoryDAL.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.DAL/QccSearchInfoDAL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend.DAL/SubsidyDataDAL.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend/Controllers/ChatHistoryController.cs 250 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend/Controllers/SubjectController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
GasolineBlend/Controllers/SubsidyDataController.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/PolicyControl/FileContentIndex/8b23b19c-d383-4f29-9e93-4349fc8d4876.vsidx
Binary files differ
.vs/PolicyControl/FileContentIndex/ca483df9-86f2-402c-b594-6a0e280cb29e.vsidx
Binary files differ
GasolineBlend.BLL/ChatHistoryBLL.cs
@@ -10,7 +10,6 @@
using System.Text;
using System.Threading.Tasks;
using static GasolineBlend.Entity.ChatHistoryDataPage;
namespace GasolineBlend.BLL
{
    public class ChatHistoryBLL
@@ -62,6 +61,10 @@
        {
            return _acc.GetPromptData(id);
        }
        public List<AgentDataPage> GetPromptApi(int id)
        {
            return _acc.GetPromptApi(id);
        }
        public bool UpdataUserNoById(int AgentId,int UserId)
        {
            return _acc.UpdataUserNoById(AgentId, UserId);
GasolineBlend.BLL/SubsidyDataBLL.cs
@@ -81,6 +81,59 @@
            return new PaginatedResult<SubsidyDataPage>(totalData, totalCount, totalPage);
        }
        public List<SubsidyDataPage> GetSubsidyDataFilter(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 Region = "";
            string City = "";
            // 创建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);
                    if ((int)jsonData["error_code"] != 0)
                    {
                        return null;
                    }
                    // 访问嵌套的JSON属性
                    City = (string)jsonData["result"]["city"];
                    Region = (string)jsonData["result"]["district"];
                }
                catch (HttpRequestException e)
                {
                    LogHelper.Write(Level.Error, "获取政策列表数据 GetSubsidyDataListAPi查询", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                }
            }
            string Province = _sub.GetProvince(City, Region);
            List<SubsidyDataPage> totalData = _sub.GetSubsidyDataFilter( Keyword, City, Region, Province);
            return totalData;
        }
        //public string GetMoonshot(string CompanyName)
        //{
        //    string _apiKey = "sk-Lec41LGc7aV8KdFzOCiJQIM9A8bsbBk5KumvqBSyfeW9EXec"; // 替换为你的API密钥
@@ -226,8 +279,7 @@
        {
                try
                {
                int IsVIP =34;
                //int IsVIP = _acc.GetIsPolicyVIPList(UserId);
                int IsVIP = _acc.GetIsPolicyVIPList(UserId);
                int Count = _sir.GetSubsidyInquiryRecordToDayCount(UserId);
                    if (Count>= IsVIP) {
                        Console.WriteLine("今日政策洞察额度已经用完,如有需要请联系管理员!");
GasolineBlend.DAL/ChatHistoryDAL.cs
@@ -108,7 +108,15 @@
                return connection.QueryFirstOrDefault<string>($"SELECT prompt FROM agentdata WHERE id={id}");
            }
        }
        public List<AgentDataPage> GetPromptApi(int id)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
            {
                var query = "SELECT * FROM agentdata WHERE id = @id";
                var parameters = new { id = id };
                return connection.Query<AgentDataPage>(query, parameters).ToList();
            }
        }
        public bool UpdataUserNoById(int AgentId, int UserId)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
GasolineBlend.DAL/QccSearchInfoDAL.cs
@@ -18,7 +18,7 @@
         public List<QccSearchInfo> GetSearchPolicyList()
        {
            var sql = $"SELECT TOP 8 * FROM QccSearchInfo WHERE  SearchType = 9 ORDER BY CreateTime DESC";
            var sql = $"WITH RankedResults AS (SELECT *,ROW_NUMBER() OVER (PARTITION BY CompanyName ORDER BY CreateTime DESC) AS rn FROM QccSearchInfo WHERE SearchType = 9)SELECT TOP 8 * FROM RankedResults WHERE rn = 1 ORDER BY CreateTime DESC;";
            return Conn.Query<QccSearchInfo>(sql).ToList();
        }
GasolineBlend.DAL/SubsidyDataDAL.cs
@@ -34,6 +34,21 @@
            }
        }
        public List<SubsidyDataPage> GetSubsidyDataFilter(string Keyword, string City, string Region, string Province)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
            {
                var sql = $"SELECT * FROM subsidydata WHERE (region ='国家级' or region = '{Province}' or region = '{City}'  or region = '{City + Region}') ";
                if (!string.IsNullOrEmpty(Keyword))
                {
                    sql += $" and projecttitle like '%{Keyword.Trim()}%' ";
                }
                sql += $" ORDER BY FIELD(region, '{Region}', '{City}','{Province}', '国家级'), startdate DESC, id ASC  LIMIT 4";
                return connection.Query<SubsidyDataPage>(sql).ToList();
            }
        }
        public int GetSubsidyDataCount(string Keyword, string City, string Region,string Province)
        {
            using (IDbConnection connection = new MySqlConnection(connectionString))
GasolineBlend/Controllers/ChatHistoryController.cs
@@ -53,40 +53,143 @@
        [HttpPost]
        public async Task<ActionResult> AddChat(int UserId, int AgentId, string Chat)
        {
            try
            {
                string Prompt = _acc.GetPromptData(AgentId);
                Prompt = Prompt.Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace("\f", "");
                Prompt = Prompt.Replace(" ", "");
                Prompt = Prompt.Replace("\"", "“");
                Prompt = Prompt.Replace("\\", "\\\\");
                var list = _acc.GetChatHistory6List(AgentId, UserId);
                string historylist = "";
               for (int i = list.Count - 1; i >= 0; i--) {
                    string Role = list.Skip(i).FirstOrDefault()?.Role;
                    string Content = list.Skip(i).FirstOrDefault()?.Content;
                    Content = Content.Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace("\f", "");
                    Content = Content.Replace(" ", "");
                    historylist += $@"{{""role"": ""{Role}"", ""content"": ""{Content}""}},";
                }
                // 设置API的URL
                string apiUrl = "https://api.moonshot.cn/v1/chat/completions";
                // 设置授权令牌
                string bearerToken = "sk-Lec41LGc7aV8KdFzOCiJQIM9A8bsbBk5KumvqBSyfeW9EXec";
                // 设置请求的JSON内容
                string jsonContent = $@"{{
                var model = _acc.GetPromptApi(AgentId);
                if (model[0].ModelApi != null && model[0].ModelKey != null) {
                    string apiUrl = "http://122.51.217.202/v1/chat-messages";
                    // 设置授权令牌
                    string bearerToken = model[0].ModelKey;
                    string jsonContent = $@"{{
                                  ""inputs"": {{}},
                                  ""query"": ""{Chat}"",
                                  ""response_mode"": ""blocking"",
                                  ""conversation_id"": """",
                                      ""user"": ""{UserId}"",
                                      ""files"": [
                                        {{
                                          ""type"": """",
                                          ""transfer_method"": """",
                                          ""url"": """"
                                        }}
                                  ]
                                  }}";
                    using (HttpClient client = new HttpClient())
                    {
                        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, apiUrl)
                        {
                            Content = new StringContent(jsonContent, Encoding.UTF8, "application/json")
                        };
                        request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", bearerToken);
                        // 使用Task.Run来运行异步操作,并使用.Result获取结果
                        HttpResponseMessage response = System.Threading.Tasks.Task.Run(() => client.SendAsync(request)).Result;
                        if (response.IsSuccessStatusCode)
                        {
                            string responseContent = System.Threading.Tasks.Task.Run(() => response.Content.ReadAsStringAsync()).Result;
                            // 解析JSON字符串
                            var rootObject = JObject.Parse(responseContent);
                            int RUserId = 0;
                            int RAssistantId = 0;
                            for (int i = 0; i < 2; i++)
                            {
                                string co = "";
                                string ro = "";
                                if (i == 0)
                                {
                                    co = Chat;
                                    ro = "user";
                                }
                                else
                                {
                                    co = rootObject["answer"].ToString();
                                    ro = "assistant";
                                }
                                ChatHistoryDataPage chatHistoryDataPage = new ChatHistoryDataPage
                                {
                                    Content = co,
                                    TotalTokens = 0,
                                    Model = "dify",
                                    Created = "",
                                    Chatid = rootObject["conversation_id"].ToString(),
                                    Object = "",
                                    UserId = UserId,
                                    AgentId = AgentId,
                                    Role = ro
                                };
                                bool plus = _acc.UpdataUserNoById(AgentId, UserId);
                                int chatHistoryId = _acc.AddChatHistoryData(chatHistoryDataPage);
                                if (i == 0)
                                {
                                    RUserId = chatHistoryId;
                                }
                                RAssistantId = chatHistoryId;
                                if (chatHistoryId == -1)
                                {
                                    return Error();
                                }
                            }
                            int Count = _acc.GetChatHistoryCountList(UserId, AgentId, null);
                            JObject obj = new JObject();
                            obj.Add("Count", Count);
                            obj.Add("Data", rootObject["answer"].ToString());
                            obj.Add("UserId", RUserId);
                            obj.Add("AssistantId", RAssistantId);
                            return SuccessNoShow(data: obj);
                            //return Content(updatedJson, "application/json");
                        }
                        else
                        {
                            Console.WriteLine("请求失败,状态码:" + response.StatusCode);
                            return null;
                        }
                    }
                    }
                else
                {
                    string Prompt = _acc.GetPromptData(AgentId);
                    Prompt = Prompt.Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace("\f", "");
                    Prompt = Prompt.Replace(" ", "");
                    Prompt = Prompt.Replace("\"", "“");
                    Prompt = Prompt.Replace("\\", "\\\\");
                    var list = _acc.GetChatHistory6List(AgentId, UserId);
                    string historylist = "";
                    for (int i = list.Count - 1; i >= 0; i--)
                    {
                        string Role = list.Skip(i).FirstOrDefault()?.Role;
                        string Content = list.Skip(i).FirstOrDefault()?.Content;
                        Content = Content.Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace("\f", "");
                        Content = Content.Replace(" ", "");
                        historylist += $@"{{""role"": ""{Role}"", ""content"": ""{Content}""}},";
                    }
                    // 设置API的URL
                    string apiUrl = "https://api.moonshot.cn/v1/chat/completions";
                    // 设置授权令牌
                    string bearerToken = "sk-Lec41LGc7aV8KdFzOCiJQIM9A8bsbBk5KumvqBSyfeW9EXec";
                    // 设置请求的JSON内容
                    string jsonContent = $@"{{
                          ""model"": ""moonshot-v1-128k"",
                          ""messages"": [
                               {{""role"": ""system"", ""content"": ""{Prompt}""}},";
                jsonContent += historylist;
                jsonContent += $@"{{""role"": ""user"", ""content"": ""{Chat}""}}
                    jsonContent += historylist;
                    jsonContent += $@"{{""role"": ""user"", ""content"": ""{Chat}""}}
                                        ],
                          ""temperature"": 0.3
                          }}";
                using (HttpClient client = new HttpClient())
                {
                    // 如果响应状态码是200,则文件存在
                    using (HttpClient client = new HttpClient())
                    {
                        // 如果响应状态码是200,则文件存在
                        HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, apiUrl)
                        {
                            Content = new StringContent(jsonContent, Encoding.UTF8, "application/json")
@@ -100,60 +203,63 @@
                        {
                            string responseContent = await response.Content.ReadAsStringAsync();
                            JObject jsonObject = JObject.Parse(responseContent);
                        int RUserId=0;
                        int RAssistantId=0;
                        for (int i = 0; i < 2; i++)
                        {
                            string co = "";
                            string ro = "";
                            if (i == 0)
                            int RUserId = 0;
                            int RAssistantId = 0;
                            for (int i = 0; i < 2; i++)
                            {
                                 co = Chat;
                                 ro = "user";
                                string co = "";
                                string ro = "";
                                if (i == 0)
                                {
                                    co = Chat;
                                    ro = "user";
                                }
                                else
                                {
                                    co = jsonObject["choices"][0]["message"]["content"].ToString();
                                    ro = "assistant";
                                }
                                ChatHistoryDataPage chatHistoryDataPage = new ChatHistoryDataPage
                                {
                                    Content = co,
                                    TotalTokens = jsonObject["usage"]["total_tokens"].Value<int>(),
                                    Model = jsonObject["model"].ToString(),
                                    Created = jsonObject["created"].ToString(),
                                    Chatid = jsonObject["id"].ToString(),
                                    Object = jsonObject["object"].ToString(),
                                    UserId = UserId,
                                    AgentId = AgentId,
                                    Role = ro
                                };
                                bool plus = _acc.UpdataUserNoById(AgentId, UserId);
                                int chatHistoryId = _acc.AddChatHistoryData(chatHistoryDataPage);
                                if (i == 0)
                                {
                                    RUserId = chatHistoryId;
                                }
                                RAssistantId = chatHistoryId;
                                if (chatHistoryId == -1)
                                {
                                    return Error();
                                }
                            }
                            else
                            {
                                co = jsonObject["choices"][0]["message"]["content"].ToString();
                                ro = "assistant";
                            }
                            ChatHistoryDataPage chatHistoryDataPage = new ChatHistoryDataPage
                            {
                                Content =co ,
                                TotalTokens = jsonObject["usage"]["total_tokens"].Value<int>(),
                                Model = jsonObject["model"].ToString(),
                                Created = jsonObject["created"].ToString(),
                                Chatid = jsonObject["id"].ToString(),
                                Object = jsonObject["object"].ToString(),
                                UserId = UserId,
                                AgentId = AgentId,
                                Role = ro
                            };
                            bool plus = _acc.UpdataUserNoById(AgentId, UserId);
                            int chatHistoryId = _acc.AddChatHistoryData(chatHistoryDataPage);
                            if (i == 0)
                            {
                                RUserId= chatHistoryId;
                            }
                            RAssistantId = chatHistoryId;
                            if (chatHistoryId == -1)
                            {
                                return Error();
                            }
                        }
                        int Count = _acc.GetChatHistoryCountList(UserId, AgentId,null);
                        JObject obj = JObject.Parse(responseContent);
                        obj.Add("Count", Count);
                        obj.Add("UserId", RUserId);
                        obj.Add("AssistantId", RAssistantId);
                        string updatedJson = obj.ToString();
                        return Content(updatedJson, "application/json");
                            int Count = _acc.GetChatHistoryCountList(UserId, AgentId, null);
                            JObject obj = new JObject();
                            obj.Add("Count", Count);
                            obj.Add("Data", jsonObject["choices"][0]["message"]["content"].ToString());
                            obj.Add("UserId", RUserId);
                            obj.Add("AssistantId", RAssistantId);
                            return SuccessNoShow(data: obj);
                        }
                        else
                        {
                            return Error();
                        }
                    }
                }
            }
            catch (HttpRequestException e)
            {
GasolineBlend/Controllers/SubjectController.cs
@@ -45,6 +45,12 @@
            }
        }
        /// <summary>
        /// 添加/修改主体公司
        /// </summary>
GasolineBlend/Controllers/SubsidyDataController.cs
@@ -57,6 +57,35 @@
            }
        }
        ///获取补贴列表数据
        /// </summary>
        /// <param name="PageNumber"></param>
        /// <param name="PageSize"></param>
        /// <returns></returns>
        [HttpPost]
        public ActionResult GetSubsidyDataFilter( string Keyword, string CompanyName)
        {
            try
            {
                var list = _acc.GetSubsidyDataFilter(Keyword, CompanyName);
                if (list == null)
                {
                    return SuccessNoShow(data: "暂无此公司");
                }
                return SuccessNoShow(data: list);
            }
            catch (Exception e)
            {
                LogHelper.Write(Level.Error, "获取政策列表数据 GetSubsidyDataFilter", e, OperatorProvider.Instance.Current == null ? "GuestEx" : OperatorProvider.Instance.Current.LoginName);
                return Error();
            }
        }
        [HttpPost]
        public ActionResult UploadFile(HttpPostedFileBase file)
        {
@@ -123,7 +152,8 @@
        {
            try
            {
                var id = OperatorProvider.Instance.Current.UserId;
                //var id = OperatorProvider.Instance.Current.UserId;
                var id = 1;
                if (id == 0)
                {
                    return Error(message: "账户未登录!请登录后查询", data: "-1");