package cn.lili.modules.promotion.service; import cn.lili.common.vo.PageVO; import cn.lili.modules.promotion.entity.dos.MemberCoupon; import cn.lili.modules.promotion.entity.dto.search.MemberCouponSearchParams; import cn.lili.modules.promotion.entity.vos.MemberCouponVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 会员优惠券业务层 * * @author Chopper * @since 2020/11/18 9:45 上午 */ public interface MemberCouponService extends IService { /** * 检查该会员领取优惠券的可领取数量 * * @param couponId 优惠券编号 * @param memberId 会员 */ void checkCouponLimit(String couponId, String memberId); /** * 领取优惠券 * * @param couponId 优惠券编号 * @param memberId 会员 * @param memberName 会员名称 */ void receiveBuyerCoupon(String couponId, String memberId, String memberName); /** * 领取优惠券 * * @param couponId 优惠券编号 * @param memberId 会员 * @param memberName 会员名称 */ void receiveCoupon(String couponId, String memberId, String memberName); /** * 获取会员优惠券列表 * * @param param 查询参数 * @param pageVo 分页参数 * @return 会员优惠券列表 */ IPage getMemberCoupons(MemberCouponSearchParams param, PageVO pageVo); /** * 获取会员优惠券列表 * * @param param 查询参数 * @return 会员优惠券列表 */ List getMemberCoupons(MemberCouponSearchParams param); /** * 获取当前用户的优惠券列表(优先读取缓存) * * @param memberId 会员id * @return 会员优惠券列表 */ List getMemberCoupons(String memberId); /** * 获取会员优惠券列表 * * @param param 查询参数 * @param totalPrice 当前商品总价 * @param pageVo 分页参数 * @return 会员优惠券列表 */ IPage getMemberCouponsByCanUse(MemberCouponSearchParams param, Double totalPrice, PageVO pageVo); /** * 获取当前会员当前商品可用的会员优惠券 * * @param memberId 会员Id * @param couponIds 优惠券id列表 * @param totalPrice 当前商品总价 * @return 会员优惠券列表 */ List getCurrentGoodsCanUse(String memberId, List couponIds, Double totalPrice); /** * 获取当前会员全品类优惠券 * * @param memberId 会员Id * @param storeId 店铺id * @return 会员优惠券列表 */ List getAllScopeMemberCoupon(String memberId, List storeId); /** * 获取会员优惠券 * * @param param 查询参数 * @return 会员优惠券列表 */ MemberCoupon getMemberCoupon(MemberCouponSearchParams param); /** * 获取会员优惠券数量 * * @return 会员优惠券数量 */ long getMemberCouponsNum(); /** * 使用优惠券 * * @param ids 会员优惠券id */ void used(String memberId, List ids); /** * 作废当前会员优惠券 * * @param id id */ void cancellation(String memberId, String id); /** * 作废无效的会员优惠券 * * @return 是否操作成功 */ boolean expireInvalidMemberCoupon(String memberId); /** * 关闭会员优惠券 * * @param couponIds 优惠券id集合 */ void closeMemberCoupon(List couponIds); /** * 恢复会员优惠券 * * @param memberCouponIds 会员优惠券id列表 * @return 是否恢复成功 */ boolean recoveryMemberCoupon(List memberCouponIds); /** * 作废优惠券 * * @param couponId 优惠券ID */ void voidCoupon(String couponId); /** * 获取会员优惠券列表 * * @param page 分页参数 * @param param 查询参数 * @return 会员优惠券列表 */ Page getMemberCouponsPage(Page page, MemberCouponSearchParams param); void queryExportCoupon(HttpServletResponse response, MemberCouponSearchParams searchParams); /** * 获取会员领取过的优惠券数量 */ long getMemberCouponNum(String memberId, String couponId); }