Browse Source

师傅添加和编辑,影响im

lizhen_gitee 5 months ago
parent
commit
c081be79ea

+ 21 - 0
application/admin/model/Worker.php

@@ -4,6 +4,7 @@ namespace app\admin\model;
 
 use think\Model;
 use traits\model\SoftDelete;
+use app\common\library\Tenim;
 
 class Worker extends Model
 {
@@ -31,6 +32,26 @@ class Worker extends Model
     ];
     
 
+    protected static function init()
+    {
+        self::afterInsert(function($row){
+            $worker_id = $row['id'];
+            //注册到im
+            //user_用户端小程序,master_师傅,kefu_客服
+            $tenim = new Tenim();
+            $rs = $tenim->register('master_'. $worker_id, $row['truename'], localpath_to_netpath($row['avatar']));
+        });
+        self::afterUpdate(function ($row) {
+            $changed = $row->getChangedData();
+
+            //如果有修改头像或昵称,同步到im
+            if (isset($changed['truename']) || isset($changed['avatar'])) {
+                //user_用户端小程序,master_师傅,kefu_客服
+                $tenim = new Tenim();
+                $rs = $tenim->useredit('master_'. $row['id'], $row['truename'], localpath_to_netpath($row['avatar']));
+            }
+        });
+    }
     
     public function getStatusList()
     {

+ 12 - 2
application/company/controller/Worker.php

@@ -3,8 +3,8 @@
 namespace app\company\controller;
 
 use app\common\controller\Apic;
-use Symfony\Component\Cache\Adapter\NullAdapter;
 use think\Db;
+use app\common\library\Tenim;
 /**
  * 师傅
  */
@@ -45,7 +45,12 @@ class Worker extends Apic
             'jineng_image'   => input('jineng_image',''),
         ];
 
-        Db::name($this->table)->insertGetId($data);
+        $worker_id = Db::name($this->table)->insertGetId($data);
+
+        //注册到im
+        //user_用户端小程序,master_师傅,kefu_客服
+        $tenim = new Tenim();
+        $rs = $tenim->register('master_'. $worker_id, $data['truename'], localpath_to_netpath($data['avatar']));
 
         $this->success();
     }
@@ -89,6 +94,11 @@ class Worker extends Apic
 
         Db::name($this->table)->where('id',$id)->update($data);
 
+        //如果有修改头像或昵称,同步到im
+        //user_用户端小程序,master_师傅,kefu_客服
+        $tenim = new Tenim();
+        $rs = $tenim->useredit('master_'. $id, $data['truename'], localpath_to_netpath($data['avatar']));
+
         $this->success();
     }
 

+ 97 - 0
extend/tencentim/tencentim.php

@@ -0,0 +1,97 @@
+<?php
+namespace tencentim;
+
+class Tencentim
+{
+    private $api_url;
+
+    /**
+     * 构造函数
+     */
+    public function __construct($api_url)
+    {
+        $this->api_url = $api_url;
+    }
+
+
+    /**
+     * $params 请求参数
+     */
+    function toSend($receiptdata) {
+        // 构造请求参数
+        $params = $receiptdata;
+        // random int
+        $params = json_encode($params);
+        $result = $this->http_post_json($this->api_url,$params);
+        if ($result === FALSE) {
+            return array("code" => 500, "msg" => "file_get_contents failed.");
+        } else {
+            return json_decode($result, true);
+        }
+    }
+
+
+    /**
+     * @param $url
+     * @param $jsonStr
+     * @return array
+     */
+    function http_post_json_old($url, $jsonStr)
+    {
+        $ch = curl_init();
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonStr);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+                'Content-Type: application/json; charset=utf-8',
+                'Content-Length: ' . strlen($jsonStr)
+            )
+        );
+        $response = curl_exec($ch);
+        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+        curl_close($ch);
+        return array($httpCode, $response);
+    }
+
+    function http_post_json($url, $data, $header = '', $timeOut = 0)
+    {
+        //初始化curl
+        $ch = curl_init();
+        //参数设置
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
+        curl_setopt($ch, CURLOPT_TIMEOUT, $timeOut);
+        curl_setopt($ch, CURLOPT_HEADER, 0);
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        if($header != '') {
+            curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
+        }
+        $result = curl_exec($ch);
+
+        //连接失败
+        if($result == FALSE) {
+            //\think\Log::record('[ CURL ] ERROR ' . curl_error($ch)."\n".var_export(debug_backtrace(), true)."\n", 'error');
+        }
+        curl_close($ch);
+        return $result;
+    }
+
+    /**
+     * $params 请求参数
+     */
+    function messageCheck($params) {
+
+        $result = $this->http_post_json($this->api_url,$params);
+        if ($result === FALSE) {
+            return array("code" => 500, "msg" => "file_get_contents failed.");
+        } else {
+            return json_decode($result[1], true);
+        }
+    }
+
+}
+