24小时一体机服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

435 lines
17 KiB

using Elight.Entity;
using Elight.Logic;
using Elight.Utility;
using Elight.Utility.Code;
using Elight.Utility.Extensions;
using Elight.Utility.logs;
using java.util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
namespace _24Hour.Controllers.Common
{
/// <summary>
/// 云柜详情服务
/// </summary>
[HiddenApi]
[Authorize]
[ApiController]
[Route("api/Hearing")]
public class CloudCabinetController : Controller
{
#region Identity
private readonly SqlSugarClient _db;//数据库
private readonly WriteSysLog _logs;//操作日志
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户
private readonly ILogger<LoginController> _logger;//日志
Result result = new Result();
public CloudCabinetController(ILogger<LoginController> logger, SqlSugarClient db, WriteSysLog logs, User user)
{
_logger = logger;
_db = db;
_logs = logs;
_userdata = user.Userdata();
}
#endregion
#region 云柜增删改查
/// <summary>
/// 云柜分页查询
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Querycabinet")]
public async Task<Result> Querycabinet(App_CloudCabinetInput cabinetdata)
{
//查询云柜详情
var list = await _db.Queryable<App_CloudCabinetModel>()
.WhereIF(cabinetdata.cabinetnumber != null, q => q.cabinetnumber.Contains(cabinetdata.cabinetnumber))
.WhereIF(cabinetdata.cabinetposition != null, q => q.cabinetposition.Contains(cabinetdata.cabinetposition))
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
.WhereIF(cabinetdata.StartTime != null && cabinetdata.EndTime != null, q => q.creationtime >= cabinetdata.StartTime && q.creationtime < cabinetdata.EndTime.Value.AddDays(1))
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
var data = new QueryResult<App_CloudCabinetModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
result.IsSucceed = true;
result.result = data;
return result;
}
/// <summary>
/// 添加云柜
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Addcabinet")]
public async Task<Result> Addcabinet(App_CloudCabinetModel cabinetdata)
{
try
{
_db.BeginTran();
cabinetdata.Id = Guid.NewGuid().ToString();
cabinetdata.createuserId = _userdata.Id.ToString();
cabinetdata.createusername = _userdata.name;
var num = await _db.Insertable(cabinetdata).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "添加成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "添加云柜");
}
_logs.WriteSysLogadd("云柜管理", "添加云柜", result, _db);
return result;
}
/// <summary>
/// 修改云柜
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Updatecabinet")]
public async Task<Result> Updatecabinet(App_CloudCabinetModel cabinetdata)
{
try
{
_db.BeginTran();
var num = await _db.Updateable(cabinetdata).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "修改成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "修改云柜");
}
_logs.WriteSysLogadd("云柜管理", "修改云柜", result, _db);
return result;
}
/// <summary>
/// 删除云柜
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Deletecabinet")]
public async Task<Result> Deletecabinet(CurrencyDelete Currency)
{
try
{
var CloudCabinetlist = await _db.Queryable<App_cabinetDetailsModel>().Where(q => Currency.id.Contains(q.cabinetId)).ToListAsync();
if (CloudCabinetlist.Any())
{
result.IsSucceed = false;
result.result = "已有存取信息,无法删除!";
return result;
}
var Deletelist = await _db.Queryable<App_CloudCabinetModel>().In(q => q.Id, Currency.id).ToListAsync();
_db.BeginTran();
Deletelist.ForEach(q =>
{
q.IsDeleted = 1;
});
var num = await _db.Updateable(Deletelist).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "删除成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "删除云柜");
}
_logs.WriteSysLogadd("云柜管理", "删除云柜", result, _db);
return result;
}
#endregion
#region 云柜状态修改
/// <summary>
/// 修改云柜维护中状态为空闲
/// </summary>
/// <param name="Id">云柜Id</param>
/// <param name="state">状态</param>
/// <returns></returns>
[HttpGet]
[Route("UpdateCabinestate")]
public async Task<Result> UpdateCabinestate(string? Id, int state)
{
try
{
var Cabinetbol = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == Id).ToListAsync();
if (Cabinetbol.Count() > 0)
{
Cabinetbol.FirstOrDefault().state = state;
_db.BeginTran();
var num = await _db.Updateable(Cabinetbol.FirstOrDefault()).UpdateColumns(it => new { it.state}).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "同意";
}
}
else
{
result.IsSucceed = false;
result.result = "未找到云柜信息";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "修改云柜状态");
}
_logs.WriteSysLogadd("云柜管理", "修改云柜状态", result, _db);
return result;
}
#endregion
#region 云柜详情增删改查
/// <summary>
/// 云柜详情分页查询--存放时间
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Querycabinetdetails")]
public async Task<Result> Querycabinetdetails(App_cabinetDetailsInput cabinetdata)
{
//查询云柜详情
var list = await _db.Queryable<App_cabinetDetailsModel>()
.WhereIF(cabinetdata.name != null, q => q.name.Contains(cabinetdata.name))
.WhereIF(cabinetdata.deposituser != null, q => q.deposituser.Contains(cabinetdata.deposituser))
.WhereIF(cabinetdata.takeoutuser != null, q => q.takeoutuser.Contains(cabinetdata.takeoutuser))
.WhereIF(cabinetdata.takeoutcardId != null, q => q.takeoutuser.Contains(cabinetdata.takeoutcardId))
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
.WhereIF(cabinetdata.StartTime != null && cabinetdata.EndTime != null, q => q.deposittime >= cabinetdata.StartTime && q.deposittime < cabinetdata.EndTime.Value.AddDays(1))
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
var data = new QueryResult<App_cabinetDetailsModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
result.IsSucceed = true;
result.result = data;
return result;
}
/// <summary>
/// 云柜详情分页查询--取出时间
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Querycabinetdetailsout")]
public async Task<Result> Querycabinetdetailsout(App_cabinetDetailsInput cabinetdata)
{
//查询云柜详情
var list = await _db.Queryable<App_cabinetDetailsModel>()
.WhereIF(cabinetdata.name != null, q => q.name.Contains(cabinetdata.name))
.WhereIF(cabinetdata.deposituser != null, q => q.deposituser.Contains(cabinetdata.deposituser))
.WhereIF(cabinetdata.takeoutuser != null, q => q.takeoutuser.Contains(cabinetdata.takeoutuser))
.WhereIF(cabinetdata.takeoutcardId != null, q => q.takeoutuser.Contains(cabinetdata.takeoutcardId))
.WhereIF(cabinetdata.unitId != null, q => q.unitId.Contains(cabinetdata.unitId))
.WhereIF(cabinetdata.state != null, q => q.state == cabinetdata.state)
.WhereIF(cabinetdata.takeouttime != null && cabinetdata.EndTime != null, q => q.takeouttime >= cabinetdata.StartTime && q.deposittime < cabinetdata.EndTime.Value.AddDays(1))
.Where(q => q.IsDeleted == 0).ToPageListAsync(cabinetdata.PageIndex, cabinetdata.PageSize);
var data = new QueryResult<App_cabinetDetailsModel>(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList());
result.IsSucceed = true;
result.result = data;
return result;
}
/// <summary>
/// 添加云柜详情
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Addcabinetdetails")]
public async Task<Result> Addcabinetdetails(App_cabinetDetailsModel cabinetdata)
{
try
{
cabinetdata.Id = Guid.NewGuid().ToString();
cabinetdata.createuserId = _userdata.Id.ToString();
cabinetdata.createusername = _userdata.name;
#region 添加云柜存放修改云柜状态
var CloudCabinetlist = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == cabinetdata.cabinetId).ToListAsync();
CloudCabinetlist.ForEach(q =>
{
q.state = 1;
});
#endregion
_db.BeginTran();
//修改云柜状态
if(CloudCabinetlist.Any())
await _db.Updateable(CloudCabinetlist.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
//添加云柜存放
var num = await _db.Insertable(cabinetdata).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "添加成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "添加云柜详情");
}
_logs.WriteSysLogadd("云柜详情", "添加云柜详情", result, _db);
return result;
}
/// <summary>
/// 修改云柜详情
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Updatecabinetdetails")]
public async Task<Result> Updatecabinetdetails(App_cabinetDetailsModel cabinetdata)
{
try
{
_db.BeginTran();
var num = await _db.Updateable(cabinetdata).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "修改成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "修改云柜详情");
}
_logs.WriteSysLogadd("云柜详情", "修改云柜详情", result, _db);
return result;
}
/// <summary>
/// 删除云柜详情
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
[HttpPost]
[Route("Deletecabinetdetails")]
public async Task<Result> Deletecabinetdetails(CurrencyDelete Currency)
{
try
{
var Deletelist = await _db.Queryable<App_cabinetDetailsModel>().In(q => q.Id, Currency.id).ToListAsync();
Deletelist.ForEach(q =>
{
q.IsDeleted = 1;
});
_db.BeginTran();
var num = await _db.Updateable(Deletelist).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "删除成功";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "删除云柜详情");
}
_logs.WriteSysLogadd("云柜详情", "删除云柜详情", result, _db);
return result;
}
#endregion
#region 云柜详情状态修改
/// <summary>
/// 修改云柜详情取出状态为已取出,并云柜为空闲
/// </summary>
/// <param name="Id">云柜Id</param>
/// <param name="state">状态</param>
/// <returns></returns>
[HttpGet]
[Route("Updatedetailstate")]
public async Task<Result> Updatedetailstate(string? Id)
{
try
{
var Cabinetbol = await _db.Queryable<App_cabinetDetailsModel>().Where(q => q.Id == Id).ToListAsync();
if (Cabinetbol.Count() > 0)
{
Cabinetbol.FirstOrDefault().state = 1;
var CloudCabinetlist = await _db.Queryable<App_CloudCabinetModel>().Where(q => q.Id == Cabinetbol.FirstOrDefault().cabinetId).ToListAsync();
CloudCabinetlist.ForEach(q =>
{
q.state = 1;
});
_db.BeginTran();
//修改云柜状态
if (CloudCabinetlist.Any())
await _db.Updateable(CloudCabinetlist.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
//修改云柜详情状态
var num = await _db.Updateable(Cabinetbol.FirstOrDefault()).UpdateColumns(it => new { it.state }).ExecuteCommandAsync();
_db.CommitTran();
if (num > 0)
{
result.IsSucceed = true;
result.result = "同意";
}
}
else
{
result.IsSucceed = false;
result.result = "未找到云柜存放信息";
}
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
LogService.WriteLog(ex, "修改云柜存放状态");
}
_logs.WriteSysLogadd("云柜详情管理", "修改云柜存放状态", result, _db);
return result;
}
#endregion
}
}