using MiaoYu.Repository.ChatAI.Admin.Entities.Apps; namespace MiaoYu.Api.Admin.ApplicationServices.Apps; /// /// 关联角色和标签 服务 T_Character_Label_RelationService /// public class T_Character_Label_RelationService : ApplicationService> { public T_Character_Label_RelationService(IRepository defaultRepository) : base(defaultRepository) { } /// /// 获取列表数据 /// /// /// public async Task FindListAsync(PagingSearchInput pagingSearchInput) { var query = this._defaultRepository.Select //项目 .WhereIf(pagingSearchInput.Search?.TenantId!=null, w => w.TenantId==pagingSearchInput.Search.TenantId) //人物Id .WhereIf(pagingSearchInput.Search?.CharacterId!=null&&pagingSearchInput.Search?.CharacterId>0, w => w.CharacterId== pagingSearchInput.Search.CharacterId) //人物标签id .WhereIf(pagingSearchInput.Search?.CharacterLabelId!=null&&pagingSearchInput.Search?.CharacterLabelId>0, w => w.CharacterLabelId== pagingSearchInput.Search.CharacterLabelId) .OrderByDescending(w => w.Id) .Select(w => new { w.Id, w.TenantId,w.CharacterId,w.CharacterLabelId,w.CreateTime,w.UpdateTime, // w.LastModificationTime, // w.CreationTime }) ; var result = await _defaultRepository.AsPagingViewAsync(query, pagingSearchInput); // result // .FormatValue(query, w => w.CreationTime, (oldValue) => oldValue.ToString("yyyy-MM-dd")) // .FormatValue(query, w => w.LastModificationTime, (oldValue) => oldValue?.ToString("yyyy-MM-dd")) // ; // 设置列 //result.GetColumn(query, w => w.OperatorName).SetColumn("操作人"); //result.GetColumn(query, w => w.OperatorName!).SetColumn(w => w.Name!); return result; } /// /// 根据id数组删除 /// /// ids /// public async Task DeleteListAsync(List ids) { await this._defaultRepository.DeleteByIdsAsync(ids); } /// /// 查询表单数据 /// /// id /// public async Task> FindFormAsync(int id) { var res = new Dictionary(); var form = await this._defaultRepository.FindByIdAsync(id); form = form.NullSafe(); if (form.CreateTime == null || form.CreateTime == DateTime.MinValue) { form.CreateTime = DateTime.Now; } if (form.UpdateTime == null || form.UpdateTime == DateTime.MinValue) { form.UpdateTime = DateTime.Now; } res[nameof(id)] = id; res[nameof(form)] = form; return res; } /// /// 保存数据 /// /// form /// public Task SaveFormAsync(T_Character_Label_Relation form) { return this._defaultRepository.InsertOrUpdateAsync(form); } /// /// 导出Excel /// /// /// public async Task ExportExcelAsync(PagingSearchInput pagingSearchInput) { pagingSearchInput.Page = -1; var tableViewModel = await this.FindListAsync(pagingSearchInput); return ExcelUtil.ExportExcelByPagingView(tableViewModel, null, "Id"); } /// /// 根据id数组删除 /// /// ids /// public async Task DeleteListAsync(int id, List ids) { var list = await this._defaultRepository.Select.Where(it => it.CharacterId == id && ids.Contains(it.CharacterLabelId)).ToListAsync(); await this._defaultRepository.DeleteAsync(list); } /// /// 保存数据 /// /// form /// public async Task SaveFormAsync(int characterId, List ids) { var list = await this._defaultRepository.Select.Where(it => it.CharacterId == characterId).ToListAsync(); await this._defaultRepository.DeleteAsync(list); List newList = new List(); foreach (var personalityId in ids) { var t_Character_Label_Relation = new T_Character_Label_Relation { CharacterId = characterId, CreateTime = DateTime.Now, CharacterLabelId = personalityId, UpdateTime = DateTime.Now, TenantId = Guid.Empty, }; //this._defaultRepository.Insert(t_Character_Label_Relation); newList.Add(t_Character_Label_Relation); } //var delList = list.Where(it => newList.Any(item => item.CharacterId != it.PersonalityId)).ToList(); //await this._defaultRepository.DeleteAsync(delList); return await this._defaultRepository.InsertRangeAsync(newList); } }