package com.jsowell.pile.mapper;

import com.jsowell.pile.domain.MemberWalletInfo;
import com.jsowell.pile.vo.base.MemberWalletVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface MemberWalletInfoMapper {
    /**
     * delete by primary key
     *
     * @param id primaryKey
     * @return deleteCount
     */
    int deleteByPrimaryKey(Integer id);

    /**
     * insert record to table
     *
     * @param record the record
     * @return insert count
     */
    int insert(MemberWalletInfo record);

    /**
     * insert record to table selective
     *
     * @param record the record
     * @return insert count
     */
    int insertSelective(MemberWalletInfo record);

    /**
     * select by primary key
     *
     * @param id primary key
     * @return object by primary key
     */
    MemberWalletInfo selectByPrimaryKey(Integer id);

    /**
     * update record selective
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKeySelective(MemberWalletInfo record);

    /**
     * update record
     *
     * @param record the updated record
     * @return update count
     */
    int updateByPrimaryKey(MemberWalletInfo record);

    // MemberWalletInfo selectByMemberId(String memberId);

    /**
     * 根据会员id和目标运营商id查询用户钱包信息
     * @param memberId
     * @param merchantId
     * @return
     */
    MemberWalletInfo selectByMemberId(@Param("memberId") String memberId, @Param("merchantId") String merchantId);

    List<MemberWalletInfo> selectByMemberWalletList(@Param("memberId") String memberId);

    MemberWalletInfo selectByWalletCode(@Param("walletCode") String walletCode);

    MemberWalletVO selectMemberWalletInfo(String walletCode);
}