LoginRepository.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. 
  2. using AutoMapper;
  3. using OASystem.Domain;
  4. using OASystem.Domain.Dtos.System;
  5. using OASystem.Domain.Dtos.UserDto;
  6. using OASystem.Domain.Entities.System;
  7. using OASystem.Domain.ViewModels.System;
  8. using OASystem.Infrastructure.Repositories.System;
  9. using SqlSugar;
  10. namespace OASystem.Infrastructure.Repositories.Login
  11. {
  12. public class LoginRepository : BaseRepository<Sys_Users, LoginView>
  13. {
  14. public LoginRepository(SqlSugarClient sqlSugar) :
  15. base(sqlSugar){}
  16. /// <summary>
  17. /// 用户登录
  18. /// 返回Token
  19. /// </summary>
  20. /// <param name="_loginRep"></param>
  21. /// <param name="loginDto"></param>
  22. /// <returns></returns>
  23. public async Task<Result> Login(LoginDto loginDto)
  24. {
  25. Result result = new Result() { Code = -2 };
  26. string SQLWhere = string.Format("Where Number='{0}'", loginDto.Number);
  27. string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
  28. Sys_Users _entity = await GetSingleInfoBySqlWithNolockAsync(sql);
  29. if (_entity == null)
  30. {
  31. result.Msg = "暂无该账户信息!";
  32. return result;
  33. }
  34. if (_entity.Password != loginDto.Password)
  35. {
  36. result.Msg = "账户或密码错误!";
  37. return result;
  38. }
  39. //人事审核是否通过
  40. if (_entity.HrAudit != 1)
  41. {
  42. result.Msg = "该员工账号暂无登录权限,人事审核未通过!";
  43. return result;
  44. }
  45. //该用户是否已删除
  46. if (_entity.HrAudit != 1)
  47. {
  48. result.Msg = "已离职员工没有登录权限!";
  49. return result;
  50. }
  51. //portType 处理端口
  52. dynamic longinData = null;
  53. //员工数据
  54. string sqlWhere = string.Format(" Where su.Id={0}", _entity.Id);
  55. string userSqlWhere = string.Format(@"Select sc.CompanyName,sd.DepName,sjp.JobName,su.Id UserId,su.CnName,su.Email
  56. From Sys_Users su
  57. Inner Join Sys_Company sc On su.CompanyId = sc.Id
  58. Inner Join Sys_Department sd On su.DepId = sd.Id
  59. Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id {0}", sqlWhere);
  60. if (loginDto.PortType == 1) //web
  61. {
  62. var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
  63. longinData = _userBasicInfo;
  64. }
  65. else if (loginDto.PortType == 2) // Android
  66. {
  67. var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
  68. longinData = _userBasicInfo;
  69. }
  70. result.Code = 0;
  71. result.Msg = "登录成功!";
  72. result.Data = longinData;
  73. return result;
  74. }
  75. /// <summary>
  76. /// 用户注册
  77. /// </summary>
  78. /// <param name="_loginRep"></param>
  79. /// <param name="registerDto"></param>
  80. /// <returns></returns>
  81. public async Task<Result> Register(LoginRepository _loginRep, RegisterDto registerDto)
  82. {
  83. Result result = new Result();
  84. Sys_Users _userInfo = new Sys_Users()
  85. {
  86. CnName = registerDto.CnName,
  87. EnName = registerDto.EnName,
  88. Sex = registerDto.Sex,
  89. Number = "", //员工编号 人事审核通过了 由信息部经理分配
  90. CompanyId = registerDto.CompanyId,
  91. DepId = registerDto.DepId,
  92. JobPostId = registerDto.JobPostId,
  93. Ext = "", //由部门主管/信息部经理 分配
  94. Phone = registerDto.Phone,
  95. UrgentPhone = registerDto.UrgencyPhone,
  96. Email = registerDto.Email,
  97. Address = registerDto.Address,
  98. Edate = DateTime.Now, //入职时间默认当前数据提交时间
  99. Rdate = new DateTime(1990, 1, 1), //离职时间默认最原始时间
  100. Seniority = 0, //工龄默认 0
  101. Birthday = registerDto.BirthDay,
  102. IDCard = registerDto.IdCrad,
  103. StartWorkDate = new DateTime(1990, 1, 1), //开始工作时间默认最原始时间
  104. GraduateInstitutions = registerDto.GraduationSchhol,
  105. Professional = registerDto.Major,
  106. Education = registerDto.Education, //学历类型
  107. TheOrAdultEducation = registerDto.EducationType, //教育类型
  108. MaritalStatus = registerDto.MaritalStatus, // 未婚/已婚
  109. HomeAddress = registerDto.HomeAddress, //身份证上 家庭住址
  110. UsePeriod = "", //试用期 由该人员入职部门主管手动操作
  111. Certificate = "", //证件上传地址 多个证件由 | 隔开
  112. CreateUserId = registerDto.CreateUserId,
  113. CreateTime = DateTime.Now, //默认当前时间
  114. DeleteUserId = null, //删除用户时操作该字段
  115. DeleteTime = null, //删除用户时操作该字段
  116. Remark = "", //备注
  117. IsDel = 0
  118. };
  119. var _AddId = await _loginRep.AddAsyncReturnId(_userInfo);
  120. if (_AddId < 0)
  121. {
  122. result.Code = -2;
  123. result.Msg = "用户添加失败!";
  124. return result;
  125. }
  126. result.Code = 0;
  127. result.Msg = "申请成功!人事主管审核后且信息部经理分配了登录账号,可登录OA!";
  128. return result;
  129. }
  130. }
  131. }