[webApi] 修改jwt authorize, 修改圖資, 撰寫運維廠商

This commit is contained in:
dev02 2022-11-04 09:41:50 +08:00
parent e24d040703
commit 263db72b35
7 changed files with 482 additions and 29 deletions

View File

@ -61,7 +61,7 @@ namespace FrontendWebApi.ApiControllers
} }
[HttpPost] [HttpPost]
public async Task<ApiResult<List<Variable>>> SubSysList(int main_system_id) public async Task<ApiResult<List<Variable>>> SubSysList(int main_system_tag)
{ {
ApiResult<List<Variable>> apiResult = new ApiResult<List<Variable>>(); ApiResult<List<Variable>> apiResult = new ApiResult<List<Variable>>();
List<Variable> sub_system_list = new List<Variable>(); List<Variable> sub_system_list = new List<Variable>();
@ -71,10 +71,10 @@ namespace FrontendWebApi.ApiControllers
var sqlString = @$"SELECT v2.* var sqlString = @$"SELECT v2.*
FROM variable v2 FROM variable v2
JOIN variable v1 ON v2.system_parent_id = v1.id AND v1.system_type = @graph_manage_layer1 AND v1.deleted = 0 JOIN variable v1 ON v2.system_parent_id = v1.id AND v1.system_type = @graph_manage_layer1 AND v1.deleted = 0
WHERE v2.system_type = @graph_manage_layer2 AND v2.deleted = 0 AND v1.id = @main_system_id WHERE v2.system_type = @graph_manage_layer2 AND v2.deleted = 0 AND v1.system_value = @main_system_tag
ORDER BY v2.system_priority, v2.created_at desc"; ORDER BY v2.system_priority, v2.created_at desc";
var param = new { @graph_manage_layer1 = graph_manage_layer1, @graph_manage_layer2 = graph_manage_layer2 }; var param = new { @graph_manage_layer1 = graph_manage_layer1, @graph_manage_layer2 = graph_manage_layer2, @main_system_tag = main_system_tag };
sub_system_list = await backendRepository.GetAllAsync<Variable>(sqlString, param); sub_system_list = await backendRepository.GetAllAsync<Variable>(sqlString, param);
apiResult.Code = "0000"; apiResult.Code = "0000";
@ -99,18 +99,19 @@ namespace FrontendWebApi.ApiControllers
{ {
var sqlString = @$"SELECT * var sqlString = @$"SELECT *
FROM graph_manage gm FROM graph_manage gm
JOIN variable v2 ON gm.sub_system_id = v2.id AND v2.system_type = @graph_manage_layer2 AND v2.deleted = 0 JOIN variable v1 ON v1.system_value = @main_system_tag and v1.system_type = @graph_manage_layer1 and v1.deleted = 0
WHERE v2.id in @sub_system_id AND gm.deleted = 0 JOIN variable v2 ON v1.id = v2.system_parent_id AND v2.system_type = @graph_manage_layer2 AND v2.deleted = 0
WHERE v2.system_value in @sub_system_tag AND gm.deleted = 0
ORDER BY gm.priority, gm.created_at desc"; ORDER BY gm.priority, gm.created_at desc";
var param = new { @graph_manage_layer1 = graph_manage_layer1, graph_manage_layer2 = graph_manage_layer2, @sub_system_id = gi.sub_system_id }; var param = new { @graph_manage_layer1 = graph_manage_layer1, graph_manage_layer2 = graph_manage_layer2, @sub_system_tag = gi.sub_system_tag, @main_system_tag = gi.main_system_tag };
graManList = await backendRepository.GetAllAsync<GraphList>(sqlString, param); graManList = await backendRepository.GetAllAsync<GraphList>(sqlString, param);
if (gi.keyWord != null) if (gi.keyWord != null)
{ {
var wParam = new { @graph_manage_layer1 = graph_manage_layer1, graph_manage_layer2 = graph_manage_layer2, @sub_system_id = gi.sub_system_id, @keyWord = gi.keyWord }; var wParam = new { @graph_manage_layer1 = graph_manage_layer1, graph_manage_layer2 = graph_manage_layer2, @sub_system_tag = gi.sub_system_tag, @main_system_tag = gi.main_system_tag, @keyWord = gi.keyWord };
graManList = await backendRepository.GetAllAsync<GraphList>(@$"SELECT * graManList = await backendRepository.GetAllAsync<GraphList>(@$"SELECT *
FROM graph_manage gm FROM graph_manage gm
JOIN variable v2 ON gm.sub_system_id = v2.id AND v2.system_type = @graph_manage_layer2 AND v2.deleted = 0 JOIN variable v2 ON gm.sub_system_id = v2.id AND v2.system_type = @graph_manage_layer2 AND v2.deleted = 0
@ -139,9 +140,9 @@ namespace FrontendWebApi.ApiControllers
try try
{ {
var sqlString = @$"UPDATE graph_manage SET deleted = 0 WHERE code = @code AND sub_system_id = @sub_system_id"; var sqlString = @$"UPDATE graph_manage SET deleted = 0 WHERE code = @code AND sub_system_tag = @sub_system_tag AND main_system_tag = @main_system_tag";
var param = new { @code = gi.code, @sub_system_id = gi.sub_system_id }; var param = new { @code = gi.code, @sub_system_tag = gi.sub_system_tag, @main_system_tag = gi.main_system_tag };
await backendRepository.ExecuteSql(sqlString, param); await backendRepository.ExecuteSql(sqlString, param);
apiResult.Code = "0000"; apiResult.Code = "0000";
@ -164,8 +165,8 @@ namespace FrontendWebApi.ApiControllers
try try
{ {
var sWhere = @$"deleted = 0 AND code = @code AND sub_system_id = @sub_system_id"; var sWhere = @$"deleted = 0 AND code = @code AND sub_system_tag = @sub_system_tag AND main_system_tag = @main_system_tag";
var gm = await backendRepository.GetOneAsync<GraphInsInfo>("graph_manage", sWhere, new { @code = gii.code, @sub_system_id = gii.sub_system_id}); var gm = await backendRepository.GetOneAsync<GraphInsInfo>("graph_manage", sWhere, new { @code = gii.code, @sub_system_tag = gii.sub_system_tag, @main_system_tag = gii.main_system_tag});
if (gm == null) if (gm == null)
{ {
@ -226,9 +227,11 @@ namespace FrontendWebApi.ApiControllers
} }
graph_manage.Add("@name", gii.name); graph_manage.Add("@name", gii.name);
graph_manage.Add("@main_system_tag", gii.main_system_tag);
graph_manage.Add("@sub_system_tag", gii.sub_system_tag);
//graph_manage.Add("@priority", gii.priority); //graph_manage.Add("@priority", gii.priority);
await backendRepository.UpdateOneByCustomTable(graph_manage, "graph_manage", "code='" + gii.code + "'" + "sub_system_id ='" + gii.sub_system_id + "'"); await backendRepository.UpdateOneByCustomTable(graph_manage, "graph_manage", "code='" + gm.code + "'" + " and sub_system_tag ='" + gm.sub_system_tag + "' and main_system_tag = '" + gm.main_system_tag + "'");
apiResult.Code = "0000"; apiResult.Code = "0000";
apiResult.Data = "修改成功"; apiResult.Data = "修改成功";
} }
@ -251,8 +254,8 @@ namespace FrontendWebApi.ApiControllers
try try
{ {
var sWhere = @$"deleted = 0 AND code = @code AND sub_system_id = @sub_system_id"; var sWhere = @$"deleted = 0 AND code = @code AND sub_system_tag = @sub_system_tag AND main_system_tag = @main_system_tag";
var gm = await backendRepository.GetOneAsync<GraphInsInfo>("graph_manage", sWhere, new { @code = gii.code, @sub_system_id = gii.sub_system_id }); var gm = await backendRepository.GetOneAsync<GraphInsInfo>("graph_manage", sWhere, new { @code = gii.code, @sub_system_tag = gii.sub_system_tag, @main_system_tag = gii.main_system_tag });
if (gm != null) if (gm != null)
{ {
@ -305,6 +308,8 @@ namespace FrontendWebApi.ApiControllers
} }
var newPriority = await backendRepository.GetCurrentPriority("graph_manage"); var newPriority = await backendRepository.GetCurrentPriority("graph_manage");
graph_manage.Add("@main_system_tag", gii.main_system_tag);
graph_manage.Add("@sub_system_tag", gii.sub_system_tag);
graph_manage.Add("@name", gii.name); graph_manage.Add("@name", gii.name);
graph_manage.Add("@deleted", 0); graph_manage.Add("@deleted", 0);
graph_manage.Add("@priority", newPriority + 1); graph_manage.Add("@priority", newPriority + 1);

View File

@ -15,6 +15,8 @@ using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.IdentityModel.Tokens.Jwt;
using System.Net;
namespace FrontendWebApi.ApiControllers namespace FrontendWebApi.ApiControllers
{ {
@ -44,7 +46,6 @@ namespace FrontendWebApi.ApiControllers
ctx.Response.Headers.Add("Access-Control-Allow-Headers", "*"); ctx.Response.Headers.Add("Access-Control-Allow-Headers", "*");
ctx.Response.Headers.Add("Access-Control-Allow-Credentials", "true"); ctx.Response.Headers.Add("Access-Control-Allow-Credentials", "true");
EDFunction edFunction = new EDFunction(); EDFunction edFunction = new EDFunction();
var a = User.Claims.Select(p => new { Type = p.Type, Value = p.Value }).ToList();
myUser = new JwtGet() myUser = new JwtGet()
{ {
account = User.Claims.Where(a => a.Type == "account").Select(e => e.Value).FirstOrDefault(), account = User.Claims.Where(a => a.Type == "account").Select(e => e.Value).FirstOrDefault(),
@ -59,6 +60,7 @@ namespace FrontendWebApi.ApiControllers
{ {
jwt_str = "Jwt Token不合法"; jwt_str = "Jwt Token不合法";
jwtlife = false; jwtlife = false;
filterContext.Result = new JsonResult(new { HttpStatusCode.Unauthorized });
} }
else else
{ {

View File

@ -0,0 +1,406 @@
using FrontendWebApi.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using Repository.BackendRepository.Interface;
using Repository.FrontendRepository.Interface;
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
namespace FrontendWebApi.ApiControllers
{
[Route("api/[controller]")]
[ApiController]
public class OperationController : MyBaseApiController<OperationController>
{
private readonly IBackendRepository backendRepository;
private string operationFileSaveAsPath = "";
public OperationController(IBackendRepository backendRepository)
{
this.backendRepository = backendRepository;
operationFileSaveAsPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "upload", "operation");
}
[HttpPost]
public async Task<ApiResult<List<Variable>>> MaiSysList()
{
ApiResult<List<Variable>> apiResult = new ApiResult<List<Variable>>();
List<Variable> main_system_list = new List<Variable>();
try
{
var sqlString = @$"SELECT *
FROM variable
WHERE system_type = @main_system_type AND deleted = 0
ORDER BY system_priority, created_at desc";
var param = new { @main_system_type = main_system_type };
main_system_list = await backendRepository.GetAllAsync<Variable>(sqlString, param);
apiResult.Code = "0000";
apiResult.Data = main_system_list;
}
catch (Exception exception)
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
return apiResult;
}
[HttpPost]
public async Task<ApiResult<List<Variable>>> SubSysList(string main_system_tag)
{
ApiResult<List<Variable>> apiResult = new ApiResult<List<Variable>>();
List<Variable> sub_system_list = new List<Variable>();
try
{
var sqlString = @$"SELECT v2.*
FROM variable v2
JOIN variable v1 ON v2.system_parent_id = v1.id AND v1.system_type = @main_system_type AND v1.deleted = 0
WHERE v2.system_type = @sub_system_type AND v2.deleted = 0 AND v1.system_type = @main_system_tag
ORDER BY v2.system_priority, v2.created_at desc";
var param = new { @main_system_type = main_system_type, @sub_system_type = sub_system_type, @main_system_tag = main_system_tag };
sub_system_list = await backendRepository.GetAllAsync<Variable>(sqlString, param);
apiResult.Code = "0000";
apiResult.Data = sub_system_list;
}
catch (Exception exception)
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
return apiResult;
}
/// <summary>
/// 廠商資料列表(搜寻)
/// </summary>
/// <param name="ofl"></param>
/// <returns></returns>
public async Task<ApiResult<List<Operation_Firm>>> OpeFirList(OperationFindList ofl)
{
ApiResult<List<Operation_Firm>> apiResult = new ApiResult<List<Operation_Firm>>();
List<Operation_Firm> opList = new List<Operation_Firm>();
string sWhere = "";
try
{
if (ofl.start_created_at != null || ofl.end_created_at != null)
{
sWhere += $@" and (of.created_at >= isnull(@start_created_at, of.created_at) AND of.created_at <= isnull(@end_created_at, of.created_at))";
}
else if (ofl.today)
{
sWhere += $@" and convert(of.created_at, DATE) = convert(NOW(), DATE)";
}
else if (ofl.yesterday)
{
sWhere += $@" and convert(of.created_at, DATE) = convert(ADDDATE(NOW(), -1), DATE)";
}
if (ofl.sub_system_tag != null || ofl.main_system_tag != null)
{
sWhere += $@" and (of.device_system_category_layer2 = isnull(@main_system_tag, device_system_category_layer2) AND of.device_system_category_layer3 = isnull(@sub_system_tag, device_system_category_layer3))";
}
var sqlString = @$"select of.*, v2.system_key
from operation_firm of
left join variable v1 on of.device_system_category_layer2 = v1.system_value and v1.system_type = @main_system_type and v1.delted = 0
left join variable v2 on v1.id = v2.system_parent_id and of.device_system_category_layer3 = v2.system_value and v2.system_type = @sub_system_type and v2.deleted = 0
where of.deleted = 0" + sWhere;
var param = new { @sub_system_type = sub_system_type, @start_created_at = ofl.start_created_at, @end_created_at = ofl.end_created_at, @today = ofl.today, @yesterday = ofl.yesterday, @sub_system_tag = ofl.sub_system_tag, @main_system_tag = ofl.main_system_tag };
opList = await backendRepository.GetAllAsync<Operation_Firm>(sqlString, param);
apiResult.Code = "0000";
apiResult.Data = opList;
}
catch (Exception exception)
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
return apiResult;
}
/// <summary>
/// 新增一笔廠商資料
/// </summary>
/// <param name="of"></param>
/// <returns></returns>
public async Task<ApiResult<string>> SaveOpeFirm(Operation_Firm of)
{
ApiResult<string> apiResult = new ApiResult<string>();
try
{
if (of.tax_id_number != null)
{
var sWhere = "deleted = 0 AND tax_id_number = @tax_id_number";
var ofo = await backendRepository.GetOneAsync<Operation_Firm>("operation_firm", sWhere, new { @tax_id_number = of.tax_id_number });
if (ofo != null)
{
apiResult.Code = "0002";
apiResult.Data = "已有相同的统一编号";
return apiResult;
}
}
Dictionary<string, object> operation_firm = new Dictionary<string, object>()
{
{ "@deleted", 0 },
{ "@device_system_category_layer2", of.device_system_category_layer2 },
{ "@device_system_category_layer3", of.device_system_category_layer3 },
{ "@name", of.name },
{ "@contact_person", of.contact_person },
{ "@phone", of.phone },
{ "@email", of.email },
{ "@tax_id_number", of.tax_id_number },
{ "@remark", of.remark },
{ "@created_by", myUser.userinfo_guid },
{ "@created_at", DateTime.Now }
};
await backendRepository.AddOneByCustomTable(operation_firm, "operation_firm");
apiResult.Code = "0000";
apiResult.Data = "新增成功";
}
catch (Exception exception)
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
string json = System.Text.Json.JsonSerializer.Serialize(of);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + json);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
return apiResult;
}
/// <summary>
/// 编辑一笔廠商資料
/// </summary>
/// <param name="of"></param>
/// <returns></returns>
public async Task<ApiResult<string>> EdtOneOpeFirm(Operation_Firm of)
{
ApiResult<string> apiResult = new ApiResult<string>();
try
{
var sWhere = @$"deleted = 0 and id = @id";
var gm = await backendRepository.GetOneAsync<Operation_Firm>("operation_firm", sWhere, new { @id = of.id });
if (gm == null)
{
apiResult.Code = "0001";
apiResult.Data = "無法找到厂商";
return apiResult;
}
if (of.tax_id_number != null)
{
sWhere = "deleted = 0 AND tax_id_number = @tax_id_number and id != @id";
var ofo = await backendRepository.GetOneAsync<Operation_Firm>("operation_firm", sWhere, new { @tax_id_number = of.tax_id_number, @id = of.id });
if (ofo != null)
{
apiResult.Code = "0002";
apiResult.Data = "已有相同的统一编号";
return apiResult;
}
}
Dictionary<string, object> operation_firm = new Dictionary<string, object>()
{
{ "@deleted", of.deleted },
{ "@device_system_category_layer2", of.device_system_category_layer2 },
{ "@device_system_category_layer3", of.device_system_category_layer3 },
{ "@name", of.name },
{ "@contact_person", of.contact_person },
{ "@phone", of.phone },
{ "@email", of.email },
{ "@tax_id_number", of.tax_id_number },
{ "@remark", of.remark },
{ "updated_by", myUser.userinfo_guid },
{ "updated_at", DateTime.Now }
};
await backendRepository.UpdateOneByCustomTable(operation_firm, "operation_firm", "id = '" + of.id + "'");
apiResult.Code = "0000";
apiResult.Data = "修改成功";
}
catch (Exception exception)
{
apiResult.Code = "9999";
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
string json = System.Text.Json.JsonSerializer.Serialize(of);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + json);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
}
return apiResult;
}
/// <summary>
/// 汇出excel
/// </summary>
/// <returns></returns>
public FileResult ExportExcel()
{
var workbook = new XSSFWorkbook();
#region excel設定
IFont font12 = workbook.CreateFont();
font12.FontName = "新細明體";
font12.FontHeightInPoints = 12;
ICellStyle style12 = workbook.CreateCellStyle();
style12.SetFont(font12);
style12.Alignment = HorizontalAlignment.Center;
style12.VerticalAlignment = VerticalAlignment.Center;
IFont font12Times = workbook.CreateFont();
font12Times.FontName = "Times New Roman";
font12Times.FontHeightInPoints = 12;
IFont font18 = workbook.CreateFont();
font18.FontName = "新細明體";
font18.FontHeightInPoints = 18;
font18.IsBold = true;
ICellStyle styleTitle18 = workbook.CreateCellStyle();
styleTitle18.SetFont(font18);
styleTitle18.Alignment = HorizontalAlignment.Center;
styleTitle18.VerticalAlignment = VerticalAlignment.Center;
ICellStyle styleLeft12 = workbook.CreateCellStyle();
styleLeft12.SetFont(font12);
styleLeft12.Alignment = HorizontalAlignment.Left;
styleLeft12.VerticalAlignment = VerticalAlignment.Center;
ICellStyle styleLine12 = workbook.CreateCellStyle();
styleLine12.SetFont(font12);
styleLine12.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center;
styleLine12.VerticalAlignment = VerticalAlignment.Center;
styleLine12.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
styleLine12.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
styleLine12.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
styleLine12.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
ICellStyle stylein12 = workbook.CreateCellStyle();
stylein12.SetFont(font12Times);
stylein12.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Left;
stylein12.VerticalAlignment = VerticalAlignment.Center;
stylein12.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin;
stylein12.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin;
stylein12.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin;
stylein12.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin;
stylein12.WrapText = true;
#endregion
var sqlString = $@"select of.*, v2.system_key
from operation_firm of
left join variable v1 on of.device_system_category_layer2 = v1.system_value and v1.system_type = @main_system_type and v1.delted = 0
left join variable v2 on v1.id = v2.system_parent_id and of.device_system_category_layer3 = v2.system_value and v2.system_type = @sub_system_type and v2.deleted = 0
where of.deleted = 0";
var sheet = workbook.CreateSheet("廠商資料");
var operation_firm = backendRepository.GetAllAsync<Operation_Firm>(sqlString, null);
int RowPosition = 0;
IRow row = sheet.CreateRow(RowPosition);
sheet.SetColumnWidth(0, 4 * 160 * 12);
sheet.SetColumnWidth(1, 4 * 160 * 12);
sheet.SetColumnWidth(3, 4 * 160 * 12);
sheet.SetColumnWidth(4, 4 * 160 * 12);
sheet.SetColumnWidth(5, 4 * 160 * 12);
sheet.SetColumnWidth(6, 4 * 160 * 12);
sheet.SetColumnWidth(7, 4 * 160 * 12);
ICell cell = row.CreateCell(0);
cell.SetCellValue("廠商類別");
cell.CellStyle = styleLine12;
cell = row.CreateCell(1);
cell.SetCellValue("廠商名稱");
cell.CellStyle = styleLine12;
cell = row.CreateCell(2);
cell.SetCellValue("聯絡人");
cell.CellStyle = styleLine12;
cell = row.CreateCell(3);
cell.SetCellValue("電話");
cell.CellStyle = styleLine12;
cell = row.CreateCell(4);
cell.SetCellValue("郵箱");
cell.CellStyle = styleLine12;
cell = row.CreateCell(5);
cell.SetCellValue("統一編號");
cell.CellStyle = styleLine12;
cell = row.CreateCell(6);
cell.SetCellValue("備注");
cell.CellStyle = styleLine12;
cell = row.CreateCell(2);
cell.SetCellValue("建立時間");
cell.CellStyle = styleLine12;
foreach (var of in operation_firm.Result)
{
RowPosition += 1;
row = sheet.CreateRow(RowPosition);
for (var a = 0; a < 8; a++)
{
cell = row.CreateCell(a);
if (a == 0)
{
cell.SetCellValue(of.system_key);
}
if (a == 1)
{
cell.SetCellValue(of.name);
}
if (a == 2)
{
cell.SetCellValue(of.contact_person);
}
if (a == 3)
{
cell.SetCellValue(of.phone);
}
if (a == 4)
{
cell.SetCellValue(of.email);
}
if (a == 5)
{
cell.SetCellValue(of.tax_id_number);
}
if (a == 2)
{
cell.SetCellValue(of.remark);
}
if (a == 7)
{
cell.SetCellValue(of.Created_at);
}
cell.CellStyle = style12;
}
}
var ms = new NpoiMemoryStream
{
AllowClose = false
};
workbook.Write(ms);
ms.Flush();
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/vnd.ms-excel", "廠商資料.xlsx");
}
}
}

View File

@ -35,8 +35,8 @@ namespace FrontendWebApi.Jwt
//claims.Add(new Claim(JwtRegisteredClaimNames.NameId, login.CustomerNo.ToString())); //claims.Add(new Claim(JwtRegisteredClaimNames.NameId, login.CustomerNo.ToString()));
//claims.Add(new Claim(JwtRegisteredClaimNames.Sub, login.Username)); // User.Identity.Name //claims.Add(new Claim(JwtRegisteredClaimNames.Sub, login.Username)); // User.Identity.Name
//claims.Add(new Claim(JwtRegisteredClaimNames.Aud, "The Audience")); //claims.Add(new Claim(JwtRegisteredClaimNames.Aud, "The Audience"));
//claims.Add(new Claim(JwtRegisteredClaimNames.Exp, DateTimeOffset.UtcNow.AddSeconds(expireSeconds).ToUnixTimeSeconds().ToString())); claims.Add(new Claim(JwtRegisteredClaimNames.Exp, DateTimeOffset.UtcNow.AddSeconds(lifeseconds).ToUnixTimeSeconds().ToString()));
//claims.Add(new Claim(JwtRegisteredClaimNames.Nbf, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())); // 必須為數字 claims.Add(new Claim(JwtRegisteredClaimNames.Nbf, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())); // 必須為數字
//claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())); // 必須為數字 //claims.Add(new Claim(JwtRegisteredClaimNames.Iat, DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString())); // 必須為數字
//claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); // JWT ID //claims.Add(new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())); // JWT ID
@ -69,13 +69,24 @@ namespace FrontendWebApi.Jwt
var tokenHandler = new JwtSecurityTokenHandler(); var tokenHandler = new JwtSecurityTokenHandler();
var jst = new JwtSecurityToken( var jst = new JwtSecurityToken(
issuer: issuer,//Token釋出者 issuer: issuer,//Token釋出者
//audience: _options.Value.Audience,//Token接受者 //audience: _options.Value.Audience,//Token接受者
claims: claims,//攜帶的負載 claims: claims,//攜帶的負載
notBefore: now,//當前時間token生成時間 notBefore: now,//當前時間token生成時間
expires: expires,//過期時間 expires: expires,//過期時間
signingCredentials: signingCredentials signingCredentials: signingCredentials
); );
//var jst = new SecurityTokenDescriptor
//{
// Issuer = issuer,//Token釋出者
// //Claims = claims,//攜帶的負載
// //audience: _options.Value.Audience,//Token接受者
// NotBefore = now,//當前時間token生成時間
// Expires = expires,//過期時間
// SigningCredentials = signingCredentials,
// Subject = userClaimsIdentity
//};
var serializeToken = tokenHandler.WriteToken(jst); var serializeToken = tokenHandler.WriteToken(jst);
var data = new TnToken(); var data = new TnToken();

View File

@ -9,7 +9,8 @@ namespace FrontendWebApi.Models
public class GraphList public class GraphList
{ {
public string code { get; set; } public string code { get; set; }
public int sub_system_id { get; set; } public string main_system_tag { get; set; }
public int sub_system_tag { get; set; }
public string name { get; set; } public string name { get; set; }
public string oriOrgName { get; set; } public string oriOrgName { get; set; }
public string oriSavName { get; set; } public string oriSavName { get; set; }
@ -20,7 +21,8 @@ namespace FrontendWebApi.Models
public class GraphInsInfo public class GraphInsInfo
{ {
public string code { get; set; } public string code { get; set; }
public int sub_system_id { get; set; } public string main_system_tag { get; set; }
public string sub_system_tag { get; set; }
public string name { get; set; } public string name { get; set; }
public string oriOrgName { get; set; } public string oriOrgName { get; set; }
public string oriSavName { get; set; } public string oriSavName { get; set; }
@ -34,7 +36,8 @@ namespace FrontendWebApi.Models
public class GraphInfo public class GraphInfo
{ {
public string code { get; set; } public string code { get; set; }
public List<int> sub_system_id { get; set; } public string main_system_tag { get; set; }
public List<int> sub_system_tag { get; set; }
public string keyWord { get; set; } public string keyWord { get; set; }
} }
} }

View File

@ -21,6 +21,32 @@ namespace FrontendWebApi.Models
Fix = 2, //維修 Fix = 2, //維修
} }
public class Operation_Firm : Actor
{
public int id { get; set; }
public byte deleted { get; set; }
public string device_system_category_layer2 { get; set; }//系統類別(第2層)
public string device_system_category_layer3 { get; set; }//系統類別(第3層)
public string name { get; set; }//名称
public string contact_person { get; set; }//联络人
public string phone { get; set; }//电话
public string email { get; set; }//Email
public string tax_id_number { get; set; }//统一编号
public string remark { get; set; }//备注
public string system_key { get; set; }//類別名稱
}
public class OperationFindList
{
public string serial_number { get; set; } //表单号
public DateTime? start_created_at { get; set; }//开始建立时间
public DateTime? end_created_at { get; set; }//结束建立时间
public bool today { get; set; }//今天建立时间
public bool yesterday { get; set; }//昨天建立时间
public string main_system_tag { get; set; }//大类tag
public string sub_system_tag { get; set; }//小类tag
}
public class Operation : Actor public class Operation : Actor
{ {
public int Id { get; set; }//流水號 public int Id { get; set; }//流水號

View File

@ -58,6 +58,7 @@ namespace FrontendWebApi
// This method gets called by the runtime. Use this method to add services to the container. // This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
services.AddSingleton<JwtHelpers>();
services.AddControllersWithViews(); services.AddControllersWithViews();
//services.AddControllers(); //services.AddControllers();
@ -102,7 +103,7 @@ namespace FrontendWebApi
// 當驗證失敗時,回應標頭會包含 WWW-Authenticate 標頭,這裡會顯示失敗的詳細錯誤原因 // 當驗證失敗時,回應標頭會包含 WWW-Authenticate 標頭,這裡會顯示失敗的詳細錯誤原因
options.IncludeErrorDetails = true; // 預設值為 true有時會特別關閉 options.IncludeErrorDetails = true; // 預設值為 true有時會特別關閉
options.TokenValidationParameters = new TokenValidationParameters() options.TokenValidationParameters = new TokenValidationParameters
{ {
// 透過這項宣告,就可以從 "sub" 取值並設定給 User.Identity.Name // 透過這項宣告,就可以從 "sub" 取值並設定給 User.Identity.Name
NameClaimType = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", NameClaimType = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier",
@ -140,7 +141,6 @@ namespace FrontendWebApi
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{ {
loggerFactory.AddFile("Logs/log-{Date}.txt"); loggerFactory.AddFile("Logs/log-{Date}.txt");
if (env.IsDevelopment()) if (env.IsDevelopment())