忽略dll文件git

This commit is contained in:
“wanyongkang”
2023-07-29 10:19:42 +08:00
parent 7f97317bcc
commit b562aba2b1
3868 changed files with 63608 additions and 385427 deletions

View File

@@ -1,431 +1,431 @@
@using Hncore.Pass.Vpn.Response.Product
@using Microsoft.Extensions.Configuration
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@inject IConfiguration m_Configuration
@model List<ProductWithPackageResponse>
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
}
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
if (pid == "")
{
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
}
else
{
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
}
var defaultPackage = Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
@* <div class="cpBanner">
<img src="~/m/img/cpBanner.png">
</div> *@
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:360px;">
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
<div class="col-md-8 " style="padding-top:1.5%;">
<h2 >十余种全网知名旗舰产品低价热销</h2>
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单每次下单都会随机赠送优惠券最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款&nbsp;<span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
</div>
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
<h2>联系客服设置优惠价</h2>
<a target="_blank" href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
</div>
</div>
</div>
<div class="cpNav">
<div class="item">
<ul class="nav nav-tabs cpName" role="tablist">
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>动态独享IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
@foreach (var item in Model)
{
if(item.Product.Id == 18) {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;"><span style="color: red;font-weight:bold;">送 </span>@item.Product.Name<span style="color: #f64e3d;font-weight:bold;float:right;padding-right: 5px;">8折</span></a>
</li>
} else if(item.Product.Id == 14) {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" id="p14" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name</a>
</li>
}
else if(item.Product.Id == 22) {
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>静态IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
}
else if(item.Product.Id == 21) {
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>单窗口单IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
} else {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
}
}
</ul>
</div>
<script>
$("#select-7").on('click',function(){
alert('请注意无尽IP仅供电脑端使用');
});
$("#select-19").on('click',function(){
alert('本产品为独享每个账号对应一个宽带拨号永不超载保证了网速及稳定性。使用时只需设置这个唯一的服务器1.hhip.vip在账号列表中点击切换地区即可任意组合自己需要的地区。本产品灵活便捷欢迎选购');
});
</script>
<div class="item">
<div class="tab-content">
@foreach (var item in Model)
{
<div role="tabpanel" class="tab-pane @(item.Product.Id==defaultProduct.Id?"active":"")" id="@item.Product.Id">
<p class="texing">@item.Product.Name</p>
<ul class="texingList">
@foreach (var str in item.Product.ContentLine)
{
<li>·@str</li>
}
</ul>
<script>
$(".p_type").hide();
$("#p14").click(function () {
$(".type14").show();
for (var i=1034;i<1046;i++){
$("#package-"+i).hide();
}
});
function ttzhizun() {
$("#package-89").show();
$("#package-69").show();
$("#package-70").show();
$("#package-71").show();
$("#package-1022").show();
$("#package-1023").show();
for (var i=1034;i<1046;i++){
$("#package-"+i).hide();
}
$(".ttzx").css('background-color','#FF9900');
$(".ttgj").css('background-color','white');
$(".ttpt").css('background-color','white');
}
function ttgaoji() {
$(".ttgj").css('background-color','#FF9900');
$(".ttzx").css('background-color','white');
$(".ttpt").css('background-color','white');
$("#package-89").hide();
$("#package-69").hide();
$("#package-70").hide();
$("#package-71").hide();
$("#package-1022").hide();
$("#package-1023").hide();
for (var i=1040;i<1046;i++){
$("#package-"+i).hide();
}
for (var i=1034;i<1040;i++){
$("#package-"+i).show();
}
}
function ttputong() {
$(".ttpt").css('background-color','#FF9900');
$(".ttzx").css('background-color','white');
$(".ttgj").css('background-color','white');
$("#package-89").hide();
$("#package-69").hide();
$("#package-70").hide();
$("#package-71").hide();
$("#package-1022").hide();
$("#package-1023").hide();
for (var i=1040;i<1046;i++){
$("#package-"+i).show();
}
for (var i=1034;i<1040;i++){
$("#package-"+i).hide();
}
}
var wjdxtype = 1;
function wjdxphone() {
$("#dxaz").css('background-color','#FF9900');
$("#dxdn").css('background-color','white');
wjdxtype = 1;
for (var i=1048;i<1051;i++){
$("#package-"+i).show();
}
for (var i=1051;i<1060;i++){
$("#package-"+i).hide();
}
}
wjdxphone();
function wjdxpc() {
$("#dxaz").css('background-color','white');
$("#dxdn").css('background-color','#FF9900');
wjdxtype = 2;
for (var i=1048;i<1054;i++){
$("#package-"+i).hide();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).hide();
}
for (var i=1054;i<1057;i++){
$("#package-"+i).show();
}
}
function wjdxpt() {
$("#dxpt").css('background-color','#FF9900');
$("#dxgj").css('background-color','white');
if (wjdxtype == 1) {
for (var i=1051;i<1060;i++){
$("#package-"+i).hide();
}
for (var i=1048;i<1051;i++){
$("#package-"+i).show();
}
} else if (wjdxtype == 2) {
for (var i=1048;i<1054;i++){
$("#package-"+i).hide();
}
for (var i=1054;i<1057;i++){
$("#package-"+i).show();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).hide();
}
}
}
function wjdxgj() {
$("#dxpt").css('background-color','white');
$("#dxgj").css('background-color','#FF9900');
if (wjdxtype == 1) {
for (var i=1048;i<1051;i++){
$("#package-"+i).hide();
}
for (var i=1051;i<1054;i++){
$("#package-"+i).show();
}
for (var i=1054;i<1060;i++){
$("#package-"+i).hide();
}
} else if (wjdxtype == 2) {
for (var i=1048;i<1057;i++){
$("#package-"+i).hide();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).show();
}
}
}
//1 安卓、苹果 2 pc
var wjgxtype = 1;
function wjgxphone() {
$("#gxaz").css('background-color','#FF9900');
$("#gxdn").css('background-color','white');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
wjgxtype = 1;
for (var i=1060;i<1063;i++){
$("#package-"+i).show();
}
for (var i=1063;i<1072;i++){
$("#package-"+i).hide();
}
}
wjgxphone();
function wjgxpc() {
$("#gxaz").css('background-color','white');
$("#gxdn").css('background-color','#FF9900');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
wjgxtype = 2;
for (var i=1060;i<1066;i++){
$("#package-"+i).hide();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).hide();
}
for (var i=1066;i<1069;i++){
$("#package-"+i).show();
}
}
function wjgxpt() {
$("#gxpt").css('background-color','#FF9900');
$("#gxgj").css('background-color','white');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
if (wjgxtype == 1) {
for (var i=1060;i<1063;i++){
$("#package-"+i).show();
}
for (var i=1063;i<1072;i++){
$("#package-"+i).hide();
}
} else if (wjgxtype == 2) {
for (var i=1060;i<1066;i++){
$("#package-"+i).hide();
}
for (var i=1066;i<1069;i++){
$("#package-"+i).show();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).hide();
}
}
}
function wjgxgj() {
$("#gxpt").css('background-color','white');
$("#gxgj").css('background-color','#FF9900');
$("#wjgxgd").addClass("active");
$("#wjgxpt").removeClass("active");
if (wjgxtype == 1) {
for (var i=1060;i<1063;i++){
$("#package-"+i).hide();
}
for (var i=1063;i<1066;i++){
$("#package-"+i).show();
}
for (var i=1066;i<1072;i++){
$("#package-"+i).hide();
}
} else if (wjgxtype == 2) {
for (var i=1060;i<1069;i++){
$("#package-"+i).hide();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).show();
}
}
}
</script>
<p style="color: #ec6e58;font-size:30px;font-weight: bold;background-color:#FFFF00">
需求5个以上可以联系客服设置优惠价;
开通后有任何问题可无理由退款,并支持自助提现
退款规则:购买价格-使用天数*天卡价格
</p>
<div class="p_type @("type"+item.Product.Id)" style="padding-top: 10px;">
<button type="button" onclick="ttzhizun()" class="btn btn-default btn-lg ttzx" style="background-color: #FF9900;font-size:1.5em;">尊享版</button>
<button type="button" onclick="ttgaoji()" class="btn btn-default btn-lg ttgj" style="background-color: white;font-size:1.5em;">高级版</button>
<button type="button" onclick="ttputong()" class="btn btn-default btn-lg ttpt" style="background-color: white;font-size:1.5em;">普通版</button>
</div>
@if (item.Product.Id == 20) {
<div style="margin: 5px;">
<button type="button" onclick="wjdxphone()" id="dxaz" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">安卓/苹果</button>
<button type="button" onclick="wjdxpc()" id="dxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
</div>
<div style="margin: 5px;">
<button type="button" onclick="wjdxpt()" id="dxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版-5兆</button>
<button type="button" onclick="wjdxgj()" id="dxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">高端版-10兆</button>
</div>
}
@if (item.Product.Id == 21) {
<div style="margin: 5px;">
<button type="button" onclick="wjgxphone()" id="gxaz" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">安卓/苹果</button>
<button type="button" onclick="wjgxpc()" id="gxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
</div>
<div style="margin: 5px;">
<button type="button" onclick="wjgxpt()" id="gxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版</button>
<button type="button" onclick="wjgxgj()" id="gxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">极速版</button>
</div>
}
@foreach (var package in item.Packages.Where(m => m.Status == 1&&(m.TenantId==1157||m.TenantId==9999||m.TenantId==10000)).OrderBy(m => m.TenantId))
{
if (package.IsTest == 1)
{
<a asp-action="test" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.ProductId">
<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>
</div>
<div class="item">
<p>¥<span>0.00</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
else
{
@if(package.Price == 0.1M){
<a asp-action="buy" id="@("package-"+package.Id)" 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:#FFFF00;">@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>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
else {
<a asp-action="buy" id="@("package-"+package.Id)" 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:#FFFF00;">@package.Name</p>
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
<p>¥<span>60.00</span></p>
} else {
<p>¥<span>@package.Price</span></p>
}
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
}
}
</div>
}
</div>
</div>
</div>
@using Hncore.Pass.Vpn.Response.Product
@using Microsoft.Extensions.Configuration
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@inject IConfiguration m_Configuration
@model List<ProductWithPackageResponse>
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
}
var pid = this.Context.Request.Query.ContainsKey("id") ? this.Context.Request.Query["id"].ToString() : "";
var defaultProduct = Model.Select(m => m.Product).FirstOrDefault();
if (pid == "")
{
pid = Model.Select(m => m.Product).FirstOrDefault().Id.ToString();
}
else
{
defaultProduct = Model.Select(m => m.Product).FirstOrDefault(m => m.Id.ToString() == pid);
}
var defaultPackage = Model.Where(m => m.Product.Id == defaultProduct.Id).Select(m => m.Packages.FirstOrDefault()).FirstOrDefault();
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
@* <div class="cpBanner">
<img src="~/m/img/cpBanner.png">
</div> *@
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:360px;">
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
<div class="col-md-8 " style="padding-top:1.5%;">
<h2 >十余种全网知名旗舰产品低价热销</h2>
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单每次下单都会随机赠送优惠券最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款&nbsp;<span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
</div>
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
<h2>联系客服设置优惠价</h2>
<a target="_blank" href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
</div>
</div>
</div>
<div class="cpNav">
<div class="item">
<ul class="nav nav-tabs cpName" role="tablist">
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>动态独享IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
@foreach (var item in Model)
{
if(item.Product.Id == 18) {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;"><span style="color: red;font-weight:bold;">送 </span>@item.Product.Name<span style="color: #f64e3d;font-weight:bold;float:right;padding-right: 5px;">8折</span></a>
</li>
} else if(item.Product.Id == 14) {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" id="p14" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name</a>
</li>
}
else if(item.Product.Id == 22) {
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>静态IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
}
else if(item.Product.Id == 21) {
<li >
<a style="color:#0098fb"><span class="glyphicon glyphicon-arrow-down"></span>单窗口单IP<span class="glyphicon glyphicon-arrow-down"></span></a>
</li>
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
} else {
<li role="presentation" class="@(item.Product.Id==defaultProduct.Id?"active":"")">
<a href="#@item.Product.Id" role="tab" data-toggle="tab" style="font-size: 25px;">@item.Product.Name </a>
</li>
}
}
</ul>
</div>
<script>
$("#select-7").on('click',function(){
alert('请注意无尽IP仅供电脑端使用');
});
$("#select-19").on('click',function(){
alert('本产品为独享每个账号对应一个宽带拨号永不超载保证了网速及稳定性。使用时只需设置这个唯一的服务器1.hhip.vip在账号列表中点击切换地区即可任意组合自己需要的地区。本产品灵活便捷欢迎选购');
});
</script>
<div class="item">
<div class="tab-content">
@foreach (var item in Model)
{
<div role="tabpanel" class="tab-pane @(item.Product.Id==defaultProduct.Id?"active":"")" id="@item.Product.Id">
<p class="texing">@item.Product.Name</p>
<ul class="texingList">
@foreach (var str in item.Product.ContentLine)
{
<li>·@str</li>
}
</ul>
<script>
$(".p_type").hide();
$("#p14").click(function () {
$(".type14").show();
for (var i=1034;i<1046;i++){
$("#package-"+i).hide();
}
});
function ttzhizun() {
$("#package-89").show();
$("#package-69").show();
$("#package-70").show();
$("#package-71").show();
$("#package-1022").show();
$("#package-1023").show();
for (var i=1034;i<1046;i++){
$("#package-"+i).hide();
}
$(".ttzx").css('background-color','#FF9900');
$(".ttgj").css('background-color','white');
$(".ttpt").css('background-color','white');
}
function ttgaoji() {
$(".ttgj").css('background-color','#FF9900');
$(".ttzx").css('background-color','white');
$(".ttpt").css('background-color','white');
$("#package-89").hide();
$("#package-69").hide();
$("#package-70").hide();
$("#package-71").hide();
$("#package-1022").hide();
$("#package-1023").hide();
for (var i=1040;i<1046;i++){
$("#package-"+i).hide();
}
for (var i=1034;i<1040;i++){
$("#package-"+i).show();
}
}
function ttputong() {
$(".ttpt").css('background-color','#FF9900');
$(".ttzx").css('background-color','white');
$(".ttgj").css('background-color','white');
$("#package-89").hide();
$("#package-69").hide();
$("#package-70").hide();
$("#package-71").hide();
$("#package-1022").hide();
$("#package-1023").hide();
for (var i=1040;i<1046;i++){
$("#package-"+i).show();
}
for (var i=1034;i<1040;i++){
$("#package-"+i).hide();
}
}
var wjdxtype = 1;
function wjdxphone() {
$("#dxaz").css('background-color','#FF9900');
$("#dxdn").css('background-color','white');
wjdxtype = 1;
for (var i=1048;i<1051;i++){
$("#package-"+i).show();
}
for (var i=1051;i<1060;i++){
$("#package-"+i).hide();
}
}
wjdxphone();
function wjdxpc() {
$("#dxaz").css('background-color','white');
$("#dxdn").css('background-color','#FF9900');
wjdxtype = 2;
for (var i=1048;i<1054;i++){
$("#package-"+i).hide();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).hide();
}
for (var i=1054;i<1057;i++){
$("#package-"+i).show();
}
}
function wjdxpt() {
$("#dxpt").css('background-color','#FF9900');
$("#dxgj").css('background-color','white');
if (wjdxtype == 1) {
for (var i=1051;i<1060;i++){
$("#package-"+i).hide();
}
for (var i=1048;i<1051;i++){
$("#package-"+i).show();
}
} else if (wjdxtype == 2) {
for (var i=1048;i<1054;i++){
$("#package-"+i).hide();
}
for (var i=1054;i<1057;i++){
$("#package-"+i).show();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).hide();
}
}
}
function wjdxgj() {
$("#dxpt").css('background-color','white');
$("#dxgj").css('background-color','#FF9900');
if (wjdxtype == 1) {
for (var i=1048;i<1051;i++){
$("#package-"+i).hide();
}
for (var i=1051;i<1054;i++){
$("#package-"+i).show();
}
for (var i=1054;i<1060;i++){
$("#package-"+i).hide();
}
} else if (wjdxtype == 2) {
for (var i=1048;i<1057;i++){
$("#package-"+i).hide();
}
for (var i=1057;i<1060;i++){
$("#package-"+i).show();
}
}
}
//1 安卓、苹果 2 pc
var wjgxtype = 1;
function wjgxphone() {
$("#gxaz").css('background-color','#FF9900');
$("#gxdn").css('background-color','white');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
wjgxtype = 1;
for (var i=1060;i<1063;i++){
$("#package-"+i).show();
}
for (var i=1063;i<1072;i++){
$("#package-"+i).hide();
}
}
wjgxphone();
function wjgxpc() {
$("#gxaz").css('background-color','white');
$("#gxdn").css('background-color','#FF9900');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
wjgxtype = 2;
for (var i=1060;i<1066;i++){
$("#package-"+i).hide();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).hide();
}
for (var i=1066;i<1069;i++){
$("#package-"+i).show();
}
}
function wjgxpt() {
$("#gxpt").css('background-color','#FF9900');
$("#gxgj").css('background-color','white');
$("#wjgxgd").removeClass("active");
$("#wjgxpt").addClass("active");
if (wjgxtype == 1) {
for (var i=1060;i<1063;i++){
$("#package-"+i).show();
}
for (var i=1063;i<1072;i++){
$("#package-"+i).hide();
}
} else if (wjgxtype == 2) {
for (var i=1060;i<1066;i++){
$("#package-"+i).hide();
}
for (var i=1066;i<1069;i++){
$("#package-"+i).show();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).hide();
}
}
}
function wjgxgj() {
$("#gxpt").css('background-color','white');
$("#gxgj").css('background-color','#FF9900');
$("#wjgxgd").addClass("active");
$("#wjgxpt").removeClass("active");
if (wjgxtype == 1) {
for (var i=1060;i<1063;i++){
$("#package-"+i).hide();
}
for (var i=1063;i<1066;i++){
$("#package-"+i).show();
}
for (var i=1066;i<1072;i++){
$("#package-"+i).hide();
}
} else if (wjgxtype == 2) {
for (var i=1060;i<1069;i++){
$("#package-"+i).hide();
}
for (var i=1069;i<1072;i++){
$("#package-"+i).show();
}
}
}
</script>
<p style="color: #ec6e58;font-size:30px;font-weight: bold;background-color:#FFFF00">
需求5个以上可以联系客服设置优惠价;
开通后有任何问题可无理由退款,并支持自助提现
退款规则:购买价格-使用天数*天卡价格
</p>
<div class="p_type @("type"+item.Product.Id)" style="padding-top: 10px;">
<button type="button" onclick="ttzhizun()" class="btn btn-default btn-lg ttzx" style="background-color: #FF9900;font-size:1.5em;">尊享版</button>
<button type="button" onclick="ttgaoji()" class="btn btn-default btn-lg ttgj" style="background-color: white;font-size:1.5em;">高级版</button>
<button type="button" onclick="ttputong()" class="btn btn-default btn-lg ttpt" style="background-color: white;font-size:1.5em;">普通版</button>
</div>
@if (item.Product.Id == 20) {
<div style="margin: 5px;">
<button type="button" onclick="wjdxphone()" id="dxaz" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">安卓/苹果</button>
<button type="button" onclick="wjdxpc()" id="dxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
</div>
<div style="margin: 5px;">
<button type="button" onclick="wjdxpt()" id="dxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版-5兆</button>
<button type="button" onclick="wjdxgj()" id="dxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">高端版-10兆</button>
</div>
}
@if (item.Product.Id == 21) {
<div style="margin: 5px;">
<button type="button" onclick="wjgxphone()" id="gxaz" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">安卓/苹果</button>
<button type="button" onclick="wjgxpc()" id="gxdn" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">电脑</button>
</div>
<div style="margin: 5px;">
<button type="button" onclick="wjgxpt()" id="gxpt" class="btn btn-default btn-lg" style="background-color: #FF9900;font-size:1.5em;">普通版</button>
<button type="button" onclick="wjgxgj()" id="gxgj" class="btn btn-default btn-lg" style="background-color: white;font-size:1.5em;">极速版</button>
</div>
}
@foreach (var package in item.Packages.Where(m => m.Status == 1&&(m.TenantId==1157||m.TenantId==9999||m.TenantId==10000)).OrderBy(m => m.TenantId))
{
if (package.IsTest == 1)
{
<a asp-action="test" id="@("package-"+package.Id)" asp-controller="product" asp-route-id="@package.ProductId">
<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>
</div>
<div class="item">
<p>¥<span>0.00</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
else
{
@if(package.Price == 0.1M){
<a asp-action="buy" id="@("package-"+package.Id)" 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:#FFFF00;">@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>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
else {
<a asp-action="buy" id="@("package-"+package.Id)" 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:#FFFF00;">@package.Name</p>
<p>@(Math.Round(package.Price/package.DayCount,2))元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
<p>¥<span>60.00</span></p>
} else {
<p>¥<span>@package.Price</span></p>
}
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
}
}
</div>
}
</div>
</div>
</div>

View File

@@ -1,143 +1,143 @@
@using Hncore.Pass.Vpn.Response.Product
@using Microsoft.Extensions.Configuration
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@inject IConfiguration m_Configuration
@model ProductWithPackageResponse
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
}
var defaultProduct = Model.Product;
var defaultPackage = Model.Packages.FirstOrDefault();
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
@* <div class="cpBanner">
<img src="~/m/img/cpBanner.png">
</div> *@
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:330px;">
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
<div class="col-md-8 " style="padding-top:1.5%;">
<h2 >十余种全网知名旗舰产品低价热销</h2>
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单每次下单都会随机赠送优惠券最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款&nbsp;<span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
</div>
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
<h2>联系客服设置优惠价</h2>
<a target="_blank" href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
</div>
</div>
</div>
<div class="cpNav">
<div class="item">
<ul class="nav nav-tabs cpName" role="tablist">
<li role="presentation" class="active">
<a href="#@Model.Product.Id">@Model.Product.Name</a>
</li>
</ul>
</div>
<div class="item">
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="@Model.Product.Id">
<p class="texing">@Model.Product.Name</p>
<ul class="texingList">
<p>·不限速网速最高可达50兆</p>
<p>·支持手机,电脑,模拟器</p>
<p>·200多个城市+全国混波量ip千万级</p>
<p>·带宽6-10兆</p>
<p>·断开再链接换ip</p>
</ul>
@foreach (var package in Model.Packages.Where(m=>m.IsTest==0&&m.Status==1 && m.Id != 21&& m.Id != 20).OrderBy(m => m.TenantId))
{
@if(package.Id == 101||package.Id == 103||package.Id == 104||(package.Id>103)){
<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 </p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</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>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} *@
@* else if(package.Id == 63||package.Id == 64||package.Id == 65||package.Id == 66||package.Id == 67||package.Id == 13||package.Id == 14||package.Id == 15||package.Id == 16){
<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 85折</p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} *@
else if(package.Id == 100 || package.Id == 102){
<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 </p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} else if(package.Id != 88) {
<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">
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
<p>¥<span>60.00</span></p>
} else {
<p>¥<span>@package.Price</span></p>
}
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
}
</div>
</div>
</div>
@using Hncore.Pass.Vpn.Response.Product
@using Microsoft.Extensions.Configuration
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@inject IConfiguration m_Configuration
@model ProductWithPackageResponse
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
}
var defaultProduct = Model.Product;
var defaultPackage = Model.Packages.FirstOrDefault();
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
@* <div class="cpBanner">
<img src="~/m/img/cpBanner.png">
</div> *@
<div class="cpBanner" style="background-image: url(/img/acBanner_1.png?11231);background-repeat:round;background-size:auto auto;height:330px;">
<div class="row" style="color:white;width:calc(100vw-1px);text-align:center;padding-top:10px;">
<div class="col-md-8 " style="padding-top:1.5%;">
<h2 >十余种全网知名旗舰产品低价热销</h2>
<h1 style="font-size:45px;">淘宝动态IP销量排名NO.1</h1>
<h4 style="color: #e45b4b;">已完美对接淘宝、淘宝付款后、金额将自动充值到您的会员余额中</h4>
<a target="_blank" href="https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.45e51debbIPZJ7&ft=t&id=644774449094"><h4 style="color: #e45b4b;">欢迎淘宝下单每次下单都会随机赠送优惠券最低54元<br>优惠券支持所有套餐!<span style="color:#FFFF00;">点击去淘宝店铺付款&nbsp;<span class="glyphicon glyphicon-arrow-right"></span></span></h4></a>
</div>
<div class="col-md-3 col-md-offset-1" style="padding-top:2%;">
<h1>需求<span style="color: red;font-size:49px;">五个</span>以上</h1>
<h2>联系客服设置优惠价</h2>
<a target="_blank" href="https://admin.qidian.qq.com/template/blue/mp/menu/qr-code-jump.html?linkType=0&env=ol&kfuin=2852138148&fid=299&key=f377ec024ca45115a03a7632c7bda230&cate=1&source=&isLBS=&isCustomEntry=&type=16&ftype=1&_type=wpa&qidian=true"><h3 style="color: #e45b4b;">>>>联系客服<<<</h3></a>
</div>
</div>
</div>
<div class="cpNav">
<div class="item">
<ul class="nav nav-tabs cpName" role="tablist">
<li role="presentation" class="active">
<a href="#@Model.Product.Id">@Model.Product.Name</a>
</li>
</ul>
</div>
<div class="item">
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="@Model.Product.Id">
<p class="texing">@Model.Product.Name</p>
<ul class="texingList">
<p>·不限速网速最高可达50兆</p>
<p>·支持手机,电脑,模拟器</p>
<p>·200多个城市+全国混波量ip千万级</p>
<p>·带宽6-10兆</p>
<p>·断开再链接换ip</p>
</ul>
@foreach (var package in Model.Packages.Where(m=>m.IsTest==0&&m.Status==1 && m.Id != 21&& m.Id != 20).OrderBy(m => m.TenantId))
{
@if(package.Id == 101||package.Id == 103||package.Id == 104||(package.Id>103)){
<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 </p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</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>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} *@
@* else if(package.Id == 63||package.Id == 64||package.Id == 65||package.Id == 66||package.Id == 67||package.Id == 13||package.Id == 14||package.Id == 15||package.Id == 16){
<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 85折</p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} *@
else if(package.Id == 100 || package.Id == 102){
<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 </p>
<p>@(package.DayPrice)元/天</p>
<p>@package.Profile</p>
</div>
<div class="item">
<p>¥<span>@package.Price</span></p>
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
} else if(package.Id != 88) {
<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">
@if((package.Id == 64||package.Id == 1004)&&package.Price<60){
<p>¥<span>60.00</span></p>
} else {
<p>¥<span>@package.Price</span></p>
}
<p style="color: #FF9900;text-decoration: line-through">原价:@package.LinePrice 元</p>
</div>
</div>
</a>
}
}
</div>
</div>
</div>
</div>

