コード例 #1
0
ファイル: plugin_load.php プロジェクト: jackycgq/bzfshop
 /**
  * 为系统设置运行环境
  *
  * @return bool
  */
 private function doYiqifaCpsAction()
 {
     // 获取当前插件的根地址
     $currentPluginBasePath = dirname(__FILE__);
     // yiqifacps code 目录加入到 auto load 的路径中,这样系统就能自动做 class 加载
     SystemHelper::addAutoloadPath($currentPluginBasePath . '/yiqifacps/Code');
     // 设置 CPS 日志,按照日期分目录存储
     $todayDateStr = \Core\Helper\Utility\Time::localTimeStr('Y-m-d');
     $todayDateArray = explode('-', $todayDateStr);
     $fileLogger = new \Core\Log\File('YIQIFACPS/' . $todayDateArray[0] . '/' . $todayDateArray[1] . '/' . implode('-', $todayDateArray) . '.yiqifacps.log');
     $fileLogger->sourceAllow[] = 'YIQIFACPS';
     // 只接收 YIQIFACPS 的日志
     global $logger;
     $logger->addLogger($fileLogger);
     // 把 $fileLogger 放到全局日志列表中
     // 设置路由,这样用户就能访问到我们的程序了
     SystemHelper::addRouteMap('/Thirdpart/YiqifaCps/Redirect', 'Controller\\Thirdpart\\YiqifaCps\\Redirect');
     SystemHelper::addRouteMap('/Thirdpart/YiqifaCps/QueryOrder', 'Controller\\Thirdpart\\YiqifaCps\\QueryOrder');
     SystemHelper::addRouteMap('/Thirdpart/YiqifaCps/CaibeiLogin', 'Controller\\Thirdpart\\YiqifaCps\\CaibeiLogin');
     // 设置一个 OrderRefer 用于记录订单来自于 亿起发CPS
     require_once $currentPluginBasePath . '/yiqifacps/Code/YiqifaCpsRefer.php';
     // 设置订单 refer 用于记录订单来源于 亿起发CPS
     ReferHelper::addReferItem('YiqifaCpsRefer', new YiqifaCpsRefer());
     // 增加 smarty 模板搜索路径
     global $smarty;
     $smarty->addTemplateDir($currentPluginBasePath . '/yiqifacps/Tpl/');
     return true;
 }
コード例 #2
0
ファイル: Console.php プロジェクト: jackycgq/bzfshop
 /**
  * 加入一条日志信息
  *
  * @param string $level   日志等级
  * @param string $source  日志的来源,比如 'SQL'
  * @param string $msg     日志消息
  * */
 public function addLogInfo($level, $source, $msg)
 {
     $msg = '[' . Time::localTimeStr('Y-m-d H:i:s') . '][' . $level . '][' . $source . '][' . trim($msg) . ']' . PHP_EOL;
     echo $msg;
     flush();
     unset($msg);
 }
コード例 #3
0
ファイル: LocalLog.php プロジェクト: jackycgq/bzfshop
 /**
  * 加入一条日志信息
  *
  * @param string $level  日志等级
  * @param string $source 日志的来源,比如 'SQL'
  * @param string $msg    日志消息
  * */
 public function addLogInfo($level, $source, $msg)
 {
     global $f3;
     if (!is_file($this->file)) {
         return;
     }
     $msg = '[' . Time::localTimeStr('Y-m-d H:i:s') . '][' . $level . '][' . $source . '][' . trim($msg) . ']' . PHP_EOL;
     $f3->write($this->file, $msg, true);
 }
コード例 #4
0
ファイル: IncIndex.php プロジェクト: jackycgq/bzfshop
    public function get($f3)
    {
        global $smarty;
        $smartyCacheId = 'EtaoFeed|' . md5(__NAMESPACE__ . '\\' . __CLASS__ . '_\\' . __METHOD__);
        // 判断是否有缓存
        enableSmartyCache(true, 1200);
        // 缓存 20 分钟
        if ($smarty->isCached('empty.tpl', $smartyCacheId)) {
            goto out_display;
        }
        $currentStamp = Time::localTimeStr();
        $sellerId = EtaoFeedPlugin::getOptionValue('etaofeed_seller_id');
        $categoryUrl = RouteHelper::makeUrl('/Thirdpart/EtaoFeed/Category', null, false, true);
        $itemDir = RouteHelper::makeUrl('/Thirdpart/EtaoFeed/Item', null, false, true);
        $itemIdXmlList = '';
        // 处理 delete 的商品
        $currentThemeInstance = ThemeHelper::getCurrentSystemThemeInstance();
        $totalGoodsCount = SearchHelper::count(SearchHelper::Module_Goods, array(array('is_on_sale = 0'), array('update_time', '>=', EtaoFeedPlugin::getOptionValue('etaofeed_query_timestamp')), array(QueryBuilder::buildGoodsFilterForSystem($currentThemeInstance->getGoodsFilterSystemArray()))));
        if ($totalGoodsCount <= 0) {
            goto query_update_goods;
        }
        $totalPageCount = ceil($totalGoodsCount / Item::$pageSize);
        for ($index = 0; $index < $totalPageCount; $index++) {
            $itemIdXmlList .= '<outer_id action="delete">1' . $index . '</outer_id>';
        }
        query_update_goods:
        // 处理修改过的商品
        $totalGoodsCount = SearchHelper::count(SearchHelper::Module_Goods, array(array('is_on_sale = 1'), array('update_time', '>=', EtaoFeedPlugin::getOptionValue('etaofeed_query_timestamp')), array(QueryBuilder::buildGoodsFilterForSystem($currentThemeInstance->getGoodsFilterSystemArray()))));
        if ($totalGoodsCount <= 0) {
            goto out_output;
        }
        $totalPageCount = ceil($totalGoodsCount / Item::$pageSize);
        for ($index = 0; $index < $totalPageCount; $index++) {
            $itemIdXmlList .= '<outer_id action="upload">2' . $index . '</outer_id>';
        }
        out_output:
        $apiXml = <<<XML
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <version>1.0</version>
  <modified>{$currentStamp}</modified>
  <seller_id>{$sellerId}</seller_id>
  <cat_url>{$categoryUrl}</cat_url>
  <dir>{$itemDir}/</dir>
  <item_ids>{$itemIdXmlList}</item_ids>
</root>
XML;
        $smarty->assign('outputContent', $apiXml);
        // 更新查询时间
        //EtaoFeedPlugin::saveOptionValue('etaofeed_query_timestamp', Time::gmTime());
        out_display:
        header('Content-Type:text/xml;charset=utf-8');
        header("Cache-Control: no-cache, must-revalidate");
        // HTTP/1.1 //查询信息
        $smarty->display('empty.tpl', $smartyCacheId);
    }
