LotteryCondition.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\common\model\lottery;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. use app\common\Enum\LotteryEnum;
  6. /**
  7. * 抽奖参与条件模型
  8. */
  9. class LotteryCondition extends Model
  10. {
  11. use SoftDelete;
  12. // 表名
  13. protected $table = 'shop_lottery_condition';
  14. // 开启自动写入时间戳字段
  15. protected $autoWriteTimestamp = 'int';
  16. // 定义时间戳字段名
  17. protected $createTime = 'createtime';
  18. protected $updateTime = 'updatetime';
  19. protected $deleteTime = 'deletetime';
  20. // 追加属性
  21. protected $append = [
  22. 'type_text',
  23. 'goods_rule_text',
  24. 'goods_ids_list'
  25. ];
  26. /**
  27. * 关联活动
  28. */
  29. public function activity()
  30. {
  31. return $this->belongsTo('LotteryActivity', 'activity_id');
  32. }
  33. /**
  34. * 获取条件类型文本
  35. */
  36. public function getTypeTextAttr($value, $data)
  37. {
  38. return LotteryEnum::getConditionTypeText($data['type']);
  39. }
  40. /**
  41. * 获取商品规则文本
  42. */
  43. public function getGoodsRuleTextAttr($value, $data)
  44. {
  45. $rules = LotteryEnum::getGoodsRuleMap();
  46. return isset($rules[$data['goods_rule']]) ? $rules[$data['goods_rule']] : '';
  47. }
  48. /**
  49. * 获取商品ID列表
  50. */
  51. public function getGoodsIdsListAttr($value, $data)
  52. {
  53. return !empty($data['goods_ids']) ? json_decode($data['goods_ids'], true) : [];
  54. }
  55. /**
  56. * 设置商品ID列表
  57. */
  58. public function setGoodsIdsAttr($value)
  59. {
  60. return is_array($value) ? json_encode($value) : $value;
  61. }
  62. }