weiphp 数据统计插件
2015-10-13 16:50
726 查看
为了便于工作自己写了一个用户数据统计插件,看了一下Thinkphp的开发文档,然后就写了我第一个基于weiphp的插件,写的比较潦草,请多担待。
<?php
namespace Addons\data_tj\Model;
use Home\Model\WeixinModel;
/**
* data_tj的微信模型
*/
class WeixinAddonModel extends WeixinModel{
function reply($dataArr, $keywordArr = array()) {
$config = getAddonConfig ( 'data_tj' ); // 获取后台插件的配置参数
$param ['token'] = get_token ();
$param ['openid'] = get_openid ();
$User=M('follow');
$select=$User->where('openid="'.$param['openid'].'"')->find();
$nickname=$select['nickname'];
$wechat_auto=M("cache_user");
$select_num=$wechat_auto->where('openid="'.$param['openid'].'"')->count();
if($select_num==0){
$datetime=date('y-m-d H:i:s',time());
$strtotime=strtotime($datetime);
$number=$User->count();
$data[] = array('openid'=>$param['openid'],'nickname'=>$nickname,'cachenumber'=>'0','date'=>$strtotime);
$wechat_auto->addAll($data);
}
$nownumber=intval($User->count());
$cache=$wechat_auto->where('openid="'.$param['openid'].'"')->find();
$cachenumber=intval($cache['cachenumber']);
$cc=$nownumber-$cachenumber;
if($cachenumber!=$nownumber){
$content='新增加了'.$cc.'人'."\n";
$list = $User->limit($cachenumber,$nownumber)->getField('nickname,city,sex');
foreach($list as $k=>$v){
switch($v['sex']){
case '1':
$v['sex']='男';
break;
case '2':
$v['sex']='女';
break;
}
$aaa.='【'.$v['city'].'】'.'【'.$v['nickname'].'】'.'【'.$v['sex'].'】'."\n";
}
$strnumber='------------'."\n".'现在一共'.$nownumber.'人';
$this->replyText($content.$aaa.$strnumber);
$wechat_auto-> where('openid="'.$param['openid'].'"')->setField('cachenumber',$nownumber);
}else{
$date=$cache['date'];
$time=date('Y-m-d H:i:s',"$date");
$fortime=date('y-m-d H:i:s',time());
$forstrtotime=strtotime($fortime);
$content='[未增加人数]'."\n".'上次更新时间为'."\n".$time."\n".'现共有';
$this->replyText($content.$nownumber.'人');
$wechat_auto-> where('openid="'.$param['openid'].'"')->setField('date',$forstrtotime);
}
// $wechat_auto->addAll($dataList);
}
// 关注公众号事件
public function subscribe() {
return true;
}
// 取消关注公众号事件
public function unsubscribe() {
return true;
}
// 扫描带参数二维码事件
public function scan() {
return true;
}
// 上报地理位置事件
public function location() {
return true;
}
// 自定义菜单事件
public function click() {
return true;
}
}
具体的效果就是,微信输入“数据统计”然后就会返回微信人数。具体格式【地区】【昵称】【性别】。并给数据库缓存人数数据,这样管理员在每次查询的时候就不会出现篇幅较大的信息,只会抛出新增加人数信息。
由于本插件只是作为一个功能来供管理员使用,所以有很多没有考虑到的,请多担待。。
插件下载:
点击下载
<?php
namespace Addons\data_tj\Model;
use Home\Model\WeixinModel;
/**
* data_tj的微信模型
*/
class WeixinAddonModel extends WeixinModel{
function reply($dataArr, $keywordArr = array()) {
$config = getAddonConfig ( 'data_tj' ); // 获取后台插件的配置参数
$param ['token'] = get_token ();
$param ['openid'] = get_openid ();
$User=M('follow');
$select=$User->where('openid="'.$param['openid'].'"')->find();
$nickname=$select['nickname'];
$wechat_auto=M("cache_user");
$select_num=$wechat_auto->where('openid="'.$param['openid'].'"')->count();
if($select_num==0){
$datetime=date('y-m-d H:i:s',time());
$strtotime=strtotime($datetime);
$number=$User->count();
$data[] = array('openid'=>$param['openid'],'nickname'=>$nickname,'cachenumber'=>'0','date'=>$strtotime);
$wechat_auto->addAll($data);
}
$nownumber=intval($User->count());
$cache=$wechat_auto->where('openid="'.$param['openid'].'"')->find();
$cachenumber=intval($cache['cachenumber']);
$cc=$nownumber-$cachenumber;
if($cachenumber!=$nownumber){
$content='新增加了'.$cc.'人'."\n";
$list = $User->limit($cachenumber,$nownumber)->getField('nickname,city,sex');
foreach($list as $k=>$v){
switch($v['sex']){
case '1':
$v['sex']='男';
break;
case '2':
$v['sex']='女';
break;
}
$aaa.='【'.$v['city'].'】'.'【'.$v['nickname'].'】'.'【'.$v['sex'].'】'."\n";
}
$strnumber='------------'."\n".'现在一共'.$nownumber.'人';
$this->replyText($content.$aaa.$strnumber);
$wechat_auto-> where('openid="'.$param['openid'].'"')->setField('cachenumber',$nownumber);
}else{
$date=$cache['date'];
$time=date('Y-m-d H:i:s',"$date");
$fortime=date('y-m-d H:i:s',time());
$forstrtotime=strtotime($fortime);
$content='[未增加人数]'."\n".'上次更新时间为'."\n".$time."\n".'现共有';
$this->replyText($content.$nownumber.'人');
$wechat_auto-> where('openid="'.$param['openid'].'"')->setField('date',$forstrtotime);
}
// $wechat_auto->addAll($dataList);
}
// 关注公众号事件
public function subscribe() {
return true;
}
// 取消关注公众号事件
public function unsubscribe() {
return true;
}
// 扫描带参数二维码事件
public function scan() {
return true;
}
// 上报地理位置事件
public function location() {
return true;
}
// 自定义菜单事件
public function click() {
return true;
}
}
具体的效果就是,微信输入“数据统计”然后就会返回微信人数。具体格式【地区】【昵称】【性别】。并给数据库缓存人数数据,这样管理员在每次查询的时候就不会出现篇幅较大的信息,只会抛出新增加人数信息。
由于本插件只是作为一个功能来供管理员使用,所以有很多没有考虑到的,请多担待。。
插件下载:
点击下载
相关文章推荐
- 快速排序 php
- 冒泡排序算法 php
- PHP图像处理之画图
- Composer基础用法
- Laravel学习笔记
- Laravel的目录结构分析
- PHP学习笔记(08)——文件包含
- PHP学习笔记(07)——(超级全局变量及常量)
- php-fpm的作用
- php网页重定向的实现方法
- 学习小笔记---大话PHP设计模式
- php 3des 加解密的整理
- php 判断手机访问还是pc访问
- 扣出thinkphp数据库操作类
- ThinkPHP大总结
- php通过curl调用jpush接口实现消息的推送
- composer 安装
- 10个php函数实用却不常见
- PHP从头开始-5
- 如何在OS X Yosemite 配置php web站点及虚拟主机?