Esempio n. 1
0
 public function NotifyProcess($data, &$msg)
 {
     pt_debug($data, __METHOD__);
     if (!array_key_exists("transaction_id", $data)) {
         $msg = "输入参数不正确";
         return false;
     }
     //查询订单,判断订单真实性
     if ($data['return_code'] != 'SUCCESS') {
         return false;
     }
     pt_debug("SUCCESS", __METHOD__);
     Model_Order_Pay_Wechat::notify_callback($data['out_trade_no'], $data['transaction_id'], $data['total_fee']);
     return true;
 }
Esempio n. 2
0
 function action_png1()
 {
     $id = 3281;
     $env = PtApp::$ENV;
     $path_pro = PATH_PRO;
     $act = self::_db()->select_row("select default_product_style_id,design_id from activities where id = ?", $id);
     $_styles = self::_db()->select_rows("select aps.sell_price,aps.product_id,aps.product_style_id,\n                s.color_name,s.color,s.is_default\n                from activity_product_styles as aps\n                left join et_product_style as s on s.id = aps.product_style_id\n                where activity_id = ? order by aps.id asc", $id);
     $product_ids = array();
     $product_style_ids = array();
     foreach ($_styles as $style) {
         $product_ids[] = $style['product_id'];
         $product_style_ids[] = $style['product_style_id'];
     }
     $product_ids = array_unique($product_ids);
     $product_style_ids = array_unique($product_style_ids);
     $_products = self::_db()->select_rows("select content,name,id from et_product where id in (" . implode(",", $product_ids) . ")");
     $_product_designs = self::_db()->select_rows("select * from et_product_design where product_id in (" . implode(",", $product_ids) . ")");
     foreach ($_products as $_product) {
         $_product['content'] = replace_cdn($_product['content']);
         $products[$_product['id']] = $_product;
     }
     $product_designs = array();
     foreach ($_product_designs as $_product_design) {
         $product_designs[$_product_design['product_id']][$_product_design['side']] = $_product_design;
     }
     $_act_product_designs = self::_db()->select_rows("select * from et_activity_product where activity_id = ?", $id);
     $_sides = array("front", "back", "third", "fourth");
     $__act_designs = array();
     if (!$_act_product_designs) {
         $_act_designs = self::_db()->select_rows("select svg_url,side from design_svg_side where design_id = ?", $act['design_id']);
         //print_r($_act_designs);exit;
         //return $_act_designs;
         foreach ($_act_designs as $_act_design) {
             $svg_url = $_act_design['svg_url'];
             //pt_debug($svg_url);
             $_svg_content = file_get_contents($svg_url);
             $side = $_act_design['side'];
             foreach ($product_ids as $product_id) {
                 $design_info = $product_designs[$product_id][$side];
                 //return $design_info;
                 $x = $design_info['x'];
                 $y = $design_info['y'];
                 $img_url = $design_info['img_url'];
                 $img_content = file_get_contents($img_url);
                 //echo $img_content;
                 $img_content = "data:image/png;base64," . base64_encode($img_content);
                 $svg_content = "<svg x='" . $x / 2 . "' y='" . $y / 2 . "'" . substr($_svg_content, 4);
                 $tpl_content = '<svg height="500" width="500" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"  style="overflow: hidden; position: relative;" viewBox="0 0 500 500" preserveAspectRatio="xMidYMid meet"><image x="0" y="0" width="500" height="500" preserveAspectRatio="none" xlink:href="' . $img_content . '" transform="matrix(1,0,0,1,0,0)"></image>' . $svg_content . '</svg>';
                 $name = "{$env}_{$id}_{$product_id}_{$side}";
                 $local_svg = "/tmp/activity_pic_{$name}.svg";
                 $local_png = "/tmp/activity_pic_test_{$name}.png";
                 $remote_png = "{$env}/activity/pic/{$name}.png";
                 file_put_contents($local_svg, $tpl_content);
                 $cmd = "python {$path_pro}/bin/svg/convert.py {$local_svg} {$local_png}";
                 //pt_debug($cmd);
                 shell_exec($cmd);
                 //continue;
                 Model_Aliyun_Oss::upload_file($local_png, $remote_png);
                 $url = "http://cdn.open.easytee.me/" . $remote_png;
                 pt_debug($url);
                 @unlink($local_png);
                 @unlink($local_svg);
                 $_act_product_designs[] = array("activity_id" => $id, "product_id" => $product_id, "side" => $side, "img_url" => $url, "add_time" => date_time_now());
                 //echo $url.PHP_EOL;
             }
         }
     }
     foreach ($_act_product_designs as $_act_product_design) {
         $act_designs[$_act_product_design['product_id']][$_act_product_design['side']] = $_act_product_design['img_url'];
     }
     $default_product_style_id = $act['default_product_style_id'];
     $styles = array();
     foreach ($_styles as $style) {
         if ($style["product_style_id"] == $default_product_style_id) {
             $default_style = $style;
         }
         $styles[$style['product_id']]["style_" . $style["product_style_id"]] = $style;
     }
     $inventorys = self::_db()->select_rows("select * from et_product_inventory where style_id in (" . implode(",", $product_style_ids) . ")");
     $sizes = array();
     foreach ($inventorys as $inventory) {
         $sizes[$inventory['product_id']][$inventory['style_id']][] = $inventory;
     }
     return array("products" => $products, "product_designs" => $product_designs, "act_designs" => $act_designs, "styles" => $styles, "sizes" => $sizes, "default_style" => $default_style);
 }