asg_backend/asg_form/Controllers/Budget/BgCountController.cs

201 lines
7.8 KiB
C#
Raw Normal View History

2024-10-02 21:05:36 +08:00
using Manganese.Array;
2024-10-01 19:55:06 +08:00
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
2024-10-02 21:05:36 +08:00
using Microsoft.EntityFrameworkCore;
using RestSharp.Extensions;
2024-10-01 19:55:06 +08:00
namespace asg_form.Controllers.Budget
{
public class BgDB
{
public long id { get; set; }
public string budget_year { get; set; }
public long budget_money { get; set; }
public string budget_type { get; set; }
public string budget_name { get; set; }
public string budget_used { get; set; }
public string source_event_name { get; set; }
public long source_event_id { get; set; }
public string used_event_name { get; set; }
public long used_event_id { get; set; }
2024-10-02 21:05:36 +08:00
//public string use_person { get; set; }
2024-10-01 19:55:06 +08:00
//public long use_person_id { get; set; }
public string change_time { get; set; }
public string use_status { get; set; }
public string? update_person { get; set; }//设置默认
public string? update_time { get; set; }
}
public class BgCountController : ControllerBase
{
private readonly RoleManager<Role> roleManager;
private readonly UserManager<User> userManager;
public BgCountController(
RoleManager<Role> roleManager, UserManager<User> userManager)
{
this.roleManager = roleManager;
this.userManager = userManager;
}
2024-10-02 21:05:36 +08:00
public class bgMsg
2024-10-01 19:55:06 +08:00
{
public string budgetYear { get; set; }
2024-10-02 21:05:36 +08:00
public int budgetMoney { get; set; }
2024-10-01 19:55:06 +08:00
public string budgetType { get; set; }
public string budgetName { get; set; }
public string sourceEventName { get; set; }
public long sourceEventId { get; set; }
2024-10-02 21:05:36 +08:00
public string budgetUsed { get; set; }
public string usedEventName { get; set; }
2024-10-01 19:55:06 +08:00
public long usedEventId { get; set; }
public string updatePerson { get; set; }
public string updateTime { get; set; }//自动生成时间
}
[Route("api/v1/admin/insertBg")]
[HttpPost]
[Authorize]
public async Task<ActionResult<object>> InBg([FromBody] bgMsg msg)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new error_mb { code = 401, message = "无权访问" });
}
if (msg == null)
{
return Ok(new error_mb { code = 500, message = "请插入必要字段" });
}
var dateString = DateTime.Now.ToString(); ;
2024-10-02 21:05:36 +08:00
using (TestDbContext sub = new TestDbContext())
2024-10-01 19:55:06 +08:00
{
var budget = new BgDB
{
budget_year = msg.budgetYear,
budget_money = msg.budgetMoney,
budget_type = msg.budgetType,
budget_name = msg.budgetName,
budget_used = msg.budgetUsed,
source_event_name = msg.sourceEventName,
source_event_id = msg.sourceEventId,
change_time = dateString,
used_event_name = msg.usedEventName,
used_event_id = msg.usedEventId,
use_status = "0",
2024-10-02 21:05:36 +08:00
update_person = null,/////
update_time = dateString,
2024-10-01 19:55:06 +08:00
};
2024-10-02 21:05:36 +08:00
sub.budgetDetails.Add(budget);
await sub.SaveChangesAsync();
return Ok(new error_mb { code = 200, message = "新增预算成功" });
}
2024-10-01 19:55:06 +08:00
}
2024-10-02 21:05:36 +08:00
[Route("api/v1/admin/updateBg")]
[HttpPost]
[Authorize]
public async Task<ActionResult<object>> UpdBg(long id, [FromBody] bgMsg msg)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new error_mb { code = 401, message = "您没有权限" });
}
if (msg == null)
{
return Ok(new error_mb { code = 500, message = "请插入必要字段" });
}
var currentTime = DateTime.Now;
using (TestDbContext sub = new TestDbContext())
{
var budget = await sub.budgetDetails.FindAsync(id);
if (budget == null)
{
return Ok(new error_mb { code = 404, message = "预算记录未找到" });
}
budget.budget_year = msg.budgetYear;
budget.budget_money = msg.budgetMoney;
budget.budget_type = msg.budgetType;
budget.budget_name = msg.budgetName;
budget.source_event_name = msg.sourceEventName;
budget.source_event_id = msg.sourceEventId;
budget.budget_used = msg.budgetUsed;
budget.used_event_name = msg.usedEventName;
budget.used_event_id = msg.usedEventId;
budget.update_person = msg.updatePerson;
budget.update_time = currentTime.ToString();
await sub.SaveChangesAsync();
return Ok(new error_mb { code = 200, message = "更新预算成功" });
}
2024-10-01 19:55:06 +08:00
}
2024-10-02 21:05:36 +08:00
[Route("api/v1/admin/getBg")]
[HttpGet]
[Authorize]
public async Task<ActionResult<object>> GetBgBySourceEventId([FromQuery] int sourceEventId)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new { code = 401, message = "您没有权限", data = new List<object>() });
}
try
{
using (TestDbContext dbContext = new TestDbContext())
{
var budgets = await dbContext.budgetDetails
.Where(b => b.source_event_id == sourceEventId)
.ToListAsync();
if(budgets == null) return Ok(new { code = 404, message="没有找到这个数据" });
return Ok(new { code = 200, data = budgets });
}
}
catch (Exception ex)
{
return StatusCode(500, new { code = 500, message = "服务器错误", details = ex.Message });
}
}
[Route("api/v1/admin/updateBudgetUsage")]
[HttpPost]
[Authorize]
public async Task<ActionResult<object>> UpdBgUsage([FromBody] UpdateBg request)
{
if (!this.User.FindAll(ClaimTypes.Role).Any(a => a.Value == "admin"))
{
return Ok(new { code = 401, message = "您没有权限" });
}
try
{
using (var db = new TestDbContext())
{
var budget = await db.budgetDetails.FindAsync(request.BudgetId);
if (budget == null)
{
return NotFound(new { code = 404, message = "预算记录未找到" });
}
budget.use_status = "1";
//budget.use_person = request.UsePerson;
//budget.use_personId = request.UsePersonId;
budget.change_time = DateTime.Now.ToString();
await db.SaveChangesAsync();
return Ok(new { code = 200, message = "更新使用情况成功" });
}
}
catch (Exception ex)
{
return StatusCode(500, new { code = 500, message = "服务器错误", details = ex.Message });
}
}
public class UpdateBg
{
public int BudgetId { get; set; }
public string UsePerson { get; set; }
public int UsePersonId { get; set; }
}
2024-10-01 19:55:06 +08:00
}
}