lip 3 месяцев назад
Родитель
Сommit
ff74943987

+ 5 - 2
app/admin/controller/Complaint.php

@@ -26,8 +26,8 @@ class Complaint extends BaseController
             $language_code = $params['language_code'] ?? $this->lang;
             
             $query = ComplaintModel::alias('complaint')
-                                    ->join('user', 'user.user_id=complaint.cs_uid','left')
-                                    ->where('complaint.language_code', $language_code);
+                                    ->join('user', 'user.user_id=complaint.cs_uid','left');
+                                    //->where('complaint.language_code', $language_code);
             if (!empty($params['keyword'])) {
                 $query = $query->where('user.realname', 'like', '%'.$params['keyword'].'%')
                     ->whereOr('user.phone', 'like', '%'.$params['keyword'].'%');
@@ -68,6 +68,9 @@ class Complaint extends BaseController
             if (!$complaint) {
                 return $this->error('投诉项不存在');
             }
+            if ($complaint->status == 1) {
+                return $this->error('已处理');
+            }
             $complaint->result = $result;
             $complaint->status = 1;
             $complaint->operation_id = $this->admin_id;

+ 10 - 6
app/admin/controller/Kefu.php

@@ -446,15 +446,19 @@ class Kefu extends BaseController
             $limit = $params['limit'] ?? 15;
             $keyword = $params['keyword'] ?? '';
             $cs_name = $params['cs_name'] ?? '';
+            $user_id = $params['user_id'] ?? '';
             
             $query = KefuLog::alias('log')
                         ->join('user', 'log.user_id = user.user_id', 'left')
-                        ->join('user as kefu', 'log.cs_uid = kefu.user_id', 'left');
+                        ->join('user kefu', 'log.cs_uid = kefu.user_id', 'left');
             if ($keyword) {
-                $query = $query->where('user.realname|user.user_id', 'like', "%{$keyword}%");
+                $query = $query->where('user.realname', 'like', "%{$keyword}%");
             }
             if ($cs_name) {
-                $query = $query->where('kefu.realname|user.user_id', 'like', "%{$cs_name}%");
+                $query = $query->where('kefu.realname', 'like', "%{$cs_name}%");
+            }
+            if ($user_id) {
+                $query = $query->where('user.user_id', $user_id);
             }
 
             $count = $query->count();
@@ -499,20 +503,20 @@ class Kefu extends BaseController
             
             if (!empty($content)) {
                 $translate = new TranslateClient([
-                    'key' => env('GOOGLE_KEY') //AIzaSyCQmhmpEIm0ysoTznbm1NrDASovMxhmeSc 替换为你自己的API密钥
+                    'key' => getEnvValue('GOOGLE_KEY') //替换为你自己的API密钥
                 ]);
                 // 3. 执行翻译(目标语言指定为英文 en)
                 $result = $translate->translate($content, [
                     'target' => $language_code, // 固定为 en 表示翻译成英文
                 ]);
                 if (!empty($result['text'])) {
-                    return $this->success('提交成功', ['content' => $result['text']]);
+                    return $this->success( ['content' => $result['text']]);
                 }
             }
         } catch (\Exception $e) {
             return $this->error('翻译失败:' . $e->getMessage());
         }
-        return $this->success('翻译成功', ['content' => '']);
+        return $this->success( ['content' => '']);
     }
 
 }

+ 44 - 0
app/common.php

@@ -59,6 +59,50 @@ function ret($code, $msg = "",$data = [],$count=0, $page=0)
     return json($ret);
 }
 
