AuthorizationRepository.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using QM.AuthServer.IRepository;
  2. using QM.AuthServer.Models.Users;
  3. using QM.OrmSqlSugar;
  4. using System.Threading.Tasks;
  5. using WS;
  6. using WS.Image;
  7. using WS.Orm;
  8. using WS.Security;
  9. namespace QM.AuthServer.Repository
  10. {
  11. public class AuthorizationRepository : SqlSugarRepository<SysUser>, IAuthorizationRepository
  12. {
  13. /// <summary>
  14. /// 验证码
  15. /// </summary>
  16. /// <returns></returns>
  17. public CaptchaInfo VerifyCode()
  18. {
  19. var info = CaptchaCode.DrawNumberImage(4);
  20. return info;
  21. }
  22. /// <summary>
  23. /// 登录
  24. /// </summary>
  25. /// <param name="parm"></param>
  26. /// <returns></returns>
  27. public SysUser Login(LoginDto parm)
  28. {
  29. if (string.IsNullOrWhiteSpace(parm.Id))
  30. throw new UseArgumentException("用户名不能为空");
  31. if (string.IsNullOrWhiteSpace(parm.Pwd))
  32. throw new UseArgumentException("登录密码不能为空");
  33. if(parm.Pwd.Length != 32)
  34. parm.Pwd = Md5Crypt.Encrypt(parm.Pwd);
  35. SysUser user = null;
  36. if (parm.Id == SysInfo.SYS_USER) {
  37. if (parm.Pwd == SysInfo.SYS_PASSWORD) {
  38. user = new SysUser()
  39. {
  40. uid = SysInfo.SYS_USER,
  41. name = "系统内置账户"
  42. };
  43. }
  44. }
  45. else
  46. {
  47. user = Get(t => t.uid.ToUpper() == parm.Id.ToUpper() && t.pwd == parm.Pwd && t.is_delete == EnumDelete.Normal);
  48. }
  49. if (user == null)
  50. throw new UseMassageException("户名或密码错误,请重新输入");
  51. if (user.state == EnumState.Disable)
  52. throw new UseMassageException("当前用户已禁用,请联系管理员");
  53. return user;
  54. }
  55. /// <summary>
  56. /// 登录
  57. /// </summary>
  58. /// <param name="parm"></param>
  59. /// <returns></returns>
  60. public Task<SysUser> LoginAsync(LoginDto parm)
  61. {
  62. return Task.FromResult(Login(parm));
  63. }
  64. }
  65. }