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);
     						}
     				}
     			
     			}
     			
     		}*/
 }
Exemple #2
0
 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;
 }