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 { /// /// 云柜详情服务 /// [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 _logger;//日志 Result result = new Result(); public CloudCabinetController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); } #endregion #region 云柜增删改查 /// /// 云柜分页查询 /// /// /// [HttpPost] [Route("Querycabinet")] public async Task Querycabinet(App_CloudCabinetInput cabinetdata) { //查询云柜详情 var list = await _db.Queryable() .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(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 添加云柜 /// /// /// [HttpPost] [Route("Addcabinet")] public async Task 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; } /// /// 修改云柜 /// /// /// [HttpPost] [Route("Updatecabinet")] public async Task 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; } /// /// 删除云柜 /// /// /// [HttpPost] [Route("Deletecabinet")] public async Task Deletecabinet(CurrencyDelete Currency) { try { var CloudCabinetlist = await _db.Queryable().Where(q => Currency.id.Contains(q.cabinetId)).ToListAsync(); if (CloudCabinetlist.Any()) { result.IsSucceed = false; result.result = "已有存取信息,无法删除!"; return result; } var Deletelist = await _db.Queryable().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 云柜状态修改 /// /// 修改云柜维护中状态为空闲 /// /// 云柜Id /// 状态 /// [HttpGet] [Route("UpdateCabinestate")] public async Task UpdateCabinestate(string? Id, int state) { try { var Cabinetbol = await _db.Queryable().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 云柜详情增删改查 /// /// 云柜详情分页查询--存放时间 /// /// /// [HttpPost] [Route("Querycabinetdetails")] public async Task Querycabinetdetails(App_cabinetDetailsInput cabinetdata) { //查询云柜详情 var list = await _db.Queryable() .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(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 云柜详情分页查询--取出时间 /// /// /// [HttpPost] [Route("Querycabinetdetailsout")] public async Task Querycabinetdetailsout(App_cabinetDetailsInput cabinetdata) { //查询云柜详情 var list = await _db.Queryable() .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(cabinetdata, list.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 添加云柜详情 /// /// /// [HttpPost] [Route("Addcabinetdetails")] public async Task 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().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; } /// /// 修改云柜详情 /// /// /// [HttpPost] [Route("Updatecabinetdetails")] public async Task 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; } /// /// 删除云柜详情 /// /// /// [HttpPost] [Route("Deletecabinetdetails")] public async Task Deletecabinetdetails(CurrencyDelete Currency) { try { var Deletelist = await _db.Queryable().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 云柜详情状态修改 /// /// 修改云柜详情取出状态为已取出,并云柜为空闲 /// /// 云柜Id /// 状态 /// [HttpGet] [Route("Updatedetailstate")] public async Task Updatedetailstate(string? Id) { try { var Cabinetbol = await _db.Queryable().Where(q => q.Id == Id).ToListAsync(); if (Cabinetbol.Count() > 0) { Cabinetbol.FirstOrDefault().state = 1; var CloudCabinetlist = await _db.Queryable().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 } }