CardClassificationService DB問い合わせ実装(LoadMemberInfo/LoadSeatInfo)

Resolved 💬 3 comments Opened Dec 24, 2025 by error21 Closed Feb 12, 2026

概要

Issue #773 (Device Service Layer 統合) の続き。CardClassificationService に DB 問い合わせ機能を追加し、カードIDから会員情報・打席情報を取得できるようにする。

背景

現在の CardClassificationService は:

  • カードID先頭文字でカード種別を判定(Step 7)
  • MemberCardClassifiedEvent 等を発行(Step 8-9)

しかし、MemberCardData に含まれる MemberNo, Balance 等は未設定(カードIDのみ)。

実装内容

1. データモデル追加 (SharedDataService/Models/)

// UchipEntity.cs - m_uchip テーブル
public class UchipEntity : DatabaseEntity
{
    public string UchipNO { get; set; }  // カードUID(主キー)
    public int Type { get; set; }        // 0=未登録, 1=会員, 10=打席
    public int MemberNO { get; set; }    // 会員番号
    public int SeatNO { get; set; }      // 打席番号
    public int UchipReissueNO { get; set; }
    public int Deposit { get; set; }
    public int PrintNO { get; set; }
}

// MemberMasterEntity.cs - m_membermaster テーブル
public class MemberMasterEntity : DatabaseEntity
{
    public int MemberNO { get; set; }
    public string MemberName { get; set; }
    public int MemberType { get; set; }
    public int Balance { get; set; }
    // ... 必要なフィールド
}

2. リポジトリ追加 (SharedDataService/Repositories/)

// ICardDataRepository.cs
public interface ICardDataRepository
{
    Task<UchipEntity> GetUchipByCardIdAsync(string cardId);
    Task<MemberMasterEntity> GetMemberByMemberNoAsync(int memberNo);
}

3. CardClassificationService 修正

private async Task<MemberCardData> LoadMemberInfoAsync(string cardId)
{
    var uchip = await _cardDataRepository.GetUchipByCardIdAsync(cardId);
    if (uchip == null || uchip.Type != 1) return null;
    
    var member = await _cardDataRepository.GetMemberByMemberNoAsync(uchip.MemberNO);
    return new MemberCardData
    {
        CardId = cardId,
        MemberNo = member.MemberNO,
        MemberType = member.MemberType,
        Balance = member.Balance,
        // ...
    };
}

判定ロジック

| m_uchip.Type | カード種類 |
|--------------|------------|
| 0 | 未登録 |
| 1 | 会員カード |
| 10 | 打席カード |

関連

  • Parent: #773 (Device Service Layer 統合)
  • 参考: wesp/Common/COMDB2.csUchipDBRead_Dapper メソッド

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