123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 |
-
- using AutoMapper;
- using OASystem.Domain;
- using OASystem.Domain.Dtos.QiYeWeChat;
- using OASystem.Domain.Dtos.System;
- using OASystem.Domain.Dtos.UserDto;
- using OASystem.Domain.Entities.System;
- using OASystem.Domain.ViewModels.System;
- using OASystem.Infrastructure.Repositories.System;
- using SqlSugar;
- namespace OASystem.Infrastructure.Repositories.Login
- {
- public class LoginRepository : BaseRepository<Sys_Users, LoginView>
- {
- public LoginRepository(SqlSugarClient sqlSugar, UsersRepository usersRep) :
- base(sqlSugar){}
- /// <summary>
- /// 用户登录
- /// 返回Token
- /// </summary>
- /// <param name="_loginRep"></param>
- /// <param name="loginDto"></param>
- /// <returns></returns>
- public async Task<Result> Login(LoginDto loginDto)
- {
- Result result = new Result() { Code = -2 };
- string SQLWhere = string.Format("Where Number='{0}'", loginDto.Number);
- string sql = string.Format("Select * From Sys_Users With(NoLock) {0}", SQLWhere);
- Sys_Users _entity = await GetSingleInfoBySqlWithNolockAsync(sql);
- if (_entity == null)
- {
- result.Msg = "暂无该账户信息!";
- return result;
- }
- if (_entity.Password != loginDto.Password)
- {
- result.Msg = "账户或密码错误!";
- return result;
- }
- //人事审核是否通过
- if (_entity.HrAudit != 1)
- {
- result.Msg = "该员工账号暂无登录权限,人事审核未通过!";
- return result;
- }
- //该用户是否已删除
- if (_entity.HrAudit != 1)
- {
- result.Msg = "已离职员工没有登录权限!";
- return result;
- }
- //portType 处理端口
- dynamic longinData = null;
- //员工数据
- string sqlWhere = string.Format(" Where su.Id={0}", _entity.Id);
- string userSqlWhere = string.Format(@"Select sc.CompanyName,sd.DepName,sjp.JobName,su.Id UserId,su.CnName,su.Email
- From Sys_Users su
- Inner Join Sys_Company sc On su.CompanyId = sc.Id
- Inner Join Sys_Department sd On su.DepId = sd.Id
- Inner Join Sys_JobPost sjp On su.JobPostId = sjp.Id {0}", sqlWhere);
-
- if (loginDto.PortType == 1) //web
- {
- var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
- longinData = _userBasicInfo;
- }
- else if (loginDto.PortType == 2) // Android
- {
- var _userBasicInfo = await _sqlSugar.SqlQueryable<UserLoginInfoView>(userSqlWhere).FirstAsync();
- longinData = _userBasicInfo;
- }
- result.Code = 0;
- result.Msg = "登录成功!";
- result.Data = longinData;
- return result;
- }
- /// <summary>
- /// 用户注册
- /// </summary>
- /// <param name="_loginRep"></param>
- /// <param name="registerDto"></param>
- /// <returns></returns>
- public async Task<Result> Register( RegisterDto registerDto)
- {
- Result result = new Result();
- string IdCrad = registerDto.IdCrad;
- string birthDay = IdCrad.Substring(6, 4) + "-" + IdCrad.Substring(10, 2) + "-" + IdCrad.Substring(12, 2);
- string number = await CreateNumber(registerDto.DepId);
- Sys_Users _userInfo = new Sys_Users()
- {
- CnName = registerDto.CnName,
- EnName = registerDto.EnName,
- Sex = registerDto.Sex,
- Number = number, //员工编号 人事审核通过了 由信息部经理分配
- Password = registerDto.Password, //密码由用户自己设置
- CompanyId = registerDto.CompanyId,
- DepId = registerDto.DepId,
- JobPostId = registerDto.JobPostId,
- Ext = "", //由部门主管/信息部经理 分配
- Phone = registerDto.Phone,
- UrgentPhone = registerDto.UrgencyPhone,
- Email = registerDto.Email,
- Address = registerDto.Address,
- Edate = Convert.ToDateTime(registerDto.Edate), //入职时间默认当前数据提交时间
- Rdate = new DateTime(1990, 1, 1), //离职时间默认最原始时间
- Seniority = 0, //工龄默认 0
- Birthday = Convert.ToDateTime(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, // 未婚/已婚
- WorkExperience = registerDto.WorkExperience, // 工作经历
- HomeAddress = registerDto.HomeAddress, //身份证上 家庭住址
- UsePeriod = "", //试用期 由该人员入职部门主管手动操作
- Certificate = "", //证件上传地址 多个证件由 | 隔开
- CreateUserId = registerDto.CreateUserId,
- CreateTime = DateTime.Now, //默认当前时间
- DeleteUserId = null, //删除用户时操作该字段
- DeleteTime = null, //删除用户时操作该字段
- Remark = "", //备注
- IsDel = 0
- };
- var _AddId = await _sqlSugar.Insertable(_userInfo).ExecuteReturnIdentityAsync();
- if (_AddId < 0)
- {
- result.Code = -2;
- result.Msg = "用户添加失败!";
- return result;
- }
- _userInfo.CreateUserId = _AddId;
- var updateStatus = await _sqlSugar.Updateable(_userInfo).UpdateColumns(it => new { it.CreateUserId }).Where(it => it.Id == _AddId).ExecuteCommandAsync();
- result.Code = 0;
- result.Msg = string.Format("账号:{0}\r\n密码:{1}\r\n申请成功!\r\n人事主管审核后,即可登录OA!", number, registerDto.Password);
- return result;
- }
-
- /// <summary>
- /// 生成 Number
- /// </summary>
- /// <param name="depId"></param>
- /// <returns></returns>
- public async Task<string> CreateNumber(int depId) {
- string number = string.Empty;
- string userSql = string.Format("Select * From Sys_Users Where IsDel= 0 And DepId = {0} And Number != '' Order By Id Desc", depId);
- var userData = await _sqlSugar.SqlQueryable<Sys_Users>(userSql).ToListAsync();
- if (userData.Count <= 0) return number;
- string depSql = string.Format("Select * From Sys_Department Where IsDel= 0 And Id = {0} ", depId);
- var depData = await _sqlSugar.SqlQueryable<Sys_Department>(depSql).FirstAsync();
- if (depData == null) return number;
- string numPrefix = depData.Remark;
- if (string.IsNullOrEmpty(numPrefix)) return number;
- int numSuffix = 1;
- while (true)
- {
- number = numPrefix + numSuffix.ToString();
- var userData1 = userData.Where(it => it.Number == number).FirstOrDefault();
- if (userData1 == null) break;
- numSuffix++;
- }
- return number;
- }
- }
- }
|