UserOperateLog.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. //操作记录
  5. class UserOperateLog extends Model
  6. {
  7. // 表名
  8. protected $table = 'user_operate_log';
  9. // 自动写入时间戳字段
  10. protected $autoWriteTimestamp = 'int';
  11. // 定义时间戳字段名
  12. protected $createTime = 'create_time';
  13. protected $updateTime = 'update_time';
  14. protected $deleteTime = false;
  15. // 追加属性
  16. protected $append = [
  17. 'create_time_text',
  18. 'update_time_text',
  19. 'start_time_text',
  20. ];
  21. //操作
  22. const Purchased = 0;
  23. const Transferred = 1;
  24. const Giveaway = 2;
  25. const Transfer = 3;
  26. const Delivery = 4;
  27. const TranCancel = 5;
  28. const Pledge = 6;
  29. const BuyTran = 7;
  30. const Airdrop = 8;
  31. const AirdClose = 9;
  32. const Synthesi = 10;
  33. const SyntClose = 11;
  34. const Buying = 12;
  35. const BuyClose = 13;
  36. const Newbie = 14;
  37. const NewClose = 15;
  38. const Super = 16;
  39. const SupClose = 17;
  40. //操作说明
  41. public static function getActionAll()
  42. {
  43. return [
  44. ['value'=>self::Purchased, 'name' => __('已购买')],
  45. ['value'=>self::Transferred, 'name' => __('转让中')],
  46. ['value'=>self::Giveaway, 'name' => __('已赠送')],
  47. ['value'=>self::Transfer, 'name' => __('已转让')],
  48. ['value'=>self::Delivery, 'name' => __('已提货')],
  49. ['value'=>self::TranCancel ,'name' => __('取消转让')],
  50. ['value'=>self::Pledge, 'name' => __('质押')],
  51. ['value'=>self::BuyTran, 'name' => __('购买寄售')],
  52. ['value'=>self::Airdrop, 'name' => __('空投')],
  53. ['value'=>self::AirdClose, 'name' => __('空投关闭')],
  54. ['value'=>self::Synthesi, 'name' => __('合成')],
  55. ['value'=>self::SyntClose, 'name' => __('合成关闭')],
  56. ['value'=>self::Buying, 'name' => __('求购')],
  57. ['value'=>self::BuyClose, 'name' => __('求购关闭')],
  58. ['value'=>self::Newbie, 'name' => __('新人茶权')],
  59. ['value'=>self::Newbie, 'name' => __('新人茶权关闭')],
  60. ['value'=>self::NewClose, 'name' => __('新人福利')],
  61. ['value'=>self::SupClose, 'name' => __('新人福利关闭')],
  62. ];
  63. }
  64. //操作记录
  65. public static function setCreateOperateLog(int $userId, int $action, int $productId, string $area)
  66. {
  67. return self::create([
  68. 'user_id' => $userId,
  69. 'action' => $action,
  70. 'product_id' => $productId,
  71. 'area' => $area,
  72. ]);
  73. }
  74. //
  75. public function product()
  76. {
  77. return $this->hasOne('ProductLists', 'id', 'product_id', [], 'LEFT')->setEagerlyType(0);
  78. }
  79. public function users()
  80. {
  81. return $this->hasOne('UserModel', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0);
  82. }
  83. public function getCreateTimeTextAttr($value, $data)
  84. {
  85. $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : '');
  86. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  87. }
  88. public function getUpdateTimeTextAttr($value, $data)
  89. {
  90. $value = $value ? $value : (isset($data['update_time']) ? $data['update_time'] : '');
  91. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  92. }
  93. protected function setCreateTimeAttr($value)
  94. {
  95. return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
  96. }
  97. protected function setUpdateTimeAttr($value)
  98. {
  99. return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
  100. }
  101. public function getStartTimeTextAttr($value, $data)
  102. {
  103. $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
  104. return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
  105. }
  106. protected function setStartTimeAttr($value)
  107. {
  108. return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
  109. }
  110. }