Files
FrameTour-BE/src/main/java/com/ycwl/basic/pricing/service/ICouponManagementService.java
Jerry Yan 9e0286e66e feat(pricing): 增加景区优惠券统计功能并优化优惠券使用逻辑
- 新增景区优惠券统计接口和相关查询方法
- 为优惠券配置和使用记录添加景区ID字段
- 实现优惠券使用时的景区限制检查
- 优化优惠券适用性的判断逻辑,增加对景区和商品类型的检查
2025-08-18 04:58:38 +08:00

112 lines
3.1 KiB
Java

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<PriceCouponConfig> getAllCouponConfigs();
/**
* 分页查询优惠券配置
*/
PageInfo<PriceCouponConfig> getCouponConfigsPage(Integer pageNum, Integer pageSize,
Boolean isActive, String couponName, String scenicId);
/**
* 根据状态查询优惠券配置
*/
List<PriceCouponConfig> getCouponConfigsByStatus(Boolean isActive);
/**
* 根据ID查询优惠券配置
*/
PriceCouponConfig getCouponConfigById(Long id);
// ==================== 优惠券领取记录查询 ====================
/**
* 查询所有优惠券领取记录
*/
List<PriceCouponClaimRecord> getAllClaimRecords();
/**
* 分页查询优惠券领取记录
*/
PageInfo<PriceCouponClaimRecord> getClaimRecordsPage(Integer pageNum, Integer pageSize,
Long userId, Long couponId, CouponStatus status,
String startTime, String endTime, String scenicId);
/**
* 根据用户ID查询优惠券领取记录
*/
List<PriceCouponClaimRecord> getClaimRecordsByUserId(Long userId);
/**
* 根据优惠券ID查询领取记录
*/
List<PriceCouponClaimRecord> getClaimRecordsByCouponId(Long couponId);
/**
* 根据状态查询领取记录
*/
List<PriceCouponClaimRecord> getClaimRecordsByStatus(CouponStatus status);
/**
* 查询优惠券使用统计
*/
Map<String, Object> getCouponUsageStats(Long couponId);
/**
* 查询优惠券配置详细统计
*/
Map<String, Object> getCouponDetailStats(Long couponId);
/**
* 查询时间范围内的统计数据
*/
Map<String, Object> getPeriodStats(String startDate, String endDate, String scenicId);
/**
* 查询所有优惠券的使用统计概览
*/
List<Map<String, Object>> getAllCouponUsageOverview();
/**
* 查询景区优惠券统计
*/
Map<String, Object> getScenicCouponStats(String scenicId);
}