You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

MemberOnceCardModel.php 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace app\model\store\project;
  3. use app\model\user\User;
  4. use crmeb\basic\BaseModel;
  5. use crmeb\traits\ModelTrait;
  6. class MemberOnceCardModel extends BaseModel
  7. {
  8. use ModelTrait;
  9. protected $name = 'store_member_once_card';
  10. protected $pk = 'member_once_card_id';
  11. protected $type = [
  12. 'pay_info' => 'array',
  13. ];
  14. public function oncecard()
  15. {
  16. return $this->hasOne(OnceCardModel::class, 'once_card_id', 'once_card_id');
  17. }
  18. public function member()
  19. {
  20. return $this->hasOne(User::class, 'uid', 'member_id');
  21. }
  22. public function items()
  23. {
  24. return $this->hasMany(MemberOnceCardItemModel::class, 'member_once_card_id', 'member_once_card_id');
  25. }
  26. public function getStatusMeansAttr($value, $data)
  27. {
  28. $today = date('Y-m-d');
  29. if ($data['status'] == 8) return '已完成';
  30. if ($data['status'] == 1 && $data['valid_end_time'] >= $today) return '待消费';
  31. if ($data['status'] == 1 && $data['valid_end_time'] < $today) return '已过期';
  32. return '状态异常';
  33. }
  34. //前台需要
  35. public function getStatusAnotherAttr($value, $data)
  36. {
  37. $today = date('Y-m-d');
  38. if ($data['status'] == 8) return 8;
  39. if ($data['status'] == 1 && $data['valid_end_time'] >= $today) return 1;
  40. return -1;
  41. }
  42. public function getPayTimeFormatAttr($value, $data)
  43. {
  44. return $data['pay_time'] ? date('Y-m-d H:i:s', $data['pay_time']) : '-';
  45. }
  46. public function getPayTypeMeanAttr($value, $data)
  47. {
  48. $type_means = [
  49. 'weixin' => '微信支付',
  50. 'money' => '余额支付',
  51. 'offline' => '代客下单',
  52. ];
  53. return $type_means[$data['pay_type']] ?? '-';
  54. }
  55. }