客服第一版 base

This commit is contained in:
aozhiwei 2019-01-23 10:55:23 +08:00
parent 94cb7822fe
commit 616cade040
3 changed files with 78 additions and 31 deletions

View File

@ -8,11 +8,4 @@ return array(
'user' => 'root',
'passwd' => 'keji178',
),
array(
'instance_id' => 2,
'host' => '127.0.0.1',
'port' => 3306,
'user' => 'root',
'passwd' => 'keji178',
),
);

View File

@ -0,0 +1,10 @@
<?php
return array(
'1011' => array (
"title" => '领取奖励',
"pagepath" => "http://mmbiz.qpic.cn/mmbiz_jpg/" .
"6zVc6fZKcB3zuNoqEULTjPSHPcaR26qciaSykxSCvw4SSq1I4Y6TAp7udB2BjST4YB9NedeRFfywlUt3AunAcJg/0",
"thumb_media_id" => 'h2oYnOGns5T7wcJmjFGWTsYnkz3j9Et3258n9xZ8eezOj-8Dzsk23Ao6SzHgV20A'
)
);

View File

@ -204,7 +204,7 @@ class KefuController {
$awardtime = $this->getAwardtimeFromDB($accountid);
if (isset($awardtime) and time() - $awardtime > 60 * 60 * 24 * 1) {
return true;
}else{
} else {
return false;
}
}
@ -324,24 +324,23 @@ class KefuController {
}
private function sendMsg($data, $openid, $accountid)
private function sendMsg($data, $accountid)
{
$postarray = json_encode( $data ,JSON_UNESCAPED_UNICODE);
error_log($postarray);
error_log("sendData:" . $postarray);
//POST发送https请求客服接口api
$access_token = $this->getAccessToken($openid, $accountid);
$access_token = $this->getAccessToken($accountid);
$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=$access_token";
error_log('aturl:' . $url);
$response = '';
if (!phpcommon\HttpClient::post($url, $postarray, $response)) {
phpcommon\sendError(ERR_RETRY, '系统繁忙');
return;
}
$ret_info = json_decode($response, true);
error_log('sendMsg:' . $response);
error_log('sendMsgRet:' . $response);
if ($ret_info['errcode'] == 0) {
exit ;
} else {
error_log($response);
echo(json_encode(array(
@ -353,9 +352,16 @@ class KefuController {
public function mytest()
{
error_log('mytest');
$openid = $_REQUEST['openid'];
$shareInfo = require('../config/kefu.share.config.php');
$miniprogrampateInfo = $shareInfo['1011'];
$data = array (
"touser" => $openid,
"msgtype" => "miniprogrampage",
"miniprogrampage" => $miniprogrampateInfo
);
$this->sendMsg($data, $_REQUEST['accountid']);
die();
$content = '回复【111】领取奖励';
$data = array (
@ -364,21 +370,57 @@ class KefuController {
"text"=> array ("content" => $content)
);
$this->sendMsg($data, $openid, $accountid);
$this->sendMsg($data, $_REQUEST['accountid']);
}
private function sendMsgSomeUser($arrayInfo)
{
foreach($arrayInfo as $userInfo) {
$shareInfo = require('../config/kefu.share.config.php');
$miniprogrampateInfo = $shareInfo['1011'];
$data = array (
"touser" => $userInfo['openid'],
"msgtype" => "miniprogrampage",
"miniprogrampage" => $miniprogrampateInfo
);
error_log('sendmsg11111:' . json_encode($data));
$this->sendMsg($data, $userInfo['accountid']);
}
}
private function sendOneDBInfo($minIdx, $maxIdx, $conn)
{
$selectOneCount = 20;
$selectCount = $maxIdx - $minIdx;
$remainderTimes = ($selectCount % $selectOneCount) ? 1 : 0;
$selectTimes = floor($selectCount / $selectOneCount) + $remainderTimes;
error_log('selectCount:' . $selectCount);
error_log('selectTimes:' . $selectTimes);
$selectMin = $minIdx;
for ($i = 0; $i < $selectTimes; $i++ ) {
error_log('selectMin:' . $selectMin);
$arrayInfo = $this->getAccountsKefuInfo($selectMin, $selectMin + $selectOneCount, $conn);
$this->sendMsgSomeUser($arrayInfo);
$selectMin = $selectMin + $selectOneCount;
}
}
public function sendMsgAllUser()
{
error_log('sendMsgAllUser:');
error_log($maxIdx);
$mysqls = $this->getAllMysql();
foreach($mysqls as $mysql_conf) {
$conn = getAppointMysql($mysql_conf);
$conn = $this->getAppointMysql($mysql_conf);
$minIdx = 10000;
$maxIdx = $this->getAwardDBMaxIdx($conn);
$arrayinfo = $this->getAccountsKefuInfo($minIdx, $maxIdx, $conn);
$this->sendOneDBInfo($minIdx, $maxIdx, $conn);
}
}
@ -408,26 +450,26 @@ class KefuController {
"msgtype" => "text",
"text" => array ("content" => $content)
);
$this->sendMsg($data, $openid, $accountid);
$this->sendMsg($data, $accountid);
}
}
} else {
$content = '一天内只能领取一次奖励!';
$content = "一天内只能领取一次奖励!\n请明天再来!";
$data = array (
"touser" => $openid,
"msgtype" => "text",
"text" => array ("content" => $content)
);
$this->sendMsg($data, $openid, $accountid);
$this->sendMsg($data, $accountid);
}
} else {
$content = '回复【111】领取奖励!';
$content = '回复指定文字领取奖励!';
$data = array (
"touser" => $openid,
"msgtype" => "text",
"text" => array ("content" => $content)
);
$this->sendMsg($data, $openid, $accountid);
$this->sendMsg($data, $accountid);
}
}
@ -464,13 +506,13 @@ class KefuController {
);
$this->insertKefuInfoToDB($accountid, $kefu_info);
}
$content = '您好,有什么能帮助你? 回复【111】领取奖励。 ' ;
$content = "您好,有什么能帮助你? \n回复指定文字领取奖励。 ";
$data = array (
"touser" => $openid,
"msgtype" => "text",
"text" => array ("content" => $content)
);
$this->sendMsg($data, $openid, $accountid);
$this->sendMsg($data, $accountid);
}
}
@ -519,10 +561,9 @@ class KefuController {
error_log($errCode . "\n");
}
}
public function getAccessToken($openid, $accountid)
public function getAccessToken($accountid)
{
$r = $this->getRedis($accountid);
@ -532,6 +573,9 @@ class KefuController {
return $access_token;
}
else {
$gameid = phpcommon\extractGameId($accountid);
$config_name = "../config/game$gameid/weixin/config.php";
require $config_name;
$appid = WEIXIN_APP_ID;
$appkey = WEIXIN_APP_SECRET;