|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using DS.Module.Core.Extensions;
|
|
|
|
|
using FluentValidation;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
|
|
|
|
namespace DS.WMS.Core.Sys.Dtos;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用户编辑实体
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class UserReq
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 登陆账号
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string UserCode { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 员工代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("员工代码")]
|
|
|
|
|
public string UserNumber { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 密码
|
|
|
|
|
/// </summary>
|
|
|
|
|
//[RegularExpression(pattern:@"^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^\da-zA-Z]).{8,}$",ErrorMessage ="密码至少要包含8个字符,同时包含至少一个大写字母、一个小写字母、一个数字和一个特殊字符")]
|
|
|
|
|
public string Password { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 中文名称
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string UserName { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 性别 1-男 2-女 3 -未知
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int Sex { get; set; } = 1;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Avatar { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
///
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DateTime? Birthday { get; set; } = DateTime.MinValue;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 手机号码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Phone { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 邮箱
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Email { get; set; } = "";
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 电话
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Tel { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 办公电话
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string OfficePhone { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 传真
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Fax { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 财务软件代码
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string FinanceSoftCode { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 职位
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Duty { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用户类型 1-管理员 2-普通用户
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int UserType { get; set; } = 1;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 权限身份 0: 无; 1:客户端; 2:市平台:3:省平台
|
|
|
|
|
/// </summary>
|
|
|
|
|
public int PermissionIdentity { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 备注
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Note { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用戶角色
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long?[] RoleIds { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用戶机构
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long?[] OrgIds { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否操作
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsOperator { get; set; } = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否单证
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsVouchingClerk { get; set; } = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否销售
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsSale { get; set; } = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否报关员
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsCustom { get; set; } = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否财务
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsFinancialStaff { get; set; } = false;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否客服
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsCustomerService { get; set; } = false;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否司机
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsDriver { get; set; } = false;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否派车调度人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsDispatcher { get; set; } = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 默认部门Id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long DeptId { get; set; } = 0;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 默认机构Id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long DefaultOrgId { get; set; } = 0;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 英文名称
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Description("英文名称")]
|
|
|
|
|
public string UserEnName { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 用戶航线
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long?[] LaneIds { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否航线操作人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool IsLaner { get; set; } = false;
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 业务来源Id
|
|
|
|
|
/// </summary>
|
|
|
|
|
public long SourceId { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 业务来源名称
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SourceName { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 签名图片
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SignatureUrl { get; set; } = "";
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 邮件签名
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string SignatureHtml { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 默认机构
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DefaultOrgName { get; set; } = "";
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 默认部门
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string DeptName { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 首页地址
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string? HomePath { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 验证
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class UserInputValidator : AbstractValidator<UserReq>
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 构造函数
|
|
|
|
|
/// </summary>
|
|
|
|
|
public UserInputValidator()
|
|
|
|
|
{
|
|
|
|
|
this.RuleFor(o => o.UserCode)
|
|
|
|
|
.NotEmpty().WithName("登录账号");
|
|
|
|
|
this.RuleFor(o => o.UserName)
|
|
|
|
|
.NotEmpty().WithName("用户名称");
|
|
|
|
|
this.RuleFor(o => o.Phone)
|
|
|
|
|
.NotEmpty().WithName("手机号码");
|
|
|
|
|
this.RuleFor(o => o.Email)
|
|
|
|
|
.NotEmpty().WithName("邮箱");
|
|
|
|
|
this.RuleFor(o => o.Password)
|
|
|
|
|
.NotEmpty().WithName("密码");
|
|
|
|
|
}
|
|
|
|
|
}
|