| | |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | |
| | | using WIDESEA_Core.DB; |
| | | using WIDESEA_Core.Enums; |
| | | using WIDESEA_Core.Helper; |
| | | using WIDESEA_Core.Utilities; |
| | | using WIDESEA_DTO.System; |
| | | using WIDESEA_IBasicRepository; |
| | | using WIDESEA_ISystemRepository; |
| | | using WIDESEA_ISystemService; |
| | | using WIDESEA_Model.Models; |
| | |
| | | { |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly IBasicRepository _basicRepository; |
| | | private readonly ISys_RoleDataPermissionRepository _roleDataPermissionRepository; |
| | | |
| | | public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService) : base(BaseDal) |
| | | public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, ICacheService cacheService, IBasicRepository basicRepository, ISys_RoleDataPermissionRepository roleDataPermissionRepository) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _cacheService = cacheService; |
| | | _basicRepository = basicRepository; |
| | | _roleDataPermissionRepository = roleDataPermissionRepository; |
| | | } |
| | | |
| | | public ISys_DictionaryRepository Repository => BaseDal; |
| | | |
| | | public override WebResponseContent AddData(SaveModel saveModel) |
| | | { |
| | | string validResult = typeof(Sys_Dictionary).ValidateDicInEntity(saveModel.MainData, true, TProperties); |
| | | |
| | | if (!string.IsNullOrEmpty(validResult)) |
| | | { |
| | | return WebResponseContent.Instance.Error(validResult); |
| | | } |
| | | |
| | | Sys_Dictionary dictionary = saveModel.MainData.DicToModel<Sys_Dictionary>(); |
| | | _cacheService.Remove(dictionary.DicNo); |
| | | if (!string.IsNullOrEmpty(_cacheService.Get(dictionary.DicNo))) |
| | | _cacheService.Remove(dictionary.DicNo); |
| | | return base.AddData(saveModel); |
| | | } |
| | | |
| | |
| | | DicNo = s.DicNo, |
| | | Config = s.Config, |
| | | //dbSql = s.Sql, |
| | | Data = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName }) |
| | | Data = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName }), |
| | | SaveCache = false |
| | | }).ToList(); |
| | | |
| | | foreach (var item in selectDics) |
| | | { |
| | | if (!_cacheService.Exists(item.DicNo)) |
| | | if (!_cacheService.Exists(item.DicNo) && item.SaveCache) |
| | | { |
| | | _cacheService.Add(item.DicNo, item.Serialize()); |
| | | } |
| | |
| | | |
| | | foreach (var item in dics) |
| | | { |
| | | dicList.Remove(item); |
| | | cusDics.Add(item); |
| | | if (dicNos.Contains(item) && !cacheDicNos.Contains(item)) |
| | | { |
| | | dicList.Remove(item); |
| | | cusDics.Add(item); |
| | | } |
| | | } |
| | | |
| | | foreach (var item in cusDics) |
| | |
| | | if (vueDictionaryDTO != null) |
| | | { |
| | | vueDictionaryDTOs.Add(vueDictionaryDTO); |
| | | if (!_cacheService.Exists(item)) |
| | | if (!_cacheService.Exists(item) && vueDictionaryDTO.SaveCache) |
| | | { |
| | | _cacheService.Add(item, vueDictionaryDTO.Serialize()); |
| | | } |
| | |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | break; |
| | | case "receiveOrderTypeEnum": |
| | | { |
| | | List<object> data = new List<object>(); |
| | | |
| | | { |
| | | Type type = typeof(ReceiveOrderTypeEnum); |
| | | List<int> enums = Enum.GetValues(typeof(ReceiveOrderTypeEnum)).Cast<int>().ToList(); |
| | | int index = 0; |
| | | foreach (var item in enums) |
| | | { |
| | | FieldInfo? fieldInfo = typeof(ReceiveOrderTypeEnum).GetField(((ReceiveOrderTypeEnum)item).ToString()); |
| | | DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>(); |
| | | if (description != null) |
| | | { |
| | | data.Add(new { key = item.ToString(), value = description.Description }); |
| | | } |
| | | else |
| | | { |
| | | data.Add(new { key = item.ToString(), value = item.ToString() }); |
| | | } |
| | | index++; |
| | | } |
| | | } |
| | | |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | break; |
| | | case "authorityScope": |
| | | { |
| | | if (App.User.IsSuperAdmin) |
| | | { |
| | | List<Dt_Warehouse> warehouses = _basicRepository.WarehouseRepository.QueryData(x => true); |
| | | var data = warehouses.Select(x => new { key = x.WarehouseId, value = x.WarehouseName }); |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | else |
| | | { |
| | | List<Sys_RoleDataPermission> roleDataPermissions = _roleDataPermissionRepository.QueryData(x => x.RoleId == App.User.RoleId); |
| | | var data = roleDataPermissions.Select(x => new { key = x.WarehouseId, value = x.WarehouseName }); |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data }; |
| | | } |
| | | } |
| | | break; |
| | | case "authorityScopes": |
| | | { |
| | | List<Sys_Role> roles = Repository.Db.Queryable<Sys_Role>().ToList(); |
| | | List<object> data = new List<object>(); |
| | | foreach (var item in roles) |
| | | { |
| | | List<Sys_RoleDataPermission> roleDataPermissions = _roleDataPermissionRepository.QueryData(x => x.RoleId == item.RoleId); |
| | | string value = ""; |
| | | foreach (var roleDataPermission in roleDataPermissions) |
| | | { |
| | | value += (roleDataPermission.WarehouseName + ","); |
| | | } |
| | | if (roleDataPermissions.Count > 0) |
| | | data.Add(new { key = item.RoleId, value = value.Substring(0, value.Length - 1) }); |
| | | else |
| | | data.Add(new { key = item.RoleId, value = "æ æé" }); |
| | | } |
| | | data.Add(new { key = -1, value = "æ æé" }); |
| | | result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data, SaveCache = false }; |
| | | } |
| | | |
| | | break; |
| | | } |
| | | return result; |
| | | } |