Files
WaterCloudForJt/WaterCloud.Service/OrderManagement/OrderCustomerService.cs
2025-03-16 23:05:57 +08:00

163 lines
5.8 KiB
C#
Raw Permalink 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 SqlSugar;
using WaterCloud.DataBase;
using WaterCloud.Domain.OrderManagement;
using System.Collections;
using static Serenity.Web.PropertyItemsScript;
using WaterCloud.Service.SystemOrganize;
using System.Diagnostics;
namespace WaterCloud.Service.OrderManagement
{
/// <summary>
/// 创 建:超级管理员
/// 日 期2025-03-16 01:39
/// 描 述:用户订单服务类
/// </summary>
public class OrderCustomerService : BaseService<OrderCustomerEntity>, IDenpendency
{
public UserService UserService { get; set; }
public OrderCustomerService(ISqlSugarClient context) : base(context)
{
}
#region
public async Task<List<OrderCustomerEntity>> GetList(string keyword = "")
{
var data = repository.IQueryable();
if (!string.IsNullOrEmpty(keyword))
{
data = data.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
//普通用户仅可查看自己的数据
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
data = data.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
return await data.Where(a => a.F_DeleteMark == false).OrderBy(a => a.F_CreatorTime, OrderByType.Desc).ToListAsync();
}
public async Task<List<OrderCustomerEntity>> GetLookList(string keyword = "")
{
var query = repository.IQueryable().Where(a => a.F_DeleteMark == false);
if (!string.IsNullOrEmpty(keyword))
{
//此处需修改
query = query.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
//权限过滤
query = GetDataPrivilege("a", "", query);
//普通用户仅可查看自己的数据
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
var pageList = await query.OrderBy(a => a.F_CreatorTime, OrderByType.Desc).ToListAsync();
var users = await UserService.GetUserList(string.Empty);
pageList.ForEach(item =>
{
var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId);
item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName;
});
return pageList;
}
public async Task<List<OrderCustomerEntity>> GetLookList(SoulPage<OrderCustomerEntity> pagination, string keyword = "", string id = "")
{
var query = repository.IQueryable().Where(a => a.F_DeleteMark == false);
if (!string.IsNullOrEmpty(keyword))
{
query = query.Where(a => a.F_Name.Contains(keyword)
|| a.F_ContactPerson.Contains(keyword));
}
if (!string.IsNullOrEmpty(id))
{
query = query.Where(a => a.F_Id == id);
}
//权限过滤
query = GetDataPrivilege("a", "", query);
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior))
{
query = query.Where(oo => oo.F_CreatorUserId == currentuser.UserId);
}
var pageList = await query.ToPageListAsync(pagination);
var users = await UserService.GetUserList(string.Empty);
pageList.ForEach(item =>
{
var user = users.Find(oo => oo.F_Id == item.F_CreatorUserId);
item.F_CreatorUserId = user == null ? "未知用户" : user.F_RealName;
});
return pageList;
}
public async Task<OrderCustomerEntity> GetForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return data;
}
#endregion
public async Task<OrderCustomerEntity> GetLookForm(string keyValue)
{
var data = await repository.FindEntity(keyValue);
return GetFieldsFilterData(data);
}
#region
public async Task SubmitForm(OrderCustomerEntity entity, string keyValue)
{
if (string.IsNullOrEmpty(keyValue))
{
//初始值添加
entity.F_DeleteMark = false;
entity.Create();
await repository.Insert(entity);
}
else
{
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior) &&
currentuser.UserId != entity.F_CreatorUserId)
{
return;
}
//此处需修改
entity.Modify(keyValue);
await repository.Update(entity);
}
}
public async Task DeleteForm(string keyValue)
{
var ids = keyValue.Split(',');
foreach (var id in ids)
{
var data = await repository.FindEntity(id);
if (data == null)
return;
if (!(currentuser.IsAdmin || currentuser.IsBoss || currentuser.IsSuperAdmin || currentuser.IsSenior) &&
currentuser.UserId != data.F_CreatorUserId)
throw new Exception($"{data.F_Id} {data.F_Name}违规删除");
}
await repository.Delete(a => ids.Contains(a.F_Id.ToString()));
}
#endregion
}
}