| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- unit UserRemarkService;
- interface
- uses
- StrUtils, SysUtils, Windows, superobject, Classes, BaseService;
- type
- TUserRemarkService = class(TBaseService)
- private
- FUserRemarks: ISuperObject;
- procedure OldChangeRemark(AUserRemark: ISuperObject);
- public
- function GetUserRemark(ALoginName: string): ISuperObject;
- procedure SetUserRemark(AUserRemark: ISuperObject);
- procedure Init;
- procedure Uninstall;
- constructor Create;
- destructor Destroy; override;
- class function GetService: TUserRemarkService; static;
- end;
- implementation
- uses
- MainFrm, DataProviderImport, InterfaceDataProvider, LoggerImport, Messages,
- UsersService;
- var
- AUserRemarkService: TUserRemarkService;
- { TUserRemarkService }
- constructor TUserRemarkService.Create;
- begin
- end;
- destructor TUserRemarkService.Destroy;
- begin
- inherited;
- end;
- class function TUserRemarkService.GetService: TUserRemarkService;
- begin
- if AUserRemarkService = nil then
- AUserRemarkService := TUserRemarkService.Create;
- Result := AUserRemarkService;
- end;
- function TUserRemarkService.GetUserRemark(ALoginName: string): ISuperObject;
- var
- item: TSuperAvlEntry;
- begin
- for item in FUserRemarks.AsObject do
- begin
- if SameText(item.Name, ALoginName) then
- begin
- Result := item.Value;
- Exit;
- end;
- end;
- end;
- procedure TUserRemarkService.Init;
- begin
- FUserRemarks := nil;
- if Mainform.RealICQClient.Me.Remark = '' then
- begin
- FUserRemarks := SO('{}');
- Exit;
- end;
- FUserRemarks := SO(Mainform.RealICQClient.Me.Remark);
- if FUserRemarks = nil then
- FUserRemarks := SO('{}');
- end;
- //{"Phone":"","LoginName":"0578+0-lslinlh","Mobile":"","Remark":"","RemarkedLoginName":"0578+0-penghl"},
- procedure TUserRemarkService.SetUserRemark(AUserRemark: ISuperObject);
- var
- item: TSuperAvlEntry;
- begin
- for item in FUserRemarks.AsObject do
- begin
- if SameText(item.Name, AUserRemark.S['RemarkedLoginName']) then
- begin
- if SameText(item.Value.S['Phone'], AUserRemark.S['Phone'])
- and SameText(item.Value.S['Mobile'], AUserRemark.S['Mobile'])
- and SameText(item.Value.S['Remark'], AUserRemark.S['Remark'])then
- Exit
- else
- begin
- OldChangeRemark(AUserRemark);
- end;
- end;
- end;
- end;
- procedure TUserRemarkService.OldChangeRemark(AUserRemark: ISuperObject);
- var
- Remarks: String;
- begin
- // if not Logined or not Connected then raise Exception.Create('±ØÐëÏȵǼ');
- // RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(ALoginName);
- // if RealICQUser = nil then Exit;
- Remarks := '';
- Remarks := Remarks + AnsiReplaceStr(AUserRemark.S['Remark'], Chr(10), '') + 'NONE' + Chr(10);
- Remarks := Remarks + AUserRemark.S['Phone'] + 'NONE' + Chr(10);
- Remarks := Remarks + AUserRemark.S['Mobile'] + 'NONE';
- MainForm.RealICQClient.SendChangeRemark(AUserRemark.S['RemarkedLoginName'], Remarks);
- end;
- procedure TUserRemarkService.Uninstall;
- begin
- FUserRemarks := nil;
- end;
- end.
|