双月卡活动
This commit is contained in:
@@ -33,9 +33,17 @@
|
||||
<ul class="nav nav-tabs cpName" role="tablist">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
@if(item.Product.Id == 5){
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab">@item.Product.Name<span style="color: #f64e3d;font-weight:bold;">活动</span></a>
|
||||
</li>
|
||||
} else {
|
||||
|
||||
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
|
||||
<a href="#@item.Product.Id" role="tab" data-toggle="tab">@item.Product.Name</a>
|
||||
</li>
|
||||
}
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
@@ -74,18 +82,49 @@
|
||||
}
|
||||
else
|
||||
{
|
||||
<a asp-action="buy" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
@if(package.Id == 86){
|
||||
<a asp-action="buy" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送1月</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</a>
|
||||
} else if(package.Id == 19) {
|
||||
|
||||
<a asp-action="buy" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送10天</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</a>
|
||||
|
||||
|
||||
} else {
|
||||
<a asp-action="buy" asp-controller="product" asp-route-id="@package.Id">
|
||||
<div class="card color_@((item.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -41,18 +41,46 @@
|
||||
</ul>
|
||||
@foreach (var package in Model.Packages.Where(m=>m.IsTest==0&&m.Status==1))
|
||||
{
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
@if(package.Id == 86){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送1月</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</a>
|
||||
} else if(package.Id == 19){
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p style="font-size: 35px;color:#f64e3d;">@package.Name 送10天</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</a>
|
||||
} else {
|
||||
<a asp-action="rebuy" asp-controller="Product" asp-route-packageId="@package.Id" asp-route-accounts=@ViewBag.accounts>
|
||||
<div class="card color_@((Model.Packages.IndexOf(package)+1)%5)">
|
||||
<div class="item">
|
||||
<p>@package.Name</p>
|
||||
<p>@(package.DayPrice)元/天</p>
|
||||
<p>@package.Profile</p>
|
||||
</div>
|
||||
<div class="item">
|
||||
<p>¥<span>@package.Price</span></p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -122,6 +122,64 @@
|
||||
.mtop {
|
||||
margin-top:30px;
|
||||
}
|
||||
.packageitem86{
|
||||
position: relative;
|
||||
}
|
||||
.packageitem86::before {
|
||||
position: absolute;
|
||||
top: 0.3rem;
|
||||
left: -0.5rem;
|
||||
z-index: 1;
|
||||
padding-right: 0.625rem;
|
||||
font-weight: bold;
|
||||
line-height: 0px;
|
||||
color: white;
|
||||
height: 0px;
|
||||
border: 1.0rem solid #f64e3d;
|
||||
border-right-color: transparent;
|
||||
content: "免费送一个月";
|
||||
box-shadow: 0px 0.3125rem 0.3125rem -0.3125rem #000;
|
||||
}
|
||||
|
||||
.packageitem86::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2.1875rem;
|
||||
left: -0.5rem;
|
||||
border: 0.25rem solid #f64e3d;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
|
||||
.packageitem19{
|
||||
position: relative;
|
||||
}
|
||||
.packageitem19::before {
|
||||
position: absolute;
|
||||
top: 0.3rem;
|
||||
left: -0.5rem;
|
||||
z-index: 1;
|
||||
padding-right: 0.625rem;
|
||||
font-weight: bold;
|
||||
line-height: 0px;
|
||||
color: white;
|
||||
height: 0px;
|
||||
border: 1.0rem solid #f64e3d;
|
||||
border-right-color: transparent;
|
||||
content: "免费送十天";
|
||||
box-shadow: 0px 0.3125rem 0.3125rem -0.3125rem #000;
|
||||
}
|
||||
|
||||
.packageitem19::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2.1875rem;
|
||||
left: -0.5rem;
|
||||
border: 0.25rem solid #f64e3d;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
@@ -135,7 +193,11 @@
|
||||
<div class="nav">
|
||||
@foreach (var item in Model)
|
||||
{
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
@if(item.Product.Id == 5){
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name <span style="color: #f64e3d;font-weight:bold;">活动</span></div>
|
||||
} else {
|
||||
<div class="productItem" id="@("p"+item.Product.Id)" a-pid="@item.Product.Id" a-pkg-id="@(item.Packages.FirstOrDefault(m=>m.Status==1).Id)">@item.Product.Name</div>
|
||||
}
|
||||
}
|
||||
|
||||
</div>
|
||||
@@ -177,21 +239,54 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(item.Product.Id == 5){
|
||||
<p class="youhuiNew">新开账号或续费,1个月赠送10天,2个月赠送1个月,(每个账号限参加一次,活动截止时间2020年11月25日)</p>
|
||||
}
|
||||
|
||||
@*<p class="text-center nameSmall">—<span>@item.Product.Name</span>—</p>*@
|
||||
<div class="card" style="margin-top:30px;">
|
||||
@foreach (var package in item.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
@if(package.Id == 86){
|
||||
|
||||
<div class="item packageitem packageitem86" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard" style="background-color:#f64e3d">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
} else if(package.Id == 19) {
|
||||
<div class="item packageitem packageitem19" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard" style="background-color:#f64e3d">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
|
||||
} else {
|
||||
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
<div style="border: 1px dashed #ccc;margin-top:30px;width:90%;margin-left: 63px;">
|
||||
|
||||
@@ -37,6 +37,64 @@
|
||||
color: red;
|
||||
font-weight: bold;
|
||||
}
|
||||
.packageitem86{
|
||||
position: relative;
|
||||
}
|
||||
.packageitem86::before {
|
||||
position: absolute;
|
||||
top: 0.3rem;
|
||||
left: -0.5rem;
|
||||
z-index: 1;
|
||||
padding-right: 0.625rem;
|
||||
font-weight: bold;
|
||||
line-height: 0px;
|
||||
color: white;
|
||||
height: 0px;
|
||||
border: 1.0rem solid #f64e3d;
|
||||
border-right-color: transparent;
|
||||
content: "免费送一个月";
|
||||
box-shadow: 0px 0.3125rem 0.3125rem -0.3125rem #000;
|
||||
}
|
||||
|
||||
.packageitem86::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2.1875rem;
|
||||
left: -0.5rem;
|
||||
border: 0.25rem solid #f64e3d;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
|
||||
.packageitem19{
|
||||
position: relative;
|
||||
}
|
||||
.packageitem19::before {
|
||||
position: absolute;
|
||||
top: 0.3rem;
|
||||
left: -0.5rem;
|
||||
z-index: 1;
|
||||
padding-right: 0.625rem;
|
||||
font-weight: bold;
|
||||
line-height: 0px;
|
||||
color: white;
|
||||
height: 0px;
|
||||
border: 1.0rem solid #f64e3d;
|
||||
border-right-color: transparent;
|
||||
content: "免费送十天";
|
||||
box-shadow: 0px 0.3125rem 0.3125rem -0.3125rem #000;
|
||||
}
|
||||
|
||||
.packageitem19::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 2.1875rem;
|
||||
left: -0.5rem;
|
||||
border: 0.25rem solid #f64e3d;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
}
|
||||
|
||||
</style>
|
||||
<!-- ad -->
|
||||
<div class="container-fluid ad">
|
||||
@@ -63,10 +121,54 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if(defaultProduct.Id == 5){
|
||||
<p class="youhuiNew">新开账号或续费,1个月赠送10天,2个月赠送1个月,(每个账号限参加一次,活动截止时间2020年11月25日)</p>
|
||||
}
|
||||
<div class="card">
|
||||
@foreach (var package in Model.Packages.Where(m => m.IsTest == 0 && m.Status == 1))
|
||||
{
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
@if(package.Id == 86){
|
||||
|
||||
<div class="item packageitem packageitem86" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard" style="background-color:#f64e3d">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
} else if(package.Id == 19) {
|
||||
<div class="item packageitem packageitem19" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard" style="background-color:#f64e3d">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
|
||||
} else {
|
||||
|
||||
<div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
|
||||
<div class="pkgNameCard">
|
||||
<p class="tianka">@package.Name</p>
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
}
|
||||
}
|
||||
@* <div class="item packageitem" id="@("pkg"+package.Id)" a-pkg-id="@package.Id">
|
||||
|
||||
<p><span class="price">@package.Price</span>元</p>
|
||||
<p class="yuanjia">原价:<span>@package.LinePrice</span>元</p>
|
||||
@@ -76,7 +178,7 @@
|
||||
<p class="qixian">@package.Profile</p>
|
||||
</div>
|
||||
<img src="~/img/check.png" class="cardCheck">
|
||||
</div>
|
||||
</div> *@
|
||||
}
|
||||
</div>
|
||||
<div style="border: 1px dashed #ccc;margin-top:30px;width:90%;margin-left: 63px;">
|
||||
|
||||
@@ -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>(){
|
||||
|
||||
@@ -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>()
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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>(){
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user