1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?php
- /**
- * Created by PhpStorm.
- * User: zhengmingwei
- * Date: 2020/3/8
- * Time: 7:20 PM
- */
- namespace addons\unishop\model;
- use fast\Random;
- use think\Db;
- use think\Exception;
- use think\Model;
- /**
- * 扩展用户表
- * Class UserExtend
- * @package addons\unishop\model
- */
- class UserExtend extends Model
- {
- // 表名
- protected $name = 'unishop_user_extend';
- // 开启自动写入时间戳字段
- protected $autoWriteTimestamp = 'int';
- // 定义时间戳字段名
- protected $createTime = 'createtime';
- protected $updateTime = 'updatetime';
- /**
- * 关联基础用户表
- */
- public function user()
- {
- return $this->hasOne('user', 'id', 'user_id')->field('id,avatar,mobile,username');
- }
- /**
- * 通过微信小程序openid获取用户id
- */
- public function getUserInfoByOpenid($openid)
- {
- $userExtend = $this
- ->with('user')
- ->where(['openid' => $openid])
- ->find();
- if ($userExtend) {
- $user = $userExtend->user;
- } else {
- Db::startTrans();
- try {
- $params = [
- 'level' => 1,
- 'score' => 0,
- 'jointime' => time(),
- 'joinip' => $_SERVER['REMOTE_ADDR'],
- 'logintime' => time(),
- 'loginip' => $_SERVER['REMOTE_ADDR'],
- 'prevtime' => time(),
- 'status' => 'normal',
- 'avatar' => '',
- 'username' => __('Tourist')
- ];
- $user = User::create($params, true);
- self::create([
- 'user_id' => $user->id,
- 'openid' => $openid
- ], true);
- Db::commit();
- } catch (Exception $e) {
- Db::rollback();
- return false;
- }
- }
- $user = $user->toArray();
- return $user;
- }
- }
|