فهرست منبع

投票两个接口

lizhen_gitee 6 ماه پیش
والد
کامیت
b26b4cac02

+ 5 - 2
app/Controller/Api/v1/PlayerController.php

@@ -26,7 +26,10 @@ class PlayerController extends AbstractController
 
     //给选手投票
     public function record(RecordRequest $request){
-        if(!$this->apiLimit('操作太快了,休息一下吧'));
+
+        if (!RedisUtil::getInstance(RedisKeyEnum::API_REQUEST_TRAFFIC)->tryTimes(1, 1)) {
+            return AppResult::error('操作太快了,休息一下吧');
+        }
 
         $params = $request->validated();// 获取校验通过的参数
         $user   = AuthUser::getInstance()->get();
@@ -82,7 +85,7 @@ class PlayerController extends AbstractController
 
 
         //剩余票数,
-        $check_rs['uservote'] - 1;
+        $a = $check_rs['uservote'] - 1;
 
         return AppResult::success('投票成功');
     }

+ 3 - 1
app/Controller/Api/v1/QuestionController.php

@@ -29,7 +29,9 @@ class QuestionController extends AbstractController
      */
     public function submit(SubmitRequest $request)
     {
-        if(!$this->apiLimit('操作太快了,休息一下吧'));
+        if (!RedisUtil::getInstance(RedisKeyEnum::API_REQUEST_TRAFFIC)->tryTimes(1, 1)) {
+            return AppResult::error('操作太快了,休息一下吧');
+        }
 
         $params = $request->validated();// 获取校验通过的参数
         $user   = AuthUser::getInstance()->get();

+ 24 - 39
app/Utils/Encrypt/Token/Driver/Redis.php

@@ -4,53 +4,40 @@ namespace App\Utils\Encrypt\Token\Driver;
 
 
 use App\Utils\Encrypt\Token\Driver;
+use Hyperf\Config\Annotation\Value;
+use Hyperf\Context\ApplicationContext;
 
 /**
  * Token操作类
  */
 class Redis extends Driver
 {
+    /**
+     * 注解
+     * 设置redis前缀与框架保持一致
+     *
+     * @var string
+     */
+    #[Value("cache.default.prefix")]
+    private $Key;
+    #[Value("token.default")]
+    protected array $config = [];
 
     protected array $options = [
-        'host'        => '127.0.0.1',
-        'port'        => 6379,
-        'password'    => '',
-        'select'      => 0,
-        'timeout'     => 0,
-        'expire'      => 0,
-        'persistent'  => false,
+        'expire'      => 2592000,
         'userprefix'  => 'up:',
         'tokenprefix' => 'tp:',
     ];
 
     /**
      * 构造函数
-     * @param array $options 缓存参数
-     * @throws \BadFunctionCallException
-     * @access public
+     * @throws \Psr\Container\ContainerExceptionInterface
+     * @throws \Psr\Container\NotFoundExceptionInterface
      */
-    public function __construct(array $options = [])
+    public function __construct()
     {
-        if (!extension_loaded('redis')) {
-            throw new \BadFunctionCallException('not support: redis');
-        }
-        if (!empty($options)) {
-            $this->options = array_merge($this->options, $options);
-        }
-        $this->handler = new \Redis;
-        if ($this->options['persistent']) {
-            $this->handler->pconnect($this->options['host'], $this->options['port'], $this->options['timeout'], 'persistent_id_' . $this->options['select']);
-        } else {
-            $this->handler->connect($this->options['host'], $this->options['port'], $this->options['timeout']);
-        }
-
-        if ('' != $this->options['password']) {
-            $this->handler->auth($this->options['password']);
-        }
-
-        if (0 != $this->options['select']) {
-            $this->handler->select($this->options['select']);
-        }
+        $container   = ApplicationContext::getContainer();
+        $this->handler = $container->get(\Redis::class);
     }
 
     /**
@@ -60,8 +47,8 @@ class Redis extends Driver
      */
     protected function getEncryptedToken(string $token): string
     {
-        $config = \think\Config::get('token');
-        return $this->options['tokenprefix'] . hash_hmac($config['hash_algo'], $token, $config['key']);
+        $config = $this->config;
+        return $this->Key . $this->options['tokenprefix'] . hash_hmac($config['hash_algo'], $token, $config['key']);
     }
 
     /**
@@ -71,7 +58,7 @@ class Redis extends Driver
      */
     protected function getUserKey($user_id): string
     {
-        return $this->options['userprefix'] . $user_id;
+        return $this->Key . $this->options['userprefix'] . $user_id;
     }
 
     /**
@@ -115,11 +102,9 @@ class Redis extends Driver
         //获取有效期
         $expire = $this->handler->ttl($key);
         $expire = $expire < 0 ? 365 * 86400 : $expire;
-        $expiretime = time() + $expire;
+        $expireTime = time() + $expire;
         //解决使用redis方式储存token时api接口Token刷新与检测因expires_in拼写错误报错的BUG
-        $result = ['token' => $token, 'user_id' => $value, 'expiretime' => $expiretime, 'expires_in' => $expire];
-
-        return $result;
+        return ['token' => $token, 'user_id' => $value, 'expiretime' => $expireTime, 'expires_in' => $expire];
     }
 
     /**
@@ -131,7 +116,7 @@ class Redis extends Driver
     public function check(string $token, int $user_id): bool
     {
         $data = self::get($token);
-        return $data && $data['user_id'] == $user_id ? true : false;
+        return $data && $data['user_id'] == $user_id;
     }
 
     /**

+ 2 - 2
config/autoload/token.php

@@ -16,9 +16,9 @@ use function Hyperf\Support\env;
 return [
     'default' => [
         // 驱动方式
-        'type'      => env('TOKEN_TYPE', 'Mysql'),
+        'type'      => env('TOKEN_TYPE', 'Redis'),
         // 缓存前缀
-        'key'       => env('TOKEN_KEY', 'VCUkhXNayIt6GKxTeHQMm3wfBszP9D7W'),
+        'key'       => env('TOKEN_KEY', 'BgCYelhLFAN9a54u1tyPk67cMRZs3vni'),
         // 加密方式
         'hash_algo' => 'ripemd160',
         // 缓存有效期 0表示永久缓存

+ 8 - 70
routes/api/routes.php

@@ -13,88 +13,26 @@ declare(strict_types=1);
 
 use Hyperf\HttpServer\Router\Router;
 use App\Middleware\ApiSign;
-use App\Controller\Api\Notify\PaymentController;
-use App\Controller\Api\v1\CommonController;
+
 use App\Controller\Api\v1\DemoController;
-use App\Controller\Api\v1\HomeController;
-use App\Controller\Api\v1\WechatController;
-use App\Controller\Api\v1\OrderController;
-use App\Controller\Api\v1\SystemController;
-use App\Controller\Api\v1\UserController;
+use App\Controller\Api\v1\PlayerController;
+use App\Controller\Api\v1\QuestionController;
+
 
-// 该 Group 下的所有路由都将应用配置的中间件
-Router::addGroup('/notify', function () {
-    Router::post('/payment/wechat', [PaymentController::class, 'wechat']);
-});
 /**
  * Version 1.0
  */
 Router::addGroup('/v1', function () {
     Router::addRoute(['GET','POST'],'/demo', [DemoController::class, 'index']);
 
-    // 微信示例
-    Router::addGroup('/wechat', function () {
-        Router::post('/miniAppCode', [WechatController::class, 'miniAppCode']);// 小程序code
-        Router::post('/miniAppPhone', [WechatController::class, 'miniAppPhone']);// 小程序手机号
-        Router::post('/miniAppPay', [WechatController::class, 'miniAppPay']);// 小程序支付
-    });
-
-    // 系统操作
-    Router::addGroup('/system', function () {
-        Router::post('/cancel', [SystemController::class, 'cancel']);
-    });
-
-    Router::addGroup('/common', function () {
-        Router::post('/mobile_area_code', [CommonController::class, 'mobile_area_code']);
-        Router::post('/customer_service', [CommonController::class, 'customer_service']);
-        Router::post('/down_qr_code', [CommonController::class, 'down_qr_code']);
-        Router::post('/life_service', [CommonController::class, 'life_service']);
-        Router::post('/people_luggage', [CommonController::class, 'people_luggage']);
-        Router::post('/place_search', [CommonController::class, 'place_search']);
-        Router::post('/place_auto_search', [CommonController::class, 'place_auto_search']);
-        Router::post('/place_details', [CommonController::class, 'place_details']);
-        Router::post('/geocode', [CommonController::class, 'geocode']);
-        Router::post('/directions', [CommonController::class, 'directions']);
-        Router::post('/raise_amount', [CommonController::class, 'raise_amount']);
-        Router::post('/agreement', [CommonController::class, 'agreement']);
-        Router::post('/reason', [CommonController::class, 'reason']);
-        Router::post('/version', [CommonController::class, 'version']);
-        Router::post('/config', [CommonController::class, 'config']);
-    });
-
-    Router::post('/order/tailwind_driver', [OrderController::class, 'tailwind_driver']);
-    Router::post('/home/index', [HomeController::class, 'index']);
+   /* Router::post('/order/tailwind_driver', [OrderController::class, 'tailwind_driver']);
+    Router::post('/home/index', [HomeController::class, 'index']);*/
 
     // 需登录
     Router::addGroup('/auth', function () {
-        Router::post('/common/message_num', [CommonController::class, 'message_num']);
-        Router::post('/common/message', [CommonController::class, 'message']);
-        Router::post('/common/get_user_sig', [CommonController::class, 'get_user_sig']);
-        Router::post('/user/info', [UserController::class, 'info']);
-        Router::post('/user/money_log', [UserController::class, 'money_log']);
-        Router::post('/user/edit', [UserController::class, 'edit']);
-
-        Router::post('/user/address/list', [UserController::class, 'address_list']);
-        Router::post('/user/address/detail', [UserController::class, 'address_detail']);
-        Router::post('/user/address/add', [UserController::class, 'address_add']);
-        Router::post('/user/address/edit', [UserController::class, 'address_edit']);
-        Router::post('/user/address/del', [UserController::class, 'address_del']);
-        Router::post('/user/coupons', [UserController::class, 'coupons']);
-        Router::post('/user/invite', [UserController::class, 'invite']);
-        Router::post('/user/order_page_coupons', [UserController::class, 'order_page_coupons']);
-
-        Router::post('/order/page', [OrderController::class, 'page']);
-        Router::post('/order/submit', [OrderController::class, 'submit']);
-        Router::post('/order/list', [OrderController::class, 'list']);
-        Router::post('/order/detail', [OrderController::class, 'detail']);
-        Router::post('/order/cancel', [OrderController::class, 'cancel']);
-        Router::post('/order/add_money', [OrderController::class, 'add_money']);
-
-        Router::post('/order/tailwind_invite', [OrderController::class, 'tailwind_invite']);
-        Router::post('/order/tailwind_driver_info', [OrderController::class, 'tailwind_driver_info']);
 
-        Router::post('/home/invite', [HomeController::class, 'invite']);
-        Router::post('/home/get_coupon', [HomeController::class, 'get_coupon']);
+        Router::post('/player/recode', [PlayerController::class, 'recode']);
+        Router::post('/question/submit', [QuestionController::class, 'submit']);
 
     }, ['middleware' => [ApiSign::class]]);
 });