using Elight.Entity; using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; using Elight.Utility.Extensions; using Elight.Utility.logs; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; namespace _24Hour.Controllers.Common { /// /// 听证服务 /// [Authorize] [ApiController] [Route("api/Hearing")] public class HearingController : 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 HearingController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); } #endregion #region 听证服务增删改查 /// /// APP--根据当前登录人听证预约分页查询 /// /// /// [HttpPost] [Route("QueryHearinguser")] public async Task QueryHearinguser(App_HearingInput Hearingdata) { RefAsync totalNumber = 0;//总数据 //查询听证服务预约记录 var list = await _db.Queryable() .WhereIF(Hearingdata.lawyerunit != null, q => q.lawyerunit.Contains(Hearingdata.lawyerunit)) .WhereIF(Hearingdata.lawyeruser != null, q => q.lawyeruser.Contains(Hearingdata.lawyeruser)) .WhereIF(Hearingdata.location != null, q => q.location.Contains(Hearingdata.location)) .WhereIF(Hearingdata.state != null, q => q.state == Hearingdata.state) .WhereIF(Hearingdata.StartTime != null && Hearingdata.EndTime != null, q => q.reservationtime >= Hearingdata.StartTime && q.reservationtime < Hearingdata.EndTime.Value.AddDays(1)) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToPageListAsync(Hearingdata.PageIndex, Hearingdata.PageSize, totalNumber); Hearingdata.RowsCount = totalNumber; var data = new QueryResult(Hearingdata, list.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 听证服务分页查询 /// /// /// [HttpPost] [Route("QueryHearing")] public async Task QueryHearing(App_HearingInput Hearingdata) { RefAsync totalNumber = 0;//总数据 //查询听证服务 var list = await _db.Queryable() .WhereIF(Hearingdata.lawyerunit != null, q => q.lawyerunit.Contains(Hearingdata.lawyerunit)) .WhereIF(Hearingdata.lawyeruser != null, q => q.lawyeruser.Contains(Hearingdata.lawyeruser)) .WhereIF(Hearingdata.location != null, q => q.location.Contains(Hearingdata.location)) .WhereIF(Hearingdata.state != null, q => q.state == Hearingdata.state) .WhereIF(Hearingdata.StartTime != null&& Hearingdata.EndTime!=null, q => q.reservationtime >= Hearingdata.StartTime&& q.reservationtime < Hearingdata.EndTime.Value.AddDays(1)) .Where(q => q.IsDeleted == 0&&q.unitCode == _userdata.unitCode).ToPageListAsync(Hearingdata.PageIndex, Hearingdata.PageSize, totalNumber); Hearingdata.RowsCount = totalNumber; var data = new QueryResult(Hearingdata, list.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 添加听证服务 /// /// /// [HttpPost] [Route("AddHearing")] public async Task AddHearing(App_HearingModel Hearingdata) { try { _db.BeginTran(); Hearingdata.Id = Guid.NewGuid().ToString(); Hearingdata.createuserId = _userdata.Id.ToString(); Hearingdata.createusername = _userdata.name; Hearingdata.state = 0; var num = await _db.Insertable(Hearingdata).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("UpdateHearing")] public async Task UpdateHearing(App_HearingModel Hearingdata) { try { _db.BeginTran(); var num = await _db.Updateable(Hearingdata).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("DeleteHearing")] public async Task DeleteHearing(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("UpdateHearingstate")] public async Task UpdateHearingstate(string? Id, int state, string? reason) { try { var Hearingbol = await _db.Queryable().Where(q => q.Id == Id).ToListAsync(); if (Hearingbol.Any()) { Hearingbol.FirstOrDefault().state = state; if (reason.NotNull()) Hearingbol.FirstOrDefault().reason = reason; Hearingbol.FirstOrDefault().acceptancetime = DateTime.Now; _db.BeginTran(); var num = await _db.Updateable(Hearingbol.FirstOrDefault()).UpdateColumns(it => new { it.state, it.reason, it.acceptancetime }).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 } }