Procházet zdrojové kódy

新增用户注册 API/Request DTO

leiy před 2 roky
rodič
revize
34f14013b0

+ 38 - 2
OASystem/OASystem.Api/Controllers/AuthController.cs

@@ -4,12 +4,14 @@ using OASystem.Infrastructure.Repositories.Login;
 using System.IdentityModel.Tokens.Jwt;
 using System.Security.Claims;
 using StackExchange.Redis;
+using OASystem.Domain.Dtos.UserDto;
 
 namespace OASystem.API.Controllers
 {
     /// <summary>
     /// 鉴权相关
     /// </summary>
+    [Route("api/[action]")]
     public class AuthController : ControllerBase
     {
         private readonly IMapper _mapper;
@@ -45,6 +47,19 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(false,"暂无该员工信息!"));
             }
 
+            //人事审核是否通过
+            if (userData.Result.Data.HrAudit != 1 )
+            {
+                return Ok(JsonView(false, "该员工账号暂无登录权限,人事审核未通过!"));
+            }
+
+            //该用户是否已删除
+            if (userData.Result.Data.HrAudit != 1)
+            {
+                return Ok(JsonView(false, "已离职员工没有登录权限"));
+            }
+
+
             #endregion
             var view = new LoginView
             {
@@ -75,6 +90,27 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(view));
         }
 
+        /// <summary>
+        /// 申请注册
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [Authorize]
+        [HttpPost("register")]
+        public async Task<IActionResult> Register(RegisterDto dto)
+        {
+            var userData = _loginRep.Register(_loginRep, dto);
+            if (userData.Result.Code != 0)
+            {
+                if (userData.Result.Code != 0) { return Ok(JsonView(false, userData.Result.Message)); }
+
+                return Ok(JsonView(false, "注册失败!"));
+            }
+
+            return Ok(new { Code = 0, Msg = userData.Result.Message });
+        }
+
+
 
         /// <summary>
         /// 测试auth
@@ -88,8 +124,8 @@ namespace OASystem.API.Controllers
         {
             string authorId = dto.Number + "Token";
             // 从Redis里面取数据
-            string userToken = _redis.StringGet(authorId);
-
+            //string userToken = _redis.StringGet(authorId);
+            string userToken = "";
             var view = new LoginView
             {
                 Token = authorId + ":" + userToken

+ 1 - 11
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -1,8 +1,7 @@
-using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities.System;
 using OASystem.Domain.ViewModels;
-using OASystem.Domain.ViewModels.System;
 
 namespace OASystem.Domain.AutoMappers
 {
@@ -15,15 +14,6 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<LoginDto, Sys_Users>();
             #endregion
 
-            #region 系统设置
-
-           
-            #region 部门
-            CreateMap<Sys_DepartmentDto, Sys_Department>();
-            CreateMap<Sys_Department, Sys_DepartmentView>();
-            #endregion
-
-            #endregion
         }
     }
 }

+ 0 - 20
OASystem/OASystem.Domain/Dtos/LoginDto.cs

@@ -1,20 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace OASystem.Domain.Dtos;
-
-/// <summary>
-/// 申请登录
-/// </summary>
-public class LoginDto
-{
-    /// <summary>
-    /// 登录账号
-    /// </summary>
-    [Required(ErrorMessage = "账号不能为空!")]
-    public string Number { get; set; }
-    /// <summary>
-    /// 密码
-    /// </summary>
-    [Required(ErrorMessage = "密码不能为空!")]
-    public string Password { get; set; }
-}

+ 19 - 0
OASystem/OASystem.Domain/Dtos/UserDto/LoginDto.cs

@@ -0,0 +1,19 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace OASystem.Domain.Dtos.UserDto;
+
+/// <summary>
+/// 用户登录
+/// 提交DTO
+/// </summary>
+public class LoginDto
+{
+    /// <summary>
+    /// 登录账号
+    /// </summary>
+    public string? Number { get; set; }
+    /// <summary>
+    /// 密码
+    /// </summary>
+    public string? Password { get; set; }
+}

+ 125 - 0
OASystem/OASystem.Domain/Dtos/UserDto/RegisterDto.cs

@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.UserDto
+{
+    /// <summary>
+    /// 注册用户 
+    /// 提交DTO
+    /// </summary>
+    public class RegisterDto
+    {
+        /// <summary>
+        /// 申请注册UserId
+        /// </summary>
+        public int CreateUserId { get; set; }
+
+        /// <summary>
+        /// 中文名
+        /// </summary>
+        public string? CnName { get; set; }
+
+        /// <summary>
+        /// 英文名称
+        /// </summary>
+        public string? EnName { get; set; }
+
+        /// <summary>
+        /// 邮箱
+        /// </summary>
+        public string? Email { get; set; }
+
+        /// <summary>
+        /// 性别
+        /// 0 男 1 女
+        /// </summary>
+        public int Sex { get; set; }
+
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string? Phone { get; set; }
+
+        /// <summary>
+        /// 紧急联系人手机号
+        /// </summary>
+        public string? UrgencyPhone { get; set; }
+
+        /// <summary>
+        /// 密码
+        /// </summary>
+        public int Password { get; set; }
+
+        /// <summary>
+        /// 现在居住住址
+        /// </summary>
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 身份证号
+        /// </summary>
+        public string? IdCrad { get; set; }
+
+        /// <summary>
+        /// 出生日期
+        /// </summary>
+        public DateTime BirthDay { get; set; }
+
+        /// <summary>
+        /// 学历
+        /// 0 未设置 1 大专 2 本科 3 研究生
+        /// </summary>
+        public int Education { get; set; }
+
+        /// <summary>
+        /// 专业
+        /// 英语/数学 等等
+        /// </summary>
+        public string? Major { get; set; }
+
+        /// <summary>
+        /// 毕业学校
+        /// </summary>
+        public string? GraduationSchhol { get; set; }
+
+        /// <summary>
+        /// 教育类型
+        /// 统招/成教
+        /// </summary>
+        public int EducationType { get; set; }
+
+        /// <summary>
+        /// 婚姻状态
+        /// 已婚/未婚
+        /// </summary>
+        public string? MaritalStatus{ get; set; }
+
+        /// <summary>
+        /// 家庭地址
+        /// </summary>
+        public string? HomeAddress { get; set; }
+
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 部门Id
+        /// </summary>
+        public int DepId { get; set; }
+
+        /// <summary>
+        /// 岗位Id
+        /// </summary>
+        public int JobPostId { get; set; }
+
+        /// <summary>
+        /// 工作经历
+        /// </summary>
+        public string? WorkExperience { get; set; }
+    }
+}

