|
|
@ -2,16 +2,48 @@ |
|
|
|
|
|
|
|
|
namespace App\Service; |
|
|
namespace App\Service; |
|
|
|
|
|
|
|
|
|
|
|
use App\Constants\ErrorCode; |
|
|
|
|
|
use App\Exception\SsdbException; |
|
|
|
|
|
use Hyperf\Utils\ApplicationContext; |
|
|
|
|
|
use App\TaskWorker\SSDBTask; |
|
|
|
|
|
|
|
|
class ParamsTokenSsdbService implements ParamsTokenServiceInterface |
|
|
class ParamsTokenSsdbService implements ParamsTokenServiceInterface |
|
|
{ |
|
|
{ |
|
|
|
|
|
const HASH_PREFIX = 'params_token_'; |
|
|
|
|
|
|
|
|
public function generate($params) |
|
|
public function generate($params) |
|
|
{ |
|
|
{ |
|
|
return 'token_123456'; |
|
|
|
|
|
|
|
|
$token = md5(json_encode($params)); |
|
|
|
|
|
|
|
|
|
|
|
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); |
|
|
|
|
|
|
|
|
|
|
|
$kvs = []; |
|
|
|
|
|
foreach ($params as $key => $value) { |
|
|
|
|
|
$kvs[] = $key; |
|
|
|
|
|
$kvs[] = $value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(false === $ssdb->exec('multi_hset', self::HASH_PREFIX.$token, $kvs)) { |
|
|
|
|
|
throw new SsdbException(ErrorCode::SSDB_ERROR, 'token生成失败'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $token; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function analyze($token) |
|
|
public function analyze($token) |
|
|
{ |
|
|
{ |
|
|
return ['page' => 'zh_cjdianc/pages/couponrebate/index', 'previous_id' => 211, 'is_expired' => 2]; |
|
|
|
|
|
|
|
|
$ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); |
|
|
|
|
|
$params = $ssdb->exec('hgetall', self::HASH_PREFIX.$token); |
|
|
|
|
|
|
|
|
|
|
|
if (false === $params) { |
|
|
|
|
|
throw new SsdbException(ErrorCode::SSDB_ERROR, 'token解析失败'); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (empty($params)) { |
|
|
|
|
|
throw new SsdbException(ErrorCode::SSDB_ERROR, 'token不存在'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $params; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |