|
|
@@ -0,0 +1,133 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\common\model;
|
|
|
+
|
|
|
+use think\Model;
|
|
|
+
|
|
|
+//操作记录
|
|
|
+class UserOperateLog extends Model
|
|
|
+{
|
|
|
+
|
|
|
+ // 表名
|
|
|
+ protected $table = 'user_operate_log';
|
|
|
+
|
|
|
+ // 自动写入时间戳字段
|
|
|
+ protected $autoWriteTimestamp = 'int';
|
|
|
+
|
|
|
+ // 定义时间戳字段名
|
|
|
+ protected $createTime = 'create_time';
|
|
|
+ protected $updateTime = 'update_time';
|
|
|
+ protected $deleteTime = false;
|
|
|
+
|
|
|
+ // 追加属性
|
|
|
+ protected $append = [
|
|
|
+ 'create_time_text',
|
|
|
+ 'update_time_text',
|
|
|
+ 'start_time_text',
|
|
|
+ ];
|
|
|
+
|
|
|
+ //操作
|
|
|
+ const Purchased = 0;
|
|
|
+ const Transferred = 1;
|
|
|
+ const Giveaway = 2;
|
|
|
+ const Transfer = 3;
|
|
|
+ const Delivery = 4;
|
|
|
+ const TranCancel = 5;
|
|
|
+ const Pledge = 6;
|
|
|
+ const BuyTran = 7;
|
|
|
+ const Airdrop = 8;
|
|
|
+ const AirdClose = 9;
|
|
|
+ const Synthesi = 10;
|
|
|
+ const SyntClose = 11;
|
|
|
+ const Buying = 12;
|
|
|
+ const BuyClose = 13;
|
|
|
+ const Newbie = 14;
|
|
|
+ const NewClose = 15;
|
|
|
+ const Super = 16;
|
|
|
+ const SupClose = 17;
|
|
|
+
|
|
|
+ //操作说明
|
|
|
+ public static function getActionAll()
|
|
|
+ {
|
|
|
+ return [
|
|
|
+ ['value'=>self::Purchased, 'name' => __('已购买')],
|
|
|
+ ['value'=>self::Transferred, 'name' => __('转让中')],
|
|
|
+ ['value'=>self::Giveaway, 'name' => __('已赠送')],
|
|
|
+ ['value'=>self::Transfer, 'name' => __('已转让')],
|
|
|
+ ['value'=>self::Delivery, 'name' => __('已提货')],
|
|
|
+ ['value'=>self::TranCancel ,'name' => __('取消转让')],
|
|
|
+ ['value'=>self::Pledge, 'name' => __('质押')],
|
|
|
+ ['value'=>self::BuyTran, 'name' => __('购买寄售')],
|
|
|
+ ['value'=>self::Airdrop, 'name' => __('空投')],
|
|
|
+ ['value'=>self::AirdClose, 'name' => __('空投关闭')],
|
|
|
+ ['value'=>self::Synthesi, 'name' => __('合成')],
|
|
|
+ ['value'=>self::SyntClose, 'name' => __('合成关闭')],
|
|
|
+ ['value'=>self::Buying, 'name' => __('求购')],
|
|
|
+ ['value'=>self::BuyClose, 'name' => __('求购关闭')],
|
|
|
+ ['value'=>self::Newbie, 'name' => __('新人茶权')],
|
|
|
+ ['value'=>self::Newbie, 'name' => __('新人茶权关闭')],
|
|
|
+ ['value'=>self::NewClose, 'name' => __('新人福利')],
|
|
|
+ ['value'=>self::SupClose, 'name' => __('新人福利关闭')],
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ //操作记录
|
|
|
+ public static function setCreateOperateLog(int $userId, int $action, int $productId, string $area)
|
|
|
+ {
|
|
|
+ return self::create([
|
|
|
+ 'user_id' => $userId,
|
|
|
+ 'action' => $action,
|
|
|
+ 'product_id' => $productId,
|
|
|
+ 'area' => $area,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //
|
|
|
+ public function product()
|
|
|
+ {
|
|
|
+ return $this->hasOne('ProductLists', 'id', 'product_id', [], 'LEFT')->setEagerlyType(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function users()
|
|
|
+ {
|
|
|
+ return $this->hasOne('UserModel', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function getCreateTimeTextAttr($value, $data)
|
|
|
+ {
|
|
|
+ $value = $value ? $value : (isset($data['create_time']) ? $data['create_time'] : '');
|
|
|
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function getUpdateTimeTextAttr($value, $data)
|
|
|
+ {
|
|
|
+ $value = $value ? $value : (isset($data['update_time']) ? $data['update_time'] : '');
|
|
|
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function setCreateTimeAttr($value)
|
|
|
+ {
|
|
|
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected function setUpdateTimeAttr($value)
|
|
|
+ {
|
|
|
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public function getStartTimeTextAttr($value, $data)
|
|
|
+ {
|
|
|
+ $value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
|
|
|
+ return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
|
|
+ }
|
|
|
+ protected function setStartTimeAttr($value)
|
|
|
+ {
|
|
|
+ return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|