|
@@ -7,6 +7,9 @@ use Illuminate\Http\Request;
|
|
|
use GuzzleHttp\Client;
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
use App\Models\HukeCallback;
|
|
|
+use App\Models\Member;
|
|
|
+use App\Models\MemberShuobo;
|
|
|
+use App\Services\Auth\RegisterService;
|
|
|
|
|
|
class ScrmController extends ApiBaseController
|
|
|
{
|
|
@@ -39,6 +42,31 @@ class ScrmController extends ApiBaseController
|
|
|
'content' => json_encode($request->all()),
|
|
|
];
|
|
|
HukeCallback::create($log);
|
|
|
+ $data = $request->all();
|
|
|
+ //$fields = $this->get_customer_fields();
|
|
|
+ switch ($data['type']){
|
|
|
+ case '1011':
|
|
|
+ $param = json_decode($data['params']['customerEvent']);
|
|
|
+ $res = $this->get_customer_query(3,[$param['cid']]);//根据返回的cid查询用户信息
|
|
|
+ if($res){//查询成功
|
|
|
+ $customer = $this->format_user($res[0]);
|
|
|
+ switch ($customer['label']){
|
|
|
+ case '硕博人才':
|
|
|
+ $user = Member::where('mobile',$customer['mobile'])->first();
|
|
|
+ if(!$user){
|
|
|
+ //手机号找不到聚才网账户,进行注册并入库
|
|
|
+ $registerService = new RegisterService();
|
|
|
+ $user = $registerService->registerPersonScrm($customer);
|
|
|
+ }
|
|
|
+ //如果手机号在聚才网已存在账户,将信息入库
|
|
|
+ $customer['uid'] = $user->id;
|
|
|
+ MemberShuobo::create($customer);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public function get_customer_fields($update = false)
|
|
@@ -73,6 +101,14 @@ class ScrmController extends ApiBaseController
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询客户列表
|
|
|
+ * @param $start
|
|
|
+ * @param $end
|
|
|
+ * @param $page
|
|
|
+ * @param $page_size
|
|
|
+ * @throws \GuzzleHttp\Exception\GuzzleException
|
|
|
+ */
|
|
|
public function get_customer_list($start,$end,$page,$page_size)
|
|
|
{
|
|
|
$params = [
|
|
@@ -99,13 +135,167 @@ class ScrmController extends ApiBaseController
|
|
|
dd($res);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 格式化互客用户信息
|
|
|
+ * @param array $data
|
|
|
+ */
|
|
|
+ public function format_user(array $data)
|
|
|
+ {
|
|
|
+ $user = [];
|
|
|
+ if(is_array($data['customFields'])){
|
|
|
+ foreach ($data['customFields'] as $k => $v){
|
|
|
+ switch ($v['id']){
|
|
|
+ case -1:
|
|
|
+ $user['avatars'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -2:
|
|
|
+ $user['realname'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -3:
|
|
|
+ $user['mobile'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -4:
|
|
|
+ $user['email'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -5:
|
|
|
+ $user['weixin'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -6:
|
|
|
+ $user['wechat_name'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -7:
|
|
|
+ $user['sex'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -8:
|
|
|
+ $user['area'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -9:
|
|
|
+ $user['tel'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case -10:
|
|
|
+ $user['tel_ex'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10018777:
|
|
|
+ $user['label'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019746:
|
|
|
+ $user['address'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019747:
|
|
|
+ $user['trade'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019748:
|
|
|
+ $user['company'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10020717:
|
|
|
+ $user['job'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10018778:
|
|
|
+ $user['birthday'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019749:
|
|
|
+ $user['origin'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10018779:
|
|
|
+ $user['remark'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10018780:
|
|
|
+ $user['attachment'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019750:
|
|
|
+ $user['cid'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019751:
|
|
|
+ $user['age_range'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10019765:
|
|
|
+ $user['age'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10031724:
|
|
|
+ $user['level'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 10051871:
|
|
|
+ $user['edu'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15293060:
|
|
|
+ $user['politic_countenance'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15353563:
|
|
|
+ $user['education'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15352635:
|
|
|
+ $user['school'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15355464:
|
|
|
+ $user['pro'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15354507:
|
|
|
+ $user['graduation_time'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15352636:
|
|
|
+ $user['country'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15352650:
|
|
|
+ $user['come_in_time'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15353579:
|
|
|
+ $user['require'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15353580:
|
|
|
+ $user['trade_type'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ case 15355480:
|
|
|
+ $user['speciality'] = $v['fieldValue'];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $user;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @param int $type 0-手机,1-微信号, 2-邮箱,3-cid 4-唯一ID,5-姓名,6-公司/客户名称,7-微信unionId
|
|
|
+ * @param array $value 对应查询类型的字段列表,数量不能超过100
|
|
|
+ */
|
|
|
+ public function get_customer_query(int $type,array $value)
|
|
|
+ {
|
|
|
+ if($type < 0 || $type > 7)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ if(count($value) < 1){
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ $params = [
|
|
|
+ 'type' => $type,
|
|
|
+ 'targets' => $value
|
|
|
+ ];
|
|
|
+ $params = json_encode($params);
|
|
|
+ $appSecret = substr(openssl_digest(openssl_digest($this->app_secret, 'sha1', true), 'sha1', true), 0, 16);
|
|
|
+ $time = time();
|
|
|
+ $sign = md5($params);
|
|
|
+ $checksum = bin2hex(openssl_encrypt($this->app_key. $sign. $time, 'AES-128-ECB', $appSecret, OPENSSL_RAW_DATA));
|
|
|
+ $headers = [
|
|
|
+ 'Content-Type' => 'application/json',
|
|
|
+ 'ur-appkey' => $this->app_key,
|
|
|
+ 'ur-sign' => $sign,
|
|
|
+ 'ur-curtime' => $time,
|
|
|
+ 'ur-checksum' => $checksum
|
|
|
+ ];
|
|
|
+
|
|
|
+ $response = $this->httpClient->post('https://huke.163.com/openapi/customer/query', ['body'=>$params,'headers' => $headers]);
|
|
|
+ $res = json_decode($response->getBody()->getContents(),true);
|
|
|
+ return $res['data'];
|
|
|
+ }
|
|
|
+
|
|
|
public function test()
|
|
|
{
|
|
|
$res = $this->get_customer_fields();
|
|
|
+ dd($res);
|
|
|
$params = [
|
|
|
- 'type' => 0,
|
|
|
+ 'type' => 3,
|
|
|
'targets' => [
|
|
|
- '15759560669'
|
|
|
+ '110762053'
|
|
|
]
|
|
|
];
|
|
|
$params = json_encode($params);
|