ExchangeCodeService.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.cyksj.service.exchange;
  2. import com.baomidou.mybatisplus.extension.service.IService;
  3. import com.cyksj.dto.Result;
  4. import com.cyksj.model.entity.ExchangeCode;
  5. import com.cyksj.model.entity.GoodsDon;
  6. import com.cyksj.model.entity.GoodsDonSku;
  7. import com.cyksj.model.entity.GroupsRelation;
  8. import com.cyksj.model.entity.OrderDon;
  9. import com.cyksj.model.excel.ExcelExchangeCodeData;
  10. import com.cyksj.model.request.ExchangeCodeReq;
  11. import com.cyksj.model.request.ExchangeCodeTicket;
  12. import java.util.List;
  13. /*
  14. *项目名: netflix
  15. *文件名: ExchangeCodeService
  16. *创建者: JavaZou
  17. *创建时间:2022/11/7 15:41
  18. */
  19. public interface ExchangeCodeService extends IService<ExchangeCode> {
  20. /**
  21. * 生成兑换码
  22. */
  23. List<ExcelExchangeCodeData> createExchangeCode(ExchangeCodeReq exchangeCodeReq) throws Exception;
  24. /**
  25. * 兑换码兑换
  26. */
  27. Result<String> getTicketByExchangeCode(ExchangeCodeTicket exchangeCodeTicket, Long userId) throws Exception;
  28. /**
  29. * 获取兑换码
  30. */
  31. String getExCode(Long goodsId, Long skuId, Integer type);
  32. /**
  33. * 获取车票
  34. */
  35. GroupsRelation getGroupTripsTicket(Long yhsId, GoodsDonSku sku, Long userId, OrderDon exCodeOrderDon, OrderDon.Type orderDonTye, String exCode);
  36. /**
  37. * 获取车票车位
  38. */
  39. GroupsRelation getRelationNoOrder(GoodsDonSku sku, Long userId, Long yhsId);
  40. /**
  41. * Attempts one ticket allocation without swallowing the failure. Multi-quantity
  42. * fulfillment uses this entry so its per-slot transaction can roll back cleanly.
  43. */
  44. GroupsRelation getRelationNoOrderOnce(GoodsDon goods, GoodsDonSku sku, Long userId, Long yhsId);
  45. /** Releases only the seat lock owned by the specified user. */
  46. void releaseRelationLock(Long relationId, Long userId);
  47. }