$params['admin_id'], 'nickname' => $params['nickname'], 'disable' => $params['disable'], 'sort' => empty($params['sort']) ? 1 : $params['sort'], 'avatar' => $params['avatar'] ]); } /** * @notes 编辑客服 * @param array $params * @return Kefu * @author 段誉 * @date 2022/3/8 17:55 */ public static function edit(array $params) { return Kefu::update([ 'id' => $params['id'], 'nickname' => $params['nickname'], 'sort' => empty($params['sort']) ? 1 : $params['sort'], 'disable' => $params['disable'], 'avatar' => $params['avatar'], ]); } /** * @notes 删除客服 * @param int $id * @return bool * @author 段誉 * @date 2022/3/8 17:59 */ public static function del(int $id): bool { return Kefu::destroy($id); } /** * @notes 获取客服详情 * @param int $id * @return array * @author 段誉 * @date 2022/3/8 18:05 */ public static function detail(int $id) { return Kefu::with(['admin' => function ($query) { $query->withField(['id', 'account', 'name']); }])->findOrEmpty($id)->toArray(); } /** * @notes 设置客服状态 * @param array $params * @return Kefu * @author 段誉 * @date 2022/3/8 18:23 */ public static function setStatus(array $params) { if ($params['disable'] == 1) { ChatLogic::setChatDisable($params['id']); } return Kefu::update(['id' => $params['id'], 'disable' => $params['disable']]); } /** * @notes 客服token * @param int $id * @return false|string * @author 段誉 * @date 2022/3/18 16:40 */ public static function login(int $id) { try{ $kefu = (new Admin())->alias('a') ->field(['k.id', 'k.disable' => 'kefu_disable', 'a.disable' => 'admin_disable']) ->join('kefu k', 'a.id = k.admin_id') ->where(['k.id' => $id]) ->findOrEmpty(); if($kefu->isEmpty()) { throw new \Exception('该客服信息缺失'); } if ($kefu['kefu_disable'] || $kefu['admin_disable']) { throw new \Exception('该客服已被禁用'); } $token = KefuTokenService::setToken($kefu['id'], KefuTerminalEnum::PC)['token'] ?? ''; return request()->domain() . '/kefu?token='. $token; } catch(\Exception $e) { self::$error = $e->getMessage(); return false; } } }