AdminUserRepository.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using CZFW.Core.Security;
  2. using CZFW.Framework.Model.ViewModel;
  3. using CZFW.MDB.Util;
  4. using MongoDB.Bson;
  5. namespace CZFW.MDB
  6. {
  7. public class AdminUserRepository : IAdminUser
  8. {
  9. IMongoRepository _repository;
  10. public AdminUserRepository(IMongoRepository repo)
  11. {
  12. _repository = repo;
  13. }
  14. public void SetCurrentTable(string tplName)
  15. {
  16. _repository.SetCurrentTable($"{tplName}_{Constants.ADMIN_TABLE_NAME}");
  17. }
  18. public ResultModel Create(string sid,string objJson)
  19. {
  20. var bobj = BsonDocument.Parse(objJson);
  21. bobj.Add(Constants.SITE_NAME_FIELD, sid);
  22. var rawPass = bobj.GetValue("password").AsString;
  23. var codedPass = MD5Encrypt.Encrypt(rawPass);
  24. bobj.Set("password", codedPass);
  25. _repository.CurrentTable.InsertOne(bobj);//.Insert(objJson);
  26. return new ResultModel { Success = true };
  27. }
  28. public ResultModel Login(string tplName,string userName, string password)
  29. {
  30. var pageName = $"{tplName}_{Constants.ADMIN_TABLE_NAME}";
  31. _repository.SetCurrentTable(pageName);
  32. var codedPass = MD5Encrypt.Encrypt(password);
  33. var query = $"{{user_name:'{userName}', password:'{codedPass}'}}";
  34. var res = _repository.GetOne(query, "{password:0}");
  35. return new ResultModel { Success = !(res is null), Data = res.CZToJson() };
  36. }
  37. public ResultModel Logout(string id)
  38. {
  39. return new ResultModel { Success = true };
  40. }
  41. public ResultModel Remove(string id)
  42. {
  43. var res = _repository.Remove(id);
  44. return res;
  45. }
  46. public ResultModel Update(string id, string objJson)
  47. {
  48. var newBson = BsonDocument.Parse(objJson);
  49. //var rawPass = newBson.GetValue("password").AsString;
  50. //var codedPass = MD5Encrypt.Encrypt(rawPass);
  51. //newBson.Set("password", codedPass);
  52. var res = _repository.Replace(id, newBson.CZToJson());
  53. return res;
  54. }
  55. public BsonDocument Get( string key)
  56. {
  57. // _repository.SetCurrentTable();
  58. var res = _repository.Get(key);
  59. return res;
  60. }
  61. public ResultModel UpdatePassword(string id, string oldPass, string newPass)
  62. {
  63. var user = _repository.Get(id);
  64. var rawOldPass = user.GetValue("password").AsString;
  65. var codedOldPass = MD5Encrypt.Encrypt(oldPass);
  66. if ( rawOldPass!= codedOldPass)
  67. return new ResultModel { Success = false, Message = "原密码不正确!" };
  68. user.Set("password", MD5Encrypt.Encrypt(newPass));
  69. var res = _repository.ReplaceBson(new ObjectId(id), user);
  70. return res;
  71. }
  72. public ResultModel UpdatePasswordBySystem(string id, string newPass)
  73. {
  74. var user = _repository.Get(id);
  75. user.Set("password", MD5Encrypt.Encrypt(newPass));
  76. var res = _repository.ReplaceBson(new ObjectId(id), user);
  77. return res;
  78. }
  79. }
  80. }