View File

@@ -1,66 +1,66 @@
@using Hncore.Pass.Vpn.Domain
@using Microsoft.Extensions.Configuration
@inject IConfiguration m_Configuration
@model List<ProductEntity>
@{
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
<div class="container-fluid softBg">
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4 text-center">
<p class="simg"><img src="~/img/img_soft.png"></p>
<p class="sintro">软件和账户必须为同一产品才能使用</p>
</div>
<div class="col-sm-4 text-right">
<a href="#" class="jiaocheng">使用教程→</a>
</div>
</div>
</div>
</div>
<div class="softList">
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
{
<div class="item">
@*<p><img src="@P(item.Image)"></p>*@
@if (item.Id != 20){
<p>@item.Name</p>
<p><a href="@item.SimulatorDownloadUrl"> <button type="button" class="btnBlue">SSTP客户端下载</button></a></p>
}
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl)){
<p>@item.Name</p>
<p><a href="@item.DroidDownloadUrl"> <button type="button" class="btnBlue">安卓APP</button></a></p>
<br>
} else if (item.Id == 20) {
<p>无极</p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btnBlue">无极安卓共享独享通用</button></a></p>
<p><a href="https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437"> <button type="button" class="btnBlue">ios客户端</button></a></p>
}
</div>
}
<div class="item" style="height: auto;">
@*<p><img src="@P(item.Image)"></p>*@
<p>代理商专用客户端</p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btnBlue">西瓜IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">西瓜IP-安卓</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btnBlue">极客IP-电脑版</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">极客IP-安卓</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">迅连IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">讯连IP-安卓端</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">强子IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">强子IP-安卓端</button></a></p>
<p><a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btnBlue">火狐IP-安卓端</button></a></p>
<p><a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btnBlue">云牛IP-安卓端</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">星星IP-电脑端</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btnBlue">蘑菇IP-电脑端</button></a></p><br>
</div>
@using Hncore.Pass.Vpn.Domain
@using Microsoft.Extensions.Configuration
@inject IConfiguration m_Configuration
@model List<ProductEntity>
@{
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
}
<div class="container-fluid softBg">
<div class="container">
<div class="row">
<div class="col-sm-4">
</div>
<div class="col-sm-4 text-center">
<p class="simg"><img src="~/img/img_soft.png"></p>
<p class="sintro">软件和账户必须为同一产品才能使用</p>
</div>
<div class="col-sm-4 text-right">
<a href="#" class="jiaocheng">使用教程→</a>
</div>
</div>
</div>
</div>
<div class="softList">
@foreach (var item in Model.Where(m=>m.Sort!=1000 && m.Id!=12 && m.Id!=21 && m.OnLine==1).OrderBy(m => m.Sort))
{
<div class="item">
@*<p><img src="@P(item.Image)"></p>*@
@if (item.Id != 20){
<p>@item.Name</p>
<p><a href="@item.SimulatorDownloadUrl"> <button type="button" class="btnBlue">SSTP客户端下载</button></a></p>
}
@if (!string.IsNullOrEmpty(item.DroidDownloadUrl)){
<p>@item.Name</p>
<p><a href="@item.DroidDownloadUrl"> <button type="button" class="btnBlue">安卓APP</button></a></p>
<br>
} else if (item.Id == 20) {
<p>无极</p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%97%A0%E6%9E%81%E5%AE%89%E5%8D%93-%E5%85%B1%E4%BA%AB%E7%8B%AC%E4%BA%AB%E9%80%9A%E7%94%A8.apk"> <button type="button" class="btnBlue">无极安卓共享独享通用</button></a></p>
<p><a href="https://apps.apple.com/cn/app/jie-zou-da-shi/id1448657437"> <button type="button" class="btnBlue">ios客户端</button></a></p>
}
</div>
}
<div class="item" style="height: auto;">
@*<p><img src="@P(item.Image)"></p>*@
<p>代理商专用客户端</p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%20-%20%E4%BB%A3%E7%90%86%E7%89%88.zip"> <button type="button" class="btnBlue">西瓜IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%A5%BF%E7%93%9CIP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">西瓜IP-安卓</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E4%BB%A3%E7%90%86%E7%89%88%203.5.rar"> <button type="button" class="btnBlue">极客IP-电脑版</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%9E%81%E5%AE%A2IP%E5%AE%89%E5%8D%93%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">极客IP-安卓</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">迅连IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%AE%AF%E8%BF%9EIP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">讯连IP-安卓端</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E7%94%B5%E8%84%91%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">强子IP-电脑版</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E5%BC%BA%E5%AD%90IP%E5%AE%89%E5%8D%93%E7%AB%AF-%E4%BB%A3%E7%90%86%E7%89%88.apk"> <button type="button" class="btnBlue">强子IP-安卓端</button></a></p>
<p><a href="http://app.cn98.net:8000/huohupubnet.apk"> <button type="button" class="btnBlue">火狐IP-安卓端</button></a></p>
<p><a href="http://app.ipsoft168.com:8000/yunniupubdtip.apk"> <button type="button" class="btnBlue">云牛IP-安卓端</button></a></p>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E6%98%9F%E6%98%9FIP%E7%94%B5%E8%84%91%E7%AB%AF-4.10%E4%BB%A3%E7%90%86%E7%89%88.rar"> <button type="button" class="btnBlue">星星IP-电脑端</button></a></p><br>
<p><a href="http://wuxinxikehuduan.image.qiangzipptp.top/%E8%98%91%E8%8F%87IP-2-17.zip"> <button type="button" class="btnBlue">蘑菇IP-电脑端</button></a></p><br>
</div>
</div>

