ユーザーポイントモジュール

//[doc-params]
{
    "DB": ["EF", "Mongo"]
}

ユーザーポイントモジュールは、ポイントコアモジュールをベースに構築された、ユーザーポイントとポイントの消費を管理するための完全なAbpアプリケーションモジュールです。

インストール

  • Dignite.Abp.UserPoints.Domain.Shared NuGet パッケージを Domain.Shared プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsDomainSharedModuleを追加します。

  • Dignite.Abp.UserPoints.Domain NuGet パッケージを Domain プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsDomainModuleを追加します。

  • Dignite.Abp.UserPoints.Application.Contracts NuGet パッケージを Application.Contracts プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsApplicationContractsModuleを追加します。

  • Dignite.Abp.UserPoints.Application NuGet パッケージを Application プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsApplicationModuleを追加します。

  • Dignite.Abp.UserPoints.HttpApi NuGet パッケージを HttpApi プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsHttpApiModuleを追加します。

  • Dignite.Abp.UserPoints.HttpApi.Client NuGet パッケージを HttpApi プロジェクトにインストールします。モジュールクラス[DependsOn(...)]プロパティリストにUserPointsHttpApiClientModuleを追加します。

ユーザーポイントオプション

DignitePointsBlockOptionsはユーザーポイントのオプションクラスです。

  • Factor: ポイントと通貨の交換レートです。通常、1ユニットの通貨に対して何ポイントが等価かを表します。デフォルト値は1です。ユーザーポイントの単位ポイント値は、ポイントファクターの倍数である必要があります。例えば、ポイントファクターを100に設定すると、ユーザーポイントの残高は100、200、300など、100の倍数である必要があります。

サンプルコード:

Configure<DignitePointsBlockOptions>(options =>
{
    options.Factor = 100;
});

ユーザーポイントの管理

UserPointsItemManagerクラスはユーザーポイントを管理するための一連のメソッドを提供します。

  • ユーザーポイントの作成

    Task<UserPointsItem> CreateAsync(
          PointsType pointsType,
          string pointsDefinitionName,
          string pointsWorkflowName,
          int points,
          DateTime expirationDate,
          Guid userId,
          Guid? tenantId)
    
    • pointsType: ユーザーポイントのタイプです。2つの値を持つ列挙型です。
      • General: 通常のポイントで、すべての通常のポイントは統合して消費できます。
      • Specialized: 専用ポイントで、ポイントを消費する際にポイントワークフローを指定する必要があります。
    • pointsDefinitionName: ユーザーポイントのポイント定義名です。これはポイントの定義Nameです。
    • pointsWorkflowName: ユーザーポイントのポイントワークフロー名です。これはポイントの定義PointsWorkflowNameです。
    • points: ユーザーポイントの値
    • expirationDate: ポイントの有効期限
    • userId: ポイントの所有者のユーザーID
    • tenantId: ポイントの所属テナントID
  • ユーザーポイントの削除

    Task DeleteAsync(UserPointsItem pointsItem)
    

ユーザーポイントオーダーの管理

UserPointsOrderManagerクラスはユーザーポイントのオーダーを管理するための一連のメソッドを提供します。

  • ポイントオーダーの作成

    Task<UserPointsOrder> CreateAsync(
          int points,
          string businessOrderType,
          string businessOrderNumber, 
          Guid userId,
          PointsType pointsType = PointsType.General, 
          string pointsDefinitionName = null, 
          string pointsWorkflowName = null,
          Guid? tenantId=null)
    
    • points: 消費するポイントの値
    • businessOrderType: ビジネスオーダーのタイプ
    • businessOrderNumber: ビジネスオーダーの番号
    • userId: ポイント消費者のユーザーID
    • pointsType: 消費するポイントのタイプです。2つの値を持つ列挙型です。
      • General: 通常のポイントを消費します。
      • Specialized: ポイント定義名とポイントワークフロー名を指定する必要があります。
    • pointsDefinitionName: 消費するポイントのポイント定義名です。これはポイントの定義Nameです。
    • pointsWorkflowName: 消費するポイントのポイントワークフロー名です。これはポイントの定義PointsWorkflowNameです。
    • tenantId: 消費するポイントの所属テナントID
  • ポイントオーダーの削除

    Task DeleteAsync(UserPointsOrder pointsOrder, bool shouldRollbackPoints)
    
    • pointsOrder: ポイントオーダーエンティティオブジェクト
    • shouldRollbackPoints: ポイントを払い戻すかどうか
  • ビジネスオーダー番号でポイントオーダーを検索

    Task<UserPointsOrder> FindByBusinessOrderAsync(string businessOrderType, string businessOrderNumber)
    
    • businessOrderType: ビジネスオーダーのタイプ
    • businessOrderNumber: ビジネスオーダーの番号

API

  • ユーザーの利用可能なポイントの合計を取得

    Task<int> GetTotalPointsAsync(GetUserTotalPointsInput input)
    
    • ExpirationDate [オプション]: ポイントの有効期限
    • PointsDefinitionName [オプション]: ポイント定義名
    • PointsWorkflowName [オプション]: ポイントワークフロー名

    PointsDefinitionNamePointsWorkflowNameが設定されていない場合、すべての一般ポイントを取得します。

  • ユーザーポイントアイテムリストを取得

    Task<PagedResultDto<UserPointsItemDto>> GetListAsync(GetUserPointsItemsInput input)
    
    • StartTime [オプション]: ポイントの作成開始時間
    • EndTime [オプション]: ポイントの作成終了時間
    • PointsDefinitionName [オプション]: ポイント定義名
    • PointsWorkflowName [オプション]: ポイントワークフロー名

    PointsDefinitionNamePointsWorkflowNameが設定されていない場合、すべての一般ポイントを取得します。

InThisDocument