WechatpayTransferBillModel.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. declare(strict_types=1);
  3. namespace SixShop\WechatPay\Model;
  4. use SixShop\Payment\Enum\NumberBizEnum;
  5. use think\db\Query;
  6. use think\Model;
  7. use SixShop\WechatPay\Enum\TransferBillStatusEnum;
  8. class WechatpayTransferBillModel extends Model
  9. {
  10. protected function getOptions(): array
  11. {
  12. return [
  13. 'name' => 'wechatpay_transfer_bill',
  14. 'type' => [
  15. 'state' => TransferBillStatusEnum::class,
  16. ],
  17. 'insert' => ['out_bill_no'],
  18. 'readonly' => ['user_id', 'mch_id', 'out_bill_no', 'appid', 'transfer_amount', 'fee', 'openid', 'user_name'],
  19. ];
  20. }
  21. public function searchStateAttr(Query $query, $value)
  22. {
  23. $value = TransferBillStatusEnum::tryFrom($value);
  24. if ($value) {
  25. $query->where('state', $value);
  26. }
  27. }
  28. public function searchOutBillNoAttr(Query $query, $value)
  29. {
  30. if ($value) {
  31. $query->where('out_bill_no', $value);
  32. }
  33. }
  34. protected function setOutBillNoAttr($value, $data): string
  35. {
  36. return generate_number(NumberBizEnum::WITHDRAWAL);
  37. }
  38. }