public function receive() { global $_W; //增加关注就插入最基础的FROMID和WEID 以及绑定微信号 if ($this->message['type'] == 'subscribe') { //高级权限号执行 $u = pdo_fetch("SELECT id,from_user,nickname,avatar FROM " . tablename('fans') . " WHERE weid = '{$_W['weid']}' AND from_user='******'from']}' LIMIT 1"); if (empty($u['nickname']) || empty($u['avatar'])) { //增加判断用户昵称或者头像为空,才执行重取同步微信资料 $user = gj_getuserinfo($this->message['from']); if (empty($u['from_user'])) { if (!empty($user['from_user'])) { pdo_insert('fans', $user); } } else { if (!empty($user['from_user'])) { unset($user['from_user']); pdo_update('fans', $user, array('from_user' => $this->message['from'])); } } //END } //end } /* else{ if($this->message['type']!='unsubscribe'){ $u=pdo_fetch("SELECT id,from_user,nickname,avatar FROM ".tablename('fans')." WHERE weid = '{$_W['weid']}' AND from_user='******'from']}' LIMIT 1"); $user=gj_getuserinfo($this->message['from']); if(empty($u['nickname'])||empty($u['avatar'])){ if(!empty($user['from_user'])){ pdo_insert('fans', $user); } } } }*/ }
public function doWebgetuser($oid) { //用户入库 global $_GPC, $_W; $oid = $_GPC['oid']; $page = $_GPC['page'] ? $_GPC['page'] : 0; $pagesize = $_GPC['pagesize'] ? $_GPC['pagesize'] : 20; $dr = $_GPC['dr']; $userlist = gj_getuserlist(0, $oid); //print_r($pagesize);exit; if ($dr) { $fans = pdo_fetchall("SELECT from_user FROM " . tablename('fans') . " WHERE WEID='{$_W['weid']}' "); foreach ($fans as $f) { $oldfans['data']['openid'][] = $f['from_user']; $oldfans['total'] = count($fans); $oldfans[count] = count($fans); $oldfans[next_openid] = $fans['from_user']; } $userlist['data']['openid'] = array_diff($userlist['data']['openid'], $oldfans['data']['openid']); } //print_r($userlist['data']['openid']);exit; if ($userlist['ret']) { message('出错啦!出错代码:' . $userlist['ret'] . '出错信息:' . $userlist['message'], create_url('site/module/manage', array('name' => 'reg', 'type' => '3')), 'error'); exit; } if ($pagesize >= $userlist['total']) { message('导入数过多,请不要设置超过总用户数,你当前用户总数为' . $userlist['total'] . '请返回重新设置', create_url('site/module/manage', array('name' => 'reg', 'type' => '3')), 'error'); $total = $userlist['total']; } else { $total = $pagesize * ($page + 1); } if ($userlist['total'] && !empty($userlist)) { //循环第一次导入1万个号。 //foreach ($userlist['data']['openid'] as $uid) for ($i = $pagesize * $page; $i <= $total - 1; $i++) { //$oid=$dr?$userlist['data']['openid'][$i]:$userlist['data']['openid'][$i]; $oid = $userlist['data']['openid'][$i]; $u = pdo_fetch("SELECT * FROM " . tablename('fans') . " WHERE weid = '{$_W['weid']}' AND from_user='******' LIMIT 1"); if ($oid) { $user = gj_getuserinfo($oid); /*如果用户资料查义出错跳出循环 if(empty($user['from_user'])){ message($user.'未获到用户数据!'.$total, create_url('index/module', array('name' => 'reg', 'do' => 'manage')) , 'error'); break; } */ //改为,如果未取到用户资料,就跳过插入数据 //print_r($user); //pdo_debug();exit;from_user] if (is_array($user)) { if (empty($u['from_user'])) { $inesert = pdo_insert('fans', $user); if ($inesert) { $tips .= $user['nickname'] . '导入成功<br />'; } else { $tips .= $user['nickname'] . '本次入库失败 <br />'; //pdo_debug();exit; } } else { $gx = pdo_update('fans', $user, array('id' => $u['id'])); if ($gx == 0 || $gx) { $tips .= '本次更新用户' . $user['nickname'] . '成功<br/>'; } else { $tips .= '<b>本次更新用户' . $user['nickname'] . $userlist['data']['openid'][$i] . '失败</b> <br />'; } } } else { //print_r($user); $tips .= $user . '无此用户数据不导入 <br />'; } } else { $tips .= '用户数据OID 为空不导入 <br />'; } //END,如果没用户数据,就不执行导入。 //判断本批一万个,循环时给出下一批用户开如ID if ($i < $userlist['total'] - 1 && $i != $userlist['count']) { $next_openid = ''; } else { $next_openid = $userlist['next_openid']; } } if (empty($userlist['next_openid']) || $i >= $userlist['total'] || $userlist['total'] <= $pagesize) { message('本次导入任务结束!', create_url('site/module/manage', array('name' => 'reg', 'type' => '3')), 'success'); } else { message('请勿关闭浏览器还在导入中...!共' . $userlist['total'] . '人,正在导入第' . ($page + 1) . '批次<br />' . $tips, create_url('site/module/getuser', array('name' => 'reg', 'type' => '3')) . '&page=' . ($page + 1) . '&pagesize=' . $pagesize . '&dr=' . $dr . '&oid=' . $next_openid, 'success'); } //print_r('下一个OID'.$next_openid.'总用户数'.$userlist['total'].'计算总数和循环数差值'.($userlist['total']-(($pagesize*$page))+($i%$pagesize))); } else { message($userlist['errmsg'] . '错误,未获到数据!', create_url('site/module/manage', array('name' => 'reg', 'type' => '3')), 'error'); } }
public function kfbefore($kfuid, $reg = 1, $kfwenda = '', $chattype = 1, $timeout = '7200') { global $_W; if (!$reg) { //判断用户注册否 if ($chattype) { $user = gj_getuserinfo($this->message['from']); if (!empty($user['from_user'])) { $adduser = pdo_insert('fans', $user); } if (!$adduser) { $tips = '未找到您的信息,请点此:<a target="_blank" href="' . create_url('mobile/module', array('name' => 'fans', 'do' => 'profile', 'weid' => $_W['weid'])) . '">会员信息登记</a>您的信息'; } else { $tips = "\n找人工,请发送:【人工】\n如果不想找人工请发送:【退出】"; } } else { $tips = '您还未绑定微信号,请发送:[绑定],后再来[人工客服]。谢谢!'; } return $tips; } //判断是否是客服人员 if ($kfuid) { $kfinfo = "\n客服人员,请发送:【客服管理】"; if (!$this->inContext) { $this->beginContext($timeout); } } else { $kfinfo = "\n找人工,请发送:【人工】\n如果不想找人工请发送:【退出】"; if (!$this->inContext) { $this->beginContext($timeout); } } //如果客服自动应答有数据 if (!empty($kfwenda) && is_array($kfwenda)) { $rid = $this->rule; $sql = "SELECT * FROM " . tablename('kf') . " WHERE `rid`=:rid LIMIT 1"; $row = pdo_fetch($sql, array(':rid' => $rid)); $kfnews = array(); $kfnews[0] = array('title' => '帮助菜单点击进入[]' . $kfinfo, 'description' => '在线帮助,点此进入查询相关帮助说明', 'picurl' => $_W['attachurl'] . trim($row['picture'], '/'), 'url' => create_url('mobile/channel', array('name' => 'list', 'cid' => $row['cateid'], 'weid' => $_W['weid']))); /**/ foreach ($kfwenda as $v) { $kfmenu = array(); $kfmenu['title'] = $v['displayorder'] . ':' . $v['name']; $kfcmenu['description'] = $v['description']; $kfmenu['picurl'] = ''; $kfmenu['url'] = create_url('mobile/channel', array('name' => 'list', 'cid' => $v['id'], 'weid' => $_W['weid'])); $kfnews[] = $kfmenu; } $tips = $kfnews; } else { //无客服自动应答 $tips = $kfinfo; } return $tips; }