Example #1
0
 public function testQuery()
 {
     $query = 'SELECT * FROM :table';
     $expected = 'SELECT * FROM language';
     $db = $this->getMockBuilder(Db::class)->disableOriginalConstructor()->getMock();
     $db->expects($this->once())->method('getConventionTableName')->will($this->returnArgument(0));
     $db->expects($this->once())->method('query')->with($this->equalTo($expected));
     $table = new Table($db, 'language');
     $table->query($query);
 }
Example #2
0
<?php

/**
 * 初始化所有计划任务
 */
include_once "common.php";
$conn = new Table("local189");
$conn->query("TRUNCATE TABLE  `tianyunzi`.`360_jihua`");
$api = "https://api.e.360.cn/account/clientLogin";
$postData = array("format" => "json", "username" => "郑州悉知", "passwd" => "7232275XZgcw");
$md = md5("7232275XZgcw");
$key = "15fdeq7buepvssh8z899rusa6ynxufyn";
$m = new Xcrypt(substr($key, 0, 16), 'cbc', substr($key, 16, 16));
$postData["passwd"] = $m->encrypt($md, 'hex');
$header = array();
$header[] = "serveToken:" . microtime(1);
$header[] = "apiKey:1kg8tunzfxt8zvzpf53vjr5es45lvszh";
$str = curlPost($api, $header, $postData);
if (!isset($str["accessToken"])) {
    exit("用户登录验证失败!\n");
} else {
    echo "用户登录验证成功!\n";
}
/*查询下所有的推广计划 */
$api = "https://api.e.360.cn/2.0/account/getCampaignIdList";
$header[] = "accessToken:" . $str["accessToken"];
$header[] = "sessionToken:" . $str["sessionToken"];
$params = array("format" => "json");
$str = curlPost($api, $header, $params);
if (!isset($str["campaignIdList"])) {
    exit("无法获取到任何推广计划id\n");
Example #3
0
 public function __call($method, $args = null)
 {
     $method_order = explode('OrderBy', $method);
     preg_match('/^(select)|(update)|(delete)|(count)/', $method_order[0], $matches);
     if (!empty($matches[0])) {
         $class = get_class($this);
         $query = Table::constructQuery($class, $matches[0], $method, $args);
         switch ($matches[0]) {
             case 'count':
                 return reset(reset(Table::query($query)));
             case 'select':
                 if (empty($args[self::ARRAY_SINGLE]) && empty($args[self::OBJECT_SINGLE]) && empty($args[self::ARRAY_MULTIPLE]) && empty($args[self::OBJECT_MULTIPLE])) {
                     if (strstr($method_order[0], 'All') === false) {
                         $args[self::OBJECT_SINGLE] = true;
                     } else {
                         $args[self::OBJECT_MULTIPLE] = true;
                     }
                 }
                 foreach (self::$_inject_modes as $mode) {
                     if (!empty($args[$mode])) {
                         $inject_mode = $mode;
                         break;
                     }
                 }
                 $result = Table::query($query);
                 if (!empty($result)) {
                     switch ($inject_mode) {
                         case self::ARRAY_SINGLE:
                             return reset($result);
                         case self::OBJECT_SINGLE:
                             $object = new $class(reset($result));
                             if (ENABLE_LOG && $this->_logging) {
                                 Event::log($object, Event::BROWSE, '', Session::getUser());
                             }
                             return $object;
                         case self::ARRAY_MULTIPLE:
                             $collection = array();
                             foreach ($result as $struct) {
                                 $collection[] = $struct;
                             }
                             return $collection;
                         case self::OBJECT_MULTIPLE:
                             $collection = array();
                             foreach ($result as $struct) {
                                 $collection[] = new $class($struct);
                             }
                             return $collection;
                     }
                 } else {
                     switch ($inject_mode) {
                         case self::ARRAY_SINGLE:
                         case self::ARRAY_MULTIPLE:
                         case self::OBJECT_MULTIPLE:
                             return array();
                         case self::OBJECT_SINGLE:
                             return null;
                     }
                 }
             case 'update':
                 $primary_key = constant($class . '::PRIMARY');
                 if (empty($this->{$primary_key})) {
                     if (method_exists($this, '_onInsert')) {
                         $this->_onInsert();
                     }
                 } else {
                     if (method_exists($this, '_onUpdate')) {
                         $this->_onUpdate();
                     }
                 }
                 $args = get_object_vars($this);
                 foreach ($args as $arg => $val) {
                     if (substr($arg, 0, 1) == '_') {
                         unset($args[$arg]);
                     }
                 }
                 $query = Table::constructQuery($class, $matches[0], $method, $args);
                 $result = Table::query($query);
                 $primary = constant($class . '::PRIMARY');
                 if (empty($this->{$primary})) {
                     $this->{$primary} = $result;
                     try {
                         if (ENABLE_LOG && $this->_logging) {
                             Event::log($this, Event::CREATE, '', Session::getUser());
                         }
                     } catch (Exception $exc) {
                     }
                 } else {
                     try {
                         if (ENABLE_LOG && $this->_logging) {
                             $event = Event::get()->selectOneByEntityIdAndEntityAndActionOrderByDescTimestamp($this->{$primary}, $class, Event::BROWSE);
                             if (!empty($event)) {
                                 if ($this->_isDirty()) {
                                     $event->timestamp = time();
                                     $event->action = Event::MODIFY;
                                     $event->initial = str_replace(array("'", '"'), array('', "'"), $this->_initial);
                                     $event->update();
                                 } else {
                                     $event->delete();
                                 }
                             }
                         }
                     } catch (Exception $exc) {
                     }
                 }
                 return $result;
             case 'delete':
                 if (empty($args)) {
                     $primary = constant($class . '::PRIMARY');
                     $args = array($this->{$primary});
                     $method = 'deleteOneBy' . str_replace(' ', '', ucwords(str_replace('_', ' ', $primary)));
                 }
                 if (method_exists($this, '_onDelete')) {
                     $this->_onDelete();
                 }
                 $query = Table::constructQuery($class, $matches[0], $method, $args);
                 try {
                     if (ENABLE_LOG && $this->_logging) {
                         Event::log($this, Event::DELETE, $this->_initial, Session::getUser());
                     }
                 } catch (Exception $exc) {
                 }
                 return Table::query($query);
         }
     }
 }
 public static function getUserByUsername($name)
 {
     $q = sprintf("SELECT * FROM users\n\t\t\t\t\t  WHERE username='******'", $name);
     return Table::query($q, new User());
 }
Example #5
0
<?php

/**
 * 初始化推广计划
 */
$conn = new Table("local189");
$conn->query("TRUNCATE TABLE  `tianyunzi`.`baidu_jihua`");
$data = array("header" => array("token" => "1f888ce6fb38730a14a6afe7437fc3b4", "username" => "郑州悉知", "password" => "GCWgcd7232275"), "body" => array("campaignIds" => null, "campaignFields" => array("campaignId", "campaignName", "status")));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.baidu.com/json/sms/service/CampaignService/getCampaign");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
//$data是每个接口的json字符串
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//不加会报证书问题
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//不加会报证书问题
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8'));
$result = curl_exec($ch);
$result = json_decode($result, true);
if (empty($result) || !isset($result["body"]["data"])) {
    exit("无法获取baidu计划数据\n");
}
foreach ($result["body"]["data"] as $value) {
    $conn->insert(array("id" => $value["campaignId"], "name" => $value["campaignName"], "status" => $value["status"]), "tianyunzi.baidu_jihua");
    echo "新增新计划 " . $value["campaignName"] . "\n";
}
class Config
{
    public static $dbArr = array('localhost' => array('192.168.12.70', "root", "123456", "test"), 'online' => array('192.168.2.163', "gongchangdb", "gongchangdb7232275", "caijiproductinfo"), 'info' => array('192.168.2.101', 'hangye', 'hangye7232275', 'hangye'), 'local' => array('192.168.8.18', 'root', 'gc7232275', 'gcoperate'), "local170" => array('192.168.8.170', "root", "gc7232275", "test"), 'local189' => array('192.168.8.189', 'gongchang', 'gongchang123', 'tianyunzi'), 'main' => array('read.mysql.ch.gongchang.com', 'gcwork', 'gcwork7232275', 'catesearch'), 'maind' => array('write.mysql.ch.gongchang.com', 'gcwork', 'gcwork7232275', 'catesearch'), "product" => array("pdinfo.read.mysql.ch.gongchang.com", "gccontent", "gccontent7232275", "caijiproductinfo"), 'club' => array('55651c3e54ae6.sh.cdb.myqcloud.com', 'cdb_outerroot', 'ScIwH*3fEB(', 'cn_clubnew', 8287), 'txonline' => array('172.17.18.4', 'gckeyword', 'WVwVaxADjX9z3PHd', 'gckeyword'));
Example #6
0
    $mysqlRs = $clubObj->findAll("select * from pre_forum_thread where tid > '{$id}' order by tid asc limit 100");
    if (empty($mysqlRs)) {
        exit("所有数据处理完毕!");
    }
    foreach ($mysqlRs as $value) {
        $id = $value["tid"];
        echo $id . "\n";
        if (!in_array($value["fid"], $fids)) {
            continue;
        }
        if ($value["authorid"] != "2563479") {
            continue;
        }
        var_dump($value);
        echo "\n";
        $clubObj->query("delete from pre_forum_thread where tid = '" . $value["tid"] . "'");
    }
}
class Config
{
    public static $dbArr = array('localhost' => array('192.168.12.70', "root", "123456", "test"), 'online' => array('192.168.2.163', "gongchangdb", "gongchangdb7232275", "caijiproductinfo"), 'info' => array('192.168.2.101', 'hangye', 'hangye7232275', 'hangye'), 'local' => array('192.168.8.18', 'root', 'gc7232275', 'gcoperate'), "local170" => array('192.168.8.170', "root", "gc7232275", "test"), 'local189' => array('192.168.8.189', 'gongchang', 'gongchang123', 'gckeyword'), 'main' => array('read.mysql.ch.gongchang.com', 'gcwork', 'gcwork7232275', 'catesearch'), 'maind' => array('write.mysql.ch.gongchang.com', 'gcwork', 'gcwork7232275', 'catesearch'), "product" => array("pdinfo.read.mysql.ch.gongchang.com", "gccontent", "gccontent7232275", "caijiproductinfo"), 'club' => array('172.17.18.2', 'root', 'gc7232275', 'cn_clubnew', 3306), 'txonline' => array('172.17.18.4', 'gckeyword', 'WVwVaxADjX9z3PHd', 'gckeyword'));
    public static $cateApiUrl = 'http://cate.ch.gongchang.com/cate_json/';
}
class Table
{
    public $conn = '';
    public $config;
    public function __construct($connName)
    {
        $db = Config::$dbArr;
        $this->config = $db[$connName];
Example #7
0
<?php

/**
 * 初始化所有关键词
 */
$id = 0;
/* 清空下所有的关键词 */
$conn = new Table("local189");
$conn->query("TRUNCATE TABLE  `tianyunzi`.`baidu_keywords`");
$conn->close();
while (1) {
    $conn = new Table("local189");
    $groupArr = $conn->findAll("select * from tianyunzi.baidu_group where id > '{$id}' order by id asc limit 100");
    if (empty($groupArr)) {
        echo "所有的单元已经过完\n";
        exit;
    }
    foreach ($groupArr as $value) {
        $id = $value["id"];
        /* 获取当前单元下的所有关键词 */
        $keywordArr = getKeyword($value["id"]);
        if (empty($keywordArr) || !isset($keywordArr["body"]["data"])) {
            echo "计划[" . $value["jihuaname"] . "],单元[" . $value["groupname"] . "],没有查到关键词\n";
            continue;
        }
        foreach ($keywordArr["body"]["data"] as $value1) {
            if (!isset($value1["pcDestinationUrl"])) {
                continue;
            }
            /* 插入数据库 */
            $insertArr = array("id" => $value1["keywordId"], "campaignId" => $value1["campaignId"], "adgroupId" => $value1["adgroupId"], "keyword" => $value1["keyword"], "pcDestinationUrl" => $value1["pcDestinationUrl"]);
Example #8
0
<?php

/**
 * 初始化所有的关键词组
 */
include_once "common.php";
$conn = new Table("local189");
$conn->query("TRUNCATE TABLE  `tianyunzi`.`360_group`");
$jihuaArr = $conn->findAll("select * from tianyunzi.360_jihua limit 100");
$api = "https://api.e.360.cn/account/clientLogin";
$postData = array("format" => "json", "username" => "郑州悉知", "passwd" => "7232275XZgcw");
$md = md5("7232275XZgcw");
$key = "15fdeq7buepvssh8z899rusa6ynxufyn";
$m = new Xcrypt(substr($key, 0, 16), 'cbc', substr($key, 16, 16));
$postData["passwd"] = $m->encrypt($md, 'hex');
$header = array();
$header[] = "serveToken:" . microtime(1);
$header[] = "apiKey:1kg8tunzfxt8zvzpf53vjr5es45lvszh";
$str = curlPost($api, $header, $postData);
if (!isset($str["accessToken"])) {
    exit("用户登录验证失败!\n");
} else {
    echo "用户登录验证成功!\n";
}
$header[] = "accessToken:" . $str["accessToken"];
$header[] = "sessionToken:" . $str["sessionToken"];
foreach ($jihuaArr as $value) {
    $api = "https://api.e.360.cn/2.0/group/getIdListByCampaignId";
    $params = array("format" => "json", "campaignId" => intval($value["id"]));
    $str = curlPost($api, $header, $params);
    if (!isset($str["groupIdList"])) {
 protected static function getAllItemsByTable(Table $instance, $orderby = 'name')
 {
     $q = sprintf("SELECT * FROM %s ORDER BY %s", $instance->table['table'], $orderby);
     return Table::query($q, $instance, $is_multi = true);
 }
Example #10
0
<?php

/**
 * 初始化推广单元
 */
$conn = new Table("local189");
$conn->query("TRUNCATE TABLE  `tianyunzi`.`baidu_group`");
$id = 0;
while (1) {
    $jihuaArr = $conn->findAll("select * from tianyunzi.baidu_jihua where id > '{$id}' order by id asc limit 100");
    if (empty($jihuaArr)) {
        exit("所有计划已经过完\n");
    }
    foreach ($jihuaArr as $value) {
        $id = $value["id"];
        /* 获取当前计划下单元信息 */
        $groupArr = getGroup($value["id"]);
        if (empty($groupArr) || !isset($groupArr["body"]["data"])) {
            echo "计划 " . $value["name"] . " 下没有获取到单元信息\n";
            continue;
        }
        foreach ($groupArr["body"]["data"] as $value1) {
            echo "新增计划[" . $value["name"] . "],单元[" . $value1["adgroupName"] . "]\n";
            $conn->insert(array("id" => $value1["adgroupId"], "groupname" => $value1["adgroupName"], "jihuaId" => $value1["campaignId"], "jihuaname" => $value["name"], "status" => 31), "tianyunzi.baidu_group");
            continue;
        }
    }
}
function getGroup($jihuaId)
{
    $data = array("header" => array("token" => "1f888ce6fb38730a14a6afe7437fc3b4", "username" => "郑州悉知", "password" => "GCWgcd7232275"), "body" => array("adgroupFields" => array("adgroupId", "campaignId", "adgroupName", "status"), "ids" => array($jihuaId), "idType" => 3));
Example #11
0
 public function getAnswers($start_date = null, $end_date = null)
 {
     if (!empty($start_date) && !empty($end_date)) {
         $answers = Table::query('SELECT * from ' . UserAnswer::TABLE . ' WHERE a.user_id = ' . $this->user_id . ' AND a.timestamp >= "' . $start_date . '" AND a.timestamp <= "' . $end_date . '" ORDER BY a.timestamp DESC');
     } else {
         if (!empty($start_date)) {
             $answers = Table::query('SELECT * from ' . UserAnswer::TABLE . ' WHERE a.user_id = ' . $this->user_id . ' AND a.timestamp >= "' . $start_date . '" ORDER BY a.timestamp DESC');
         } else {
             if (!empty($end_date)) {
                 $answers = Table::query('SELECT * from ' . UserAnswer::TABLE . ' WHERE a.user_id = ' . $this->user_id . ' AND a.timestamp <= "' . $end_date . '" ORDER BY a.timestamp DESC');
             } else {
                 $answers = Table::query('SELECT * from ' . UserAnswer::TABLE . ' WHERE a.user_id = ' . $this->user_id . ' ORDER BY a.timestamp DESC');
             }
         }
     }
     $this->_answers = $answers;
 }
 public static function getByUidAndSid($uid, $sid)
 {
     $q = "SELECT * FROM user_token\r\n\t\t\t  WHERE uid={$uid} AND sid='{$sid}'";
     return Table::query($q, new UserToken());
 }