CouponService.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package com.zsElectric.boot.business.service;
  2. import com.zsElectric.boot.business.model.entity.Coupon;
  3. import com.zsElectric.boot.business.model.form.CouponForm;
  4. import com.zsElectric.boot.business.model.query.CouponQuery;
  5. import com.zsElectric.boot.business.model.vo.CouponVO;
  6. import com.baomidou.mybatisplus.core.metadata.IPage;
  7. import com.baomidou.mybatisplus.extension.service.IService;
  8. import java.math.BigDecimal;
  9. import java.time.LocalDateTime;
  10. /**
  11. * 优惠劵服务类
  12. *
  13. * @author zsElectric
  14. * @since 2025-12-19 09:58
  15. */
  16. public interface CouponService extends IService<Coupon> {
  17. /**
  18. *优惠劵分页列表
  19. *
  20. * @return {@link IPage<CouponVO>} 优惠劵分页列表
  21. */
  22. IPage<CouponVO> getCouponPage(CouponQuery queryParams);
  23. /**
  24. * 获取优惠劵表单数据
  25. *
  26. * @param id 优惠劵ID
  27. * @return 优惠劵表单数据
  28. */
  29. CouponForm getCouponFormData(Long id);
  30. /**
  31. * 新增优惠劵
  32. *
  33. * @param formData 优惠劵表单对象
  34. * @return 是否新增成功
  35. */
  36. boolean saveCoupon(CouponForm formData);
  37. /**
  38. * 修改优惠劵
  39. *
  40. * @param id 优惠劵ID
  41. * @param formData 优惠劵表单对象
  42. * @return 是否修改成功
  43. */
  44. boolean updateCoupon(Long id, CouponForm formData);
  45. /**
  46. * 删除优惠劵
  47. *
  48. * @param ids 优惠劵ID,多个以英文逗号(,)分割
  49. * @return 是否删除成功
  50. */
  51. boolean deleteCoupons(String ids);
  52. /**
  53. * 检查优惠券是否有效
  54. *
  55. * @param couponId 优惠券ID
  56. * @return 是否有效
  57. */
  58. boolean isValidCoupon(Long couponId);
  59. /**
  60. * 检查优惠券是否可以使用
  61. *
  62. * @param couponId 优惠券ID
  63. * @param orderAmount 订单金额
  64. * @return 是否可以使用
  65. */
  66. boolean canUseCoupon(Long couponId, BigDecimal orderAmount);
  67. /**
  68. * 使用优惠券
  69. *
  70. * @param couponId 优惠券ID
  71. * @param orderId 订单ID
  72. * @param orderAmount 订单金额
  73. * @return 实际优惠金额
  74. */
  75. BigDecimal useCoupon(Long couponId, Long orderId, BigDecimal orderAmount);
  76. /**
  77. * 过期优惠券处理
  78. *
  79. * @param couponId 优惠券ID
  80. * @return 是否处理成功
  81. */
  82. boolean expireCoupon(Long couponId);
  83. /**
  84. * 获取用户指定状态的优惠券列表
  85. *
  86. * @param userId 用户ID
  87. * @param status 优惠券状态
  88. * @return 优惠券列表
  89. */
  90. java.util.List<Coupon> getUserCouponsByStatus(Long userId, Integer status);
  91. /**
  92. * 根据模板ID和用户ID获取用户持有的优惠券
  93. *
  94. * @param templateId 模板ID
  95. * @param userId 用户ID
  96. * @return 优惠券列表
  97. */
  98. java.util.List<Coupon> getCouponsByTemplateAndUser(Long templateId, Long userId);
  99. }