+/**
+ * 手动解析 .env 文件,避免系统变量覆盖/TP版本兼容问题
+ * @param string $envFilePath .env文件绝对路径
+ * @param string $key 要获取的变量名
+ * @return string 变量值(自动去除引号)
+ */
+function getEnvValue($key) {
+    $envFilePath = root_path().'.env';
+    // 2. 读取文件内容(按行解析)
+    $content = file_get_contents($envFilePath);
+    $lines = explode("\n", $content);
+    $value = '';
+
+    // 3. 逐行匹配变量(支持:HOST = "xxx" / HOST=xxx / HOST = xxx 等格式)
+    foreach ($lines as $line) {
+        // 跳过注释行和空行
+        $line = trim($line);
+        if (empty($line) || str_starts_with($line, '#')) {
+            continue;
+        }
+
+        // 拆分变量名和值(按等号分割)
+        $parts = explode('=', $line, 2);
+        if (count($parts) !== 2) {
+            continue;
+        }
+
+        // 清理变量名和值(去除空格、引号)
+        $envKey = trim($parts[0]);
+        $envValue = trim($parts[1]);
+        $envValue = trim($envValue, '"'); // 去除值两侧的双引号
+        $envValue = trim($envValue, "'"); // 去除值两侧的单引号
+
+        // 匹配到目标变量,返回值
+        if (strtolower($envKey) === strtolower($key)) {
+            $value = $envValue;
+            break;
+        }
+    }
+
+    return $value;
+}
+
+
 /**
  * 获取机器人客服ID
  */

+ 11 - 7
app/enterprise/controller/Im.php

@@ -40,7 +40,10 @@ class Im extends BaseController
             return $this->error('用户不存在');
         }
         $exist = Message::where('msg_id', $msg_id)->where('to_user', $user_id)->find();
-        if ($exist && $exist['is_click'] == 0) {
+        if ($exist) {
+            if ( $exist['is_click'] == 1) {
+                return $this->error('已评价');
+            }
             $extends = $exist['extends'] && !is_array($exist['extends']) ? json_decode($exist['extends'], true) : $exist['extends'];
             if (!empty($extends['cs_uid'])) {
                 Score::create([
@@ -56,7 +59,7 @@ class Im extends BaseController
             $exist->is_click = 1;
             $exist->save();
         }
-        return $this->success('提交成功');
+        return $this->success([],'提交成功');
     }
 
     /**
@@ -109,7 +112,7 @@ class Im extends BaseController
             'remark' => $params['remark'] ?? '',
             'language_code' => $this->lang,
         ]);
-        return $this->success('提交成功');
+        return $this->success([],'提交成功');
         
     }
 
@@ -141,7 +144,7 @@ class Im extends BaseController
         } catch (Exception $e) {
             return $this->error($e->getMessage());
         }
-        return $this->success([ 'count' => $count, 'list' => $list]);
+        return $this->success(['count' => $count, 'list' => $list]);
     }
 
     /**
@@ -185,7 +188,7 @@ class Im extends BaseController
         } catch (Exception $e) {
             return error($e->getMessage());
         }
-        return $this->success([ 'count' => $count, 'list' => $list]);
+        return $this->success(['count' => $count, 'list' => $list]);
     }
 
     /**
@@ -568,7 +571,7 @@ class Im extends BaseController
                 $start_time = time() - $hours * 60 * 60;
                 $where[] = ['create_time', '>=', $start_time];
             }
-        } elseif ($this->userInfo['role'] == 3) {
+        } elseif ($this->userInfo['role'] > 0) {
             //客服可见历史记录的时长
             $hours = Config::where('field', 'kefu_show_message')->value('val');
             if ($hours > 0) {
@@ -585,9 +588,10 @@ class Im extends BaseController
                 
                 //通知客服-会话服务中
                 wsSendMsg(0,'handleChat',['user_id'=>$param['toContactId']]);
+            } else {
+                $map['chat_identify'] = $toUser->cs_uid.'-'.$param['toContactId'];
             }
         }
-        
         $list = Message::getList($map, $where, 'msg_id desc', $listRows, $pageSize);
         $data = $this->recombileMsg($list,true,$groupManage);
         // 如果是群聊并且是第一页消息,需要推送@数据给用户

+ 3 - 0
app/lang/zh.php

@@ -262,4 +262,7 @@ return [
     '您已投诉过该客服,无需重复投诉' => '您已投诉过该客服,无需重复投诉',
     '投诉项不存在' => '投诉项不存在',
     '已处理' => '已处理',
+    '已评价' => '已评价',
+    '请打分' => '请打分',
+    '参数有误'  => '参数有误',
 ];