diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/DefaultShortcutKeyViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/DefaultShortcutKeyViewModel.cs index 14d8c1f08..6cee8cc53 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/DefaultShortcutKeyViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/DefaultShortcutKeyViewModel.cs @@ -22,8 +22,14 @@ namespace IRaCIS.Core.Application.ViewModel public bool ShiftKey { get; set; } public bool MetaKey { get; set; } + + public string KeyboardShow { get; set; } } + public class RestoreDefaultShortcutKeyInDto + { + public int ImageToolType { get; set; } + } public class SetDefaultShortcutKey { @@ -39,6 +45,9 @@ namespace IRaCIS.Core.Application.ViewModel public bool AltKey { get; set; } + + public string KeyboardShow { get; set; } + public bool CtrlKey { get; set; } public bool ShiftKey { get; set; } diff --git a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs index fcde207c9..b7f9d64f2 100644 --- a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs @@ -17,55 +17,15 @@ namespace IRaCIS.Core.Application.Service public class ShortcutKeyService: BaseService { private readonly IRepository _dictionaryRepository; - private readonly IRepository _defaultShortcutKeyRepository; + private readonly IRepository _shortcutKeyRepository; public ShortcutKeyService( IRepository DictionaryRepository, - IRepository defaultShortcutKeyRepository + IRepository shortcutKeyRepository ) { _dictionaryRepository = DictionaryRepository; - _defaultShortcutKeyRepository = defaultShortcutKeyRepository; - } - - /// - /// 获取默认快捷键 - /// - /// - /// - [HttpPost] - public async Task> GetDefaultShortcutKeyList(DefaultShortcutKeyQuery inQuery) - { - var defaultShortcutKey = await _defaultShortcutKeyRepository.Where(x => x.ImageToolType == inQuery.ImageToolType).ToListAsync(); - var shortcutKeydic = await _dictionaryRepository.Where(x => x.Parent.Code == "ShortcutKey") - .WhereIf(inQuery.ShortcutKeyEnum!=null,x=>x.Code==inQuery.ShortcutKeyEnum.ToString()).ToListAsync(); - - - List result = new List(); - - shortcutKeydic.OrderBy(x => x.ShowOrder).ForEach(x => - { - var key= defaultShortcutKey.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); - - var isnull = key == null; - - result.Add(new DefaultShortcutKeyView() - { - Id = x.Id, - ImageToolType = inQuery.ImageToolType, - ShortcutKeyEnum = int.Parse(x.Code), - Keyboardkey = isnull ? string.Empty : key.Keyboardkey, - AltKey = isnull ? false : key.AltKey, - CtrlKey = isnull ? false : key.CtrlKey, - MetaKey = isnull ? false : key.MetaKey, - ShiftKey = isnull ? false : key.ShiftKey - }) ; - - }); - - - - return result; + _shortcutKeyRepository = shortcutKeyRepository; } @@ -77,29 +37,130 @@ namespace IRaCIS.Core.Application.Service [HttpPost] public async Task> GetDoctorShortcutKey(DefaultShortcutKeyQuery inQuery) { - return await this.GetDefaultShortcutKeyList(inQuery); + var shortcutKeyList = await _shortcutKeyRepository.Where(x => x.ImageToolType == inQuery.ImageToolType) + .Where(x=>x.UserId==_userInfo.Id) + .ToListAsync(); + + var defaultshortcutKeyList = this.GetDefaultShortcutKey(); + + var shortcutKeydic = await _dictionaryRepository.Where(x => x.Parent.Code == "ShortcutKey") + .WhereIf(inQuery.ShortcutKeyEnum != null, x => x.Code == inQuery.ShortcutKeyEnum.ToString()).ToListAsync(); + + + List result = new List(); + + shortcutKeydic.OrderBy(x => x.ShowOrder).ForEach(x => + { + var key = shortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); + var defaultkey= defaultshortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); + var isnull = key == null; + + result.Add(new DefaultShortcutKeyView() + { + Id = x.Id, + ImageToolType = inQuery.ImageToolType, + ShortcutKeyEnum = int.Parse(x.Code), + Keyboardkey = isnull ? defaultkey.Keyboardkey : key.Keyboardkey, + AltKey = isnull ? false : key.AltKey, + CtrlKey = isnull ? false : key.CtrlKey, + MetaKey = isnull ? false : key.MetaKey, + ShiftKey = isnull ? false : key.ShiftKey, + KeyboardShow = isnull ? defaultkey.KeyboardShow : key.KeyboardShow, + }); + + }); + + + + return result; } + /// + /// 获取默认快捷键 + /// + /// + private List GetDefaultShortcutKey() + { + List shortcutKeys = new List() { + new ShortcutKey (){ ShortcutKeyEnum=1,Keyboardkey="right",KeyboardShow="right" }, + new ShortcutKey (){ ShortcutKeyEnum=2,Keyboardkey="left",KeyboardShow="left"}, + new ShortcutKey (){ ShortcutKeyEnum=3,Keyboardkey="PageUp",KeyboardShow="PageUp"}, + new ShortcutKey (){ ShortcutKeyEnum=4,Keyboardkey="pageDown",KeyboardShow="pageDown"}, + new ShortcutKey (){ ShortcutKeyEnum=5,Keyboardkey="Up",KeyboardShow="Up"}, + new ShortcutKey (){ ShortcutKeyEnum=6,Keyboardkey="Down",KeyboardShow="Down"}, + new ShortcutKey (){ ShortcutKeyEnum=7,Keyboardkey="L",KeyboardShow="L"}, + new ShortcutKey (){ ShortcutKeyEnum=8,Keyboardkey="R",KeyboardShow="R"}, + new ShortcutKey (){ ShortcutKeyEnum=9,Keyboardkey="H",KeyboardShow="H"}, + new ShortcutKey (){ ShortcutKeyEnum=10,Keyboardkey="V" ,KeyboardShow="V"}, + new ShortcutKey (){ ShortcutKeyEnum=11,Keyboardkey="+" ,KeyboardShow="+"}, + new ShortcutKey (){ ShortcutKeyEnum=12,Keyboardkey="-" ,KeyboardShow="-"}, + new ShortcutKey (){ ShortcutKeyEnum=13,Keyboardkey="=" ,KeyboardShow="="}, + new ShortcutKey (){ ShortcutKeyEnum=14,Keyboardkey="F" ,KeyboardShow="F"}, + new ShortcutKey (){ ShortcutKeyEnum=15,Keyboardkey="S" ,KeyboardShow="S"}, + new ShortcutKey (){ ShortcutKeyEnum=16,Keyboardkey="I" ,KeyboardShow="I"}, + new ShortcutKey (){ ShortcutKeyEnum=17,Keyboardkey="C" ,KeyboardShow="C"}, + new ShortcutKey (){ ShortcutKeyEnum=18,Keyboardkey="Space" ,KeyboardShow="Space"}, + }; + + return shortcutKeys; + + + } /// - /// 设置默认快捷键 + /// 重置为默认快捷键 + /// + /// + [HttpPost] + public async Task RestoreDefaultShortcutKey(RestoreDefaultShortcutKeyInDto inDto) + { + var shortcutKeys = GetDefaultShortcutKey(); + shortcutKeys.ForEach(x => { + x.UserId = _userInfo.Id; + }); + + await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType && x.UserId == _userInfo.Id); + + await _shortcutKeyRepository.AddRangeAsync(shortcutKeys.Select(x => new ShortcutKey() + { + ImageToolType = inDto.ImageToolType, + Keyboardkey = x.Keyboardkey, + ShortcutKeyEnum = x.ShortcutKeyEnum, + UserId = _userInfo.Id, + AltKey = x.AltKey, + CtrlKey = x.CtrlKey, + MetaKey = x.MetaKey, + ShiftKey = x.ShiftKey, + KeyboardShow = x.KeyboardShow, + })); + + return await _shortcutKeyRepository.SaveChangesAsync(); + } + + /// + /// 设置快捷键 /// /// /// [HttpPost] - public async Task SetDefaultShortcutKey(SetDefaultShortcutKey inDto) + public async Task SetShortcutKey(SetDefaultShortcutKey inDto) { - await _defaultShortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType); + await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType&&x.UserId==_userInfo.Id); - await _defaultShortcutKeyRepository.AddRangeAsync(inDto.ShortcutKeyList.Select(x => new DefaultShortcutKey() + await _shortcutKeyRepository.AddRangeAsync(inDto.ShortcutKeyList.Select(x => new ShortcutKey() { ImageToolType = inDto.ImageToolType, Keyboardkey = x.Keyboardkey, - ShortcutKeyEnum = x.ShortcutKeyEnum - + ShortcutKeyEnum = x.ShortcutKeyEnum, + UserId=_userInfo.Id, + AltKey=x.AltKey, + CtrlKey=x.CtrlKey, + MetaKey=x.MetaKey, + ShiftKey=x.ShiftKey, + KeyboardShow=x.KeyboardShow, })); - return await _defaultShortcutKeyRepository.SaveChangesAsync(); + return await _shortcutKeyRepository.SaveChangesAsync(); } diff --git a/IRaCIS.Core.Domain/Reading/ShortcutKey/DefaultShortcutKey.cs b/IRaCIS.Core.Domain/Reading/ShortcutKey/DefaultShortcutKey.cs index e2a8496d1..49c0e3e1c 100644 --- a/IRaCIS.Core.Domain/Reading/ShortcutKey/DefaultShortcutKey.cs +++ b/IRaCIS.Core.Domain/Reading/ShortcutKey/DefaultShortcutKey.cs @@ -9,11 +9,11 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; namespace IRaCIS.Core.Domain.Models { - /// - ///DefaultShortcutKey - /// - [Table("DefaultShortcutKey")] - public class DefaultShortcutKey : Entity, IAuditAdd + /// + ///ShortcutKey + /// + [Table("ShortcutKey")] + public class ShortcutKey : Entity, IAuditAdd { /// /// 对应的键盘按键 @@ -40,13 +40,17 @@ namespace IRaCIS.Core.Domain.Models /// public Guid CreateUserId { get; set; } - public bool AltKey { get; set; } + public Guid UserId { get; set; } - public bool CtrlKey { get; set; } + public bool AltKey { get; set; } = false; - public bool ShiftKey { get; set; } + public bool CtrlKey { get; set; } = false; - public bool MetaKey { get; set; } + public bool ShiftKey { get; set; } = false; + + public bool MetaKey { get; set; } = false; + + public string KeyboardShow { get; set; } } diff --git a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs index 21f869df8..65049292a 100644 --- a/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs +++ b/IRaCIS.Core.Infra.EFCore/Context/IRaCISDBContext.cs @@ -434,7 +434,7 @@ namespace IRaCIS.Core.Infra.EFCore #endregion - public virtual DbSet DefaultShortcutKey { get; set; } + public virtual DbSet ShortcutKey { get; set; } public virtual DbSet EmailNoticeConfig { get; set; } public virtual DbSet SystemBasicData { get; set; }