TransferOutThirdPartyValidation.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Module\Transfer\Validations;
  3. use UCore\ValidationCore;
  4. use App\Module\Transfer\Validators\TransferBalanceValidator;
  5. /**
  6. * 第三方应用转出验证类
  7. * 专门为第三方应用提取请求设计,跳过密码验证
  8. */
  9. class TransferOutThirdPartyValidation extends ValidationCore
  10. {
  11. /** @var \App\Module\Transfer\Models\TransferApp|null 转账应用对象,由验证器设置 */
  12. public ?\App\Module\Transfer\Models\TransferApp $transfer_app = null;
  13. /**
  14. * 验证规则
  15. */
  16. public function rules($rules = []): array
  17. {
  18. return [
  19. // 基础验证
  20. ['transfer_app_id,user_id', 'required'],
  21. ['transfer_app_id,user_id', 'integer', 'min' => 1],
  22. ['amount', 'required'],
  23. ['amount', 'string'], // 第三方应用金额作为字符串处理,避免精度问题
  24. // 余额验证:确保用户余额充足
  25. ['amount', new TransferBalanceValidator($this), 'msg' => '用户余额不足'],
  26. // 注意:这里不要求password字段,因为第三方应用不需要密码验证
  27. ['google_code', 'string', 'size' => 6],
  28. ['out_user_id', 'string', 'max' => 50],
  29. ['remark', 'string', 'max' => 255],
  30. ['callback_data', 'array'],
  31. ];
  32. }
  33. /**
  34. * 默认值
  35. */
  36. public function default(): array
  37. {
  38. return [];
  39. }
  40. }