using System;
using System.Linq;
using System.Threading.Tasks;
using System.Collections.Generic;
using WaterCloud.Code;
using Chloe;
using WaterCloud.Domain.SystemOrganize;
using WaterCloud.Service.SystemOrganize;
namespace WaterCloud.Service.ClassTask
{
///
/// 创 建:超级管理员
/// 日 期:2021-01-15 14:18
/// 描 述:待执行任务服务类
///
public class ControlJobPlanerService : DataFilterService, IDenpendency
{
private string cacheKey = "watercloud_userdata_";
private UserService userApp;
public ControlJobPlanerService(IDbContext context) : base(context)
{
userApp = new UserService(context);
}
#region 获取数据
public async Task> GetLookList(SoulPage pagination,string keyword = "")
{
//获取数据权限
var query = userApp.GetQuery().Where(u => u.F_IsAdmin == false && u.F_IsPlanMan==true);
if (!string.IsNullOrEmpty(keyword))
{
query = query.Where(u => u.F_Account.Contains(keyword) || u.F_RealName.Contains(keyword) || u.F_MobilePhone.Contains(keyword));
}
query = GetDataPrivilege("u", "", query);
var data = await repository.OrderList(query, pagination);
var roles = uniwork.IQueryable().ToList();
var orgs = uniwork.IQueryable().ToList();
foreach (var item in data)
{
string[] roleIds = item.F_RoleId.Split(',');
string[] departmentIds = item.F_DepartmentId.Split(',');
item.F_DepartmentName = string.Join(',', orgs.Where(a => departmentIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList());
item.F_RoleName = string.Join(',', roles.Where(a => roleIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList());
}
return data;
}
public async Task> GetList(string keyword)
{
var query = userApp.GetQuery().Where(u => u.F_IsAdmin == false && u.F_IsPlanMan == false);
if (!string.IsNullOrEmpty(keyword))
{
query = query.Where(u => u.F_Account.Contains(keyword) || u.F_RealName.Contains(keyword) || u.F_MobilePhone.Contains(keyword));
}
var roles = uniwork.IQueryable().ToList();
var orgs = uniwork.IQueryable().ToList();
var data = query.ToList();
foreach (var item in data)
{
string[] roleIds = item.F_RoleId.Split(',');
string[] departmentIds = item.F_DepartmentId.Split(',');
item.F_DepartmentName = string.Join(',', orgs.Where(a => departmentIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList());
item.F_RoleName = string.Join(',', roles.Where(a => roleIds.Contains(a.F_Id)).Select(a => a.F_FullName).ToList());
}
return data;
}
#endregion
#region 提交数据
public async Task SubmitForm(string keyValue)
{
var ids = keyValue.Split(',');
await repository.Update(t => ids.Contains(t.F_Id), t => new UserEntity
{
F_IsPlanMan = true
});
foreach (var item in ids)
{
await CacheHelper.Remove(cacheKey + item);
}
await CacheHelper.Remove(cacheKey + "list");
}
public async Task DeleteForm(string keyValue)
{
var ids = keyValue.Split(',');
await repository.Update(t => ids.Contains(t.F_Id),t=>new UserEntity {
F_IsPlanMan=false
});
foreach (var item in ids)
{
await CacheHelper.Remove(cacheKey + item);
}
await CacheHelper.Remove(cacheKey + "list");
}
#endregion
}
}