diff --git a/app/admin/service/AdminService.php b/app/admin/service/AdminService.php index 8b54a8fc..436b5828 100644 --- a/app/admin/service/AdminService.php +++ b/app/admin/service/AdminService.php @@ -678,7 +678,6 @@ class AdminService extends AdminBaseService if (empty($user->phone_number)) { return $this->toData('500', '用户手机号为空'); } - Log::info("目标手机号:". $user->phone_number); $accessKey = env('SMS.ACCESS_KEY_ID'); $secret = env('SMS.ACCESS_KEY_SECRET'); if (empty($accessKey) || empty($secret)) { diff --git a/app/home/controller/User.php b/app/home/controller/User.php index ff44d199..c2270950 100644 --- a/app/home/controller/User.php +++ b/app/home/controller/User.php @@ -325,4 +325,18 @@ class User extends HomeBaseController $returnData = (new UserService())->userAccessLog($this->request->userId, $this->request->post()); return json($returnData); } + + // 用户调用api次数记录 + public function apiCalledRecord(): Json + { + $returnData = (new UserService())->apiCalledRecord($this->request->userId, $this->request->post()); + return json($returnData); + } + + // 用户调用api次数检测 + public function apiCalledNumCheck(): Json + { + $returnData = (new UserService())->apiCalledNumCheck($this->request->userId, $this->request->post()); + return json($returnData); + } } \ No newline at end of file diff --git a/app/home/job/RegDone.php b/app/home/job/RegDone.php deleted file mode 100644 index f41ea8c5..00000000 --- a/app/home/job/RegDone.php +++ /dev/null @@ -1,34 +0,0 @@ -sendEmail($data['email'], $data['title'], $data['content']); - if ($bool) { - break; - } - } - Log::info("think-queue 邮箱注册后的队列任务正常结束." ); - } catch (\Exception $e) { - Log::info("think-queue 邮箱注册后的队列任务异常:message=".$e->getMessage().'date='.json_encode($data)); - } - - // 删除任务 - $job->delete(); - } - - // 任务失败后执行的方法 - public function failed($data) - { - Log::info("think-queue 用户注册后的队列任务执行失败:" . json_encode($data)); - } -} \ No newline at end of file diff --git a/app/home/route/app.php b/app/home/route/app.php index b4360f0c..c940381d 100644 --- a/app/home/route/app.php +++ b/app/home/route/app.php @@ -133,7 +133,10 @@ Route::group('/',function (){ Route::post('user/sms_send', 'User/sendSms'); // 设置用户信息 Route::post('user/update_info', 'User/updateInfo'); - + // 用户调用接口次数记录 + Route::post('user/api_called_record', 'User/apiCalledRecord'); + // 用户调用接口次数检查 + Route::post('user/api_called_num_check', 'User/apiCalledNumCheck'); // 邮箱修改支付密码 Route::post('user/update_pay_password_email', 'User/updatePayPasswordByEmail'); @@ -285,7 +288,7 @@ Route::group('/',function (){ Route::post('get_ip', 'Login/getIP'); Route::get('get_news', 'News/index'); - Route::post('test', 'News/testSendEmail'); + Route::post('test', 'User/apiCalledNumCheck'); })->allowCrossDomain($header); diff --git a/app/home/service/LoginService.php b/app/home/service/LoginService.php index f23dddcb..8d66eef9 100644 --- a/app/home/service/LoginService.php +++ b/app/home/service/LoginService.php @@ -282,17 +282,6 @@ class LoginService extends BaseHomeService // 累加已经注册的个数 $this->updateHadRegisterNumCache($ipCanRegisterNumPerIpPerDay); - // 注册后的队列任务 - $emailTemplate = EmailTemplateModel::where('tpl_type', EmailTemplateModel::TPL_TYPE_ONE)->find(); - if (empty($emailTemplate)) { - Log::info("邮箱注册 - 邮箱模板配置为空!"); - $emailTemplate = $this->getEmailTemplateForRegDone(); - } else { - $emailTemplate = $emailTemplate->toArray(); - } - $emailTemplate['email'] = $email; - Queue::push('app\home\job\RegDone', $emailTemplate, 'email_reg_done_queue'); - return $this->toData('0', 'Registration Successful.', []); } catch (ValidateException $validateException) { // 参数校验失败 异常类 diff --git a/app/home/service/UserService.php b/app/home/service/UserService.php index 4201b5f4..a1f18eaf 100644 --- a/app/home/service/UserService.php +++ b/app/home/service/UserService.php @@ -3,6 +3,7 @@ namespace app\home\service; use app\home\validate\UserValidate; +use app\model\ApiCalledNumModel; use app\model\AwsIvsModel; use app\model\AwsS3Model; use app\model\CountryModel; @@ -1837,4 +1838,50 @@ class UserService extends BaseHomeService return $this->toData('500', 'The system is busy.', [$exception->getMessage(), $exception->getLine(), $exception->getTrace()]); } } + + // 用户调用接口次数记录 + public function apiCalledRecord($userId, $param){ + try { + if (empty($param['api_name'])) { + return $this->toData('400', '参数错误'); + } + $apiName = trim($param['api_name']); + $apiCalledNum = ApiCalledNumModel::where(['user_id'=>$userId])->find(); + if (empty($apiCalledNum)) { + ApiCalledNumModel::create([ + 'user_id' => $userId, + $apiName => 1 + ]); + } else { + ApiCalledNumModel::where(['user_id'=>$userId])->inc($apiName)->save(); + } + return $this->toData('0', 'success'); + } catch (\Exception $exception) { + return $this->toData('500', 'The system is busy.', [$exception->getMessage(), $exception->getLine(), $exception->getTrace()]); + } + } + + // 用户调用接口次数检查, 普通用户只能调用5次, 会员可以无限次调用 + public function apiCalledNumCheck($userId, $param) + { + try { + if (empty($param['api_name'])) { + return $this->toData('400', '参数错误'); + } + $apiCalledNum = ApiCalledNumModel::where(['user_id'=>$userId])->find(); + $apiName = trim($param['api_name']); + if (!empty($apiCalledNum) && $apiCalledNum->$apiName >= ApiCalledNumModel::API_CALLED_LIMIT) { + $vipInfo = PurchaseVipModel::where(['user_id'=>$userId])->find(); + if (empty($vipInfo)) { + return $this->toData('0', 'success', ['is_called'=>false]); + } + if ($vipInfo->expire <= date("Y-m-d H:i:s")) { + return $this->toData('0', 'success', ['is_called'=>false]); + } + } + return $this->toData('0', 'success', ['is_called'=>true]); + } catch (\Exception $exception) { + return $this->toData('500', 'The system is busy.', [$exception->getMessage(), $exception->getLine(), $exception->getTrace()]); + } + } } diff --git a/app/model/ApiCalledNumModel.php b/app/model/ApiCalledNumModel.php new file mode 100644 index 00000000..5744810f --- /dev/null +++ b/app/model/ApiCalledNumModel.php @@ -0,0 +1,10 @@ +phpEmail->Subject = $title; $this->phpEmail->Body = $content; $status = $this->phpEmail->send(); + Log::info("---发送邮件结果--- status = ". $status); if ($status) { return true; }