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 jdk.nashorn.@internal.ir; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SqlSugar; using System.Drawing.Printing; using System.Security.AccessControl; using static com.sun.tools.@internal.xjc.reader.xmlschema.bindinfo.BIConversion; using User = Elight.Utility.User; namespace _24Hour.Controllers.Common { /// /// 通用接口 /// [Authorize] [ApiController] [Route("api/Common")] public class CommonController : Controller { #region Identity private readonly SqlSugarClient _db;//数据库 private readonly WriteSysLog _logs;//操作日志 private readonly WebSocketController _SocketCon;//WebSocket发送 App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly ILogger _logger;//日志 Result result = new Result(); public CommonController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); _SocketCon = SocketCon; } #endregion #region 最近待办--我的待办---我的预约 /// /// 系统---根据当前登录人单位获取所有预约信息 /// [HttpPost] [Route("queryreunit")] public async Task queryreunit(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToListAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, state = q.state, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, username = q.createusername }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.name, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime, username = q.createusername }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime, username = q.createusername }); }); list = list.Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// 系统---根据预约Id 查询预约信息 /// /// 预约Id /// 类型 /// [HttpGet] [Route("queryreunitId")] public async Task queryreunitId(string? Id,int type) { try { switch (type) { case 0: //获取律师服务预约记录 var list = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); result.result = list.FirstOrDefault(); break; case 1: //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); result.result = Remotedata.FirstOrDefault(); break; case 2: //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); result.result = Receptiondata.FirstOrDefault(); break; } result.IsSucceed = true; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "通过Id查询预约信息", result, _db); return result; } /// /// app---根据当前登录人获取所有预约信息--type类型为:0律师服务,1远程会见,2远程接待 /// [HttpPost] [Route("queryreservation")] public async Task queryreservation(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.IsDeleted == 0&&q.usertype==0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda=Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) state = q.state, reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = userda?.name, notes = q.notes }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) Code=q.Code, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes=q.notes, appurl=q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name ="", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取听证服务预约记录 //var Hearingdata = await _db.Queryable() // .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) // .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); //Hearingdata.ToList().ForEach(q => //{ // var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); // list.Add(new // { // Id = q.Id, // title = da?.title, // color = da?.color, // icon = da?.icon, // name = "", // phone = q.phone, // matter = q.reservationlocation,//事由 // objectstr = q.casename,//访问对象(案件名称) // Code = "", // state = q.state,//状态 // reason = q.reason,//原因 // sttime = q.reservationtime, // ettime = q.ettime, // creationtime = q.creationtime, // receptionuser = q.meetwitId, // username = q.meetwitname, // notes = q.notes, // appurl = "" // }); //}); list = list.Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// app---根据登录人获取所有预约办理信息 /// [HttpPost] [Route("queryreservationjc")] public async Task queryreservationjc(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.Id).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) state = q.state, reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = userda?.name, notes = q.notes }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.Id).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) Code = q.Code, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.Id).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取听证服务预约记录 //var Hearingdata = await _db.Queryable() // .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.Id).ToArrayAsync(); //Hearingdata.ToList().ForEach(q => //{ // var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); // list.Add(new // { // Id = q.Id, // name = da?.title, // color = da?.color, // icon = da?.icon, // matter = q.casename, // sttime = q.reservationtime, // ettime = "", // state = q.state, // creationtime = q.creationtime, // username = q.createusername // }); //}); list = list.Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// 根据Id分配办理人 /// /// 预约信息Id /// 办理人Id /// 办理人 /// [HttpGet] [Route("Updateuser")] public async Task Updateuser(string? Id, string? userId,string? username) { try { //律师服务 var Lawyerbol = await _db.Queryable().Where(q => q.Id == Id).ToListAsync(); if (Lawyerbol.Count() > 0) { Lawyerbol.FirstOrDefault().receptionuser = userId; _db.BeginTran(); var num = await _db.Updateable(Lawyerbol.FirstOrDefault()).UpdateColumns(it => new { it.receptionuser }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { _SocketCon.system(userId); result.IsSucceed = true; result.result = "修改成功"; } } //听证服务 var Hearingbol = await _db.Queryable().Where(q => q.Id == Id).ToListAsync(); if (Hearingbol.Count() > 0) { Hearingbol.FirstOrDefault().receptionuser = userId; _db.BeginTran(); var num = await _db.Updateable(Hearingbol.FirstOrDefault()).UpdateColumns(it => new { it.receptionuser }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } //远程会见 var RemoteModelbol = await _db.Queryable().Where(q => q.Id == Id).ToListAsync(); if (RemoteModelbol.Count() > 0) { RemoteModelbol.FirstOrDefault().meetwitId = userId; RemoteModelbol.FirstOrDefault().meetwitname = username; _db.BeginTran(); var num = await _db.Updateable(RemoteModelbol.FirstOrDefault()).UpdateColumns(it => new { it.meetwitId, it.meetwitname }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.Id== Id).ToArrayAsync(); if (Receptiondata.Count() > 0) { Receptiondata.FirstOrDefault().meetwitId = userId; Receptiondata.FirstOrDefault().meetwitname = username; _db.BeginTran(); var num = await _db.Updateable(Receptiondata.FirstOrDefault()).UpdateColumns(it => new { it.meetwitId, it.meetwitname }).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 自主查询 /// /// app---根据当前登录人查询预约信息--自主查询 /// [HttpPost] [Route("querylist")] public async Task querylist(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { Id = q.Id, name = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, state = q.state, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { Id = q.Id, name = da?.title, color = da?.color, icon = da?.icon, matter = q.name, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { Id = q.Id, name = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取听证服务预约记录 var Hearingdata = await _db.Queryable() .WhereIF(Commondata.state!=null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { Id = q.Id, name = da?.title, color = da?.color, icon = da?.icon, matter = q.casename, sttime = q.reservationtime, ettime = "", state = q.state, creationtime = q.creationtime }); }); //查询 list=list.ToList().WhereIF(Commondata.matter.NotNull(), q => q.matter.Contains(Commondata.matter)).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } #endregion #region 文件上传 /// /// 文件上传--MP4 /// /// /// /// [HttpPost] [Route("Upload_Files")] public async Task Upload_Files(IFormFile file, string p) { Result outParm = new Result(); return await Task.Run(() => { if (file.Length <= 0) { outParm.IsSucceed = false; outParm.Message = "请上传文件!"; return Json(outParm); } try { var size = Request.Form.Files.Sum(f => f.Length); IFormFile file = Request.Form.Files.FirstOrDefault(); var fname = $@"{file.FileName}"; var hzname = $"{Path.GetExtension(fname)}"; var _path = "/CaseFile/video"; var dic = Path.Combine(Environment.CurrentDirectory, "wwwroot"); if (!string.IsNullOrEmpty(_path)) dic += _path; if (!System.IO.Directory.Exists(dic)) Directory.CreateDirectory(dic); var filename = $"{DateTime.Now:yyyyMMddHHmmssfff}{Path.GetExtension(fname)}"; var filepath = Path.Combine(_path, $"{filename}"); var path = Path.Combine(dic, $"{filename}"); using (var stream = new FileStream(path, FileMode.OpenOrCreate)) { file.CopyToAsync(stream).Wait(); } var __path = $"{_path}/{filename}"; outParm.IsSucceed = true; outParm.result = new { hzname = hzname, url = __path, tile = Path.GetFileNameWithoutExtension(file.FileName), size, DataPath = path, filePath = dic }; } catch (Exception e) { outParm.IsSucceed = false; outParm.Message = $"文件上传失败!{e.Message}"; } return Json(outParm); }); } #endregion } }