+ 1 - 1
OASystem/OASystem.Domain/Entities/EntityBase.cs

@@ -24,7 +24,7 @@
         /// 删除者Id
         /// </summary>
         [SugarColumn(ColumnDescription = "删除者Id", IsNullable = true, ColumnDataType = "int")]
-        public int DeleteUserId { get; set; }
+        public int? DeleteUserId { get; set; }
         /// <summary>
         /// 删除时间
         /// </summary>

+ 2 - 2
OASystem/OASystem.Domain/ViewModels/JsonView.cs

@@ -12,7 +12,7 @@ public class JsonView
     /// <summary>
     /// 消息
     /// </summary>
-    public string Msg { get; set; }
+    public string? Msg { get; set; }
     /// <summary>
     /// 条数
     /// </summary>
@@ -20,5 +20,5 @@ public class JsonView
     /// <summary>
     /// 数据
     /// </summary>
-    public object Data { get; set; }
+    public object? Data { get; set; }
 }

+ 61 - 3
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -1,6 +1,6 @@
 
 using OASystem.Domain;
-using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities.System;
 
 namespace OASystem.Infrastructure.Repositories.Login
@@ -23,7 +23,7 @@ namespace OASystem.Infrastructure.Repositories.Login
             Result result = new Result();
             string SQLWhere = string.Format("Where Number='{0}' And Password='{1}'", loginDto.Number, loginDto.Password);
             string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
-            var _entity = await _loginRep.GetSingleInfoBySqlWithNolockAsync(sql);
+            Sys_Users _entity = await _loginRep.GetSingleInfoBySqlWithNolockAsync(sql);
             if (_entity == null)
             {
                 result.Code = -2;
@@ -32,10 +32,68 @@ namespace OASystem.Infrastructure.Repositories.Login
                 return result;
             }
             result.Code = 0;
-            result.Message = "成功!";
+            result.Message = "登录成功!";
             result.Data = _entity;
             return result;
 
         }
+
+        /// <summary>
+        /// 用户注册
+        /// </summary>
+        /// <param name="_loginRep"></param>
+        /// <param name="registerDto"></param>
+        /// <returns></returns>
+        public async Task<Result> Register(LoginRepository _loginRep, RegisterDto registerDto)
+        {
+            Result result = new Result();
+            Sys_Users _userInfo = new Sys_Users()
+            {
+                CnName = registerDto.CnName,
+                EnName = registerDto.EnName,
+                Sex = registerDto.Sex,
+                Number = "",    //员工编号 人事审核通过了 由信息部经理分配
+                CompanyId = registerDto.CompanyId,
+                DepId = registerDto.DepId,
+                JobPostId = registerDto.JobPostId,
+                Ext = "", //由部门主管/信息部经理 分配
+                Phone = registerDto.Phone,
+                UrgentPhone = registerDto.UrgencyPhone,
+                Email = registerDto.Email,
+                Address = registerDto.Address,
+                Edate = DateTime.Now,  //入职时间默认当前数据提交时间
+                Rdate = new DateTime(1990, 1, 1),  //离职时间默认最原始时间
+                Seniority = 0, //工龄默认 0
+                Birthday = registerDto.BirthDay,
+                IDCard = registerDto.IdCrad,
+                StartWorkDate = new DateTime(1990, 1, 1),  //开始工作时间默认最原始时间
+                GraduateInstitutions = registerDto.GraduationSchhol,
+                Professional = registerDto.Major,
+                Education = registerDto.Education, //学历类型
+                TheOrAdultEducation = registerDto.EducationType, //教育类型
+                MaritalStatus = registerDto.MaritalStatus, // 未婚/已婚
+                HomeAddress = registerDto.HomeAddress,  //身份证上 家庭住址
+                UsePeriod = "", //试用期 由该人员入职部门主管手动操作
+                Certificate = "", //证件上传地址  多个证件由 | 隔开
+                CreateUserId = registerDto.CreateUserId,
+                CreateTime = DateTime.Now, //默认当前时间
+                DeleteUserId = null,  //删除用户时操作该字段
+                DeleteTime = null,   //删除用户时操作该字段
+                Remark = "",         //备注
+                IsDel = 0
+            };
+            var _AddId = await _loginRep.AddAsyncReturnId(_userInfo);
+            if (_AddId < 0)
+            {
+                result.Code = -2;
+                result.Message = "用户添加失败!";
+
+                return result;
+            }
+            result.Code = 0;
+            result.Message = "申请成功!人事主管审核后且信息部经理分配了登录账号,可登录OA!";
+            return result;
+
+        }
     }
 }