using Elight.Entity; using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; using Elight.Utility.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; namespace _24Hour.Controllers.Common { /// /// 认罪认罚 /// [Authorize] [ApiController] [Route("api/reception")] public class ConfessionController : 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 ConfessionController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); } #endregion #region 认罪认罚管理 /// /// app---认罪认罚分页查询 /// /// /// [HttpPost] [Route("QueryConfessionapp")] public async Task QueryConfessionapp(App_ConfessionInput Confession) { RefAsync totalNumber = 0;//总数据 var Confessionlist = new List(); //获取工作台信息 var app_staging = await _db.Queryable().Where(w => w.IsDelete == 0).ToListAsync(); //查询认罪认罚记录 var list = await _db.Queryable() .WhereIF(!string.IsNullOrEmpty(Confession.matter), q => q.matter.Contains(Confession.matter)) .WhereIF(Confession.unitId.NotNull(), q => q.unitCode.Contains(Confession.unitId)) .WhereIF(!string.IsNullOrEmpty(Confession.meetwitname), q => q.meetwitname.Contains(Confession.meetwitname)) .WhereIF(Confession.state != null, q => q.state == Confession.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToPageListAsync(Confession.PageIndex, Confession.PageSize, totalNumber); Confession.RowsCount = totalNumber; list.ForEach(q => { var data = app_staging.Where(a => a.Id == q.reservationId).FirstOrDefault(); if (data != null) { q.reservationId = data.title; Confessionlist.Add(q); } }); var data = new QueryResult(Confession, Confessionlist.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 认罪认罚分页查询 /// /// /// [HttpPost] [Route("QueryConfession")] public async Task QueryConfession(App_ConfessionInput Confession) { RefAsync totalNumber = 0;//总数据 var Confessionlist = new List(); //获取工作台信息 var app_staging = await _db.Queryable().Where(w => w.IsDelete == 0).ToListAsync(); //查询认罪认罚记录 var list = await _db.Queryable() .WhereIF(!string.IsNullOrEmpty(Confession.matter), q => q.matter.Contains(Confession.matter)) .WhereIF(!string.IsNullOrEmpty(Confession.meetwitname), q => q.meetwitname.Contains(Confession.meetwitname)) .WhereIF(!string.IsNullOrEmpty(Confession.phone), q => q.phone.Contains(Confession.phone)) .WhereIF(Confession.state != null, q => q.state == Confession.state) .WhereIF(Confession.StartTime != null && Confession.EndTime != null, q => q.sttime >= Confession.StartTime && q.sttime < Confession.EndTime.Value.AddDays(1)) .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToPageListAsync(Confession.PageIndex, Confession.PageSize, totalNumber); Confession.RowsCount = totalNumber; list.ForEach(q => { var data = app_staging.Where(a => a.Id == q.reservationId).FirstOrDefault(); if (data != null) { q.reservationId = data.title; Confessionlist.Add(q); } }); var data = new QueryResult(Confession, Confessionlist.OrderByDescending(q => q.creationtime).ToList()); result.IsSucceed = true; result.result = data; return result; } /// /// 添加认罪认罚 /// /// /// [HttpPost] [Route("AddConfession")] public async Task AddConfession(App_ConfessionModel Confession) { try { _db.BeginTran(); Confession.Id = Guid.NewGuid().ToString(); Confession.createuserId = _userdata.Id.ToString(); Confession.createusername = _userdata.name; var num = await _db.Insertable(Confession).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "添加成功"; } } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("认罪认罚", "添加认罪认罚信息", result, _db); return result; } /// /// 修改认罪认罚 /// /// /// [HttpPost] [Route("UpdateConfession")] public async Task UpdateConfession(App_ConfessionModel Confession) { try { _db.BeginTran(); var num = await _db.Updateable(Confession).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; } _logs.WriteSysLogadd("认罪认罚", "修改认罪认罚", result, _db); return result; } /// /// 删除认罪认罚 /// /// /// [HttpPost] [Route("DeleteConfession")] public async Task DeleteConfession(CurrencyDelete Currency) { try { _db.BeginTran(); var Receptionlist = await _db.Queryable().In(q => q.Id, Currency.id).ToListAsync(); Receptionlist.ForEach(q => { q.IsDeleted = 1; }); var num = await _db.Updateable(Receptionlist).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "删除成功"; } } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("认罪认罚", "删除认罪认罚预约", result, _db); return result; } /// /// 办理预约认罪认罚 /// /// /// [HttpPost] [Route("UpdateConfession_state")] public async Task UpdateConfession_state(Commonpage Commonpagedata) { try { var Receptionlist = await _db.Queryable().Where(q => q.Id == Commonpagedata.Id).ToListAsync(); Receptionlist.ForEach(q => { q.state = (int)Commonpagedata.state; q.acceptancetime = DateTime.Now; if (Commonpagedata.reason.NotNull()) q.reason = Commonpagedata.reason; }); _db.BeginTran(); var num = await _db.Updateable(Receptionlist).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "办理成功"; } } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("认罪认罚", "办理认罪认罚预约", result, _db); return result; } #endregion } }