UserRemarkService.pas 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. unit UserRemarkService;
  2. interface
  3. uses
  4. StrUtils, SysUtils, Windows, superobject, Classes, BaseService;
  5. type
  6. TUserRemarkService = class(TBaseService)
  7. private
  8. FUserRemarks: ISuperObject;
  9. procedure OldChangeRemark(AUserRemark: ISuperObject);
  10. public
  11. function GetUserRemark(ALoginName: string): ISuperObject;
  12. procedure SetUserRemark(AUserRemark: ISuperObject);
  13. procedure Init;
  14. procedure Uninstall;
  15. constructor Create;
  16. destructor Destroy; override;
  17. class function GetService: TUserRemarkService; static;
  18. end;
  19. implementation
  20. uses
  21. MainFrm, DataProviderImport, InterfaceDataProvider, LoggerImport, Messages,
  22. UsersService;
  23. var
  24. AUserRemarkService: TUserRemarkService;
  25. { TUserRemarkService }
  26. constructor TUserRemarkService.Create;
  27. begin
  28. end;
  29. destructor TUserRemarkService.Destroy;
  30. begin
  31. inherited;
  32. end;
  33. class function TUserRemarkService.GetService: TUserRemarkService;
  34. begin
  35. if AUserRemarkService = nil then
  36. AUserRemarkService := TUserRemarkService.Create;
  37. Result := AUserRemarkService;
  38. end;
  39. function TUserRemarkService.GetUserRemark(ALoginName: string): ISuperObject;
  40. var
  41. item: TSuperAvlEntry;
  42. begin
  43. for item in FUserRemarks.AsObject do
  44. begin
  45. if SameText(item.Name, ALoginName) then
  46. begin
  47. Result := item.Value;
  48. Exit;
  49. end;
  50. end;
  51. end;
  52. procedure TUserRemarkService.Init;
  53. begin
  54. FUserRemarks := nil;
  55. if Mainform.RealICQClient.Me.Remark = '' then
  56. begin
  57. FUserRemarks := SO('{}');
  58. Exit;
  59. end;
  60. FUserRemarks := SO(Mainform.RealICQClient.Me.Remark);
  61. if FUserRemarks = nil then
  62. FUserRemarks := SO('{}');
  63. end;
  64. //{"Phone":"","LoginName":"0578+0-lslinlh","Mobile":"","Remark":"","RemarkedLoginName":"0578+0-penghl"},
  65. procedure TUserRemarkService.SetUserRemark(AUserRemark: ISuperObject);
  66. var
  67. item: TSuperAvlEntry;
  68. begin
  69. for item in FUserRemarks.AsObject do
  70. begin
  71. if SameText(item.Name, AUserRemark.S['RemarkedLoginName']) then
  72. begin
  73. if SameText(item.Value.S['Phone'], AUserRemark.S['Phone'])
  74. and SameText(item.Value.S['Mobile'], AUserRemark.S['Mobile'])
  75. and SameText(item.Value.S['Remark'], AUserRemark.S['Remark'])then
  76. Exit
  77. else
  78. begin
  79. OldChangeRemark(AUserRemark);
  80. end;
  81. end;
  82. end;
  83. end;
  84. procedure TUserRemarkService.OldChangeRemark(AUserRemark: ISuperObject);
  85. var
  86. Remarks: String;
  87. begin
  88. // if not Logined or not Connected then raise Exception.Create('±ØÐëÏȵǼ');
  89. // RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(ALoginName);
  90. // if RealICQUser = nil then Exit;
  91. Remarks := '';
  92. Remarks := Remarks + AnsiReplaceStr(AUserRemark.S['Remark'], Chr(10), '') + 'NONE' + Chr(10);
  93. Remarks := Remarks + AUserRemark.S['Phone'] + 'NONE' + Chr(10);
  94. Remarks := Remarks + AUserRemark.S['Mobile'] + 'NONE';
  95. MainForm.RealICQClient.SendChangeRemark(AUserRemark.S['RemarkedLoginName'], Remarks);
  96. end;
  97. procedure TUserRemarkService.Uninstall;
  98. begin
  99. FUserRemarks := nil;
  100. end;
  101. end.