package com.mzl.flower.service.coupon;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.mzl.flower.dto.request.coupon.*;
|
import com.mzl.flower.dto.response.coupon.CouponRecordVO;
|
import com.mzl.flower.entity.coupon.CouponRecordDO;
|
|
import java.math.BigDecimal;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 服务类
|
* </p>
|
*
|
* @author @TaoJie
|
* @since 2024-08-27
|
*/
|
public interface CouponRecordService extends IService<CouponRecordDO> {
|
|
List<CouponRecordVO> getList(QueryCouponRecordDTO dto) ;
|
boolean createCouponRecord(CreateCouponRecordDTO dto);
|
|
boolean updateCouponRecord(CreateCouponRecordDTO dto);
|
|
boolean deleteCouponRecord(String id);
|
|
CouponRecordVO getCouponRecordById(String id);
|
|
Page<CouponRecordVO> getPage(Page page, QueryCouponRecordDTO dto);
|
|
/**
|
* 会员定时任务
|
* 根据会员等级定时下发刷优惠券
|
* @return
|
*/
|
boolean grantVipCouponRecordList();
|
|
/**
|
* 根据当月日期设置上个月的日期的优惠券过期
|
* @return
|
*/
|
boolean expiredCouponRecordLastMon();
|
|
Integer statisCouponTemplateCount(QueryCouponStatisticsBO queryCouponStatisticsBO);
|
|
Integer statisCouponTemplateCurMonCount(QueryCouponStatisticsBO queryCouponStatisticsBO);
|
|
Integer statisCouponPointCurMonPontAmonut(QueryCouponStatisticsBO queryCouponStatisticsBO);
|
|
/**
|
* 根据优惠券种类,优惠券ID,用户的ID查找优惠券的记录数量
|
* @param queryExistCouponDTO
|
* @return
|
*/
|
Integer getExistCouponAmount(QueryExistCouponDTO queryExistCouponDTO);
|
|
/**
|
* 根据优惠券的ID来查找已经领取的优惠券的数量
|
* @param couponId
|
* @return
|
*/
|
Integer getExistGainCouponRecordAmountById(String couponId);
|
|
Integer getUserGainCouponRecordAmountById(String couponId,Long customerId);
|
|
/**
|
*
|
* @param couponId
|
* @param userId
|
* @return
|
*/
|
Integer getUserGainCouponRecordAmountByUserId(String couponId,String userId);
|
|
List<CouponRecordVO> getMineCouponRecordList(QueryMineCouponRecordDTO dto);
|
|
/**
|
* 检查优惠券是否到期
|
* @param dto
|
*/
|
void checkCouponExpired(QueryMineCouponRecordDTO dto);
|
|
boolean checkCurMonVipCouponExists(String couponId, Long customId, LocalDateTime startDateTime,LocalDateTime endDateTime);
|
|
|
/**
|
* 优惠券的使用
|
* @param couponId 优惠券ID
|
* @param orderId 订单的ID
|
* @param orderMount 订单的金额
|
* @return
|
*/
|
boolean useCoupon(String couponId, String orderId, BigDecimal orderMount);
|
|
/**
|
* 优惠券退单
|
* @param orderId
|
* @return
|
*/
|
boolean cancelCouponUsage(String orderId);
|
|
/**
|
* 根据订单号查找优惠券信息
|
* @param orderId
|
* @return
|
*/
|
List<CouponRecordDO> getCouponListByOrderId(String orderId) ;
|
|
|
CouponRecordDO getCouponByOrderId(String orderId) ;
|
|
/**
|
* 查看当前人员是否已经重复发过此优惠券
|
* @param couponId
|
* @param customId
|
* @return
|
*/
|
boolean checkUserCouponExists(String couponId, Long customId);
|
|
|
boolean expireCouponRecordAll();
|
|
CouponRecordVO getUnusedFit(QueryMineCouponRecordDTO dto);
|
}
|