コード例 #5
0
ファイル: Category.php プロジェクト: jackycgq/bzfshop
    public function get($f3)
    {
        global $smarty;
        $smartyCacheId = 'EtaoFeed|' . md5(__NAMESPACE__ . '\\' . __CLASS__ . '_\\' . __METHOD__);
        // 判断是否有缓存
        enableSmartyCache(true, 1800);
        // 缓存 30 分钟
        if ($smarty->isCached('empty.tpl', $smartyCacheId)) {
            goto out_display;
        }
        // 取得商品分类树形结构
        $goodsCategoryService = new GoodsCategoryService();
        $goodsCategoryTreeArray = $goodsCategoryService->fetchCategoryTreeArray(0);
        $currentStamp = Time::localTimeStr();
        $sellerId = EtaoFeedPlugin::getOptionValue('etaofeed_seller_id');
        // 生成商品分类 XML
        $categoryXmlList = '';
        foreach ($goodsCategoryTreeArray as $goodsCategoryItem) {
            $categoryXmlList .= $this->getGoodsCategoryXml($goodsCategoryItem);
        }
        $apiXml = <<<XML
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <version>1.0</version>
  <modified>{$currentStamp}</modified>
  <seller_id>{$sellerId}</seller_id>
  <seller_cats>{$categoryXmlList}</seller_cats>
</root>
XML;
        $smarty->assign('outputContent', $apiXml);
        out_display:
        header('Content-Type:text/xml;charset=utf-8');
        header("Cache-Control: no-cache, must-revalidate");
        // HTTP/1.1 //查询信息
        $smarty->display('empty.tpl', $smartyCacheId);
    }
コード例 #6
0
ファイル: Order.php プロジェクト: jackycgq/bzfshop
 /**
  * 生成订单的 SN 号码
  *
  * @return string SN 号码
  */
 public static function generateOrderSn()
 {
     //mt_srand((double) microtime() * 1000000);
     return Order::$orderSnPrefix . Time::localTimeStr('YmdHis');
 }
コード例 #7
0
ファイル: index.php プロジェクト: swcug/bzfshop
// ---------------------------------------- 3. 开启系统日志 --------------------------------------
// 设置系统的日志
$todayDateStr = \Core\Helper\Utility\Time::localTimeStr('Y-m-d');
$todayDateArray = explode('-', $todayDateStr);
// 设置一个 fileLogger 方便查看所有的日志输出,按照 年/月/年-月-日.log 输出
$fileLogger = new \Core\Log\File($todayDateArray[0] . '/' . $todayDateArray[1] . '/' . implode('-', $todayDateArray) . '.supplier.log');
// 我们不打印 DEBUG 级别的日志,不然数据量太大了
$fileLogger->levelAllow = array(\Core\Log\Base::CRITICAL, \Core\Log\Base::ERROR, \Core\Log\Base::WARN, \Core\Log\Base::NOTICE, \Core\Log\Base::INFO);
$logger->addLogger($fileLogger);
unset($fileLogger);
/* * **************** 如果是调试模式,在这里设置调试 ************************ */
if ($f3->get('DEBUG')) {
    // 调试模式,关闭缓存
    $f3->set('CACHE', false);
    // 调试模式下,弄一个 fileLogger 方便查看所有的日志输出
    $fileLogger = new \Core\Log\File(\Core\Helper\Utility\Time::localTimeStr('Y-m-d') . '.supplier.debug.log');
    $logger->addLogger($fileLogger);
    // 把 smarty 的一些错误警告关闭,不然会影响我们的调试
    Smarty::muteExpectedErrors();
    // 使用自定义的调试框架
    if ($f3->get('USERDEBUG')) {
        require_once PROTECTED_PATH . '/Framework/Debug/BzfDebug.php';
        // 开启 debug 功能
        BzfDebug::enableDebug();
        // 开启 Smarty Web Log
        BzfDebug::enableSmartyWebLog();
    }
}
// ---------------------------------------- 4. 加载显示主题 --------------------------------------
$themeIntance = ThemeHelper::loadSystemTheme(ThemeHelper::SYSTEM_SUPPLIER_THEME);
if (!$themeIntance) {