package com.ycwl.basic.pricing.service; import com.github.pagehelper.PageInfo; import com.ycwl.basic.pricing.entity.PriceCouponClaimRecord; import com.ycwl.basic.pricing.entity.PriceCouponConfig; import com.ycwl.basic.pricing.enums.CouponStatus; import java.util.List; import java.util.Map; /** * 优惠券管理服务接口(管理端) */ public interface ICouponManagementService { // ==================== 优惠券配置管理 ==================== /** * 创建优惠券配置 */ Long createCouponConfig(PriceCouponConfig config); /** * 更新优惠券配置 */ boolean updateCouponConfig(PriceCouponConfig config); /** * 删除优惠券配置 */ boolean deleteCouponConfig(Long id); /** * 启用/禁用优惠券配置 */ boolean updateCouponConfigStatus(Long id, Boolean isActive); /** * 查询所有优惠券配置(包含禁用的) */ List getAllCouponConfigs(); /** * 分页查询优惠券配置 */ PageInfo getCouponConfigsPage(Integer pageNum, Integer pageSize, Boolean isActive, String couponName); /** * 根据状态查询优惠券配置 */ List getCouponConfigsByStatus(Boolean isActive); /** * 根据ID查询优惠券配置 */ PriceCouponConfig getCouponConfigById(Long id); // ==================== 优惠券领取记录查询 ==================== /** * 查询所有优惠券领取记录 */ List getAllClaimRecords(); /** * 分页查询优惠券领取记录 */ PageInfo getClaimRecordsPage(Integer pageNum, Integer pageSize, Long userId, Long couponId, CouponStatus status, String startTime, String endTime); /** * 根据用户ID查询优惠券领取记录 */ List getClaimRecordsByUserId(Long userId); /** * 根据优惠券ID查询领取记录 */ List getClaimRecordsByCouponId(Long couponId); /** * 根据状态查询领取记录 */ List getClaimRecordsByStatus(CouponStatus status); /** * 查询优惠券使用统计 */ Map getCouponUsageStats(Long couponId); /** * 查询优惠券配置详细统计 */ Map getCouponDetailStats(Long couponId); /** * 查询时间范围内的统计数据 */ Map getPeriodStats(String startDate, String endDate); /** * 查询所有优惠券的使用统计概览 */ List> getAllCouponUsageOverview(); }