From 0f2b2e803de201075f7cf2b6d48d4051d1205ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cwanyongkang=E2=80=9D?= <“937888580@qq.com”> Date: Wed, 17 Apr 2024 15:04:57 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9E=81=E5=AE=A2=E6=AD=A3=E5=BC=8F=E5=A5=97?= =?UTF-8?q?=E9=A4=90=E5=BC=80=E9=80=9Atx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Hncore.Pass.Vpn/Domain/AgreementEntity.cs | 14 ++++++++++++++ Services/Hncore.Pass.Vpn/Domain/CourseContext.cs | 9 +++++++++ .../Service/AgentClient6Service.cs | 11 ++++++++++- .../Hncore.Pass.Vpn/Service/AgreementService.cs | 16 ++++++++++++++++ .../Service/ProductOrderService.cs | 15 ++++++++++++--- 5 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 Services/Hncore.Pass.Vpn/Domain/AgreementEntity.cs create mode 100644 Services/Hncore.Pass.Vpn/Service/AgreementService.cs diff --git a/Services/Hncore.Pass.Vpn/Domain/AgreementEntity.cs b/Services/Hncore.Pass.Vpn/Domain/AgreementEntity.cs new file mode 100644 index 0000000..1f2f8a3 --- /dev/null +++ b/Services/Hncore.Pass.Vpn/Domain/AgreementEntity.cs @@ -0,0 +1,14 @@ +using Hncore.Infrastructure.DDD; +using System; +using System.Collections.Generic; + +namespace Hncore.Pass.Vpn.Domain +{ + public partial class AgreementEntity + { + public int id { get; set; } + public int user_id { get; set; } + public int status { get; set; } + public string username { get; set; } + } +} diff --git a/Services/Hncore.Pass.Vpn/Domain/CourseContext.cs b/Services/Hncore.Pass.Vpn/Domain/CourseContext.cs index bdf7b56..af460d1 100644 --- a/Services/Hncore.Pass.Vpn/Domain/CourseContext.cs +++ b/Services/Hncore.Pass.Vpn/Domain/CourseContext.cs @@ -148,6 +148,15 @@ namespace Hncore.Pass.Vpn.Domain entity.HasKey(p => p.id); entity.Property(e => e.id).ValueGeneratedOnAdd(); }); + + //上传tx认证 + modelBuilder.Entity(entity => + { + entity.ToTable("use_agreement"); + + entity.HasKey(p => p.id); + entity.Property(e => e.id).ValueGeneratedOnAdd(); + }); base.OnModelCreating(modelBuilder); } } diff --git a/Services/Hncore.Pass.Vpn/Service/AgentClient6Service.cs b/Services/Hncore.Pass.Vpn/Service/AgentClient6Service.cs index 2fd2f3d..268a528 100644 --- a/Services/Hncore.Pass.Vpn/Service/AgentClient6Service.cs +++ b/Services/Hncore.Pass.Vpn/Service/AgentClient6Service.cs @@ -170,13 +170,22 @@ namespace Hncore.Pass.Vpn.Service { if (packageKey == "test_pay") return await NewTestAccount(account, pwd); + + var acc = account; + var tx = "no"; + if(account.Contains("-")){ + string[] arrStr = account.Split('-'); + acc = arrStr[0]; + tx = arrStr[1]; + } var client = CreateHttpClient(); var map = new Dictionary(){ {"type","adduser" }, - {"user",account }, + {"user",acc }, {"pass",pwd }, {"logincount",connCount.ToString()}, {"serverid",packageKey }, + {"tx",tx }, }; var title = GetOpTitle("NewAccount", account); LogHelper.Info(title, map.ToJson()); diff --git a/Services/Hncore.Pass.Vpn/Service/AgreementService.cs b/Services/Hncore.Pass.Vpn/Service/AgreementService.cs new file mode 100644 index 0000000..c42dc25 --- /dev/null +++ b/Services/Hncore.Pass.Vpn/Service/AgreementService.cs @@ -0,0 +1,16 @@ +using Hncore.Infrastructure.Service; +using Hncore.Pass.Vpn.Domain; +using Microsoft.AspNetCore.Http; + +namespace Hncore.Pass.Vpn.Service +{ + public partial class AgreementService : ServiceBase, IFindService + { + CourseContext m_DbContext; + public AgreementService(CourseContext dbContext, IHttpContextAccessor httpContextAccessor) : base(dbContext, httpContextAccessor) + { + m_DbContext = dbContext; + } + } +} + diff --git a/Services/Hncore.Pass.Vpn/Service/ProductOrderService.cs b/Services/Hncore.Pass.Vpn/Service/ProductOrderService.cs index f6a222d..78f409a 100644 --- a/Services/Hncore.Pass.Vpn/Service/ProductOrderService.cs +++ b/Services/Hncore.Pass.Vpn/Service/ProductOrderService.cs @@ -30,6 +30,7 @@ namespace Hncore.Pass.Vpn.Service private static readonly AsyncLock _mutex1 = new AsyncLock(); CourseContext m_DbContext; ProductService m_ProductService; + AgreementService m_Agreement; ProductPackageService m_ProductPackageService; UserService m_UserService; BaseUserService m_BaseUserService; @@ -49,6 +50,7 @@ namespace Hncore.Pass.Vpn.Service , ProductPriceSchemeService _ProductPriceSchemeService , AgentPriceService _AgentPriceService , ProductService _ProductService + , AgreementService _Agreement , ProductPackageService _ProductPackageService , UserService _UserService , ProductOrderItemService _ProductOrderItemService @@ -66,6 +68,7 @@ namespace Hncore.Pass.Vpn.Service m_AgentScoreService = _AgentScoreService; m_AgentPriceService = _AgentPriceService; m_ProductService = _ProductService; + m_Agreement = _Agreement; m_ProductPackageService = _ProductPackageService; m_UserService = _UserService; m_ProductOrderItemService = _ProductOrderItemService; @@ -696,7 +699,14 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel, } else if(accountEntity.ProductId.Value == 8 || accountEntity.ProductId.Value == 7){ var account_remark = accountEntity.Account + "-" + user_remark; ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, account_remark, accountEntity.Pwd, accountEntity.ConnectCount,1,2); - } else if (accountEntity.PackageId.Value > 1034 && accountEntity.PackageId.Value < 1040) { + } else if(accountEntity.ProductId.Value == 13){ + var agreementEntity = await m_Agreement.Query(m => m.user_id == order.UserId).FirstOrDefaultAsync(); + var account_remark = accountEntity.Account; + if (agreementEntity != null){ + account_remark = accountEntity.Account + "-yes"; + } + ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, account_remark, accountEntity.Pwd, accountEntity.ConnectCount,1,2); + } else if (accountEntity.PackageId.Value > 1034 && accountEntity.PackageId.Value < 1040) { ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,2); } else if (accountEntity.PackageId.Value > 1040 && accountEntity.PackageId.Value < 1046) { @@ -924,14 +934,13 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel, var accountError = ""; await accountEntitys.ForEachAsync(async accountEntity => { - var ret = new ApiResult(); if(accountEntity.PackageId.Value == 86 || accountEntity.PackageId.Value == 88){ ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,1,2); } else if(accountEntity.ProductId.Value == 8 || accountEntity.ProductId.Value == 7){ var account_remark = accountEntity.Account + "-" + user_remark; ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, account_remark, accountEntity.Pwd, accountEntity.ConnectCount,1,2); - } else if (accountEntity.PackageId.Value > 1034 && accountEntity.PackageId.Value < 1040) { + }else if (accountEntity.PackageId.Value > 1034 && accountEntity.PackageId.Value < 1040) { ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,2); } else if (accountEntity.PackageId.Value > 1040 && accountEntity.PackageId.Value < 1046) {