双月卡活动

This commit is contained in:
wanyongkang
2020-11-02 15:44:07 +08:00
parent 04c2ae94f7
commit e1481d5f3c
14 changed files with 352 additions and 49 deletions

View File

@@ -187,7 +187,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount, int payCount = 1)
{
var client = CreateHttpClient();
var map = new Dictionary<string, string>(){

View File

@@ -236,7 +236,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey,string account, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey,string account, int connCount, int payCount = 1)
{
var client = CreateHttpClient();
Dictionary<string, int> priceMap = new Dictionary<string, int>()

View File

@@ -102,6 +102,12 @@ namespace Hncore.Pass.Vpn.Service
return await NewTestAccount(account, pwd);
}
var client = CreateHttpClient();
//user: ceshiyiha
// passwd: ceshiyiha
// conn_max: 1
// type: m
// paynum: 2
// details: ce
var map = new Dictionary<string, string>(){
{"user",account },
{"passwd",pwd },
@@ -215,13 +221,13 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount, int payCount = 1)
{
var client = CreateHttpClient();
var map = new Dictionary<string, string>(){
{"user",account },
{"type",packageKey },
{"paynum","1"},
{"paynum",payCount.ToString()},
};
var title = GetOpTitle("NewReAccount", account);
LogHelper.Info(title, map.ToJson());

View File

@@ -192,7 +192,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount, int payCount = 1)
{
var client = CreateHttpClient();
var map = new Dictionary<string, string>(){

View File

@@ -296,7 +296,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey, string account, int connCount, int payCount = 1)
{
var ret = await this.GetAccountInfo(account);
if (ret.Code != ResultCode.C_SUCCESS|| ret.Data==null)

View File

@@ -224,7 +224,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account">原始的账号的id</param>
/// <param name="pwd"></param>
/// <returns></returns>
public override async Task<ApiResult> NewReAccount(string packageKey, string id, int connCount)
public override async Task<ApiResult> NewReAccount(string packageKey, string id, int connCount, int payCount = 1)
{
var ret = await this.GetAccountInfo(id);
if (ret.Code != ResultCode.C_SUCCESS|| ret.Data==null)

View File

@@ -145,7 +145,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public virtual async Task<ApiResult> NewReAccount(string packageKey,string account,int connCount)
public virtual async Task<ApiResult> NewReAccount(string packageKey,string account,int connCount, int payCount = 1)
{
return new ApiResult();
}

View File

@@ -180,7 +180,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public virtual async Task<ApiResult> NewAccount(int orderId, int packageId, string account, string pwd, int connCount = 1, int accountType = 1)
public virtual async Task<ApiResult> NewAccount(int orderId, int packageId, string account, string pwd, int connCount = 1, int accountType = 1,int payCount = 1)
{
ApiResult flagResult = new ApiResult(ResultCode.C_SUCCESS);
var package = await m_ProductPackageService.GetById(packageId);
@@ -190,7 +190,7 @@ namespace Hncore.Pass.Vpn.Service
if (package.PackageType == PackageType.Base)
{
var ret = await agent.NewAccount(package.OriginKey, account, pwd, connCount, accountType);
var ret = await agent.NewAccount(package.OriginKey, account, pwd, connCount, accountType,payCount);
//var ret = new ApiResult(ResultCode.C_INVALID_ERROR);
var status = ret.Code == ResultCode.C_SUCCESS ? ChargeStatus.Ok : ChargeStatus.Faild;
await m_AccountChargeService.RecordNew(package, orderId, product.GroupNO, account, pwd, accountType, connCount, status);
@@ -206,7 +206,7 @@ namespace Hncore.Pass.Vpn.Service
firstPackage.Count--;
basePackages.Insert(0, firstPackage);
}
var ret = await agent.NewAccount(firstPackage.Package.OriginKey, account, pwd, connCount, accountType);
var ret = await agent.NewAccount(firstPackage.Package.OriginKey, account, pwd, connCount, accountType,payCount);
//var ret = new ApiResult(ResultCode.C_INVALID_ERROR);
var status = ret.Code == ResultCode.C_SUCCESS ? ChargeStatus.Ok : ChargeStatus.Faild;
await m_AccountChargeService.RecordNew(firstPackage.Package, orderId, product.GroupNO, account, pwd, accountType, connCount, status);
@@ -238,7 +238,7 @@ namespace Hncore.Pass.Vpn.Service
/// <param name="account"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public virtual async Task<ApiResult> ReNewAccount(int orderId, int packageId, string account, int connCount)
public virtual async Task<ApiResult> ReNewAccount(int orderId, int packageId, string account, int connCount,int payCount = 1)
{
var package = await m_ProductPackageService.GetById(packageId);
var product = await m_ProductService.GetById(package.ProductId);
@@ -253,7 +253,7 @@ namespace Hncore.Pass.Vpn.Service
ApiResult flagResult = new ApiResult(ResultCode.C_SUCCESS);
if (package.PackageType == PackageType.Base)
{
var ret = await agent.NewReAccount(package.OriginKey, account, connCount);
var ret = await agent.NewReAccount(package.OriginKey, account, connCount,payCount);
// var ret = new ApiResult(ResultCode.C_INVALID_ERROR);
var status = ret.Code == ResultCode.C_SUCCESS ? ChargeStatus.Ok : ChargeStatus.Faild;
await m_AccountChargeService.RecordReNew(package, orderId, product.GroupNO, account, connCount, status);
@@ -266,7 +266,7 @@ namespace Hncore.Pass.Vpn.Service
{
for (var j = 0; j < basePackage.Count; j++)
{
var ret = await agent.NewReAccount(basePackage.Package.OriginKey, account, connCount);
var ret = await agent.NewReAccount(basePackage.Package.OriginKey, account, connCount,payCount);
//var ret = new ApiResult(ResultCode.C_INVALID_ERROR);
var status = ret.Code == ResultCode.C_SUCCESS ? ChargeStatus.Ok : ChargeStatus.Faild;
await m_AccountChargeService.RecordReNew(basePackage.Package, orderId, product.GroupNO, account, connCount, status);

View File

@@ -51,6 +51,17 @@ namespace Hncore.Pass.Vpn.Service
return false;
}
//检查参加活动账号是否已经存在
public async Task<bool> CheckMonthAccountExist(string account)
{
var flag = this.Exist(m => m.Account == account && m.PackageId == 86);
if (flag)
{
return true;
}
return false;
}
public bool CheckUserAccountExist(int product, List<string> accouts, int userId)
{
return this.Exist(m => accouts.Contains(m.Account) && m.UserId == userId);

View File

@@ -250,6 +250,10 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
{
order.OrderAmount = price * request.ConnectCount;
order.Accounts = request.Account;
var isExit = await m_ProductAccountService.CheckMonthAccountExist(request.Account);
if(isExit){
return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, request.Account + "此IP账号已享受该优惠套餐无法再次购买,若要购买此优惠套餐,请新开或续费其他账号。");
}
}
if (request.OrderType == OrderType.News)
@@ -267,6 +271,13 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
order.OrderAmount = price * request.ConnectCount * count;
order.Accounts = request.Account;
}
foreach (var account in order.Accounts.Split(",").ToList())
{
var isExit = await m_ProductAccountService.CheckMonthAccountExist(account);
if(isExit){
return new ApiResult<ProductOrderEntity>(ResultCode.C_INVALID_ERROR, account + "此IP账号已享受该优惠套餐无法再次购买,若要购买此优惠套餐,请新开或续费其他账号。");
}
}
await CheckRequest(order);
@@ -518,7 +529,13 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
var accountError = "";
await accountEntitys.ForEachAsync(async accountEntity =>
{
var ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount);
var ret = new ApiResult();
if(accountEntity.PackageId.Value == 86){
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount,1,2);
} else {
ret = await m_AgentService.NewAccount(order.Id, accountEntity.PackageId.Value, accountEntity.Account, accountEntity.Pwd, accountEntity.ConnectCount);
}
if (ret.Code != ResultCode.C_SUCCESS)
{
accountEntity.ChargeStatus = AccountChargeStatus.Exception;
@@ -588,7 +605,12 @@ FROM product_order where {where} GROUP BY Channel,ProductName order by Channel,
{
var account = accountEntity.Account;
if (product.GroupNO == "g7") account = accountEntity.Raw;
var ret = await m_AgentService.ReNewAccount(order.Id, order.PackageId, account, order.ConnectCount);
var ret = new ApiResult();
if (order.PackageId == 86){
ret = await m_AgentService.ReNewAccount(order.Id, order.PackageId, account, order.ConnectCount,2);
} else {
ret = await m_AgentService.ReNewAccount(order.Id, order.PackageId, account, order.ConnectCount);
}
if (ret.Code != ResultCode.C_SUCCESS)
{
accountEntity.ChargeStatus = AccountChargeStatus.Exception;