From 3cb274dd9b18b211d1db763b9b4fdfbd90c76bd1 Mon Sep 17 00:00:00 2001 From: "nodyang@aliyun.com" Date: Thu, 19 Sep 2024 13:41:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SlnMesnac.Model/domain/BaseCode.cs | 33 +++++++- .../service/LogImpl/BaseLogServiceImpl.cs | 36 ++++++++ .../service/LogImpl/IBaseLogService.cs | 15 ++++ SlnMesnac.TouchSocket/ApiServer.cs | 84 +++++++++++++------ 4 files changed, 141 insertions(+), 27 deletions(-) create mode 100644 SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs create mode 100644 SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs diff --git a/SlnMesnac.Model/domain/BaseCode.cs b/SlnMesnac.Model/domain/BaseCode.cs index f7b6c64..d0aa1fa 100644 --- a/SlnMesnac.Model/domain/BaseCode.cs +++ b/SlnMesnac.Model/domain/BaseCode.cs @@ -1,4 +1,5 @@ -using System.Runtime.Serialization; +using System; +using System.Runtime.Serialization; using SqlSugar; namespace SlnMesnac.Model.domain @@ -34,4 +35,34 @@ namespace SlnMesnac.Model.domain public int Category { get; set; } } + + + [SugarTable("BaseLog"), TenantAttribute("mes")] + [DataContract(Name = "BaseLog 基础表")] + + public class BaseLog + { + + public BaseLog() + { + this.CreateTime = DateTime.Now; + } + + [SugarColumn(ColumnName = "id", IsPrimaryKey = true, IsIdentity = true)] + public int Id { get; set; } + + [SugarColumn(ColumnName = "createtime")] + public DateTime CreateTime { get; set; } + + [SugarColumn(ColumnName = "log_level")] + public string LogLevel { get; set; } + + [SugarColumn(ColumnName = "content")] + public string Content { get; set; } + + + [SugarColumn(ColumnName = "err_msg")] + public string ErrMsg { get; set; } + + } } \ No newline at end of file diff --git a/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs b/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs new file mode 100644 index 0000000..7cdfcb8 --- /dev/null +++ b/SlnMesnac.Repository/service/LogImpl/BaseLogServiceImpl.cs @@ -0,0 +1,36 @@ +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; +using SlnMesnac.Repository.service.ScanLog; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service.LogImpl +{ + public class BaseLogServiceImpl : BaseServiceImpl, IBaseLogService + { + public BaseLogServiceImpl(Repository rep) : base(rep) + { + } + + public void CreatTable() + { + _rep.Context.CodeFirst.InitTables(); + } + + public Page QueryPage(int pageIndex, int pageSize) + { + int totalCount = 0; + var list = _rep.Context.Queryable().OrderByDescending(x => x.CreateTime) + .ToPageList(pageIndex, pageSize, ref totalCount); + Page page = new Page(); + page.Data = list; + page.PageIndex = pageIndex; + page.PageSize = pageSize; + page.TotalCount = totalCount; + page.TotalPage = (int)Math.Ceiling(totalCount / (double)pageSize); + return page; + } + } +} diff --git a/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs b/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs new file mode 100644 index 0000000..dc777c1 --- /dev/null +++ b/SlnMesnac.Repository/service/LogImpl/IBaseLogService.cs @@ -0,0 +1,15 @@ +using SlnMesnac.Model.domain; +using SlnMesnac.Repository.service.@base; + +using System; +using System.Collections.Generic; +using System.Text; + +namespace SlnMesnac.Repository.service.LogImpl +{ + public interface IBaseLogService : IBaseService + { + void CreatTable(); + Page QueryPage(int pageIndex, int pageSize); + } +} diff --git a/SlnMesnac.TouchSocket/ApiServer.cs b/SlnMesnac.TouchSocket/ApiServer.cs index 6d0ab5b..5308c33 100644 --- a/SlnMesnac.TouchSocket/ApiServer.cs +++ b/SlnMesnac.TouchSocket/ApiServer.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using SlnMesnac.Model.domain; using SlnMesnac.Repository.service; +using SlnMesnac.Repository.service.LogImpl; using SlnMesnac.Repository.service.ScanLog; using TouchSocket.Core; using TouchSocket.Rpc; @@ -16,15 +17,18 @@ namespace SlnMesnac.TouchSocket private readonly IScanLogService _scanService; private readonly IBaseCodeService _baseCodeService; + + IBaseLogService _baseLogService; public Action? ScanLogSocketAction; public Action? ScanStatusSocketAction; - public ApiServer(IScanLogService scanService, IBaseCodeService baseCodeService) + public ApiServer(IScanLogService scanService, IBaseCodeService baseCodeService, IBaseLogService baseLogService) { _scanService = scanService; _baseCodeService = baseCodeService; + _baseLogService = baseLogService; } /// @@ -37,27 +41,40 @@ namespace SlnMesnac.TouchSocket [WebApi(HttpMethodType.POST)] public Back ScanStatus(ScanStatusSocket scanStatus) { - - if (scanStatus.is_alarm == 1 && scanStatus.device_status != null && scanStatus.device_status.Count > 0) + BaseLog log = new BaseLog(); + log.LogLevel = "Info"; + log.ErrMsg = ""; + log.Content = scanStatus.ToJsonString(); + try { - List ls = new List(); - var baseCodes = _baseCodeService.QuListCache(); - foreach (var baseCode in scanStatus.device_status) + if (scanStatus.is_alarm == 1 && scanStatus.device_status != null && scanStatus.device_status.Count > 0) { - var enBaseCode = baseCodes.FirstOrDefault(x=>x.Code==baseCode); - if (enBaseCode != null) + List ls = new List(); + var baseCodes = _baseCodeService.QuListCache(); + foreach (var baseCode in scanStatus.device_status) { - ls.Add(enBaseCode.State); + var enBaseCode = baseCodes.FirstOrDefault(x => x.Code == baseCode); + if (enBaseCode != null) + { + ls.Add(enBaseCode.State); + } } + scanStatus.status_txt = ls; } - scanStatus.status_txt = ls; + + ScanStatusSocketAction?.Invoke(scanStatus); + } - - ScanStatusSocketAction?.Invoke(scanStatus); - - - + catch (Exception e) + { + log.LogLevel = "Error"; + log.ErrMsg=e.Message; + } + + _baseLogService.Insert(log); + return new Back(); + } @@ -69,20 +86,35 @@ namespace SlnMesnac.TouchSocket /// [EnableCors("cors")] [WebApi(HttpMethodType.POST)] - public Back ScanBack(ScanLogSocket scanStatus) + public Back ScanBack(ScanLogSocket scanLogStatus) { - ScanLogSocketAction?.Invoke(scanStatus); - _scanService.Insert(new ScanLogModel() + BaseLog log = new BaseLog(); + log.LogLevel = "Info"; + log.ErrMsg = ""; + log.Content = scanLogStatus.ToJsonString(); + try { - CreateTime = scanStatus.CreateTime, - DataType = scanStatus.data_type, - Code = scanStatus.code, - Rfid = scanStatus.rfid, - Ocr = scanStatus.ocr, - Url = scanStatus.url - - }); + ScanLogSocketAction?.Invoke(scanLogStatus); + _scanService.Insert(new ScanLogModel() + { + CreateTime = scanLogStatus.CreateTime, + DataType = scanLogStatus.data_type, + Code = scanLogStatus.code, + Rfid = scanLogStatus.rfid, + Ocr = scanLogStatus.ocr, + Url = scanLogStatus.url + + }); + + } + catch (Exception e) + { + log.LogLevel = "Error"; + log.ErrMsg = e.Message; + } + _baseLogService.Insert(log); return new Back(); + } } }