ApplyInvoiceDto.java 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.ruoyi.system.domain.dto;
  2. import jakarta.validation.constraints.Email;
  3. import jakarta.validation.constraints.NotBlank;
  4. import jakarta.validation.constraints.NotNull;
  5. import jakarta.validation.constraints.Pattern;
  6. import lombok.Data;
  7. /**
  8. * 客户申请开票入参。
  9. *
  10. * @author ruoyi
  11. * @date 2026-06-16
  12. */
  13. @Data
  14. public class ApplyInvoiceDto {
  15. /** 订单 id(须为当前登录客户的订单、state=3、payStatus=1) */
  16. @NotNull(message = "订单不能为空")
  17. private Long orderId;
  18. /** 发票类型 B2C/B2B */
  19. @NotBlank(message = "发票类型不能为空")
  20. @Pattern(regexp = "B2C|B2B|DONATION", message = "发票类型只能为 B2C、B2B 或 DONATION")
  21. private String category;
  22. /** 买方名称(B2B 公司名 / B2C 客户名;捐赠发票可不填,service 内按场景校验/回填) */
  23. private String buyerName;
  24. /** 买方统一编号(统编 8 码;B2B 必填,service 内强校验;B2C 不传) */
  25. @Pattern(regexp = "\\d{8}", message = "统一编号必须为 8 位数字")
  26. private String buyerUbn;
  27. /** 买方邮箱(B2B 必填;B2C 选 ezPay会员载具(2)时不收、其余可空) */
  28. @Email(message = "邮箱格式不正确")
  29. private String buyerEmail;
  30. /** 载具类型 0手机条码/1自然人凭证/2ezPay会员(B2C 必填,B2B 不传) */
  31. private String carrierType;
  32. /** 载具号码(carrierType 非空时必填,service 内校验) */
  33. private String carrierNum;
  34. /** 捐赠码(爱心码 3-7 位数字;category=B2C 且非空 → 捐赠分支,与载具/统编互斥,service 内校验) */
  35. private String loveCode;
  36. }