Transaction.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. class Transaction extends Model
  5. {
  6. protected $autoWriteTimestamp=true;
  7. protected $updateTime=null;
  8. const TYPE_ORDER='orders';
  9. const TYPE_REFUND='order_info_refund';
  10. public static $types=[
  11. self::TYPE_ORDER=>'订单付款',
  12. self::TYPE_REFUND=>'订单退款',
  13. ];
  14. /**
  15. * @return string[]
  16. */
  17. public static function getTypes(): array
  18. {
  19. return self::$types;
  20. }
  21. public function trans(){
  22. return $this->morphTo('trans',[
  23. Orders::class=>'orders',
  24. Refund::class=>'order_info_refund',
  25. ]);
  26. }
  27. public function user(){
  28. return $this->belongsTo(User::class)->setEagerlyType(0);
  29. }
  30. public static function addTransaction(Model $model){
  31. $trans=new self;
  32. $trans['trans_type']=$model->getTable();
  33. $trans['trans_id']=$model[$model->getPk()];
  34. $trans['user_id']=$model['user_id'];
  35. $trans['amount']=0;
  36. if($model instanceof Orders){
  37. $trans['amount']=$model->amount_pay;
  38. }elseif ($model instanceof Refund){
  39. $trans['amount']=$model->amount;
  40. }
  41. if($trans['amount']>0){
  42. $trans->save();
  43. }
  44. }
  45. }