wcs_server_s7_baoying/WcsMain/DataBase/Dao/AppUserDao.cs

86 lines
2.9 KiB
C#

using WcsMain.ApiServe.Controllers.Dto.WcsDto.User;
using WcsMain.Common;
using WcsMain.DataBase.TableEntity;
using WcsMain.Enum;
using WcsMain.WcsAttribute.AutoFacAttribute;
namespace WcsMain.DataBase.Dao;
/// <summary>
/// 用户表操作类
/// </summary>
[Component]
public class AppUserDao
{
/// <summary>
/// 查询用户
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public List<AppUser>? Query(AppUser user)
{
try
{
var sqlFuc = CommonTool.DbServe.Queryable<AppUser>()
.WhereIF(user.UserId != default, w => w.UserId == user.UserId)
.WhereIF(user.UserName != default, w => w.UserName == user.UserName)
.WhereIF(user.UserPassword != default, w => w.UserPassword == user.UserPassword)
.WhereIF(user.UserStatus != default, w => w.UserStatus == user.UserStatus)
.WhereIF(user.UserGroup != default, w => w.UserGroup == user.UserGroup);
return sqlFuc.ToList();
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
/*------------------------------------业务代码-------------------------------------*/
/// <summary>
/// 分页查询所有用户信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public (List<AppUser> users, int totalRows) QueryWithPage(GetUserWithPageRequest request)
{
try
{
int totalRows = 0;
var sqlFuc = CommonTool.DbServe.Queryable<AppUser>()
.WhereIF(!string.IsNullOrEmpty(request.SearchStr),
w => w.UserId!.Contains(request.SearchStr!)
|| w.UserName!.Contains(request.SearchStr!)
|| w.UserGroup!.Contains(request.SearchStr!)); // 模糊查询
if (request.UserStatus != default) // 查询任务状态
{
List<int?> userStatuses = [];
foreach (var userStatus in request.UserStatus)
{
if (userStatus == "禁用") { userStatuses.Add((int)UserStatusEnum.disabled); }
if (userStatus == "正常") { userStatuses.Add((int)UserStatusEnum.normal); }
}
sqlFuc.Where(w => userStatuses.Contains(w.UserStatus));
}
if (request.TimeRange is { Count: 2 }) // 时间范围
{
sqlFuc.Where(w => w.CreateTime > request.TimeRange[0] && w.CreateTime < request.TimeRange[1]);
}
sqlFuc.OrderByDescending(o => new { o.CreateTime });
var queryResult = sqlFuc.ToPageList(request.Page!.PageIndex, request.Page!.PageSize, ref totalRows);
return (queryResult, totalRows);
}
catch (Exception ex)
{
_ = ex;
return default;
}
}
}