From 5a80e5b979a14a5bcb552de730fb8e375ae80543 Mon Sep 17 00:00:00 2001 From: dengbw Date: Fri, 14 Oct 2022 10:21:25 +0800 Subject: [PATCH] sylive_10114 --- market/controllers/api/Login.php | 65 ++++++++++++++++++++++ market/controllers/api/sylive/Activity.php | 14 +++-- market/hooks/ApiAuthHook.php | 7 ++- 3 files changed, 77 insertions(+), 9 deletions(-) diff --git a/market/controllers/api/Login.php b/market/controllers/api/Login.php index 49b0a191..56d52e8a 100644 --- a/market/controllers/api/Login.php +++ b/market/controllers/api/Login.php @@ -92,6 +92,71 @@ class Login extends BaseController $this->return_response($data, '登录成功'); } + /** + * Notes:获取手机验证码 + * Created on: 2022/10/13 16:54 + * Created by: dengbw + */ + public function code_get() + { + $phone = $this->input_param('phone'); + if (!$phone) { + $this->return_json('请输入绑定手机号'); + } + $re = $this->mdSysAdmin->get(["phone" => $phone, 'status' => 0]); + if (!$re) { + $this->return_json('绑定手机号不存在'); + return; + } + $code = rand(100000, 999999); + $redis = &load_cache('redis'); + $redis->save($phone, $code, 10 * 60); + //send_sms($phone, $code); + $this->return_response(['code'=>$code], '短信验证码发送成功, 请注意查收!'); + } + + /** + * Notes:忘记密码 + * Created on: 2022/10/13 15:34 + * Created by: dengbw + */ + public function forget_post() + { + $phone = $this->input_param('phone'); + $password = $this->input_param('password'); + $password2 = $this->input_param('password2'); + $code = $this->input_param('code'); + if (!$phone) { + $this->return_json('请输入绑定手机号'); + } + if (!$password) { + $this->return_json('请输入新的登录密码'); + } + if (!$password2) { + $this->return_json('请再次输入登录密码'); + } + if (mb_strlen($password) < 4) { + $this->return_json('请输入至少4个字符的新密码'); + } + if ($password != $password2) { + $this->return_json('两次输入密码不一致'); + } + if (!$code) { + $this->return_json('请输入验证码'); + } + $redis = &load_cache('redis'); + if (!$redis->get($phone)) { + $this->return_json('验证码已过期'); + } + if ($redis->get($phone) != $code) { + $this->return_json('验证码错误'); + } + $upDate['password'] = password_hash($password, PASSWORD_BCRYPT); + $this->mdSysAdmin->update($upDate, ['phone' => $phone, 'status' => 0]); + $redis->delete($phone);//删除验证码 + $this->return_response([], '密码修改成功'); + } + /** * Notes: * Created on: 2022/8/29 17:06 diff --git a/market/controllers/api/sylive/Activity.php b/market/controllers/api/sylive/Activity.php index 09b052aa..6b434576 100644 --- a/market/controllers/api/sylive/Activity.php +++ b/market/controllers/api/sylive/Activity.php @@ -485,23 +485,25 @@ class Activity extends BaseController $subscribe = $this->mdSyliveActivityKpidata->count(['a_id' => $activityId, 'kpi' => 'subscribe']); $watch = $this->mdSyliveActivityKpidata->count(['a_id' => $activityId, 'kpi' => 'watch']); $order = $this->mdSyliveActivityKpidata->count(['a_id' => $activityId, 'kpi' => 'order']); - $duration = $livePV = $watchDuration = 0; + $duration = $livePV = $watchDuration = $watchDuration = $pvDuration = 0; if ($channelId) { $re_duration = $this->mdPolyvSession->sum('duration', ['channelId' => $channelId]); - $re_livePV = $this->mdPolyvSession->sum('livePV', ['channelId' => $channelId]); if ($re_duration['duration']) { + $re_liveUV = $this->mdPolyvSession->sum('liveUV', ['channelId' => $channelId]); + $re_livePV = $this->mdPolyvSession->sum('livePV', ['channelId' => $channelId]); $duration = ceil($re_duration['duration'] / 60); $livePV = $re_livePV['livePV']; $watchDuration = round($duration / $livePV); + $pvDuration = round($livePV / $re_liveUV['liveUV'],1); } } $activityData1 = [['name' => '参与区域数', 'value' => count($areaData)], ['name' => '参与门店数', 'value' => count($bizData)] , ['name' => '参与顾问数', 'value' => count($res_user)]]; $url = "/sylive/activity/statistics/piechart?activityId={$activityId}&"; - $activityData2 = [['name' => '浏览人数', 'value' => $browse, 'url' => ''], ['name' => '预约人数', 'value' => $subscribe, 'url' => ''] - , ['name' => '观看人数', 'value' => $watch, 'url' => ''], ['name' => '订单数', 'value' => $order, 'url' => ''] - , ['name' => '直播时长', 'value' => $duration, 'url' => ''], ['name' => '观看次数', 'value' => $livePV, 'url' => ''] - , ['name' => '人均观看', 'value' => $watchDuration, 'url' => '']]; + $activityData2 = [['name' => '浏览数(人)', 'value' => $browse, 'url' => ''], ['name' => '预约数(人)', 'value' => $subscribe, 'url' => ''] + , ['name' => '观看数(人)', 'value' => $watch, 'url' => ''], ['name' => '订单数(单)', 'value' => $order, 'url' => ''] + , ['name' => '直播时长(分)', 'value' => $duration, 'url' => ''], ['name' => '观看数(人次)', 'value' => $livePV, 'url' => ''] + , ['name' => '人均观看(分)', 'value' => $watchDuration, 'url' => ''], ['name' => '人均观看(次)', 'value' => $pvDuration, 'url' => '']]; // $activityData2 = [['name' => '浏览人数', 'value' => $browse, 'url' => "{$url}type=browse"], ['name' => '预约人数', 'value' => $subscribe, 'url' => "{$url}type=subscribe"] // , ['name' => '观看人数', 'value' => $watch, 'url' => "{$url}type=watch"], ['name' => '订单数', 'value' => $order, 'url' => "{$url}type=order"] // , ['name' => '直播时长', 'value' => $duration, 'url' => ''], ['name' => '观看次数', 'value' => $livePV, 'url' => ''], ['name' => '人均观看', 'value' => $watchDuration, 'url' => '']]; diff --git a/market/hooks/ApiAuthHook.php b/market/hooks/ApiAuthHook.php index 71660e5d..eb95798c 100644 --- a/market/hooks/ApiAuthHook.php +++ b/market/hooks/ApiAuthHook.php @@ -15,7 +15,7 @@ class ApiAuthHook // 保护路由为 /api/* 或者 /Api/* $this->route = '/^api/i'; $this->auth = ',api/auth'; - $this->route_un = ['api/captcha', 'api/login', 'api/upload']; + $this->route_un = ['api/captcha', 'api/login', 'api/login/code', 'api/login/forget', 'api/upload']; } /** @@ -25,8 +25,9 @@ class ApiAuthHook { $this->CI->load->helper('url'); // $route 正则匹配是否符合 /api/* 或者 /Api/* - if (preg_match($this->route, uri_string())) { - if (!in_array(uri_string(), $this->route_un)) { + $uri_string = uri_string(); + if (preg_match($this->route, $uri_string)) { + if (!in_array($uri_string, $this->route_un)) { // 获取整个 request headers $headers = $this->CI->input->request_headers(); // headers 中是否存在 Authorization