新增city parking的API
This commit is contained in:
parent
c42eb41650
commit
8fdacf40eb
@ -325,6 +325,88 @@ namespace Parking_space_WebAPI.Controllers
|
||||
#endregion
|
||||
|
||||
|
||||
#region City_parking 新增進入資料
|
||||
/// <summary>
|
||||
/// City_parking 新增進入資料
|
||||
/// </summary>
|
||||
/// <param name="yuntech_in_car_table"></param>
|
||||
/// <returns></returns>
|
||||
// POST: api/Yuntech_in_car_table
|
||||
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
|
||||
[HttpPost("city_parking_in_car_data")]
|
||||
public async Task<ActionResult<Yuntech_in_car_table>> PostYuntech_in_car_table_for__city_parking(Yuntech_in_car_table yuntech_in_car_table)
|
||||
{
|
||||
if (_context.yuntech_in_car_table == null)
|
||||
{
|
||||
return Problem("Entity set 'SqlContext.yuntech_in_car_table' is null.");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
//比對1分鐘內有無重複記錄到
|
||||
DateTime now_time = DateTime.Now;
|
||||
// 取得 59秒前的時間
|
||||
DateTime time_59s_ago = now_time.AddSeconds(-59);
|
||||
var in_car_data = await (from c in _context.yuntech_in_car_table
|
||||
where c.license_plate_number == yuntech_in_car_table.license_plate_number
|
||||
where c.out_time == null
|
||||
orderby c.in_time descending
|
||||
select c).FirstOrDefaultAsync();
|
||||
if (in_car_data != null && in_car_data.in_time > time_59s_ago)
|
||||
{
|
||||
return Ok();
|
||||
}
|
||||
|
||||
//比對30秒內出去與進入的時間對比
|
||||
//取得30秒前的時間
|
||||
DateTime time_30s_ago = now_time.AddSeconds(-30);
|
||||
var out_car_data = await (from c in _context.yuntech_in_car_table
|
||||
where c.license_plate_number == yuntech_in_car_table.license_plate_number
|
||||
orderby c.out_time descending
|
||||
select c).FirstOrDefaultAsync();
|
||||
if (out_car_data != null && out_car_data.out_time > time_30s_ago)
|
||||
{
|
||||
return Ok(out_car_data);
|
||||
}
|
||||
|
||||
// 新增資料
|
||||
yuntech_in_car_table.in_time = DateTime.Now;
|
||||
yuntech_in_car_table.out_time = null;
|
||||
_context.yuntech_in_car_table.Add(yuntech_in_car_table);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// 車位數量-1
|
||||
var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync();
|
||||
if (yuntech_parking != null)
|
||||
{
|
||||
string now_num_str = yuntech_parking.now_num;
|
||||
int now_num_int;
|
||||
Int32.TryParse(now_num_str, out now_num_int);
|
||||
now_num_int = now_num_int - 1;
|
||||
now_num_str = now_num_int.ToString();
|
||||
yuntech_parking.now_num = now_num_str;
|
||||
// 保存更改
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
}
|
||||
catch (DbUpdateException)
|
||||
{
|
||||
if (Yuntech_in_car_tableExists(yuntech_in_car_table.in_time))
|
||||
{
|
||||
return Conflict();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
return CreatedAtAction("GetYuntech_in_car_table", new { id = yuntech_in_car_table.in_time }, yuntech_in_car_table);
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 新增出去資料
|
||||
/// <summary>
|
||||
/// 新增出去雲科的車輛資料
|
||||
@ -388,6 +470,70 @@ namespace Parking_space_WebAPI.Controllers
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region City_parking 新增出去資料
|
||||
/// <summary>
|
||||
/// City_parking 新增出去資料
|
||||
/// </summary>
|
||||
/// <param name="yuntech_in_car_table"></param>
|
||||
/// <returns></returns>
|
||||
// POST: api/Yuntech_in_car_table
|
||||
// To protect from overposting attacks, see https://go.microsoft.com/fwlink/?linkid=2123754
|
||||
[HttpPost("city_parking_out_car_data")]
|
||||
public async Task<ActionResult<Yuntech_in_car_table>> PostYuntech_out_car_table_for_city_parking(Yuntech_in_car_table yuntech_out_car_table)
|
||||
{
|
||||
if (_context.yuntech_in_car_table == null)
|
||||
{
|
||||
return Problem("Entity set 'SqlContext.yuntech_in_car_table' is null.");
|
||||
}
|
||||
var license_plate_number = yuntech_out_car_table.license_plate_number;
|
||||
var out_car_img = yuntech_out_car_table.out_car_img;
|
||||
var in_car_data = await (from c in _context.yuntech_in_car_table
|
||||
where c.license_plate_number == license_plate_number
|
||||
where c.out_time == null
|
||||
orderby c.in_time descending
|
||||
select c).FirstOrDefaultAsync();
|
||||
DateTime now_time = DateTime.Now;
|
||||
// 取得 30秒前的時間
|
||||
DateTime time_30s_ago = now_time.AddSeconds(-30);
|
||||
if (in_car_data != null && in_car_data.in_time < time_30s_ago)
|
||||
{
|
||||
// 处理找到记录的情况
|
||||
_context.yuntech_in_car_table.Remove(in_car_data);
|
||||
await _context.SaveChangesAsync();
|
||||
in_car_data.out_time = DateTime.Now;
|
||||
in_car_data.out_car_img = out_car_img;
|
||||
_context.yuntech_in_car_table.Add(in_car_data);
|
||||
await _context.SaveChangesAsync();
|
||||
|
||||
// 車位數量+1
|
||||
var yuntech_parking = await _context.yuntech_parking.FirstOrDefaultAsync();
|
||||
|
||||
if (yuntech_parking != null)
|
||||
{
|
||||
string now_num_str = yuntech_parking.now_num;
|
||||
int now_num_int;
|
||||
Int32.TryParse(now_num_str, out now_num_int);
|
||||
now_num_int = now_num_int + 1;
|
||||
now_num_str = now_num_int.ToString();
|
||||
yuntech_parking.now_num = now_num_str;
|
||||
// 保存更改
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 处理未找到记录的情况
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
return Ok();
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
#region 刪除資料
|
||||
/// <summary>
|
||||
/// 刪除指定資料
|
||||
|
Loading…
Reference in New Issue
Block a user