EasyMES/WaterCloud.Service/ClassTask/ControlJobPlanerService.cs
2022-10-20 17:12:54 +08:00

101 lines
4.0 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2021-01-15 14:18
/// 描 述:待执行任务服务类
/// </summary>
public class ControlJobPlanerService : DataFilterService<UserEntity>, IDenpendency
{
private string cacheKey = "watercloud_userdata_";
private UserService userApp;
public ControlJobPlanerService(IDbContext context) : base(context)
{
userApp = new UserService(context);
}
#region
public async Task<List<UserExtend>> GetLookList(SoulPage<UserExtend> 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<RoleEntity>().ToList();
var orgs = uniwork.IQueryable<OrganizeEntity>().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<List<UserExtend>> 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<RoleEntity>().ToList();
var orgs = uniwork.IQueryable<OrganizeEntity>().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
}
}