perf: 机器人 webhook 添加用户信息

This commit is contained in:
kuaifan 2025-07-20 20:18:51 +08:00
parent d5d32038f5
commit ddc0931e90
2 changed files with 15 additions and 18 deletions

View File

@ -570,15 +570,14 @@ class User extends AbstractModel
/**
* 生成无设备的 token主要用于接口调用 token 不检查设备是否存在)
* @param self $userinfo
* @param int $days
* @param $ttl
* @return mixed
*/
public static function generateTokenNoDevice($userinfo, $days = 3)
public static function generateTokenNoDevice($userinfo, $ttl)
{
$key = 'user_token_' . $userinfo->userid . '_' . $days;
$ttl = now()->addDays($days);
return Cache::remember($key, $ttl, function () use ($userinfo, $ttl, $days) {
$token = Doo::tokenEncode($userinfo->userid, $userinfo->email, $userinfo->encrypt, $days);
$key = 'user_token_no_device_' . $userinfo->userid;
return Cache::remember($key, $ttl, function () use ($userinfo, $ttl) {
$token = Doo::tokenEncode($userinfo->userid, $userinfo->email, $userinfo->encrypt);
Cache::put(UserDevice::ck(md5($token)), $userinfo->userid, $ttl);
return $token;
});

View File

@ -531,18 +531,16 @@ class BotReceiveMsgTask extends AbstractTask
'version' => Base::getVersion(),
'extras' => Base::array2json($extras)
];
if ($botUser->isAiBot()) {
// AI机器人需要用户信息
$userInfo = User::find($msg->userid);
$data['msg_user'] = [
'userid' => $userInfo->userid,
'email' => $userInfo->email,
'nickname' => $userInfo->nickname,
'profession' => $userInfo->profession,
'lang' => $userInfo->lang,
'token' => User::generateTokenNoDevice($userInfo),
];
}
// 添加用户信息
$userInfo = User::find($msg->userid);
$data['msg_user'] = [
'userid' => $userInfo->userid,
'email' => $userInfo->email,
'nickname' => $userInfo->nickname,
'profession' => $userInfo->profession,
'lang' => $userInfo->lang,
'token' => User::generateTokenNoDevice($userInfo, now()->addHour()),
];
$res = Ihttp::ihttp_post($webhookUrl, $data, 30);
if ($userBot) {
$userBot->webhook_num++;