Prize.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. namespace app\admin\model\lottery;
  3. use think\Model;
  4. /**
  5. * 抽奖奖品模型
  6. */
  7. class Prize extends Model
  8. {
  9. // 表名
  10. protected $name = 'shop_lottery_prize';
  11. // 自动写入时间戳字段
  12. protected $autoWriteTimestamp = 'int';
  13. // 定义时间戳字段名
  14. protected $createTime = 'createtime';
  15. protected $updateTime = 'updatetime';
  16. protected $deleteTime = 'deletetime';
  17. // 软删除
  18. use \traits\model\SoftDelete;
  19. // 追加属性
  20. protected $append = [
  21. 'type_text',
  22. 'status_text'
  23. ];
  24. // 奖品类型常量 - 与ActivityEnum保持一致
  25. const TYPE_NO_PRIZE = 1; // 未中奖
  26. const TYPE_GOODS = 2; // 实物奖品
  27. const TYPE_POINTS = 3; // 积分
  28. const TYPE_BALANCE = 4; // 余额
  29. const TYPE_COUPON = 5; // 优惠券
  30. const TYPE_REDPACK = 6; // 红包
  31. const TYPE_CODE = 7; // 兑换码
  32. const TYPE_SHOP_GOODS = 8; // 商城奖品
  33. // 状态
  34. const STATUS_DISABLED = 0; // 禁用
  35. const STATUS_ENABLED = 1; // 启用
  36. // 发放方式
  37. const DELIVER_TYPE_AUTO = 1; // 自动发放
  38. const DELIVER_TYPE_MANUAL = 2; // 手动发放
  39. /**
  40. * 获取奖品类型列表
  41. */
  42. public static function getTypeList()
  43. {
  44. return [
  45. self::TYPE_NO_PRIZE => '未中奖',
  46. self::TYPE_GOODS => '实物奖品',
  47. self::TYPE_POINTS => '积分',
  48. self::TYPE_BALANCE => '余额',
  49. self::TYPE_COUPON => '优惠券',
  50. self::TYPE_REDPACK => '红包',
  51. self::TYPE_CODE => '兑换码',
  52. self::TYPE_SHOP_GOODS => '商城奖品'
  53. ];
  54. }
  55. /**
  56. * 获取发放方式列表
  57. */
  58. public static function getDeliverTypeList()
  59. {
  60. return [
  61. self::DELIVER_TYPE_AUTO => '自动发放',
  62. self::DELIVER_TYPE_MANUAL => '手动发放'
  63. ];
  64. }
  65. /**
  66. * 获取状态列表
  67. */
  68. public static function getStatusList()
  69. {
  70. return [
  71. self::STATUS_DISABLED => '禁用',
  72. self::STATUS_ENABLED => '启用'
  73. ];
  74. }
  75. /**
  76. * 获取类型文本
  77. */
  78. public function getTypeTextAttr($value, $data)
  79. {
  80. $typeList = self::getTypeList();
  81. return isset($typeList[$data['type']]) ? $typeList[$data['type']] : '';
  82. }
  83. /**
  84. * 获取状态文本
  85. */
  86. public function getStatusTextAttr($value, $data)
  87. {
  88. $statusList = self::getStatusList();
  89. return isset($statusList[$data['status']]) ? $statusList[$data['status']] : '';
  90. }
  91. /**
  92. * 关联活动
  93. */
  94. public function activity()
  95. {
  96. return $this->belongsTo('app\\admin\\model\\lottery\\Activity', 'activity_id', 'id');
  97. }
  98. /**
  99. * 关联商品
  100. */
  101. public function goods()
  102. {
  103. return $this->belongsTo('app\\admin\\model\\shop\\Goods', 'goods_id', 'id');
  104. }
  105. /**
  106. * 关联优惠券
  107. */
  108. public function coupon()
  109. {
  110. return $this->belongsTo('app\\admin\\model\\shop\\Coupon', 'coupon_id', 'id');
  111. }
  112. }