123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using Cksoft.Unity;
- using DllEapCommon.Base;
- using DllEapCommon.NPOI;
- using DllUfpDal;
- using DllUfpEntity;
- using DllUfpEntity.Dto;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.AspNetCore.Mvc;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace DllUfpBll
- {
- [Route("ufp/api/[controller]/[action]")]
- [ApiController]
- public class VisitLogController : ControllerBase
- {
- [HttpPost]
- public UfpResponse<int> LogInfo([FromBody] Dictionary<string, string> dic)
- {
- string url = dic["url"];
- // string usercode = Request.Headers["usercode"]; //
- string usercode = dic["userCode"];
- var res = new UfpResponse<int> { Code = 1, Msg = string.Empty };
- var log = new VisitLogDto
- {
- Url = url,
- UserCode = usercode
- };
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- db.BeginTrans();
- if (dal.Log(log) > 0)
- {
- db.Commit();
- }
- else
- {
- db.Rollback();
- }
- return res;
- }
- }
- public EapResponse GetVisitLogsByDate(DateTime? startTime, DateTime? endTime)
- {
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var dt = dal.GetVisitLogTable(startTime.Value, endTime.Value);
- return new EapResponse
- {
- Code = 1,
- Msg = string.Empty,
- Data = dt
- };
- }
- }
- [HttpPost]
- public async Task<IActionResult> ExportVisitLogsByDate(IDictionary<string, string> filterInfo)
- {
- DateTime startTime=DateTime.Now.AddDays(-1), endTime=DateTime.Now;
- if (filterInfo.ContainsKey("startTime"))
- {
- startTime = Convert.ToDateTime(filterInfo["startTime"]);
- }
- if (filterInfo.ContainsKey("endTime"))
- {
- endTime = Convert.ToDateTime(filterInfo["endTime"]);
- }
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var dt = dal.GetVisitLogTable(startTime, endTime);
- var book = DataExportHelper.ExportVisit(dt);
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- book.Write(ms);
- ms.Dispose();
- ms.Close();
- await Task.CompletedTask;
- return File(ms.ToArray(), "application/octet-stream");
- }
- }
- public LayuiModel<VisitLogAnalysisDto> GetStaffVisitLogs(string filter, string subFilter,
- string sort, int pageIndex = 1, int pageSize = 20)
- {
- var sortField = "count";
- var sortOrder = "descend";
- if (!string.IsNullOrEmpty(sort))
- {
- var arr = sort.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- if (arr != null && arr.Length > 0)
- {
- sortField = arr[0];
- sortOrder = arr[1];
- }
- }
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- int total;
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var list = dal.GetStaffVisitLog(filter, subFilter, start, pageSize, out total,
- sortField, sortOrder);
- var extra = dal.GetTotalInfo(filter, subFilter);
- return new LayuiModel<VisitLogAnalysisDto>
- {
- code = 0,
- count = total,
- data = list,
- extraObject = extra
- };
- }
- }
- public LayuiModel<VisitLogAnalysisDto> GetReportVisitLogs(string filter, string subFilter,
- string sort, int pageIndex = 1, int pageSize = 20)
- {
- var sortField = "count";
- var sortOrder = "descend";
- if (!string.IsNullOrEmpty(sort))
- {
- var arr = sort.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- if (arr != null && arr.Length > 0)
- {
- sortField = arr[0];
- sortOrder = arr[1];
- }
- }
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- int start;
- start = (pageIndex - 1) * pageSize + 1;
- int total;
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var list = dal.GetReportVisitLog(filter, subFilter, start, pageSize, out total,
- sortField, sortOrder);
- var extra = dal.GetReportTotalInfo(filter, subFilter);
- return new LayuiModel<VisitLogAnalysisDto>
- {
- code = 0,
- count = total,
- data = list,
- extraObject = extra
- };
- }
- }
- public EapResponse GetStaffReportLogs(string filter, string subFilter)
- {
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var dt = dal.GetStaffReportLogs(filter, subFilter);
- return new EapResponse
- {
- Code = 1,
- Data = dt
- };
- }
- }
- [HttpPost]
- public IActionResult ExportReportLogs([FromBody] StExportModel exportModel)
- {
- string errorinfo = string.Empty;
- int total = 0;
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var data = dal.GetReportVisitLog(exportModel.Filter, exportModel.SubFilter, 1, 100000, out total, "count", "desc");
- if (data == null)
- {
- return null;
- }
- var sumData = dal.GetReportTotalInfo(exportModel.Filter, exportModel.SubFilter);
- var sumRow = new SumRow { ColSpan = 2, RowName = sumData.StaffName, RowValues = new string[] { sumData.Count.ToString() } };
- var stSchema = exportModel.StSchema;
- stSchema.SumRow = sumRow;
- stSchema.ShowFooter = true;
- var buffer = DataExportHelper.EntityToExcel(stSchema,
- data, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- [HttpPost]
- public IActionResult ExportStaffLogs([FromBody] StExportModel exportModel)
- {
- string errorinfo = string.Empty;
- int total = 0;
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var data = dal.GetStaffVisitLog(exportModel.Filter, exportModel.SubFilter, 1, 100000, out total)
- .OrderByDescending(c => c.Count);
- if (data == null)
- {
- return null;
- }
- var sumData = dal.GetTotalInfo(exportModel.Filter, exportModel.SubFilter);
- var sumRow = new SumRow { ColSpan = 6, RowName = sumData.StaffName, RowValues = new string[] { sumData.Count.ToString() } };
- var stSchema = exportModel.StSchema;
- stSchema.SumRow = sumRow;
- stSchema.ShowFooter = true;
- var buffer = DataExportHelper.EntityToExcel(stSchema,
- data, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- [HttpPost]
- public IActionResult ExportStaffVisitLogs([FromBody] StExportModel exportModel)
- {
- string errorinfo = string.Empty;
- int total = 0;
- using (IDatabase db = DbFactory.Base("ufp"))
- {
- var dal = new VisitLogDal(db);
- var data = dal.GetStaffVisitLog(exportModel.Filter, exportModel.SubFilter, 1, 100000, out total, "count", "desc");
- if (data == null)
- {
- return null;
- }
- var sumData = dal.GetTotalInfo(exportModel.Filter, exportModel.SubFilter);
- var sumRow = new SumRow { ColSpan = 3, RowName = sumData.StaffName, RowValues = new string[] { sumData.Count.ToString() } };
- var stSchema = exportModel.StSchema;
- stSchema.SumRow = sumRow;
- stSchema.ShowFooter = true;
- var buffer = DataExportHelper.EntityToExcel(stSchema,
- data, ref errorinfo);
- if (buffer == null)
- {
- return null;
- }
- MemoryStream ms = new MemoryStream();
- ms.Position = 0;
- ms.Write(buffer, 0, buffer.Length);
- ms.Dispose();
- ms.Close();
- return File(buffer, "application/octet-stream");
- }
- }
- }
- }
|