| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 | <?phpnamespace app\admin\model;use think\Model;class User extends Model{            // 表名    protected $name = 'user';        // 自动写入时间戳字段    protected $autoWriteTimestamp = 'int';    // 定义时间戳字段名    protected $createTime = 'createtime';    protected $updateTime = 'updatetime';    protected $deleteTime = false;    // 追加属性    protected $append = [        'gender_text',        'idcard_status_text',        'prevtime_text',        'logintime_text',        'jointime_text',        'status_text',        'hide_is_finishinfo_text',        'is_active_text',        'is_tuijian_text',        'jinyantime_text',        'jinyantype_text'    ];        protected static function init()    {        self::beforeUpdate(function ($row) {            $changed = $row->getChangedData();            //如果有修改密码            if (isset($changed['password'])) {                if ($changed['password']) {                    $salt = \fast\Random::alnum();                    $row->password = \app\common\library\Auth::instance()->getEncryptPassword($changed['password'], $salt);                    $row->salt = $salt;                } else {                    unset($row->password);                }            }            //手机去重            if (isset($changed['mobile'])) {                if($changed['mobile']){                    $exists = db('user')->where('mobile', $changed['mobile'])->where('id', '<>', $row->id)->find();                    if ($exists) {                        abort(500,'区号手机号已经被使用');                    }                }else {                    unset($row->mobile);                }            }            //手机去重            if (isset($changed['simplemobile'])) {                if($changed['simplemobile']){                }else {                    unset($row->simplemobile);                }            }        });        /*self::beforeInsert(function ($row){            if (isset($row['password'])) {                if ($row['password']) {                    $salt = \fast\Random::alnum();                    $row->password = \app\common\library\Auth::instance()->getEncryptPassword($row['password'], $salt);                    $row->salt = $salt;                } else {                    unset($row->password);                }            }            if($row['mobile']){                $exists = db('user')->where('mobile', $row['mobile'])->find();                if ($exists) {                    abort(500,'手机号已经被使用');                }            }else{                abort(500,'手机号不能为空');            }            //判断用户名,手机号重复        });        self::afterInsert(function ($row){            $username = 'u' . (10000 + $row['id']);            db('user')->where('id',$row['id'])->update(['username'=>$username]);            $data = [                'user_id' => $row['id'],            ];            //注册钱包            db('user_wallet')->insertGetId($data);            //注册用户活跃            db('user_active')->insertGetId($data);            //注册用户权限            db('user_power')->insertGetId($data);        });*/    }        public function getGenderList()    {        return ['1' => __('Gender 1'), '0' => __('Gender 0')];    }    public function getIdcardStatusList()    {        return ['-1' => __('Idcard_status -1'), '0' => __('Idcard_status 0'), '1' => __('Idcard_status 1'), '2' => __('Idcard_status 2'), '3' => __('Idcard_status 3')];    }    public function getStatusList()    {        return ['1' => __('Status 1'), '0' => __('Status 0'), '-1' => __('Status -1')];    }    public function getHideIsFinishinfoList()    {        return ['1' => __('Hide_is_finishinfo 1'), '0' => __('Hide_is_finishinfo 0')];    }    public function getIsActiveList()    {        return ['1' => __('Is_active 1'), '0' => __('Is_active 0')];    }    public function getIsTuijianList()    {        return ['1' => __('Is_tuijian 1'), '0' => __('Is_tuijian 0')];    }    public function getJinyantypeList()    {        return ['1' => __('Jinyantype 1'), '2' => __('Jinyantype 2'), '3' => __('Jinyantype 3')];    }    public function getGenderTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['gender']) ? $data['gender'] : '');        $list = $this->getGenderList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getIdcardStatusTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['idcard_status']) ? $data['idcard_status'] : '');        $list = $this->getIdcardStatusList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getPrevtimeTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['prevtime']) ? $data['prevtime'] : '');        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;    }    public function getLogintimeTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['logintime']) ? $data['logintime'] : '');        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;    }    public function getJointimeTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['jointime']) ? $data['jointime'] : '');        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;    }    public function getStatusTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['status']) ? $data['status'] : '');        $list = $this->getStatusList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getHideIsFinishinfoTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['hide_is_finishinfo']) ? $data['hide_is_finishinfo'] : '');        $list = $this->getHideIsFinishinfoList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getIsActiveTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['is_active']) ? $data['is_active'] : '');        $list = $this->getIsActiveList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getIsTuijianTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['is_tuijian']) ? $data['is_tuijian'] : '');        $list = $this->getIsTuijianList();        return isset($list[$value]) ? $list[$value] : '';    }    public function getJinyantimeTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['jinyantime']) ? $data['jinyantime'] : '');        return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;    }    public function getJinyantypeTextAttr($value, $data)    {        $value = $value ? $value : (isset($data['jinyantype']) ? $data['jinyantype'] : '');        $list = $this->getJinyantypeList();        return isset($list[$value]) ? $list[$value] : '';    }    protected function setPrevtimeAttr($value)    {        return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);    }    protected function setLogintimeAttr($value)    {        return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);    }    protected function setJointimeAttr($value)    {        return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);    }    protected function setJinyantimeAttr($value)    {        return $value === '' ? 0 : ($value && !is_numeric($value) ? strtotime($value) : $value);    }    public function userwallet()    {        return $this->belongsTo('Userwallet', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0);    }}
 |