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<TExchangeCodePackage> {
|
|
/**
|
* 分页查询兑换码卡包列表。
|
*
|
* @param query 查询条件
|
* @return 卡包分页结果
|
*/
|
PageInfo<TExchangeCodePackage> pageList(ExchangeCodePackageQuery query);
|
|
/**
|
* 新增兑换码卡包。
|
*
|
* @param dto 卡包保存参数
|
*/
|
void savePackage(ExchangeCodePackageSaveDTO dto);
|
|
/**
|
* 编辑兑换码卡包。
|
*
|
* @param dto 卡包保存参数
|
*/
|
void updatePackage(ExchangeCodePackageSaveDTO dto);
|
|
/**
|
* 更新兑换码卡包启用状态。
|
*
|
* @param id 卡包ID
|
* @param status 启用状态
|
*/
|
void updatePackageStatus(Long id, Integer status);
|
|
/**
|
* 刷新所有已过领取截止日期的兑换码卡包未绑定兑换码状态。
|
*/
|
void refreshExpiredPackageCodes();
|
|
/**
|
* 删除兑换码卡包。
|
*
|
* @param ids 卡包ID,多个ID用英文逗号分隔
|
*/
|
void deletePackage(String ids);
|
|
/**
|
* 查询兑换码卡包详情。
|
*
|
* @param id 卡包ID
|
* @return 卡包详情
|
*/
|
ExchangeCodePackageDetailVO getDetail(Long id);
|
|
/**
|
* 分页查询兑换码明细。
|
*
|
* @param query 查询条件
|
* @return 兑换码明细分页结果
|
*/
|
PageInfo<ExchangeCodeDetailVO> codePage(ExchangeCodeDetailQuery query);
|
|
/**
|
* 导出兑换码明细。
|
*
|
* @param query 查询条件
|
* @return 兑换码明细导出数据
|
*/
|
List<ExchangeCodeDetailVO> exportCodes(ExchangeCodeDetailQuery query);
|
|
/**
|
* 批量失效兑换码。
|
*
|
* @param dto 失效参数
|
* @return 失效结果
|
*/
|
ExchangeCodeBatchInvalidResultVO batchInvalidate(ExchangeCodeBatchInvalidDTO dto);
|
|
/**
|
* 查询可下载二维码的兑换码列表。
|
*
|
* @param packageId 卡包ID
|
* @param onlyUnbound 是否只查询未绑定兑换码
|
* @return 可下载二维码的兑换码列表
|
*/
|
List<ExchangeCodeDetailVO> listDownloadableCodes(Long packageId, boolean onlyUnbound);
|
|
/**
|
* 查询兑换码明细。
|
*
|
* @param id 兑换码明细ID
|
* @return 兑换码明细
|
*/
|
ExchangeCodeDetailVO getCodeDetail(Long id);
|
|
/**
|
* 绑定兑换码。
|
*
|
* @param dto 绑定参数
|
* @param userId 用户ID
|
* @param phone 手机号
|
* @return 绑定结果
|
*/
|
ExchangeCodeBindResultVO bindExchangeCode(ExchangeCodeBindDTO dto, Long userId, String phone);
|
|
/**
|
* 查询用户兑换码余额映射。
|
*
|
* @param userIds 用户ID集合
|
* @return 用户余额映射
|
*/
|
Map<Long, java.math.BigDecimal> getUserExchangeCodeBalanceMap(List<Long> userIds);
|
|
/**
|
* 扣减用户兑换码余额。
|
*
|
* @param dto 扣减参数
|
* @return 扣减结果
|
*/
|
ExchangeCodeConsumeResultVO consumeBalance(ExchangeCodeConsumeDTO dto);
|
|
/**
|
* 退款返还用户兑换码余额。
|
*
|
* @param dto 退款参数
|
* @return 退款结果
|
*/
|
ExchangeCodeConsumeResultVO refundBalance(ExchangeCodeConsumeDTO dto);
|
|
/**
|
* 分页查询兑换码余额流水。
|
*
|
* @param query 查询条件
|
* @return 流水分页结果
|
*/
|
Page<TExchangeCodeUseRecord> useRecordPage(ExchangeCodeUseRecordQuery query);
|
|
/**
|
* 查询兑换码余额流水详情。
|
*
|
* @param id 流水ID
|
* @param userId 用户ID
|
* @return 流水详情
|
*/
|
TExchangeCodeUseRecord useRecordDetail(Long id, Long userId);
|
}
|