新增啟用或未啟用

This commit is contained in:
leo 2025-02-22 17:03:21 +08:00
parent d32d9175eb
commit e2148ff17a
4 changed files with 166 additions and 8 deletions

View File

@ -15,7 +15,7 @@ namespace TCM_API.Controllers.lamiter
{ {
[Route("api/[controller]")] [Route("api/[controller]")]
[ApiController] [ApiController]
//[Authorize] [Authorize]
public class Company_detail_tableController : ControllerBase public class Company_detail_tableController : ControllerBase
{ {
private readonly SqlContext _context; private readonly SqlContext _context;
@ -33,11 +33,14 @@ namespace TCM_API.Controllers.lamiter
public async Task<ActionResult<object>> GetCompany_all_deatil() public async Task<ActionResult<object>> GetCompany_all_deatil()
{ {
var data = await(from c in _context.company_detail_table var data = await(from a in _context.company_detail_table
join b in _context.user_table on a.guid equals b.guid into joined
from b in joined.DefaultIfEmpty()
select new select new
{ {
company_name = c.company_name, company_name = a.company_name,
guid = c.guid guid = a.guid,
level = b.level
}).ToListAsync(); }).ToListAsync();
return Ok( data); return Ok( data);
@ -48,7 +51,18 @@ namespace TCM_API.Controllers.lamiter
[HttpGet("get_campany-{guid}")] [HttpGet("get_campany-{guid}")]
public async Task<ActionResult<object>> GetCompany_deatil(string guid) public async Task<ActionResult<object>> GetCompany_deatil(string guid)
{ {
var data = await _context.company_detail_table.FindAsync(guid); var data = await (from a in _context.company_detail_table
join b in _context.user_table on a.guid equals b.guid into joined
from b in joined.DefaultIfEmpty()
where b.guid == guid
select new
{
guid = a.guid,
level = b.level,
company_name = a.company_name,
user_name = b.username,
email = b.email
}).FirstOrDefaultAsync();
if (data == null) if (data == null)
{ {
return NotFound(); return NotFound();
@ -58,6 +72,32 @@ namespace TCM_API.Controllers.lamiter
#endregion #endregion
#region
/// <summary>
/// 編輯企業啟用
/// </summary>
[HttpPost("company_enable")]
public async Task<IActionResult> UpdateEnable(EnableDto enableDto)
{
var edit_data = await (from a in _context.user_table
where a.guid == enableDto.Guid
select a).FirstOrDefaultAsync();
if (edit_data == null)
{
return NotFound("找不到該使用者");
}
// 更新 level 屬性
edit_data.level = enableDto.level;
// 標記為已修改
_context.user_table.Update(edit_data);
await _context.SaveChangesAsync();
return Ok();
}
#endregion
#region #region
/// <summary> /// <summary>
/// 新增企業 /// 新增企業
@ -115,5 +155,14 @@ namespace TCM_API.Controllers.lamiter
{ {
return _context.company_detail_table.Any(e => e.guid == id); return _context.company_detail_table.Any(e => e.guid == id);
} }
/// <summary>
/// 企業啟用請求 DTO
/// </summary>
public class CompanyEnableDto
{
public string? Guid { get; set; }
public string? level { get; set; }
}
} }
} }

View File

@ -28,7 +28,7 @@ namespace TCM_API.Controllers.manage
/// <summary> /// <summary>
/// 獲取所有健管師 /// 獲取所有健管師
/// </summary> /// </summary>
[HttpGet("get_all_health-")] [HttpGet("get_all_health")]
public async Task<ActionResult<object>> GetHealth_all_deatil() public async Task<ActionResult<object>> GetHealth_all_deatil()
{ {
@ -43,6 +43,104 @@ namespace TCM_API.Controllers.manage
} }
#endregion #endregion
#region
/// <summary>
/// 獲取指定企業健管師
/// </summary>
[HttpGet("get_company_all_health-{guid}")]
public async Task<ActionResult<object>> GetCompany_Health_all_deatil(string guid)
{
var data = await (from a in _context.health_detail_table
join b in _context.user_table on a.guid equals b.guid into joined
from b in joined.DefaultIfEmpty() // LEFT JOIN
where a.company_guid == guid
select new
{
health_name = a.health_name,
guid = a.guid,
level = b.level
}).ToListAsync();
return Ok(data);
}
#endregion
#region
/// <summary>
/// 獲取指定企業健管師
/// </summary>
[HttpGet("get_company_all_health_count-{guid}")]
public async Task<ActionResult<object>> GetCompany_Health_all_count(string guid)
{
var data = await (from a in _context.health_detail_table
join b in _context.user_table on a.guid equals b.guid into userGroup
from b in userGroup.DefaultIfEmpty() // 使用 DefaultIfEmpty() 實現 LEFT JOIN
where a.company_guid == guid
group a by b.level into g
select new
{
level = g.Key,
level_count = g.Count() // 計算每個 level 的數量
}).ToListAsync();
return Ok(data);
}
#endregion
#region
[HttpGet("get_health_person-{guid}")]
public async Task<ActionResult<object>> GetCompany_deatil(string guid)
{
var data = await (from a in _context.health_detail_table
join b in _context.user_table on a.guid equals b.guid into joined
from b in joined.DefaultIfEmpty()
where b.guid == guid && a.guid == guid
select new
{
guid = a.guid,
level = b.level,
health_name = a.health_name,
user_name = b.username,
email = b.email
}).FirstOrDefaultAsync();
if (data == null)
{
return NotFound();
}
return data;
}
#endregion
#region
/// <summary>
/// 編輯企業啟用
/// </summary>
[HttpPost("healther_enable")]
public async Task<IActionResult> UpdateEnable(EnableDto enableDto)
{
var edit_data = await (from a in _context.user_table
where a.guid == enableDto.Guid
select a).FirstOrDefaultAsync();
if (edit_data == null)
{
return NotFound("找不到該使用者");
}
// 更新 level 屬性
edit_data.level = enableDto.level;
// 標記為已修改
_context.user_table.Update(edit_data);
await _context.SaveChangesAsync();
return Ok();
}
#endregion
#region #region
/// <summary> /// <summary>

View File

@ -50,8 +50,11 @@ public class UserService : IUserService
&& x.password == model.Password); && x.password == model.Password);
// return null if user not found // return null if user not found
if (user == null) return null; if (user == null ) return null;
if (!int.TryParse(user.level, out int level) || level % 2 != 0)
{
return null;
}
// authentication successful so generate jwt token // authentication successful so generate jwt token
var token = _jwtUtils.GenerateJwtToken(user); var token = _jwtUtils.GenerateJwtToken(user);

View File

@ -0,0 +1,8 @@
namespace TCM_API.ViewModels
{
public class EnableDto
{
public string? Guid { get; set; }
public string? level { get; set; }
}
}