先锋踢线
This commit is contained in:
@@ -234,6 +234,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="online" v-cloak v-if="showOnline">
|
<div class="online" v-cloak v-if="showOnline">
|
||||||
<img src="~/img/close.png" class="btnOnlineClose" v-on:click="closeOnline()" />
|
<img src="~/img/close.png" class="btnOnlineClose" v-on:click="closeOnline()" />
|
||||||
|
<p style="color: #FF6666;font-size:20px;" id="online_status"></p>
|
||||||
<div class="tab-content" style="margin-top:40px;">
|
<div class="tab-content" style="margin-top:40px;">
|
||||||
<table class="table table-striped table_person">
|
<table class="table table-striped table_person">
|
||||||
<tr>
|
<tr>
|
||||||
@@ -911,15 +912,17 @@
|
|||||||
this.onLineData = [];
|
this.onLineData = [];
|
||||||
},
|
},
|
||||||
killout: function (item) {
|
killout: function (item) {
|
||||||
|
$("#online_status").text("正在踢线......");
|
||||||
var that = this;
|
var that = this;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'GET',
|
type: 'GET',
|
||||||
url: '/api/course/v1/productaccount/KillOut?productId=' + item.ProductId + '&id=' + item.Id,
|
url: '/api/course/v1/productaccount/KillOut?productId=' + item.ProductId + '&id=' + item.Id,
|
||||||
success: function (res) {
|
success: function (res) {
|
||||||
alert("操作成功");
|
|
||||||
this.onLineData = [];
|
|
||||||
if (res.Code == 10000) {
|
if (res.Code == 10000) {
|
||||||
that.online(item.ProductId, item.Account)
|
$("#online_status").text("断开成功!");
|
||||||
|
that.online(item.ProductId, item.Account);
|
||||||
|
} else {
|
||||||
|
$("#online_status").text("断开失败!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -451,7 +451,12 @@ namespace Hncore.Pass.Vpn.Controllers
|
|||||||
[AllowAnonymous]
|
[AllowAnonymous]
|
||||||
public virtual async Task<ApiResult> KillOut(int productId, string id)
|
public virtual async Task<ApiResult> KillOut(int productId, string id)
|
||||||
{
|
{
|
||||||
return Success(await m_agentService.KillOut(productId, id));
|
var status = await m_agentService.KillOut(productId, id);
|
||||||
|
if (status) {
|
||||||
|
return Success(status);
|
||||||
|
} else {
|
||||||
|
return Error("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet]
|
[HttpGet]
|
||||||
@@ -459,7 +464,7 @@ namespace Hncore.Pass.Vpn.Controllers
|
|||||||
{
|
{
|
||||||
|
|
||||||
Expression<Func<ProductAccountEntity, bool>> expr = m => 1 == 1;
|
Expression<Func<ProductAccountEntity, bool>> expr = m => 1 == 1;
|
||||||
|
expr = expr.And(m => m.DeleteTag == 0);
|
||||||
if (request.UserId > 0)
|
if (request.UserId > 0)
|
||||||
{
|
{
|
||||||
expr = expr.And(m => m.UserId == request.UserId);
|
expr = expr.And(m => m.UserId == request.UserId);
|
||||||
@@ -471,13 +476,13 @@ namespace Hncore.Pass.Vpn.Controllers
|
|||||||
|| m.PackageName.Contains(request.KeyWord)
|
|| m.PackageName.Contains(request.KeyWord)
|
||||||
|| m.Account.Contains(request.KeyWord));
|
|| m.Account.Contains(request.KeyWord));
|
||||||
}
|
}
|
||||||
if (request.ProductIds != null && request.ProductIds.Count > 0)
|
if (request.ProductId != null && request.ProductId > 0)
|
||||||
{
|
{
|
||||||
expr = expr.And(m =>request.ProductIds.Contains((int)m.ProductId));
|
expr = expr.And(m =>m.ProductId==request.ProductId);
|
||||||
}
|
}
|
||||||
if (request.PackageNames != null && request.PackageNames.Count > 0)
|
if (request.PackageName != null)
|
||||||
{
|
{
|
||||||
expr = expr.And(m =>request.PackageNames.Contains((string)m.PackageName));
|
expr = expr.And(m =>request.PackageName==m.PackageName);
|
||||||
}
|
}
|
||||||
if (request.AccountTypes!=null&&request.AccountTypes.Count>0)
|
if (request.AccountTypes!=null&&request.AccountTypes.Count>0)
|
||||||
{
|
{
|
||||||
@@ -491,58 +496,23 @@ namespace Hncore.Pass.Vpn.Controllers
|
|||||||
{
|
{
|
||||||
expr = expr.And(m => m.StartTime>=request.BkTime&&m.StartTime<=request.EkTime);
|
expr = expr.And(m => m.StartTime>=request.BkTime&&m.StartTime<=request.EkTime);
|
||||||
}
|
}
|
||||||
if (request.ExpirdDay > -1)
|
if (request.ExpirdDay > -100)
|
||||||
{
|
{
|
||||||
if (request.ExpirdDay == 0)
|
if (request.ExpirdDay == 0)
|
||||||
{
|
{
|
||||||
expr = expr.And(m => m.EndTime.Value < DateTime.Now);
|
expr = expr.And(m => m.EndTime.Value < DateTime.Now);
|
||||||
|
}else if(request.ExpirdDay == -2){
|
||||||
|
expr = expr.And(m => m.EndTime.Value > DateTime.Now);
|
||||||
|
} else if (request.ExpirdDay < 0 && request.ExpirdDay>-4) {
|
||||||
|
expr = expr.And(m => Math.Ceiling((DateTime.Now - m.EndTime).Value.TotalDays) <= Math.Abs(request.ExpirdDay) && m.EndTime < DateTime.Now);
|
||||||
|
} else if (request.ExpirdDay==-4) {
|
||||||
|
expr = expr.And(m => Math.Ceiling((m.EndTime - DateTime.Now).Value.TotalDays) <= -4);
|
||||||
|
}else if (request.ExpirdDay > 0){
|
||||||
|
expr = expr.And(m => Math.Ceiling((m.EndTime - DateTime.Now).Value.TotalDays) <= request.ExpirdDay && m.EndTime > DateTime.Now);
|
||||||
}
|
}
|
||||||
else
|
expr = expr.And(m => m.PackageName != "测试卡");
|
||||||
{
|
|
||||||
var startTime = DateTime.Now.Begin().AddDays(request.ExpirdDay);
|
|
||||||
startTime = startTime < DateTime.Now ? DateTime.Now : startTime;
|
|
||||||
var EndTime = DateTime.Now.End().AddDays(request.ExpirdDay);
|
|
||||||
expr = expr.And(m => m.EndTime >= startTime && m.EndTime <= EndTime);
|
|
||||||
}
|
|
||||||
// expr = expr.And(m => Math.Ceiling((m.EndTime - DateTime.Now).Value.TotalDays) == request.ExpirdDay);
|
// expr = expr.And(m => Math.Ceiling((m.EndTime - DateTime.Now).Value.TotalDays) == request.ExpirdDay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// if (request.UserId > 0)
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => m.UserId == request.UserId);
|
|
||||||
// }
|
|
||||||
// if (request.KeyWord.Has())
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => m.Account.Contains(request.KeyWord));
|
|
||||||
// }
|
|
||||||
// if (request.ProductId.HasValue)
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => m.ProductId == request.ProductId);
|
|
||||||
// }
|
|
||||||
// if (request.PackageId.HasValue)
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => m.PackageId == request.PackageId);
|
|
||||||
// }
|
|
||||||
// if (request.AccountTypes != null && request.AccountTypes.Count > 0)
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => request.AccountTypes.Contains(m.AccountType));
|
|
||||||
// }
|
|
||||||
// if (request.ExpirdDay > -1)
|
|
||||||
// {
|
|
||||||
// if (request.ExpirdDay == 0)
|
|
||||||
// {
|
|
||||||
// expr = expr.And(m => m.EndTime.Value < DateTime.Now);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// var startTime = DateTime.Now.Begin().AddDays(request.ExpirdDay);
|
|
||||||
// startTime = startTime < DateTime.Now ? DateTime.Now : startTime;
|
|
||||||
// var EndTime = DateTime.Now.End().AddDays(request.ExpirdDay);
|
|
||||||
// expr = expr.And(m => m.EndTime >= startTime && m.EndTime <= EndTime);
|
|
||||||
// }
|
|
||||||
// // expr = expr.And(m => Math.Ceiling((m.EndTime - DateTime.Now).Value.TotalDays) == request.ExpirdDay);
|
|
||||||
// }
|
|
||||||
var ret = await m_AccountService.PageDesc(request.PageIndex,10000, expr, true, m => m.Id);
|
var ret = await m_AccountService.PageDesc(request.PageIndex,10000, expr, true, m => m.Id);
|
||||||
|
|
||||||
var data = new ExcelData<ProductAccountEntity>
|
var data = new ExcelData<ProductAccountEntity>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace Hncore.Pass.Vpn.Request.Product
|
|||||||
public int? ProductId { get; set; }
|
public int? ProductId { get; set; }
|
||||||
|
|
||||||
public int? PackageId { get; set; }
|
public int? PackageId { get; set; }
|
||||||
|
public string PackageName { get; set; }
|
||||||
|
|
||||||
public List<int?> AccountTypes { get; set; }
|
public List<int?> AccountTypes { get; set; }
|
||||||
|
|
||||||
|
|||||||
@@ -327,7 +327,7 @@ namespace Hncore.Pass.Vpn.Service
|
|||||||
LoginIP = jsondata["client_ip"].ToString(),
|
LoginIP = jsondata["client_ip"].ToString(),
|
||||||
UpStream = "",
|
UpStream = "",
|
||||||
DownStream = "",
|
DownStream = "",
|
||||||
Id= "&user="+account+"&address="+jsondata["address"].ToString()+"&server_ip="+jsondata["server_ip"].ToString(),
|
Id = "user="+account+"-address="+jsondata["address"].ToString()+"-server_ip="+jsondata["server_ip"].ToString(),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -348,11 +348,18 @@ namespace Hncore.Pass.Vpn.Service
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public override async Task<bool> KillOut(string id)
|
public override async Task<bool> KillOut(string id)
|
||||||
{
|
{
|
||||||
|
var ids = "";
|
||||||
|
if(id.Contains("-")){
|
||||||
|
string[] arrStr = id.Split('-');
|
||||||
|
ids = arrStr[0]+"&"+arrStr[1]+"&"+arrStr[2];
|
||||||
|
}
|
||||||
|
Console.WriteLine("==============在线============================================================================");
|
||||||
|
Console.WriteLine(ids);
|
||||||
|
Console.WriteLine("==============在线============================================================================");
|
||||||
var secretId = "626B6170693231";
|
var secretId = "626B6170693231";
|
||||||
var secretKey = "6b3fdfc206841f44c6609bf19c182a6a";
|
var secretKey = "6b3fdfc206841f44c6609bf19c182a6a";
|
||||||
|
|
||||||
var url = "http://bkapi.pptp.biz/userapi3/?secretId="+secretId+"&secretKey="+secretKey+"&type=user_online_offline"+id;
|
var url = "http://bkapi.pptp.biz/userapi3/?secretId="+secretId+"&secretKey="+secretKey+"&type=user_online_offline&"+ids;
|
||||||
|
|
||||||
var client = CreateHttpClient();
|
var client = CreateHttpClient();
|
||||||
|
|
||||||
@@ -360,6 +367,9 @@ namespace Hncore.Pass.Vpn.Service
|
|||||||
var content = await resp.Content.ReadAsStringAsync();
|
var content = await resp.Content.ReadAsStringAsync();
|
||||||
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
|
JObject jo = (JObject)JsonConvert.DeserializeObject(content);
|
||||||
var status = jo["code"].ToString();
|
var status = jo["code"].ToString();
|
||||||
|
Console.WriteLine("==============在线============================================================================");
|
||||||
|
Console.WriteLine(jo);
|
||||||
|
Console.WriteLine("==============在线============================================================================");
|
||||||
if (status =="1")
|
if (status =="1")
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user