Explorar el Código

goods_common_body relayout

Wan Xin hace 9 años
padre
commit
bd0cf79d6f

+ 8 - 3
core/framework/db/mysqli.php

@@ -8,6 +8,10 @@
 
 
 defined('InShopNC') or exit('Access Invalid!');
+
+require_once(BASE_CORE_PATH . '/framework/function/statistic_tm.php');
+
+
 class Db
 {
 	private static $link = array();
@@ -114,9 +118,10 @@ class Db
 	public static function query($sql, $host = 'master')
 	{
 		self::connect($host);
-		if (C('debug')) addUpTime('queryStartTime');
+		$staer = new statistic_tm();
 		$query = self::$link[$host]->query($sql);
-		if (C('debug')) addUpTime('queryEndTime');
+		$staer->end();
+
 		if ($query === false)
 		{
 		    $error = 'Db Error: '.mysqli_error(self::$link[$host]);
@@ -130,7 +135,7 @@ class Db
 		}
 		else
 		{
-		    Log::record($sql." [ RunTime:".addUpTime('queryStartTime','queryEndTime',6)."s ]",Log::SQL);
+			Log::record($sql . " [ RunTime:" . $staer->elapsed(6) . "s ]", Log::SQL);
 			return $query;
 		}
 	}

+ 1 - 1
core/framework/function/core.php

@@ -885,7 +885,7 @@ if(!function_exists('memory_get_usage')){
 	}
 }
 
-// 记录和统计时间(微秒)
+//记录和统计时间(微秒)
 function addUpTime($start,$end='',$dec=3) {
     static $_info = array();
     if(!empty($end)) { // 统计时间

+ 29 - 0
core/framework/function/statistic_tm.php

@@ -0,0 +1,29 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 16/1/26
+ * Time: 上午10:32
+ */
+
+
+class statistic_tm
+{
+    private $start;
+    private $end;
+    public function __construct()
+    {
+        $this->start = microtime(TRUE);
+    }
+
+    public function end()
+    {
+        $this->end = microtime(TRUE);
+    }
+
+    public function elapsed($dec = 3)
+    {
+        $this->end = microtime(TRUE);
+        return number_format(($this->end - $this->start),$dec);
+    }
+}

+ 95 - 1
crontab/crawl/body_filter.php

@@ -94,6 +94,47 @@ class body_filder
         }
     }
 
