105 lines
3.2 KiB
C#
105 lines
3.2 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using PetWash.Api.Data;
|
|
using PetWash.Api.Models;
|
|
|
|
namespace PetWash.Api.Controllers;
|
|
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class PackagesController : ControllerBase
|
|
{
|
|
private readonly PetWashDbContext _context;
|
|
|
|
public PackagesController(PetWashDbContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
[HttpGet]
|
|
public async Task<IActionResult> GetPackages()
|
|
{
|
|
var packages = await _context.Packages
|
|
.OrderBy(x => x.Id)
|
|
.ToListAsync();
|
|
return Ok(packages);
|
|
}
|
|
|
|
[HttpGet("{id}")]
|
|
public async Task<IActionResult> GetPackage(int id)
|
|
{
|
|
var package = await _context.Packages.FindAsync(id);
|
|
if (package == null)
|
|
return NotFound();
|
|
|
|
return Ok(package);
|
|
}
|
|
|
|
[HttpPut("{id}")]
|
|
public async Task<IActionResult> UpdatePackage(int id, [FromBody] UpdatePackageRequest request)
|
|
{
|
|
var package = await _context.Packages.FindAsync(id);
|
|
if (package == null)
|
|
{
|
|
return NotFound();
|
|
}
|
|
|
|
if (request.Price <= 0)
|
|
{
|
|
return BadRequest("套餐金额必须大于 0。");
|
|
}
|
|
|
|
if (request.FirstSprayWaterTime <= 0 ||
|
|
request.AfterShampoo1SprayTime <= 0 ||
|
|
request.AfterShampoo2SprayTime <= 0 ||
|
|
request.AfterShampoo3SprayTime <= 0 ||
|
|
request.SprayShampoo1Time <= 0 ||
|
|
request.SprayShampoo2Time <= 0 ||
|
|
request.SprayShampoo3Time <= 0 ||
|
|
request.HotAirTime <= 0 ||
|
|
request.ColdAirTime <= 0 ||
|
|
request.UvSterilizationTime <= 0)
|
|
{
|
|
return BadRequest("套餐流程时间必须全部大于 0。");
|
|
}
|
|
|
|
package.Price = request.Price;
|
|
package.FirstSprayWaterTime = request.FirstSprayWaterTime;
|
|
package.AfterShampoo1SprayTime = request.AfterShampoo1SprayTime;
|
|
package.AfterShampoo2SprayTime = request.AfterShampoo2SprayTime;
|
|
package.AfterShampoo3SprayTime = request.AfterShampoo3SprayTime;
|
|
package.SprayShampoo1Time = request.SprayShampoo1Time;
|
|
package.SprayShampoo2Time = request.SprayShampoo2Time;
|
|
package.SprayShampoo3Time = request.SprayShampoo3Time;
|
|
package.HotAirTime = request.HotAirTime;
|
|
package.ColdAirTime = request.ColdAirTime;
|
|
package.UvSterilizationTime = request.UvSterilizationTime;
|
|
package.DurationMinutes = request.FirstSprayWaterTime
|
|
+ request.AfterShampoo1SprayTime
|
|
+ request.AfterShampoo2SprayTime
|
|
+ request.AfterShampoo3SprayTime
|
|
+ request.SprayShampoo1Time
|
|
+ request.SprayShampoo2Time
|
|
+ request.SprayShampoo3Time
|
|
+ request.HotAirTime
|
|
+ request.ColdAirTime
|
|
+ request.UvSterilizationTime;
|
|
|
|
await _context.SaveChangesAsync();
|
|
return Ok(package);
|
|
}
|
|
}
|
|
|
|
public record UpdatePackageRequest(
|
|
decimal Price,
|
|
int FirstSprayWaterTime,
|
|
int AfterShampoo1SprayTime,
|
|
int AfterShampoo2SprayTime,
|
|
int AfterShampoo3SprayTime,
|
|
int SprayShampoo1Time,
|
|
int SprayShampoo2Time,
|
|
int SprayShampoo3Time,
|
|
int HotAirTime,
|
|
int ColdAirTime,
|
|
int UvSterilizationTime);
|