package com.ruoyi.other.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TExchangeCodePackage; import com.ruoyi.other.api.dto.ExchangeCodeBindDTO; import com.ruoyi.other.api.dto.ExchangeCodeConsumeDTO; import com.ruoyi.other.api.dto.ExchangeCodePackageSaveDTO; import com.ruoyi.other.api.dto.ExchangeCodeUseRecordQuery; import com.ruoyi.other.api.domain.TExchangeCodeUseRecord; import com.ruoyi.other.api.vo.ExchangeCodeBindResultVO; import com.ruoyi.other.api.vo.ExchangeCodeConsumeResultVO; import com.ruoyi.other.api.vo.ExchangeCodePackageDetailVO; import com.ruoyi.other.query.ExchangeCodeBatchInvalidDTO; import com.ruoyi.other.query.ExchangeCodeDetailQuery; import com.ruoyi.other.query.ExchangeCodePackageQuery; import com.ruoyi.other.vo.ExchangeCodeBatchInvalidResultVO; import com.ruoyi.other.vo.ExchangeCodeDetailVO; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; public interface TExchangeCodePackageService extends IService { PageInfo pageList(ExchangeCodePackageQuery query); void savePackage(ExchangeCodePackageSaveDTO dto); void updatePackage(ExchangeCodePackageSaveDTO dto); void deletePackage(String ids); ExchangeCodePackageDetailVO getDetail(Long id); PageInfo codePage(ExchangeCodeDetailQuery query); List exportCodes(ExchangeCodeDetailQuery query); ExchangeCodeBatchInvalidResultVO batchInvalidate(ExchangeCodeBatchInvalidDTO dto); List listDownloadableCodes(Long packageId, boolean onlyUnbound); ExchangeCodeDetailVO getCodeDetail(Long id); ExchangeCodeBindResultVO bindExchangeCode(ExchangeCodeBindDTO dto, Long userId, String phone); Map getUserExchangeCodeBalanceMap(List userIds); ExchangeCodeConsumeResultVO consumeBalance(ExchangeCodeConsumeDTO dto); Page useRecordPage(ExchangeCodeUseRecordQuery query); TExchangeCodeUseRecord useRecordDetail(Long id, Long userId); }