View File

@@ -1,129 +1,129 @@
@using Hncore.Pass.Vpn.Response.Product
@using Hncore.Infrastructure.Extension
@using Microsoft.Extensions.Configuration
@using Hncore.Infrastructure.Common
@model PackageInfoResponse
@inject IConfiguration m_Configuration
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
@{
ViewData["Title"] = "购买产品";
var t = this.Context.Request.GetInt("t");
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
while (m_AccountService.Exist(m => m.Account == randomAccount))
{
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
}
}
<vc:redirecct-login></vc:redirecct-login>
<script type="text/javascript">
$(function () {
let realverify = {
cookie:document.cookie,
}
$.ajax({
type: 'POST',
async:false,
url: 'http://php-api.juip.com/api/Realname/index',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(realverify),
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (res) {
if (res.Code == -10000) {
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定前往 用户主页、个人信息 实名认证。');
window.location.href="/User/IndexInfo";
}
}
});
});
</script>
<div class="cpTop">
<p class="choose">当前已选产品:</p>
<div class="kArea">
<div class="cpKuang">
<div class="item">
<p><img src="@P(Model.Product.Image)"></p>
<p>@Model.Product.Name</p>
</div>
<div class="item">
<p class="kaci">@Model.Package.Name</p>
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
<p class="grayText">@Model.Package.Profile</p>
</div>
<div class="item">
¥ <span class="price">@Model.Package.Price</span>
</div>
</div>
</div>
<div class="chongxin">
<div class="item redText">
*请确认好所需产品,买错产品换货将产生费用
</div>
<div class="item">
<a asp-action="index" asp-controller="product"><button type="button" class="btnBlue">返回重新选择</button></a>
</div>
</div>
</div>
<div class="biaodan">
IP账号前缀<input type="text" name="" id="account" value="@randomAccount" />
</div>
<div class="biaodan">
IP账号密码<input type="text" name="" id="pwd" value="@randomPwd" />
</div>
<p class="grayText text-center shengyu">剩余试用次数:<span>@(Model.RestTimes)</span></p>
<p class="text-center redText tip"></p>
<p class="text-center">
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
{
<button type="button" class="btnBlue large" onclick="create()">领取试用</button>
}
@if (Model.Package.Status == 0)
{
<span style="color:red;">
该产品暂不能测试
</span>
}
</p>
@section Scripts{
<script>
function create() {
var data = {
ProductId:@(Model.Product.Id),
PackageId: @(Model.Package.Id),
Account: $('#account').val(),
Pwd: $('#pwd').val()
};
if (data.Account == '' || data.Pwd == '') {
$(".tip").text("账户和密码不能为空");
return;
}
$.ajax({
type: 'POST',
url: '/api/course/v1/productaccount/CreateTestAccount',
contentType: "application/json",
data: JSON.stringify(data),
success: function (res) {
console.log(res);
if (res.Code == 10000) {
alert("领取成功")
window.location.href = "/user/myaccounts";
} else {
$(".tip").text(res.Message);
}
},
dataType: "json"
});
}
</script>
@using Hncore.Pass.Vpn.Response.Product
@using Hncore.Infrastructure.Extension
@using Microsoft.Extensions.Configuration
@using Hncore.Infrastructure.Common
@model PackageInfoResponse
@inject IConfiguration m_Configuration
@inject Hncore.Pass.Vpn.Service.ProductAccountService m_AccountService
@{
ViewData["Title"] = "购买产品";
var t = this.Context.Request.GetInt("t");
var baseUrl = m_Configuration["BaseInfoUrl"];
Func<string, string> P = (path) => $"{baseUrl}{path}";
var randomPwd = ValidateCodeHelper.MakeNumCode(3).ToLower();
var randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
while (m_AccountService.Exist(m => m.Account == randomAccount))
{
randomAccount = ValidateCodeHelper.MakeCharCode(2).ToLower() + ValidateCodeHelper.MakeNumCode(4).ToLower();
}
}
<vc:redirecct-login></vc:redirecct-login>
<script type="text/javascript">
$(function () {
let realverify = {
cookie:document.cookie,
}
$.ajax({
type: 'POST',
async:false,
url: 'http://php-api.juip.com/api/Realname/index',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(realverify),
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (res) {
if (res.Code == -10000) {
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定前往 用户主页、个人信息 实名认证。');
window.location.href="/User/IndexInfo";
}
}
});
});
</script>
<div class="cpTop">
<p class="choose">当前已选产品:</p>
<div class="kArea">
<div class="cpKuang">
<div class="item">
<p><img src="@P(Model.Product.Image)"></p>
<p>@Model.Product.Name</p>
</div>
<div class="item">
<p class="kaci">@Model.Package.Name</p>
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
<p class="grayText">@Model.Package.Profile</p>
</div>
<div class="item">
¥ <span class="price">@Model.Package.Price</span>
</div>
</div>
</div>
<div class="chongxin">
<div class="item redText">
*请确认好所需产品,买错产品换货将产生费用
</div>
<div class="item">
<a asp-action="index" asp-controller="product"><button type="button" class="btnBlue">返回重新选择</button></a>
</div>
</div>
</div>
<div class="biaodan">
IP账号前缀<input type="text" name="" id="account" value="@randomAccount" />
</div>
<div class="biaodan">
IP账号密码<input type="text" name="" id="pwd" value="@randomPwd" />
</div>
<p class="grayText text-center shengyu">剩余试用次数:<span>@(Model.RestTimes)</span></p>
<p class="text-center redText tip"></p>
<p class="text-center">
@if (Model.RestTimes > 0 && Model.Package.Status == 1)
{
<button type="button" class="btnBlue large" onclick="create()">领取试用</button>
}
@if (Model.Package.Status == 0)
{
<span style="color:red;">
该产品暂不能测试
</span>
}
</p>
@section Scripts{
<script>
function create() {
var data = {
ProductId:@(Model.Product.Id),
PackageId: @(Model.Package.Id),
Account: $('#account').val(),
Pwd: $('#pwd').val()
};
if (data.Account == '' || data.Pwd == '') {
$(".tip").text("账户和密码不能为空");
return;
}
$.ajax({
type: 'POST',
url: '/api/course/v1/productaccount/CreateTestAccount',
contentType: "application/json",
data: JSON.stringify(data),
success: function (res) {
console.log(res);
if (res.Code == 10000) {
alert("领取成功")
window.location.href = "/user/myaccounts";
} else {
$(".tip").text(res.Message);
}
},
dataType: "json"
});
}
</script>
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,387 +1,387 @@
@using Hncore.Pass.Vpn.Response.Product
@using Hncore.Infrastructure.Extension
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@using Hncore.Pass.BaseInfo.Service
@model PackageInfoResponse
@inject UserService m_UserService
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
userEntity = await m_UserService.GetById(user.Id);
}
}
<script src="~/js/vue.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
$(function () {
let realverify = {
cookie:document.cookie,
}
$.ajax({
type: 'POST',
async:false,
url: 'http://php-api.juip.com/api/Realname/index',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(realverify),
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (res) {
if (res.Code == -10000) {
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定前往 用户主页、个人信息 实名认证。');
window.location.href="/User/IndexInfo";
}
}
});
</script>
<vc:redirecct-login></vc:redirecct-login>
<vc:pay-wait></vc:pay-wait>
<div id="app">
<div class="cpTop">
<p class="choose">当前已选产品:</p>
<div class="kArea">
<div class="cpKuang">
<div class="item">
<p><img src="~/@Model.Product.Image"></p>
<p>@Model.Product.Name</p>
</div>
<div class="item">
<p class="kaci">@Model.Package.Name</p>
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
<p class="grayText">@Model.Package.Profile</p>
</div>
<div class="item">
¥ <span class="price">@Model.Package.Price</span>
</div>
</div>
</div>
<div class="chongxin">
<div class="item redText">
*请确认好所需产品,买错产品换货将产生费用
</div>
<div class="item">
<button type="button" class="btnBlue" onclick="history.go(-1)">返回重新选择</button>
</div>
</div>
</div>
<!-- con -->
<div class="container zhuce">
<div class="reg_tab">
<div class="item dan active_dan">
续费
</div>
</div>
</div>
<div class="conDan">
<div class="row">
<div class="col-sm-5 col-xs-5">
IP产品账号
</div>
<div class="col-sm-7 col-xs-7 shuru">
<input type="text" v-model="OneBuyModel.Account" disabled />
</div>
</div>
@*<div class="row">
<div class="col-sm-5 col-xs-5">
IP账号密码
</div>
<div class="col-sm-7 col-xs-7 shuru">
<input type="text" v-model="OneBuyModel.Pwd" />
</div>
</div>*@
<div class="row">
<div class="col-sm-5 col-xs-5">
连接数:
</div>
<div class="col-sm-7 col-xs-7">
<div class="jiajian">
<div class="item">
</div>
<div class="item">
<span>{{OneBuyModel.ConnectCount}}</span>
</div>
<div class="item">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
选择优惠券:
</div>
<div class="col-sm-7 col-xs-7 select">
<select class="chooseYhq" v-model="OneBuyModel.CouponId">
<option value="0">请选择优惠券</option>
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
</select>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
余额:
</div>
<div class="col-sm-7 col-xs-7">
<div class="">
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
<a href="/User/Index">前往充值</a>
</div>
</div>
</div>
<div class="row" v-if="showPayType">
<div class="col-sm-5 col-xs-5">
支付方式:
</div>
<div class="col-sm-7 col-xs-7 pay">
<div class="radio" v-on:click="OneBuyModel.OPayType=100">
<input id="zhifubaopay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="100">
<label for="zhifubaopay_s1" class="radio-label"><img src="~/m/img/zfb.png"> 支付宝支付</label>
</div>
<div class="radio" v-on:click="OneBuyModel.OPayType=70">
<input id="weixinpay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="70">
<label for="weixinpay_s1" class="radio-label"><img src="~/m/img/wx.png"> 微信支付</label>
</div>
<div class="radio" >
<input id="UseAccountAmount" name="OPayType" type="radio" v-model="OneBuyModel.UseAccountAmount" value="1">
<label for="UseAccountAmount" class="radio-label" style="line-height:150%"> 余额支付</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
总金额:
</div>
<div class="col-sm-7 col-xs-7">
<span>{{TotalAmount}}</span>元
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
应付款:
</div>
<div class="col-sm-7 col-xs-7">
<span class="yingfu" style="font-size: 35px;font-weight: bold;">{{PayAmount}}</span>元
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
</div>
<div class="col-sm-7 col-xs-7">
<p>{{auto_discount_text}}</p>
</div>
</div>
<p class="grayText songquan">淘宝每次下单获得优惠券</p>
<p class="grayText songquan" style="color:red">{{Tip}}</p>
<div class="ok">
<button type="button" class="pay-botton btnPay" v-on:click="onePay">确认支付</button>
</div>
</div>
</div>
<div id="aliPayBox" style="display:none"></div>
@section Scripts{
<script>
var productId =@(Model.Product.Id);
var app = new Vue({
el: '#app',
data: {
auto_discount_text:'',
showPayType: true,
Tip:'',
RestAmount: @(userEntity.RestAmount),
Coupons: [],
SelectCoupon: {},
OrderInfo: {},
OneBuyModel: {
Price:@(Model.Package.Price),
PackageId:@(Model.Package.Id),
OrderType: @ViewBag.orderType,
Account: '@ViewBag.accounts',
CouponAmount: 0,
Pwd: '',
ConnectCount: @(ViewBag.ConnectCount),
CouponId: 0,
UseAccountAmount: 0,
OPayType: 100,
PayChannel:40,
}
},
computed: {
TotalAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
return total.toFixed(2);
},
PayAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
total= total < 0 ? 0 : total;
total = parseFloat(total.toFixed(2));
//最低价
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
if(total<min_cost){
total = min_cost;
}
return total.toFixed(2);
}
},
watch: {
'OneBuyModel.CouponId': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
for (var i = 0; i < this.Coupons.length; i++) {
var item = this.Coupons[i];
if (totalAmount < item.AllowMinAmount) {
continue;
}
if (item.Id == newValue) {
if (item.CouponType == 1) {//满减
this.OneBuyModel.CouponAmount = item.CouponValue;
} else {
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
if($(".kaci").text() == '天卡'){
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
} else {
alert('非天卡无效');
this.OneBuyModel.CouponId = '0';
}
}
return;
} else {
this.OneBuyModel.CouponAmount = 0;
}
}
},
immediate: true
},
'OneBuyModel.OPayType': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
var wx = 10;
if (isWeiXin()) wx = 20;
this.OneBuyModel.PayChannel = newValue == 70 ? wx : 40;
},
immediate: true
}
},
mounted: function () {
if (isWeiXin()) {
this.OneBuyModel.PayChannel = 20;
this.OneBuyModel.OPayType = 70;
this.showPayType = false;
}
this.getCoupons();
},
methods: {
getCoupons: function () {
var that = this;
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
$.ajax({
type: 'GET',
url: url,
success: function (res) {
console.log(res);
if (res.Code == 10000) {
that.Coupons = res.Data.map(m => m.Coupon);
}
}
})
},
onePay: function () {
$(".pay-botton").hide();
if (this.OneBuyModel.UseAccountAmount) {
if (this.RestAmount < this.PayAmount){
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
} else {
this.RestAmount = this.RestAmount - this.PayAmount;
}
}
var that = this;
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
var that = this;
showPayWait();
$.ajax({
type: 'POST',
url: '/product/CreateOrder',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(this.OneBuyModel),
success: function (res) {
console.log(res);
if (res.Code == 10000) {
hidePayWait();
that.payCallback(res.Data)
//that.isPay(res.Data.OrderInfo.OrderNo);
} else {
//that.Tip = res.Message;
tipPayWait(res.Message);
}
}
});
},
payCallback: function (data) {
this.OrderInfo = data.OrderInfo;
if (!data.PayData) { alert("下单成功"); return; }
var payChannel = this.OrderInfo.PayChannel;
if (payChannel == 10) {
this.h5WxPay(data.PayData)
} else if (payChannel == 20) {
this.jsWxPay(data.PayData);
} else if (payChannel == 40) {
this.aliPay(data.PayData);
}
},
h5WxPay(payData) {
window.location.href = payData;
},
jsWxPay(payData) {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
JSON.parse(payData),
function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
window.location.href = "/User/MyAccounts";
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
} else {
alert("支付失败" + res.err_msg);
}
});
},
aliPay(payData) {
$("#aliPayBox").html(payData);
},
isPay: function (orderNo) {
var handler = setInterval(function () {
var url = '/product/IsPay?orderNo=' + orderNo;
$.ajax({
type: 'GET',
url: url,
success: function (res) {
if (res.Code == 10000 && res.Data == 1) {
clearInterval(handler);
// $(".payMask").hide();
window.location.href = "/user/myaccounts";
}
}
})
}, 3000)
}
}
})
</script>
@using Hncore.Pass.Vpn.Response.Product
@using Hncore.Infrastructure.Extension
@using Hncore.Pass.BaseInfo.Response
@using Hncore.Infrastructure.Serializer;
@using Hncore.Pass.BaseInfo.Service
@model PackageInfoResponse
@inject UserService m_UserService
@{
ViewData["Title"] = "购买产品";
UserLoginModel user = null;
Hncore.Pass.BaseInfo.Models.User userEntity = new Hncore.Pass.BaseInfo.Models.User();
if (this.Context.Request.Cookies.TryGetValue("userInfo", out string userCookie))
{
user = userCookie.FromJsonTo<UserLoginModel>();
userEntity = await m_UserService.GetById(user.Id);
}
}
<script src="~/js/vue.js"></script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
$(function () {
let realverify = {
cookie:document.cookie,
}
$.ajax({
type: 'POST',
async:false,
url: 'http://php-api.juip.com/api/Realname/index',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(realverify),
beforeSend: function(xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (res) {
if (res.Code == -10000) {
alert('接主管部门要求,会员需要实名认证方可使用该产品,点击确定前往 用户主页、个人信息 实名认证。');
window.location.href="/User/IndexInfo";
}
}
});
</script>
<vc:redirecct-login></vc:redirecct-login>
<vc:pay-wait></vc:pay-wait>
<div id="app">
<div class="cpTop">
<p class="choose">当前已选产品:</p>
<div class="kArea">
<div class="cpKuang">
<div class="item">
<p><img src="~/@Model.Product.Image"></p>
<p>@Model.Product.Name</p>
</div>
<div class="item">
<p class="kaci">@Model.Package.Name</p>
<p class="grayText">@(Model.Package.DayPrice)元/天</p>
<p class="grayText">@Model.Package.Profile</p>
</div>
<div class="item">
¥ <span class="price">@Model.Package.Price</span>
</div>
</div>
</div>
<div class="chongxin">
<div class="item redText">
*请确认好所需产品,买错产品换货将产生费用
</div>
<div class="item">
<button type="button" class="btnBlue" onclick="history.go(-1)">返回重新选择</button>
</div>
</div>
</div>
<!-- con -->
<div class="container zhuce">
<div class="reg_tab">
<div class="item dan active_dan">
续费
</div>
</div>
</div>
<div class="conDan">
<div class="row">
<div class="col-sm-5 col-xs-5">
IP产品账号
</div>
<div class="col-sm-7 col-xs-7 shuru">
<input type="text" v-model="OneBuyModel.Account" disabled />
</div>
</div>
@*<div class="row">
<div class="col-sm-5 col-xs-5">
IP账号密码
</div>
<div class="col-sm-7 col-xs-7 shuru">
<input type="text" v-model="OneBuyModel.Pwd" />
</div>
</div>*@
<div class="row">
<div class="col-sm-5 col-xs-5">
连接数:
</div>
<div class="col-sm-7 col-xs-7">
<div class="jiajian">
<div class="item">
</div>
<div class="item">
<span>{{OneBuyModel.ConnectCount}}</span>
</div>
<div class="item">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
选择优惠券:
</div>
<div class="col-sm-7 col-xs-7 select">
<select class="chooseYhq" v-model="OneBuyModel.CouponId">
<option value="0">请选择优惠券</option>
<option v-for="item in Coupons" :value="item.Id">{{item.Name}}</option>
</select>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
余额:
</div>
<div class="col-sm-7 col-xs-7">
<div class="">
当前账户余额<span class="blueText">@(userEntity.RestAmount)</span>元
<a href="/User/Index">前往充值</a>
</div>
</div>
</div>
<div class="row" v-if="showPayType">
<div class="col-sm-5 col-xs-5">
支付方式:
</div>
<div class="col-sm-7 col-xs-7 pay">
<div class="radio" v-on:click="OneBuyModel.OPayType=100">
<input id="zhifubaopay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="100">
<label for="zhifubaopay_s1" class="radio-label"><img src="~/m/img/zfb.png"> 支付宝支付</label>
</div>
<div class="radio" v-on:click="OneBuyModel.OPayType=70">
<input id="weixinpay_s1" name="OPayType" type="radio" v-model="OneBuyModel.OPayType" value="70">
<label for="weixinpay_s1" class="radio-label"><img src="~/m/img/wx.png"> 微信支付</label>
</div>
<div class="radio" >
<input id="UseAccountAmount" name="OPayType" type="radio" v-model="OneBuyModel.UseAccountAmount" value="1">
<label for="UseAccountAmount" class="radio-label" style="line-height:150%"> 余额支付</label>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
总金额:
</div>
<div class="col-sm-7 col-xs-7">
<span>{{TotalAmount}}</span>元
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
应付款:
</div>
<div class="col-sm-7 col-xs-7">
<span class="yingfu" style="font-size: 35px;font-weight: bold;">{{PayAmount}}</span>元
</div>
</div>
<div class="row">
<div class="col-sm-5 col-xs-5">
</div>
<div class="col-sm-7 col-xs-7">
<p>{{auto_discount_text}}</p>
</div>
</div>
<p class="grayText songquan">淘宝每次下单获得优惠券</p>
<p class="grayText songquan" style="color:red">{{Tip}}</p>
<div class="ok">
<button type="button" class="pay-botton btnPay" v-on:click="onePay">确认支付</button>
</div>
</div>
</div>
<div id="aliPayBox" style="display:none"></div>
@section Scripts{
<script>
var productId =@(Model.Product.Id);
var app = new Vue({
el: '#app',
data: {
auto_discount_text:'',
showPayType: true,
Tip:'',
RestAmount: @(userEntity.RestAmount),
Coupons: [],
SelectCoupon: {},
OrderInfo: {},
OneBuyModel: {
Price:@(Model.Package.Price),
PackageId:@(Model.Package.Id),
OrderType: @ViewBag.orderType,
Account: '@ViewBag.accounts',
CouponAmount: 0,
Pwd: '',
ConnectCount: @(ViewBag.ConnectCount),
CouponId: 0,
UseAccountAmount: 0,
OPayType: 100,
PayChannel:40,
}
},
computed: {
TotalAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count;
return total.toFixed(2);
},
PayAmount: function () {
var count = this.OneBuyModel.Account.split(',').length;
var restAmout = this.OneBuyModel.UseAccountAmount == 1 ? this.RestAmount : 0;
var total = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount ;
total= total < 0 ? 0 : total;
total = parseFloat(total.toFixed(2));
//最低价
var min_cost = @(Model.Package.MinPrice) * this.OneBuyModel.ConnectCount * count - this.OneBuyModel.CouponAmount;
if(total<min_cost){
total = min_cost;
}
return total.toFixed(2);
}
},
watch: {
'OneBuyModel.CouponId': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
var totalAmount = this.OneBuyModel.Price * this.OneBuyModel.ConnectCount;
for (var i = 0; i < this.Coupons.length; i++) {
var item = this.Coupons[i];
if (totalAmount < item.AllowMinAmount) {
continue;
}
if (item.Id == newValue) {
if (item.CouponType == 1) {//满减
this.OneBuyModel.CouponAmount = item.CouponValue;
} else {
//亲 请勿非法操作呦^.^ 请按照正常的流程操作 我们后台是有记录滴
if($(".kaci").text() == '天卡'){
this.OneBuyModel.CouponAmount = totalAmount * item.CouponValue * 0.1;
} else {
alert('非天卡无效');
this.OneBuyModel.CouponId = '0';
}
}
return;
} else {
this.OneBuyModel.CouponAmount = 0;
}
}
},
immediate: true
},
'OneBuyModel.OPayType': { //加引号监听对象里的属性
handler: function (newValue, oldValue) {
var wx = 10;
if (isWeiXin()) wx = 20;
this.OneBuyModel.PayChannel = newValue == 70 ? wx : 40;
},
immediate: true
}
},
mounted: function () {
if (isWeiXin()) {
this.OneBuyModel.PayChannel = 20;
this.OneBuyModel.OPayType = 70;
this.showPayType = false;
}
this.getCoupons();
},
methods: {
getCoupons: function () {
var that = this;
var url = '/api/sells/v1/coupon/GetAvailableCoupon';
$.ajax({
type: 'GET',
url: url,
success: function (res) {
console.log(res);
if (res.Code == 10000) {
that.Coupons = res.Data.map(m => m.Coupon);
}
}
})
},
onePay: function () {
$(".pay-botton").hide();
if (this.OneBuyModel.UseAccountAmount) {
if (this.RestAmount < this.PayAmount){
alert('余额不足,请充值。您也可以使用微信、支付宝支付。');return;
} else {
this.RestAmount = this.RestAmount - this.PayAmount;
}
}
var that = this;
if (this.OneBuyModel.UseAccountAmount === true) this.OneBuyModel.UseAccountAmount = 1;
if (this.OneBuyModel.UseAccountAmount === false) this.OneBuyModel.UseAccountAmount = 0;
var that = this;
showPayWait();
$.ajax({
type: 'POST',
url: '/product/CreateOrder',
dataType: "json",
contentType: "application/json",
data: JSON.stringify(this.OneBuyModel),
success: function (res) {
console.log(res);
if (res.Code == 10000) {
hidePayWait();
that.payCallback(res.Data)
//that.isPay(res.Data.OrderInfo.OrderNo);
} else {
//that.Tip = res.Message;
tipPayWait(res.Message);
}
}
});
},
payCallback: function (data) {
this.OrderInfo = data.OrderInfo;
if (!data.PayData) { alert("下单成功"); return; }
var payChannel = this.OrderInfo.PayChannel;
if (payChannel == 10) {
this.h5WxPay(data.PayData)
} else if (payChannel == 20) {
this.jsWxPay(data.PayData);
} else if (payChannel == 40) {
this.aliPay(data.PayData);
}
},
h5WxPay(payData) {
window.location.href = payData;
},
jsWxPay(payData) {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
JSON.parse(payData),
function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
window.location.href = "/User/MyAccounts";
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
} else {
alert("支付失败" + res.err_msg);
}
});
},
aliPay(payData) {
$("#aliPayBox").html(payData);
},
isPay: function (orderNo) {
var handler = setInterval(function () {
var url = '/product/IsPay?orderNo=' + orderNo;
$.ajax({
type: 'GET',
url: url,
success: function (res) {
if (res.Code == 10000 && res.Data == 1) {
clearInterval(handler);
// $(".payMask").hide();
window.location.href = "/user/myaccounts";
}
}
})
}, 3000)
}
}
})
</script>
}