From d32d9175eb9abed5022a2fb95ebd84ef34cae8c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A8=81=E5=8B=9D=20=E5=BC=B5?= Date: Thu, 20 Feb 2025 21:28:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=A5=E7=AE=A1=E5=B8=ABAPI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TCM_API/Authorization/JwtUtils.cs | 3 +- .../lamiter/Company_detail_tableController.cs | 5 +- .../manage/Health_detail_tableController.cs | 106 ++++++++++++++++++ .../Models/lamiter/Company_detail_table.cs | 2 +- TCM_API/Models/manage/Health_detail_table.cs | 15 +++ TCM_API/Services/SqlContext.cs | 3 + TCM_API/ViewModels/Add_health.cs | 14 +++ 7 files changed, 144 insertions(+), 4 deletions(-) create mode 100644 TCM_API/Controllers/manage/Health_detail_tableController.cs create mode 100644 TCM_API/Models/manage/Health_detail_table.cs create mode 100644 TCM_API/ViewModels/Add_health.cs diff --git a/TCM_API/Authorization/JwtUtils.cs b/TCM_API/Authorization/JwtUtils.cs index 20f1b38..61a8a66 100644 --- a/TCM_API/Authorization/JwtUtils.cs +++ b/TCM_API/Authorization/JwtUtils.cs @@ -38,7 +38,8 @@ public class JwtUtils : IJwtUtils new Claim("id", user.id.ToString()), new Claim("firstname", user.firstname ?? ""), // 加入 firstname new Claim("lastname", user.lastname ?? ""), // 加入 lastname - new Claim("level", user.level ?? "") // 加入 lastname + new Claim("level", user.level ?? ""), // 加入 lastname + new Claim("guid", user.guid ?? "") // 加入 lastname }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) diff --git a/TCM_API/Controllers/lamiter/Company_detail_tableController.cs b/TCM_API/Controllers/lamiter/Company_detail_tableController.cs index 475dea8..dd9950a 100644 --- a/TCM_API/Controllers/lamiter/Company_detail_tableController.cs +++ b/TCM_API/Controllers/lamiter/Company_detail_tableController.cs @@ -36,7 +36,7 @@ namespace TCM_API.Controllers.lamiter var data = await(from c in _context.company_detail_table select new { - campant_name = c.campant_name, + company_name = c.company_name, guid = c.guid }).ToListAsync(); @@ -73,7 +73,7 @@ namespace TCM_API.Controllers.lamiter Company_detail_table company_detail_table = new Company_detail_table(); company_detail_table.guid = new_guid.ToString(); company_detail_table.data_create_time = DateTime.Now; - company_detail_table.campant_name = add_company.lastname; + company_detail_table.company_name = add_company.username; //創建 公司帳號 User user = new User(); @@ -85,6 +85,7 @@ namespace TCM_API.Controllers.lamiter user.level = "8"; user.guid = new_guid.ToString(); + //儲存 _context.company_detail_table.Add(company_detail_table); _context.user_table.Add(user); try diff --git a/TCM_API/Controllers/manage/Health_detail_tableController.cs b/TCM_API/Controllers/manage/Health_detail_tableController.cs new file mode 100644 index 0000000..52accf4 --- /dev/null +++ b/TCM_API/Controllers/manage/Health_detail_tableController.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.EntityFrameworkCore; +using TCM_API.Entities; +using TCM_API.Models; +using TCM_API.Models.manage; +using TCM_API.Services; +using TCM_API.ViewModels; + +namespace TCM_API.Controllers.manage +{ + [Route("api/[controller]")] + [ApiController] + public class Health_detail_tableController : Controller + { + private readonly SqlContext _context; + + public Health_detail_tableController(SqlContext context) + { + _context = context; + } + + #region 獲取所有健管師 + /// + /// 獲取所有健管師 + /// + [HttpGet("get_all_health-")] + public async Task> GetHealth_all_deatil() + { + + var data = await (from c in _context.health_detail_table + select new + { + health_name = c.health_name, + guid = c.guid + + }).ToListAsync(); + return Ok(data); + } + #endregion + + + #region 新增健管師 + /// + /// 新增健管師 + /// + [HttpPost("Add_health")] + public async Task> PostHealth_detail_table_1(Add_health add_health) + { + // 創建Guid + Guid new_guid = Guid.NewGuid(); + + // 創建 健管師詳細 + Health_detail_table health_detail_table = new Health_detail_table(); + health_detail_table.guid = new_guid.ToString(); + health_detail_table.company_guid = add_health.company_guid; + health_detail_table.data_create_time = DateTime.Now; + health_detail_table.health_name = add_health.username; + + //創建健管師帳號 + User user = new User(); + user.firstname = "healther"; + user.lastname = add_health.lastname; + user.email = add_health.email; + user.password = add_health.password; + user.username = add_health.username; + user.level = "6"; + user.guid = new_guid.ToString(); + + //儲存 + _context.health_detail_table.Add(health_detail_table); + _context.user_table.Add(user); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (Health_detail_tableExists(health_detail_table.guid)) + { + return Conflict(); + } + else + { + throw; + } + } + + return Ok(); + } + #endregion + + + + + + private bool Health_detail_tableExists(string id) + { + return _context.health_detail_table.Any(e => e.guid == id); + } + } +} diff --git a/TCM_API/Models/lamiter/Company_detail_table.cs b/TCM_API/Models/lamiter/Company_detail_table.cs index 3af3b3a..614ea13 100644 --- a/TCM_API/Models/lamiter/Company_detail_table.cs +++ b/TCM_API/Models/lamiter/Company_detail_table.cs @@ -4,7 +4,7 @@ namespace TCM_API.Models { public class Company_detail_table { - public string? campant_name { get; set; } + public string? company_name { get; set; } public string? guid { get; set; } public DateTime? data_create_time { get; set; } diff --git a/TCM_API/Models/manage/Health_detail_table.cs b/TCM_API/Models/manage/Health_detail_table.cs new file mode 100644 index 0000000..161f736 --- /dev/null +++ b/TCM_API/Models/manage/Health_detail_table.cs @@ -0,0 +1,15 @@ +using System.ComponentModel.DataAnnotations.Schema; + +namespace TCM_API.Models.manage +{ + public class Health_detail_table + { + public string? health_name { get; set; } + public string? guid { get; set; } + public string? company_guid { get; set; } + public DateTime? data_create_time { get; set; } + + [DatabaseGenerated(DatabaseGeneratedOption.Identity)] + public int id { get; set; } + } +} diff --git a/TCM_API/Services/SqlContext.cs b/TCM_API/Services/SqlContext.cs index b5d9270..a5f01b8 100644 --- a/TCM_API/Services/SqlContext.cs +++ b/TCM_API/Services/SqlContext.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using TCM_API.Models; using TCM_API.Entities; +using TCM_API.Models.manage; namespace TCM_API.Services @@ -25,6 +26,7 @@ namespace TCM_API.Services //public DbSet test_0525 { get; set; } = null!; // Model名稱 test_0330 SQL名稱 public DbSet user_table { get; set; } = null!; public DbSet company_detail_table { get; set; } = null!; + public DbSet health_detail_table { get; set; } = null!; protected override void OnModelCreating(ModelBuilder builder) { @@ -32,6 +34,7 @@ namespace TCM_API.Services //builder.Entity().HasKey(o => new { o.user_id }); //Primary Key builder.Entity().HasKey(o => new { o.id }); //Primary Key builder.Entity().HasKey(o => new { o.guid }); + builder.Entity().HasKey(o => new { o.guid }); } diff --git a/TCM_API/ViewModels/Add_health.cs b/TCM_API/ViewModels/Add_health.cs new file mode 100644 index 0000000..8e06550 --- /dev/null +++ b/TCM_API/ViewModels/Add_health.cs @@ -0,0 +1,14 @@ +namespace TCM_API.ViewModels +{ + public class Add_health + { + public string? guid { get; set; } + public string? firstname { get; set; } + public string? lastname { get; set; } + public string? email { get; set; } + public string? username { get; set; } + public string? password { get; set; } + public string? level { get; set; } + public string? company_guid { get; set; } + } +}