2022-10-20 17:12:54 +08:00

115 lines
4.3 KiB
C#

//-----------------------------------------------------------------------
// <copyright file=" Notice.cs" company="JR">
// * Copyright (C) WaterCloud.Framework All Rights Reserved
// * version : 1.0
// * author : WaterCloud.Framework
// * FileName: Notice.cs
// * history : Created by T4 04/13/2020 16:51:21
// </copyright>
//-----------------------------------------------------------------------
using WaterCloud.Domain.SystemOrganize;
using System.Collections.Generic;
using System.Linq;
using WaterCloud.Code;
using System.Threading.Tasks;
using Chloe;
namespace WaterCloud.Service.SystemOrganize
{
public class NoticeService: DataFilterService<NoticeEntity>,IDenpendency
{
//获取类名
/// <summary>
/// 缓存操作类
/// </summary>
private string cacheKey = "watercloud_noticedata_";
public NoticeService(IDbContext context) : base(context)
{
}
public async Task<List<NoticeEntity>> GetList(string keyword)
{
List<NoticeEntity> list = new List<NoticeEntity>();
list = await repository.CheckCacheList(cacheKey + "list");
if (!string.IsNullOrEmpty(keyword))
{
list = list.Where(t => t.F_Title.Contains(keyword) || t.F_Content.Contains(keyword)).ToList();
}
//公告这里不控制
//数据权限和缓存获取冲突
//if (!CheckDataPrivilege("u"))
//{
// list = await service.CheckCacheList(cacheKey + "list");
//}
//else
//{
// var forms = GetDataPrivilege();
// list = list.ToList();
//}
//if (!string.IsNullOrEmpty(keyword))
//{
// list = list.Where(t => t.F_Title.Contains(keyword) || t.F_Content.Contains(keyword)).ToList();
//}
return list.Where(a => a.F_DeleteMark == false).ToList();
}
public async Task<List<NoticeEntity>> GetLookList(SoulPage<NoticeEntity> pagination, string keyword = "")
{
//反格式化显示只能用"等于",其他不支持
Dictionary<string, Dictionary<string, string>> dic = new Dictionary<string, Dictionary<string, string>>();
Dictionary<string, string> enabledTemp = new Dictionary<string, string>();
enabledTemp.Add("有效", "1");
enabledTemp.Add("无效", "0");
dic.Add("F_EnabledMark", enabledTemp);
pagination = ChangeSoulData(dic, pagination);
var query = repository.IQueryable().Where(u => u.F_DeleteMark == false);
//获取数据权限
if (!string.IsNullOrEmpty(keyword))
{
query = query.Where(u => u.F_Title.Contains(keyword) || u.F_Content.Contains(keyword));
}
query = GetDataPrivilege("u","",query);
return await repository.OrderList(query, pagination);
}
public async Task<NoticeEntity> GetLookForm(string keyValue)
{
var cachedata =await repository.CheckCache(cacheKey, keyValue);
return GetFieldsFilterData(cachedata);
}
public async Task<NoticeEntity> GetForm(string keyValue)
{
var cachedata = await repository.CheckCache(cacheKey, keyValue);
return cachedata;
}
public async Task SubmitForm(NoticeEntity entity, string keyValue)
{
if (!string.IsNullOrEmpty(keyValue))
{
entity.Modify(keyValue);
await repository.Update(entity);
await CacheHelper.Remove(cacheKey + keyValue);
await CacheHelper.Remove(cacheKey + "list");
}
else
{
entity.F_CreatorUserName = currentuser.UserName;
entity.F_DeleteMark = false;
entity.Create();
await repository.Insert(entity);
await CacheHelper.Remove(cacheKey + "list");
}
}
public async Task DeleteForm(string keyValue)
{
var ids = keyValue.Split(',');
await repository.Delete(t => ids.Contains(t.F_Id));
foreach (var item in ids)
{
await CacheHelper.Remove(cacheKey + item);
}
await CacheHelper.Remove(cacheKey + "list");
}
}
}