From 85adc4f8806e03d03fc52cb8effffaf4d6e24a34 Mon Sep 17 00:00:00 2001 From: xingchao <1363688001@qq.com> Date: Mon, 7 May 2018 11:27:31 +0800 Subject: [PATCH] =?UTF-8?q?'=E6=B7=BB=E5=8A=A0=E7=9B=B4=E6=92=AD=E6=B5=81'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/controller/Live.php | 52 +++++++++++++++-- application/api/model/User.php | 86 +++++++++++++++++++++++++++++ application/api/model/UserGroup.php | 34 ++++++++++++ application/api/model/UserRule.php | 54 ++++++++++++++++++ 4 files changed, 222 insertions(+), 4 deletions(-) create mode 100644 application/api/model/User.php create mode 100644 application/api/model/UserGroup.php create mode 100644 application/api/model/UserRule.php diff --git a/application/api/controller/Live.php b/application/api/controller/Live.php index 1250dbfc..9ae5082c 100644 --- a/application/api/controller/Live.php +++ b/application/api/controller/Live.php @@ -3,6 +3,9 @@ namespace app\api\controller; use app\common\controller\Api; +use think\Db; +use think\Exception; +use think\Log; /** * 直播接口 @@ -26,7 +29,7 @@ class Live extends Api } /** - * 读取产品信息 + * 读取直播流信息 */ public function index() { @@ -44,14 +47,56 @@ class Live extends Api // $pagesize = $this->request->request("per_page"); -// print_r($this->request->request("status")); -// exit(); if ($this->request->request("status")) { $where = array( 'status' => $this->request->request("status"), ); } + if ($this->request->request("username")) { + $username = $this->request->request("username"); +// $username = 'qq'; + $sql = "select b.* + from fa_user as a,fa_live as b + where a.id=b.user_id and a.username = '$username'"; + + $list = Db::query($sql); + if (!empty($list)) { + return true; + } else { + //创建直播流 + $sql = "select id + from fa_user + where username = '$username'"; + + $list = Db::query($sql); + $user_id = $list[0]['id']; + + $code = time(); + $base_url = "rtmp://47.104.165.49:1935/live/"; + $push_url = $base_url . $code; + $pull_url = $push_url; + $sql = "INSERT INTO fa_live(push_url,pull_url,user_id,status) VALUES ('$push_url','$pull_url','$user_id','1')"; + +// echo $sql; +// exit(); + $rs = Db::execute($sql); + if ($rs === false) { + echo '添加直播流失败'; + } else { + echo '添加直播流成功'; + } + + $list = array( + 'base_url'=>$base_url, + 'code'=>$code, + ); + + $result = array( "rows" => $list); + return json($result); + } + } + $total = $this->model ->where($where) @@ -67,7 +112,6 @@ class Live extends Api $result = array("total" => $total, "rows" => $list); return json($result); -// return ($where); // } diff --git a/application/api/model/User.php b/application/api/model/User.php new file mode 100644 index 00000000..ba3c0598 --- /dev/null +++ b/application/api/model/User.php @@ -0,0 +1,86 @@ +getChangedData(); + //如果有修改密码 + if (isset($changed['password'])) + { + $salt = \fast\Random::alnum(); + $row->password = \app\common\library\Auth::instance()->getEncryptPassword($changed['password'], $salt); + $row->salt = $salt; + } + }); + } + + public function getGenderList() + { + return ['1' => __('Male'), '0' => __('Female')]; + } + + public function getStatusList() + { + return ['normal' => __('Normal'), 'hidden' => __('Hidden')]; + } + + public function getPrevtimeTextAttr($value, $data) + { + $value = $value ? $value : $data['prevtime']; + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; + } + + public function getLogintimeTextAttr($value, $data) + { + $value = $value ? $value : $data['logintime']; + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; + } + + public function getJointimeTextAttr($value, $data) + { + $value = $value ? $value : $data['jointime']; + return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value; + } + + protected function setPrevtimeAttr($value) + { + return $value && !is_numeric($value) ? strtotime($value) : $value; + } + + protected function setLogintimeAttr($value) + { + return $value && !is_numeric($value) ? strtotime($value) : $value; + } + + protected function setJointimeAttr($value) + { + return $value && !is_numeric($value) ? strtotime($value) : $value; + } + + public function group() + { + return $this->belongsTo('UserGroup', 'group_id', 'id', [], 'LEFT')->setEagerlyType(0); + } + +} diff --git a/application/api/model/UserGroup.php b/application/api/model/UserGroup.php new file mode 100644 index 00000000..ab03a5dc --- /dev/null +++ b/application/api/model/UserGroup.php @@ -0,0 +1,34 @@ + __('Normal'), 'hidden' => __('Hidden')]; + } + + public function getStatusTextAttr($value, $data) + { + $value = $value ? $value : $data['status']; + $list = $this->getStatusList(); + return isset($list[$value]) ? $list[$value] : ''; + } + +} diff --git a/application/api/model/UserRule.php b/application/api/model/UserRule.php new file mode 100644 index 00000000..2800ceaf --- /dev/null +++ b/application/api/model/UserRule.php @@ -0,0 +1,54 @@ +getPk(); + $row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]); + }); + } + + public function getStatusList() + { + return ['normal' => __('Normal'), 'hidden' => __('Hidden')]; + } + + public function getStatusTextAttr($value, $data) + { + $value = $value ? $value : $data['status']; + $list = $this->getStatusList(); + return isset($list[$value]) ? $list[$value] : ''; + } + + public static function getTreeList($selected = []) + { + $ruleList = collection(self::where('status', 'normal')->select())->toArray(); + $nodeList = []; + foreach ($ruleList as $k => $v) + { + $state = array('selected' => $v['ismenu'] ? false : in_array($v['id'], $selected)); + $nodeList[] = array('id' => $v['id'], 'parent' => $v['pid'] ? $v['pid'] : '#', 'text' => __($v['title']), 'type' => 'menu', 'state' => $state); + } + return $nodeList; + } + +}