Files
HTCloud/HT.Cloud.Service/SystemOrganize/OrganizeService.cs
2024-11-14 09:01:55 +08:00

94 lines
3.3 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.

/*******************************************************************************
* Copyright © 2020 WaterCloud.Framework 版权所有
* Author: WaterCloud
* Description: WaterCloud快速开发平台
* Website
*********************************************************************************/
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using HT.Cloud.Domain.SystemOrganize;
namespace HT.Cloud.Service.SystemOrganize
{
public class OrganizeService : BaseService<OrganizeEntity>, IDenpendency
{
public OrganizeService(ISqlSugarClient context) : base(context)
{
}
public async Task<List<OrganizeExtend>> GetList()
{
var query = GetQuery();
return await query.Where(a => a.F_DeleteMark == false).ToListAsync();
}
public async Task<List<OrganizeExtend>> GetLookList()
{
var query = GetQuery().Where(a => a.F_DeleteMark == false);
query = GetDataPrivilege("a", "", query);
return await query.OrderBy(a => a.F_SortCode).ToListAsync();
}
public async Task<OrganizeExtend> GetLookForm(string keyValue)
{
var data = await GetQuery().FirstAsync(a => a.F_Id == keyValue);
return GetFieldsFilterData(data);
}
public async Task<OrganizeExtend> GetForm(string keyValue)
{
var data = await GetQuery().FirstAsync(a => a.F_Id == keyValue);
return data;
}
private ISugarQueryable<OrganizeExtend> GetQuery()
{
var query = repository.Db.Queryable<OrganizeEntity, UserEntity>((a, b) => new JoinQueryInfos(
JoinType.Left, a.F_ManagerId == b.F_Id
)).Where(a => a.F_DeleteMark == false)
.Select((a, b) => new OrganizeExtend
{
F_Id = a.F_Id.SelectAll(),
F_ManagerName = b.F_RealName
}).MergeTable();
return query;
}
public async Task DeleteForm(string keyValue)
{
if (await repository.IQueryable(a => a.F_ParentId.Equals(keyValue)).AnyAsync())
{
throw new Exception("删除失败!操作的对象包含了下级数据。");
}
else
{
if (await repository.Db.Queryable<UserEntity>().Where(a => a.F_CompanyId == keyValue).AnyAsync() || await repository.Db.Queryable<UserEntity>().Where(a => a.F_OrganizeId == keyValue).AnyAsync())
{
throw new Exception("组织使用中,无法删除");
}
await repository.Delete(a => a.F_Id == keyValue);
}
}
public async Task SubmitForm(OrganizeEntity organizeEntity, string keyValue)
{
if (!string.IsNullOrEmpty(keyValue))
{
organizeEntity.Modify(keyValue);
await repository.Update(organizeEntity);
}
else
{
organizeEntity.F_AllowDelete = false;
organizeEntity.F_AllowEdit = false;
organizeEntity.F_DeleteMark = false;
organizeEntity.Create();
await repository.Insert(organizeEntity);
}
}
}
}