using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.DB; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.System; using WIDESEAWCS_ISystemRepository; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_SystemServices { public class Sys_DictionaryService : ServiceBase, ISys_DictionaryService { private readonly IUnitOfWorkManage _unitOfWorkManage; public Sys_DictionaryService(ISys_DictionaryRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; } public List GetVueDictionary(string[] dicNos) { if (dicNos == null || dicNos.Count() == 0) return new List(); var dicConfig = BaseDal.GetDictionaries(dicNos, false).Select(s => new { dicNo = s.DicNo, config = s.Config, dbSql = s.DBSql, list = s.DicList.OrderByDescending(o => o.OrderNo).Select(list => new { key = list.DicValue, value = list.DicName }) }).ToList(); object GetSourceData(string dicNo, string dbSql, object data) { if (string.IsNullOrEmpty(dbSql)) { return data; } return BaseDal.QueryObjectDataBySql(dbSql, null); } return dicConfig.Select(item => new VueDictionaryDTO { DicNo = item.dicNo, Config = item.config, Data = GetSourceData(item.dicNo, item.dbSql, item.list) }).ToList(); } } }