+    private function filter_table($val,$commid)
+    {
+        $style = '/\s*<img\s*[^>]*src\s*=\s*\"([^>\"]*)\"\s*[^>]*>/i';
+        $val = preg_match_all($style,$val,$match);
+        if(!empty($val) && $val > 0)
+        {
+            $imgs = array();
+
+            $num = 1;
+            foreach($match[1] as $url)
+            {
+                $info = pathinfo($url);
+                if(empty($info['extension'])) continue;
+
+                $name = md5($url) . '.' . $info['extension'];
+                $path = self::$down_path . '/' . $name;
+
+                if(file_exists($path) || $this->download($url,$path))
+                {
+                    $name = "{$commid}-{$num}.{$info['extension']}";
+                    $newpath = self::$save_path . "/{$name}";
+
+                    if(file_exists($newpath)) {
+                        unlink($newpath);
+                    }
+                    copy($path,$newpath);
+
+                    ++$num;
+                    array_push({$name});
+                }
+            }
+            if(isset($imgs)) {
+                return $imgs;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
+    }
+
     public function fillbody()
     {
         $tm_goods = Model('tm_goods');
@@ -107,6 +148,55 @@ class body_filder
         }
     }
 
+    // 重新布局img
+    private function layout($pics)
+    {
+        $str_table = "<table style=\"width:100%%;\" cellpadding=\"2\" cellspacing=\"0\"> <tbody>%s</tbody> </table>";
+        $str_tr = "<tr>%s</tr>";
+        $str_td = "<td>%s</td>";
+
+        $str_table_detail = "";
+        $array_tr_detail = array();
+        $array_td_detail = array();
+
+        //1. 枚举图片
+        $img_max_width = 0;
+        $layout_width = 0;
+        foreach($pics as $img)
+        {
+            // 取得最大img数据
+            $img_info = getimagesize($img);
+            $img_width = $img_info[0];
+            // 过滤图片
+            if ($img_max_width <= $img_width) {
+                $img_max_width = $img_width;
+                $layout_width = 0;
+                continue;
+            }
+
+            // 进行布局
+            $layout_width += $img_width;
+            // 布局结束
+            if ($layout_width >= $img_max_width) {
+                $str = "";
+                foreach ($array_td_detail as $value)
+                    $str .= $value;
+                array_push($array_tr_detail, sprintf($str_tr, $str));
+                continue;
+            }
+            array_push($array_td_detail, sprintf($str_td,$img));
+        }
+
+        $str = "";
+        foreach ($array_tr_detail as $value)
+            $str .= $value;
+
+        if ($str != "")
+            $str_table_detail = sprintf($str_table, $str);
+
+        retrun $str_table_detail;
+    }
+
     public function proc()
     {
         $goods = $this->goods_common->field('goods_commonid,goods_body')->limit(false)->select();
@@ -115,7 +205,11 @@ class body_filder
             $body = $val['goods_body'];
             $comm_id = $val['goods_commonid'];
             $body = $this->filter_gif($body);
-            $body = $this->filterex($body,$comm_id);
+            $imgs = $this->filter_table($body,$comm_id);
+
+            if($imgs == false) continue;
+            $body = $this->layout($imgs);
+
             if(!empty($body)) {
                 $this->goods_common->where(array('goods_commonid' => $comm_id))->update(array('goods_body' => $body));
             }

+ 3 - 0
data/model/goods.model.php

@@ -1284,6 +1284,8 @@ class goodsModel extends Model
             return null;
         }
 
+        Log::record("goods_common_info = " . (string)$goods_common_info);
+
         $goods_common_info['goods_body'] = '';//base64_encode($goods_common_info['goods_body']);
         $goods_common_info['goods_attr'] = $this->_formatGoodsAttr(unserialize($goods_common_info['goods_attr']));
 
@@ -1331,6 +1333,7 @@ class goodsModel extends Model
         $result = array();
         $result['request_goods_id'] = $goods_id;
         $result['goods_info'] = $goods_common_info;
+        //$result['goods_info']['goods_id'] = $goods_id;
 
         Log::record(" return 4 result = {$result}.",Log::DEBUG);
 

+ 6 - 6
mobile/control/goods.php

@@ -234,14 +234,14 @@ class goodsControl extends mobileHomeControl
     public function goods_commonOp()
     {
         $goods_id = intval($_GET ['goods_id']);
-        if(empty($_GET ['goods_id']) && $goods_id > 0) {
+        if(empty($_GET ['goods_id']) || $goods_id < 0) {
             return joutput_error(errcode::ErrParamter,"goods_id = {$goods_id} must be > 0.");
         }
 
-        $item = Model()->table('goods')->field('*')->where(array('goods_id' => $goods_id))->select();
-        if(empty($item) || count($item) == 0) {
-            return joutput_error(0,"goods_id = {$goods_id} goods = 0.");
-        }
+//        $item = Model()->table('goods')->field('*')->where(array('goods_id' => $goods_id))->select();
+//        if(empty($item) || count($item) == 0) {
+//            return joutput_error(0,"goods_id = {$goods_id} goods = 0.");
+//        }
 
         // 商品详细信息
         $model_goods = Model('goods');
@@ -276,7 +276,7 @@ class goodsControl extends mobileHomeControl
     private function _goods_common_extend($goods_detail)
     {
         //商品链接
-        $goods_detail['goods_info']['goods_url'] = urlShop('goods', 'index', array('goods_id' => $goods_detail['goods_info']['goods_id']));
+        $goods_detail['goods_info']['goods_url'] = urlShop('goods', 'index', array('goods_id' => $goods_detail['request_goods_id']));
 
         //整理数据
         unset($goods_detail['goods_info']['goods_commonid']);

+ 12 - 4
mobile/control/login.php

@@ -55,7 +55,7 @@ class loginControl extends mobileHomeControl
         $userid = $model_member->getMemberID($openid, $type, $password);
 
         if ($userid == -1) {
-            return joutput_error(errcode::ErrLogin, "{$openid}:{$password},登录失败");
+            return joutput_error(errcode::ErrLogin, "用户名或密码错误");
         } else {
             $key = memberModel::gen_uid_token($userid);
             $ret = rcache($key, 'member');
@@ -285,8 +285,8 @@ class loginControl extends mobileHomeControl
         }
 
         $model = Model('member');
-        $ret = $model->where(array('member_mobile' => $mobile))->find();
-        if(empty($ret) || count($ret) == 0) {
+        $member_info = $model->where(array('member_mobile' => $mobile))->find();
+        if(empty($member_info) || count($member_info) == 0) {
             return joutput_error(errcode::ErrUserExisted, "用户不存在.");
         }
         else
@@ -297,6 +297,8 @@ class loginControl extends mobileHomeControl
             {
                 $success = $model->where(array('member_mobile' => $mobile))->update(array('member_type' => 0,'member_passwd' => md5($password)));
                 if($success) {
+                    $key = $this->gen_openid_uid($mobile, 0);
+                    dcache($key, 'member');
                     return joutput_data(NULL);
                 } else {
                     return joutput_error(errcode::ErrDB,"DB error.");
@@ -361,6 +363,12 @@ class loginControl extends mobileHomeControl
         }
     }
 
+    public static function gen_openid_uid($openid, $type)
+    {
+        $key = 'openid_uid:' . $openid . ':' . $type;
+        return $key;
+    }
+
     public static function gen_token_code($token)
     {
         $key = 'token_code:' . $token;
@@ -406,7 +414,7 @@ class loginControl extends mobileHomeControl
 
         if ($status == 0) {
             $key = $this->gen_mobile_code($mobile);
-            wcache($key, array('code' => $code, 'mobile' => $mobile), 'member', self::code_expire);
+            $ret = wcache($key, array('code' => $code, 'mobile' => $mobile), 'member', self::code_expire);
             joutput_data(NULL);
         } else {
             return joutput_error(errcode::ErrSms, "send error={$status}.");

+ 84 - 84
mobile/control/member_info.php

@@ -1,85 +1,85 @@
-<?php
-/**
- * 红包管理
- *
- *
- *
- ***/
-defined('InShopNC') or exit('Access Invalid!');
-
-class member_infoControl extends mobileMemberExControl
-{
-    public function __construct()
-    {
-        parent::__construct();
-    }
-
-    public function getinfoOp()
-    {
-        $token = $_GET['key'];
-
-        if (empty($token)) {
-            return joutput_error(errcode::ErrInputParam, '输入参数有误');
-        }
-
-        if ($this->checkToken($token) != errcode::Success) {
-            return joutput_error($this->err_code, errcode::msg($this->err_code));
-        }
-
-        $member_id = $this->member_info['member_id'];
-
-        $model = Model('member');
-        $member_info = $model->getMemberInfoByID($member_id, 'member_name,member_sex');
-
-        $ret = array();
-        if (!empty($member_info)) {
-
-            $ret['member_name'] = $member_info['member_name'];
-
-            if(empty($member_info['member_name'])){
-                $ret['member_name'] = '新用户';
-            }
-
-            if ($member_info['member_sex'] == 1) {
-                $ret['member_sex'] = '1';
-            } else {
-                $ret['member_sex'] = '0';
-            }
-        }
-
-        joutput_data($ret);
-    }
-
-    public function updateinfoOp()
-    {
-        $member_name = urldecode($_GET['member_name']);
-        $member_sex = urldecode($_GET['member_sex']);
-
-        if (empty($member_name) && empty($member_sex)) {
-            return joutput_error(errcode::ErrInputParam, '输入参数有误');
-        }
-
-        $token = $_GET['key'];
-        if ($this->checkToken($token) != errcode::Success) {
-            return joutput_error($this->err_code, errcode::msg($this->err_code));
-        }
-
-        $member_id = $this->member_info['member_id'];
-
-        $condition = array('member_id' => $member_id);
-        $updateinfo = array('member_name' => $member_name, 'member_sex' => $member_sex);
-
-        $ret = Model('member')->where($condition)->update($updateinfo);
-
-        dcache($member_id,'member');
-
-        $result = array();
-        if ($ret) {
-            $result['ret'] = 0;
-        } else {
-            $result['ret'] = 1;
-        }
-
-        joutput_data($result);
-    }
+<?php
+/**
+ * 绾㈠寘绠$悊
+ *
+ *
+ *
+ ***/
+defined('InShopNC') or exit('Access Invalid!');
+
+class member_infoControl extends mobileMemberExControl
+{
+    public function __construct()
+    {
+        parent::__construct();
+    }
+
+    public function getinfoOp()
+    {
+        $token = $_GET['key'];
+
+        if (empty($token)) {
+            return joutput_error(errcode::ErrInputParam, '杈撳叆鍙傛暟鏈夎�');
+        }
+
+        if ($this->checkToken($token) != errcode::Success) {
+            return joutput_error($this->err_code, errcode::msg($this->err_code));
+        }
+
+        $member_id = $this->member_info['member_id'];
+
+        $model = Model('member');
+        $member_info = $model->getMemberInfoByID($member_id, 'member_name,member_sex');
+
+        $ret = array();
+        if (!empty($member_info)) {
+
+            $ret['member_name'] = $member_info['member_name'];
+
+            if(empty($member_info['member_name'])){
+                $ret['member_name'] = '新用户';
+            }
+
+            if ($member_info['member_sex'] == 1) {
+                $ret['member_sex'] = '1';
+            } else {
+                $ret['member_sex'] = '0';
+            }
+        }
+
+        joutput_data($ret);
+    }
+
+    public function updateinfoOp()
+    {
+        $member_name = urldecode($_GET['member_name']);
+        $member_sex = urldecode($_GET['member_sex']);
+
+        if (empty($member_name) && empty($member_sex)) {
+            return joutput_error(errcode::ErrInputParam, '杈撳叆鍙傛暟鏈夎�');
+        }
+
+        $token = $_GET['key'];
+        if ($this->checkToken($token) != errcode::Success) {
+            return joutput_error($this->err_code, errcode::msg($this->err_code));
+        }
+
+        $member_id = $this->member_info['member_id'];
+
+        $condition = array('member_id' => $member_id);
+        $updateinfo = array('member_name' => $member_name, 'member_sex' => $member_sex);
+
+        $ret = Model('member')->where($condition)->update($updateinfo);
+
+        dcache($member_id,'member');
+
+        $result = array();
+        if ($ret) {
+            $result['ret'] = 0;
+        } else {
+            $result['ret'] = 1;
+        }
+
+        joutput_data($result);
+    }
 }