stanley-king 9 年之前
父节点
当前提交
d3fb9f8cdb
共有 9 个文件被更改,包括 540 次插入173 次删除
  1. 0 3
      admin/control/flea.php
  2. 162 91
      admin/control/goods_class.php
  3. 2 2
      crontab/control/date.php
  4. 248 20
      crontab/fetch_goods.php
  5. 4 2
      data/api/taobao/TopClient.php
  6. 1 0
      data/config/config.ini.php
  7. 118 54
      data/model/goods_class.model.php
  8. 3 0
      run.php
  9. 2 1
      zmr.php

+ 0 - 3
admin/control/flea.php

@@ -1,8 +1,5 @@
 <?php
 /**
-
-
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  */
 defined('InShopNC') or exit('Access Invalid!');
 class fleaControl extends SystemControl{

+ 162 - 91
admin/control/goods_class.php

@@ -7,7 +7,8 @@
  **by 好商城V3 www.33hao.com 运营版*/
 
 defined('InShopNC') or exit('Access Invalid!');
-class goods_classControl extends SystemControl{
+class goods_classControl extends SystemControl
+{
 	private $links = array(
 		array('url'=>'act=goods_class&op=goods_class','lang'=>'nc_manage'),
 		array('url'=>'act=goods_class&op=goods_class_add','lang'=>'nc_new'),
@@ -15,7 +16,8 @@ class goods_classControl extends SystemControl{
 		array('url'=>'act=goods_class&op=goods_class_import','lang'=>'goods_class_index_import'),
 		array('url'=>'act=goods_class&op=tag','lang'=>'goods_class_index_tag'),
 	);
-	public function __construct(){
+
+	public function __construct() {
 		parent::__construct();
 		Language::read('goods_class');
 	}
@@ -23,22 +25,27 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 分类管理
 	 */
-	public function goods_classOp(){
+	public function goods_classOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
-		if (chksubmit()){
+		if (chksubmit())
+		{
 			//删除
-			if ($_POST['submit_type'] == 'del'){
+			if ($_POST['submit_type'] == 'del')
+			{
 			    $gcids = implode(',', $_POST['check_gc_id']);
-				if (!empty($_POST['check_gc_id'])){
-					if (!is_array($_POST['check_gc_id'])){
+				if (!empty($_POST['check_gc_id']))
+				{
+					if (!is_array($_POST['check_gc_id'])) {
     					$this->log(L('nc_delete,goods_class_index_class').'[ID:'.$gcids.']',0);
     					showMessage($lang['nc_common_del_fail']);
 					}
+
 					$del_array = $model_class->delGoodsClassByGcIdString($gcids);
 					$this->log(L('nc_delete,goods_class_index_class').'[ID:'.$gcids.']',1);
 					showMessage($lang['nc_common_del_succ']);
-				}else {
+				} else {
 					$this->log(L('nc_delete,goods_class_index_class').'[ID:'.$gcids.']',0);
 					showMessage($lang['nc_common_del_fail']);
 				}
@@ -50,18 +57,22 @@ class goods_classControl extends SystemControl{
 
 		//列表
 		$tmp_list = $model_class->getTreeClassList(3);
-		if (is_array($tmp_list)){
-			foreach ($tmp_list as $k => $v){
-				if ($v['gc_parent_id'] == $parent_id){
+		if (is_array($tmp_list))
+		{
+			foreach ($tmp_list as $k => $v)
+			{
+				if ($v['gc_parent_id'] == $parent_id)
+				{
 					//判断是否有子类
-					if ($tmp_list[$k+1]['deep'] > $v['deep']){
+					if ($tmp_list[$k+1]['deep'] > $v['deep']) {
 						$v['have_child'] = 1;
 					}
 					$class_list[] = $v;
 				}
 			}
 		}
-		if ($_GET['ajax'] == '1'){
+		if ($_GET['ajax'] == '1')
+		{
 			//转码
 			if (strtoupper(CHARSET) == 'GBK'){
 				$class_list = Language::getUTF8($class_list);
@@ -69,7 +80,7 @@ class goods_classControl extends SystemControl{
 			$output = json_encode($class_list);
 			print_r($output);
 			exit;
-		}else {
+		} else {
 			Tpl::output('class_list',$class_list);
 			Tpl::output('top_link',$this->sublink($this->links,'goods_class'));
 			Tpl::showpage('goods_class.index');
@@ -79,19 +90,23 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 商品分类添加
 	 */
-	public function goods_class_addOp(){
+	public function goods_class_addOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
-		if (chksubmit()){
+		if (chksubmit())
+		{
 			$obj_validate = new Validate();
 			$obj_validate->validateparam = array(
 				array("input"=>$_POST["gc_name"], "require"=>"true", "message"=>$lang['goods_class_add_name_null']),
 				array("input"=>$_POST["gc_sort"], "require"=>"true", 'validator'=>'Number', "message"=>$lang['goods_class_add_sort_int']),
 			);
 			$error = $obj_validate->validate();
-			if ($error != ''){
+			if ($error != '') {
 				showMessage($error);
-			}else {
+			} 
+			else 
+			{
 				$insert_array = array();
 				$insert_array['gc_name']		= $_POST['gc_name'];
 				$insert_array['type_id']		= intval($_POST['t_id']);
@@ -101,8 +116,10 @@ class goods_classControl extends SystemControl{
 				$insert_array['gc_sort']		= intval($_POST['gc_sort']);
                 $insert_array['gc_virtual']     = intval($_POST['gc_virtual']);
 				$result = $model_class->addGoodsClass($insert_array);
-				if ($result){
-    				if ($insert_array['gc_parent_id'] == 0) {
+				if ($result)
+				{
+    				if ($insert_array['gc_parent_id'] == 0) 
+    				{
             			if (!empty($_FILES['pic']['name'])) {//上传图片
             				$upload = new UploadFile();
                 			$upload->set('default_dir',ATTACH_COMMON);
@@ -110,19 +127,23 @@ class goods_classControl extends SystemControl{
             				$upload->upfile('pic');
             			}
     				}
+
 					$url = array(
-						array(
-							'url'=>'index.php?act=goods_class&op=goods_class_add&gc_parent_id='.$_POST['gc_parent_id'],
-							'msg'=>$lang['goods_class_add_again'],
-						),
-						array(
-							'url'=>'index.php?act=goods_class&op=goods_class',
-							'msg'=>$lang['goods_class_add_back_to_list'],
-						)
-					);
+									array(
+										'url'=>'index.php?act=goods_class&op=goods_class_add&gc_parent_id='.$_POST['gc_parent_id'],
+										'msg'=>$lang['goods_class_add_again'],
+									),
+									array(
+										'url'=>'index.php?act=goods_class&op=goods_class',
+										'msg'=>$lang['goods_class_add_back_to_list'],
+									)
+								);
+
 					$this->log(L('nc_add,goods_class_index_class').'['.$_POST['gc_name'].']',1);
 					showMessage($lang['nc_common_save_succ'],$url);
-				}else {
+				}
+				else 
+				{
 					$this->log(L('nc_add,goods_class_index_class').'['.$_POST['gc_name'].']',0);
 					showMessage($lang['nc_common_save_fail']);
 				}
@@ -132,8 +153,9 @@ class goods_classControl extends SystemControl{
 		//父类列表,只取到第二级
 		$parent_list = $model_class->getTreeClassList(2);
 		$gc_list = array();
-		if (is_array($parent_list)){
-			foreach ($parent_list as $k => $v){
+		if (is_array($parent_list))
+		{
+			foreach ($parent_list as $k => $v) {
 				$parent_list[$k]['gc_name'] = str_repeat("&nbsp;",$v['deep']*2).$v['gc_name'];
 				if($v['deep'] == 1) $gc_list[$k] = $v;
 			}
@@ -143,8 +165,9 @@ class goods_classControl extends SystemControl{
 		$model_type	= Model('type');
 		$type_list	= $model_type->typeList(array('order'=>'type_sort asc'), '', 'type_id,type_name,class_id,class_name');
 		$t_list = array();
-		if(is_array($type_list) && !empty($type_list)){
-			foreach($type_list as $k=>$val){
+		if(is_array($type_list) && !empty($type_list))
+		{
+			foreach($type_list as $k=>$val) {
 				$t_list[$val['class_id']]['type'][$k] = $val;
 				$t_list[$val['class_id']]['name'] = $val['class_name']==''?L('nc_default'):$val['class_name'];
 			}
@@ -161,11 +184,13 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 编辑
 	 */
-	public function goods_class_editOp(){
+	public function goods_class_editOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
 
-		if (chksubmit()){
+		if (chksubmit())
+		{
 			$obj_validate = new Validate();
 			$obj_validate->validateparam = array(
 				array("input"=>$_POST["gc_name"], "require"=>"true", "message"=>$lang['goods_class_add_name_null']),
@@ -173,7 +198,7 @@ class goods_classControl extends SystemControl{
 				array("input"=>$_POST["gc_sort"], "require"=>"true", 'validator'=>'Number', "message"=>$lang['goods_class_add_sort_int']),
 			);
 			$error = $obj_validate->validate();
-			if ($error != ''){
+			if ($error != '') {
 				showMessage($error);
 			}
 
@@ -186,8 +211,9 @@ class goods_classControl extends SystemControl{
 			$update_array['commis_rate']    = intval($_POST['commis_rate']);
 			$update_array['gc_sort']		= intval($_POST['gc_sort']);
             $update_array['gc_virtual']     = intval($_POST['gc_virtual']);
+
             //好商城 v3-b10
-	    $update_array['gc_parent_id']	= intval($_POST['gc_parent_id']);
+	    	$update_array['gc_parent_id']	= intval($_POST['gc_parent_id']);
 			$result = $model_class->editGoodsClass($update_array, $where);
 			if (!$result){
 				$this->log(L('nc_edit,goods_class_index_class').'['.$_POST['gc_name'].']',0);
@@ -202,10 +228,12 @@ class goods_classControl extends SystemControl{
 			}
 
             // 检测是否需要关联自己操作,统一查询子分类
-            if ($_POST['t_commis_rate'] == '1' || $_POST['t_associated'] == '1' || $_POST['t_gc_virtual'] == '1') {
+            if ($_POST['t_commis_rate'] == '1' || $_POST['t_associated'] == '1' || $_POST['t_gc_virtual'] == '1') 
+            {
                 $gc_id_list = $model_class->getChildClass($_POST['gc_id']);
                 $gc_ids = array();
-                if (is_array($gc_id_list) && !empty($gc_id_list)) {
+                if (is_array($gc_id_list) && !empty($gc_id_list)) 
+                {
                     foreach ($gc_id_list as $val){
                         $gc_ids[] = $val['gc_id'];
                     }
@@ -213,12 +241,12 @@ class goods_classControl extends SystemControl{
             }
 
 			// 更新该分类下子分类的所有分佣比例
-			if ($_POST['t_commis_rate'] == '1' && !empty($gc_ids)){
+			if ($_POST['t_commis_rate'] == '1' && !empty($gc_ids)) {
 	            $model_class->editGoodsClass(array('commis_rate'=>$update_array['commis_rate']),array('gc_id'=>array('in',$gc_ids)));
 			}
 
 			// 更新该分类下子分类的所有类型
-			if ($_POST['t_associated'] == '1' && !empty($gc_ids)){
+			if ($_POST['t_associated'] == '1' && !empty($gc_ids)) {
 			    $where = array();
 			    $where['gc_id'] = array('in', $gc_ids);
 			    $update = array();
@@ -255,7 +283,8 @@ class goods_classControl extends SystemControl{
 		$model_type	= Model('type');
 		$type_list	= $model_type->typeList(array('order'=>'type_sort asc'), '', 'type_id,type_name,class_id,class_name');
 		$t_list = array();
-		if(is_array($type_list) && !empty($type_list)){
+		if(is_array($type_list) && !empty($type_list))
+		{
 			foreach($type_list as $k=>$val){
 				$t_list[$val['class_id']]['type'][$k] = $val;
 				$t_list[$val['class_id']]['name'] = $val['class_name']==''?L('nc_default'):$val['class_name'];
@@ -288,29 +317,34 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 分类导入
 	 */
-	public function goods_class_importOp(){
+	public function goods_class_importOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
 		//导入
-		if (chksubmit()){
+		if (chksubmit())
+		{
 			//得到导入文件后缀名
 			$csv_array = explode('.',$_FILES['csv']['name']);
 			$file_type = end($csv_array);
-			if (!empty($_FILES['csv']) && !empty($_FILES['csv']['name']) && $file_type == 'csv'){
+			if (!empty($_FILES['csv']) && !empty($_FILES['csv']['name']) && $file_type == 'csv')
+			{
 				$fp = @fopen($_FILES['csv']['tmp_name'],'rb');
 				// 父ID
 				$parent_id_1 = 0;
 
-				while (!feof($fp)) {
+				while (!feof($fp)) 
+				{
 					$data = fgets($fp, 4096);
-					switch (strtoupper($_POST['charset'])){
+					switch (strtoupper($_POST['charset']))
+					{
 						case 'UTF-8':
-							if (strtoupper(CHARSET) !== 'UTF-8'){
+							if (strtoupper(CHARSET) !== 'UTF-8') {
 								$data = iconv('UTF-8',strtoupper(CHARSET),$data);
 							}
 							break;
 						case 'GBK':
-							if (strtoupper(CHARSET) !== 'GBK'){
+							if (strtoupper(CHARSET) !== 'GBK') {
 								$data = iconv('GBK',strtoupper(CHARSET),$data);
 							}
 							break;
@@ -337,7 +371,9 @@ class goods_classControl extends SystemControl{
 				}
 				$this->log(L('goods_class_index_import,goods_class_index_class'),1);
 				showMessage($lang['nc_common_op_succ'],'index.php?act=goods_class&op=goods_class');
-			}else {
+			}
+			else 
+			{
 				$this->log(L('goods_class_index_import,goods_class_index_class'),0);
 				showMessage($lang['goods_class_import_csv_null']);
 			}
@@ -349,27 +385,33 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 分类导出
 	 */
-	public function goods_class_exportOp(){
-		if (chksubmit()){
+	public function goods_class_exportOp()
+	{
+		if (chksubmit())
+		{
 			$model_class = Model('goods_class');
 			$class_list = $model_class->getTreeClassList();
 
 			@header("Content-type: application/unknown");
         	@header("Content-Disposition: attachment; filename=goods_class.csv");
-			if (is_array($class_list)){
-				foreach ($class_list as $k => $v){
+			if (is_array($class_list))
+			{
+				foreach ($class_list as $k => $v)
+				{
 					$tmp = array();
 					//序号
 					$tmp['gc_sort'] = $v['gc_sort'];
 					//深度
-					for ($i=1; $i<=($v['deep']-1); $i++){
+					for ($i=1; $i<=($v['deep']-1); $i++) {
 						$tmp[] = '';
 					}
 					//分类名称
 					$tmp['gc_name'] = $v['gc_name'];
 					//转码 utf-gbk
-					if (strtoupper(CHARSET) == 'UTF-8'){
-						switch ($_POST['if_convert']){
+					if (strtoupper(CHARSET) == 'UTF-8')
+					{
+						switch ($_POST['if_convert']) 
+						{
 							case '1':
 								$tmp_line = iconv('UTF-8','GB2312//IGNORE',join(',',$tmp));
 								break;
@@ -377,7 +419,9 @@ class goods_classControl extends SystemControl{
 								$tmp_line = join(',',$tmp);
 								break;
 						}
-					}else {
+					}
+					else
+					{
 						$tmp_line = join(',',$tmp);
 					}
 					$tmp_line = str_replace("\r\n",'',$tmp_line);
@@ -394,15 +438,16 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 删除分类
 	 */
-	public function goods_class_delOp(){
+	public function goods_class_delOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
-		if (intval($_GET['gc_id']) > 0){
+		if (intval($_GET['gc_id']) > 0) {
 			//删除分类
 			$model_class->delGoodsClassByGcIdString(intval($_GET['gc_id']));
 			$this->log(L('nc_delete,goods_class_index_class') . '[ID:' . intval($_GET['gc_id']) . ']',1);
 			showMessage($lang['nc_common_del_succ'],'index.php?act=goods_class&op=goods_class');
-		}else {
+		} else {
 			$this->log(L('nc_delete,goods_class_index_class') . '[ID:' . intval($_GET['gc_id']) . ']',0);
 			showMessage($lang['nc_common_del_fail'],'index.php?act=goods_class&op=goods_class');
 		}
@@ -411,7 +456,8 @@ class goods_classControl extends SystemControl{
 	/**
 	 * tag列表
 	 */
-	public function tagOp(){
+	public function tagOp()
+	{
 		$lang	= Language::getLangContent();
 
 		/**
@@ -424,15 +470,17 @@ class goods_classControl extends SystemControl{
 
 		$model_class_tag = Model('goods_class_tag');
 
-		if (chksubmit()){
+		if (chksubmit())
+		{
 			//删除
-			if ($_POST['submit_type'] == 'del'){
-				if (is_array($_POST['tag_id']) && !empty($_POST['tag_id'])){
+			if ($_POST['submit_type'] == 'del')
+			{
+				if (is_array($_POST['tag_id']) && !empty($_POST['tag_id'])) {
 					//删除TAG
 					$model_class_tag->delTagByIds(implode(',',$_POST['tag_id']));
 					$this->log(L('nc_delete').'tag[ID:'.implode(',',$_POST['tag_id']).']',1);
 					showMessage($lang['nc_common_del_succ']);
-				}else {
+				} else {
 					$this->log(L('nc_delete').'tag',0);
 					showMessage($lang['nc_common_del_fail']);
 				}
@@ -442,11 +490,13 @@ class goods_classControl extends SystemControl{
 		$page	= new Page();
 		$page->setEachNum(10);
 		$page->setStyle('admin');
+
 		$where = array();
-		if ($choose_gcid > 0){
+		if ($choose_gcid > 0) {
 		    $where['gc_id_'.($gccache_arr['showclass'][$choose_gcid]['depth'])] = $choose_gcid;
 		}
 		$tag_list = $model_class_tag->getTagList($where, $page);
+
 		Tpl::output('tag_list', $tag_list);
 		Tpl::output('page',$page->show());
 		Tpl::output('top_link',$this->sublink($this->links,'tag'));
@@ -456,38 +506,48 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 重置TAG
 	 */
-	public function tag_resetOp(){
+	public function tag_resetOp()
+	{
 		$lang	= Language::getLangContent();
+
 		//实例化模型
 		$model_class = Model('goods_class');
 		$model_class_tag = Model('goods_class_tag');
 
 		//清空TAG
 		$return = $model_class_tag->clearTag();
-		if(!$return){
+		if(!$return) {
 			showMessage($lang['goods_class_reset_tag_fail'], 'index.php?act=goods_class&op=tag');
 		}
 
 		//商品分类
 		$goods_class		= $model_class->getTreeClassList(3);
+
 		//格式化分类。组成三维数组
-		if(is_array($goods_class) and !empty($goods_class)) {
+		if(is_array($goods_class) and !empty($goods_class)) 
+		{
 			$goods_class_array = array();
-			foreach ($goods_class as $val) {
+			foreach ($goods_class as $val) 
+			{
 				//一级分类
 				if($val['gc_parent_id'] == 0) {
 					$goods_class_array[$val['gc_id']]['gc_name']	= $val['gc_name'];
 					$goods_class_array[$val['gc_id']]['gc_id']		= $val['gc_id'];
 					$goods_class_array[$val['gc_id']]['type_id']	= $val['type_id'];
-				}else {
+				}
+				else 
+				{
 					//二级分类
 					if(isset($goods_class_array[$val['gc_parent_id']])){
 						$goods_class_array[$val['gc_parent_id']]['sub_class'][$val['gc_id']]['gc_name']			= $val['gc_name'];
 						$goods_class_array[$val['gc_parent_id']]['sub_class'][$val['gc_id']]['gc_id']			= $val['gc_id'];
 						$goods_class_array[$val['gc_parent_id']]['sub_class'][$val['gc_id']]['gc_parent_id']	= $val['gc_parent_id'];
 						$goods_class_array[$val['gc_parent_id']]['sub_class'][$val['gc_id']]['type_id']			= $val['type_id'];
-					}else{
-						foreach ($goods_class_array as $v){
+					}
+					else
+					{
+						foreach ($goods_class_array as $v)
+						{
 							//三级分类
 							if(isset($v['sub_class'][$val['gc_parent_id']])){
 								$goods_class_array[$v['sub_class'][$val['gc_parent_id']]['gc_parent_id']]['sub_class'][$val['gc_parent_id']]['sub_class'][$val['gc_id']]['gc_name']	= $val['gc_name'];
@@ -501,14 +561,16 @@ class goods_classControl extends SystemControl{
 
 			$return = $model_class_tag->tagAdd($goods_class_array);
 
-			if($return){
+			if($return) {
 				$this->log(L('nc_reset').'tag',1);
 				showMessage($lang['nc_common_op_succ'], 'index.php?act=goods_class&op=tag');
-			}else{
+			} else {
 				$this->log(L('nc_reset').'tag',0);
 				showMessage($lang['nc_common_op_fail'], 'index.php?act=goods_class&op=tag');
 			}
-		}else{
+		}
+		else
+		{
 			$this->log(L('nc_reset').'tag',0);
 			showMessage($lang['goods_class_reset_tag_fail_no_class'], 'index.php?act=goods_class&op=tag');
 		}
@@ -517,15 +579,18 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 更新TAG名称
 	 */
-	public function tag_updateOp(){
+	public function tag_updateOp()
+	{
 		$lang	= Language::getLangContent();
 		$model_class = Model('goods_class');
 		$model_class_tag = Model('goods_class_tag');
 
 		//需要更新的TAG列表
 		$tag_list = $model_class_tag->getTagList(array(), '', 'gc_tag_id,gc_id_1,gc_id_2,gc_id_3');
-		if(is_array($tag_list) && !empty($tag_list)){
-			foreach ($tag_list as $val){
+		if(is_array($tag_list) && !empty($tag_list))
+		{
+			foreach ($tag_list as $val)
+			{
 				//查询分类信息
 				$in_gc_id = array();
 				if($val['gc_id_1'] != '0'){
@@ -537,7 +602,7 @@ class goods_classControl extends SystemControl{
 				if($val['gc_id_3'] != '0'){
 					$in_gc_id[] = $val['gc_id_3'];
 				}
-				$gc_list	= $model_class->getGoodsClassListByIds($in_gc_id);
+				$gc_list = $model_class->getGoodsClassListByIds($in_gc_id);
 
 				//更新TAG信息
 				$update_tag					= array();
@@ -563,7 +628,8 @@ class goods_classControl extends SystemControl{
 			}
 			$this->log(L('nc_update').'tag',1);
 			showMessage($lang['nc_common_op_succ'], 'index.php?act=goods_class&op=tag');
-		}else{
+		} 
+		else {
 			$this->log(L('nc_update').'tag',0);
 			showMessage($lang['goods_class_update_tag_fail_no_class'], 'index.php?act=goods_class&op=tag');
 		}
@@ -573,11 +639,13 @@ class goods_classControl extends SystemControl{
 	/**
 	 * 删除TAG
 	 */
-	public function tag_delOp(){
+	public function tag_delOp()
+	{
 		$id = intval($_GET['tag_id']);
 		$lang	= Language::getLangContent();
 		$model_class_tag = Model('goods_class_tag');
-		if ($id > 0){
+		if ($id > 0)
+		{
 			/**
 			 * 删除TAG
 			 */
@@ -593,8 +661,10 @@ class goods_classControl extends SystemControl{
 	/**
 	 * ajax操作
 	 */
-	public function ajaxOp(){
-		switch ($_GET['branch']){
+	public function ajaxOp()
+	{
+		switch ($_GET['branch'])
+		{
 			/**
 			 * 更新分类
 			 */
@@ -606,13 +676,14 @@ class goods_classControl extends SystemControl{
 				$condition['gc_parent_id'] = $class_array['gc_parent_id'];
 				$condition['gc_id'] = array('neq' => intval($_GET['id']));
 				$class_list = $model_class->getGoodsClassList($condition);
-				if (empty($class_list)){
+
+				if (empty($class_list)) {
 				    $where = array('gc_id' => intval($_GET['id']));
 					$update_array = array();
 					$update_array['gc_name'] = trim($_GET['value']);
 					$model_class->editGoodsClass($update_array, $where);
 					echo 'true';exit;
-				}else {
+				} else {
 					echo 'false';exit;
 				}
 				break;
@@ -638,9 +709,9 @@ class goods_classControl extends SystemControl{
 				$condition['gc_parent_id'] = intval($_GET['gc_parent_id']);
 				$condition['gc_id'] = array('neq', intval($_GET['gc_id']));
 				$class_list = $model_class->getGoodsClassList($condition);
-				if (empty($class_list)){
+				if (empty($class_list)) {
 					echo 'true';exit;
-				}else {
+				} else {
 					echo 'false';exit;
 				}
 				break;

+ 2 - 2
crontab/control/date.php

@@ -407,7 +407,7 @@ class dateControl extends BaseCronControl {
         $update['evaluation_state'] = 2;
         $update = $model_order->editOrder($update,$condition,1000);
         if (!$update) {
-            $this->log('更新实物订单超期不能评价失败');break;
+            $this->log('更新实物订单超期不能评价失败'); return;
         }
 
         //虚拟订单超期未评价自动更新状态,每次最多更新1000个订单
@@ -421,7 +421,7 @@ class dateControl extends BaseCronControl {
         $update['evaluation_state'] = 2;
         $update = $model_order->editOrder($update,$condition,1000);
         if (!$update) {
-            $this->log('更新虚拟订单超期不能评价失败');break;
+            $this->log('更新虚拟订单超期不能评价失败'); return;
         }
     }
 

+ 248 - 20
crontab/fetch_goods.php

@@ -30,18 +30,187 @@ function init_sqe()
 	return $str2;
 }
 
+
+class ModelOperator
+{
+    private $mod_goods_tmp;
+    private $mod_spex;
+    private $mod_spec;
+    private $mod_spec_value;
+    private $mod_good_class;
+    private $mod_item_props;
+    private $mod_item_prop_values;
+    private $mod_type;
+    private $mod_type_spec;
+
+    public function __construct()
+    {
+        $this->mod_goods_tmp = Model('goods_tmp');
+        $this->mod_spex = Model('spec_ex');
+        $this->mod_spec = Model('spec');
+        $this->mod_good_class = Model('goods_class');
+        $this->mod_item_props = Model('item_props');
+        $this->mod_item_prop_values = Model('item_prop_values');
+        $this->mod_spec_value = Model('spec_value');
+
+        $this->mod_type = Model('type');
+        $this->mod_type_spec = Model('type_spec');
+    }
+
+    public function __call($method,$args)
+    {
+        $num_iid = $args[0];
+        $body = &$args[1];
+        $response = json_decode($body, true);
+
+        $methods = array('spec');
+        if(in_array(strtolower($method),$methods) == false) {
+            return;
+        }
+        if($method == 'spec')
+        {
+            $item = &$response['item_get_response']['item'];
+            if($item['approve_status'] != 'onsale') {
+                return;
+            }
+
+            $cid = $item['cid'];
+            $num_iid = $item['num_iid'];
+            $title = $item['title'];
+
+            $skus = &$item['skus'];
+            foreach($skus as $skuex)
+            {
+                foreach($skuex as $sku) {
+                    $val = array();
+                    $val['cid'] = $cid;
+                    $val['num_iid'] = $num_iid;
+                    $val['sp_name'] = $sku['properties_name'];
+                    $val['sku_id'] = $sku['sku_id'];
+                    $val['outer_id'] = $sku['outer_id'];
+                    $props = $this->parse_props($sku['properties']);
+                    $val['props'] = empty($props) ? "" : $props[0];
+                    $val['props_val'] = $sku['properties_name'];
+                    $val['title'] = $title;
+
+                    $this->mod_spex->insert($val);
+                }
+            }
+
+            $this->mod_goods_tmp->insert(array("num_iid" => $num_iid,'body' => $body,'cid' => $cid,'product_id' =>$item['product_id'],'title' => $title));
+        }
+    }
+
+    function parse_props($props)
+    {
+        $data = preg_split("/[:]+/", $props);
+        $ret = array();
+
+        $count = count($data);
+        for ($i = 0; $i < $count; $i += 2) {
+            array_push($ret, $data[$i]);
+        }
+        return $ret;
+    }
+
+    private function get_class_name($cid)
+    {
+        $item = $this->mod_good_class->where(array('gc_id' => $cid))->limit(false)->select();
+        if(empty($item)) {
+            return NULL;
+        } else {
+            return $item[0]['gc_name'];
+        }
+    }
+
+    private function get_spec_name($cid,$pid)
+    {
+        $item = $this->mod_item_props->where(array('cid' => $cid,'pid' => $pid))->limit(false)->select();
+        if(empty($item)) {
+            return NULL;
+        } else {
+            return $item[0]['name'];
+        }
+    }
+
+    private function get_prop_values($cid,$pid)
+    {
+        $items = $this->mod_item_prop_values->where(array('cid' => $cid,'pid' => $pid))->limit(false)->select();
+        return $items;
+    }
+
+    private function add_spec($cid,$pid,$sepc_name,$c_name,$items)
+    {
+        $val = array('class_id' => $cid,'sp_id' => $pid,'sp_name' => $sepc_name,'class_name' => $c_name);
+        $this->mod_spec->insert($val);
+
+        foreach($items as $item) {
+            $spec_val = array();
+            $spec_val['sp_id'] = $pid;
+            $spec_val['sp_value_id'] = $item['vid'];
+            $spec_val['sp_value_name'] = $item['name'];
+            $spec_val['store_id'] = 1;
+            $spec_val['sp_value_color'] = '#ddd9c3';
+            $spec_val['gc_id'] = $cid;
+            $spec_val['sp_value_sort'] = 0;
+
+            $this->mod_spec_value->insert($spec_val);
+        }
+    }
+    private function add_type($pids)
+    {
+        foreach ($pids as $pid)
+        {
+            //按照分类建立类型
+            $specexs = $this->mod_spex->group('cid')->where(array('props' => $pid))->limit(false)->select();
+            foreach($specexs as $specex) {
+                $cid = $specex['cid']; // $cid => $typeid 以分类建立类型
+                $cnmae = $this->get_class_name($cid);
+
+                $this->mod_type->insert(array("type_id" => $cid, "type_name" => $cnmae, "class_id" => $cid, "class_name" => $cnmae));
+                $this->mod_type_spec->insert(array("type_id" => $cid,"sp_id" => $pid));
+                $this->mod_good_class->where(array("gc_id" => $cid))->update(array("type_id" => $cid, "type_name" => $cnmae));
+            }
+        }
+    }
+
+    function genspec()
+    {
+        $datas = $this->mod_spex->group('props')->order('props')->limit(false)->select(); //获取独立的规格
+
+        $pids = array();
+        foreach($datas as $item)
+        {
+            $cid = $item['cid'];
+            $pid = $item['props'];
+
+            $cname = $this->get_class_name($cid);
+            $spec_name = $this->get_spec_name($cid,$pid);
+            $items = $this->get_prop_values($cid,$pid);
+            $this->add_spec($cid,$pid,$spec_name,$cname,$items);
+            array_push($pids,$pid);
+        }
+        $this->add_type($pids);
+    }
+}
+
 class page_req
 {
     private $total = '10';
     private $leftcount;
+    private $dispatch = NULL;
     
     private $items = array();
    
     static private $page_url = 'http://crm-api.lrlz.com/api_app/api_main.py';
     static private $page_method = 'api.info.item.list';
     static private $item_method = 'api.info.item.get';
+    public function __construct()
+    {
+        $this->dispatch = new ModelOperator;
+    }
     
-    public function proc_page($shopname,$date)
+    public function proc_page($shopname,$date,$method)
     {
         $curpage = 1;
         $pagesize = 10;
@@ -70,12 +239,13 @@ class page_req
             
             foreach ($data as $num_iid) {
                 echo "$num_iid\r\n";
-                $item = $this->req_item($num_iid);
+                $body = $this->req_item($num_iid);
+                $this->dispatch->$method($num_iid,$body);
             }
               
         } while($this->leftcount > 0);       
-    } 
-    
+    }
+
     private function req_item($num_iid)
     {
     	$params = array('seq' => init_sqe(), 
@@ -83,10 +253,8 @@ class page_req
     	                'num_iid' => $num_iid);
     	$resp = http_request(page_req::$page_url,$params);
         $str = iconv("gbk","utf-8",$resp);
-        
-        echo $str;
 
-    	return json_decode($str, true);         
+    	return $str;
     }
 
     private function parse_page($body)
@@ -109,16 +277,11 @@ class page_req
     		for ($i = 0; $i < $count; $i++) {
                 $num_iid = $infos[$i]['num_iid'];
                 array_push($items, $num_iid);
-    		}    		
+    		}
             return $items;
     	}else{
     		return NULL;
     	}
-    } 
-    
-    private function fetch_cat($num_iid)
-    {
-        
     }
 }
 
@@ -131,17 +294,82 @@ function get_cid($cid)
 {
     $c = new TopClient;
     $req = new ItemcatsGetRequest;
-    //$req->setParentCid($cid);
-    $req->setCids("18957,19562");//($cid);
+    $req->setParentCid($cid);
+    //$req->setCids("18957,19562");//($cid);
     //$req->setDatetime("2000-01-01 00:00:00");
     $req->setFields("cid,parent_cid,name,is_parent");
-    $req->setParentCid("50011999");
-    $resp = $c->execute($req,'6102a03eb7d1a82c0b6f37705ca98d2dbe9df7045dd658190919986');
+    //$req->setParentCid("50011999");
+    //$resp = $c->execute($req,'6102a03eb7d1a82c0b6f37705ca98d2dbe9df7045dd658190919986');
+    $resp = $c->execute($req,'61006189f905270ab4529ae83e119789649cff4050a1d87820445294');
+}
+
+
+//import catories
+
+class category
+{
+    private $model_cats;
+    private $model_class;
+    private $topcats = NULL;
+
+    public function __construct($topcats)
+    {
+        $this->model_cats = Model('item_cats');
+        $this->model_class = Model('goods_class');
+        $this->topcats = $topcats;
+    }
+
+    private function insert($catdatas)
+    {
+        foreach($catdatas as &$val) {
+            $item = array();
+            $item['gc_id'] = $val['cid'];
+            $item['gc_name'] = $val['name'];
+            $item['type_id'] = 37;
+            $item['type_name'] = '';
+            $item['gc_parent_id'] = $val['parent_cid'];
+            $item['commis_rate'] = 0;
+            $item['gc_sort'] = $val['sort_order'];
+            $item['gc_virtual'] = 0;
+
+            $this->model_class->insert($item);
+            $cids[] = (int)$val['cid'];
+        }
+
+        return $cids;
+    }
+
+    private function insert_all($pcids)
+    {
+        if(empty($pcids)) return;
+
+        foreach ($pcids as $pcid) {
+            $datas = $this->model_cats->field('*')->limit(false)->where(array('parent_cid'=> $pcid))->select();
+            $cids = $this->insert($datas);
+
+            $this->insert_all($cids);
+        }
+    }
+
+    public function proc()
+    {
+        if(empty($this->topcats)) return;
+
+        foreach ($this->topcats as $cid) {
+            $datas = $this->model_cats->field('*')->limit(false)->where(array('cid'=>$cid,'parent_cid'=> 0))->select();
+            $this->insert($datas);
+        }
+
+        $this->insert_all($this->topcats);
+    }
 }
 
-get_cid("121452027");
+//$cat = new category(array(1801,50010788,50023282));
+//$cat->proc();
+
 //$req = new page_req;
-//
 //$date = "2015-10-15";
-//$req->proc_page("丽人丽妆官方旗舰店",$date,1,10);
+//$req->proc_page("丽人丽妆官方旗舰店",$date,'spec');
 
+$specex = new ModelOperator;
+$specex->genspec();

+ 4 - 2
data/api/taobao/TopClient.php

@@ -1,9 +1,11 @@
 <?php
 class TopClient
 {
-	public $appkey = '21074842';
+//	public $appkey = '21074842';    
+//	public $secretKey = '8b999a00d4c88d8fc2cfe5d5c1c62a73';
     
-	public $secretKey = '8b999a00d4c88d8fc2cfe5d5c1c62a73';
+    public $appkey = '12619941';    
+	public $secretKey = '9b13aef649d3320dc4cc1f7d353753c4';
 
   	public $gatewayUrl = "http://gw.api.taobao.com/router/rest";
 	public $format = "xml";

+ 1 - 0
data/config/config.ini.php

@@ -43,6 +43,7 @@ function config_init()
 	$ret['redis']['master']['host']     	= '127.0.0.1';
 	$ret['redis']['master']['pconnect'] 	= 0;
 	$ret['redis']['slave']      	    = array();
+
 	//$ret['fullindexer']['open']      = false;
 	//$ret['fullindexer']['appname']   = '33hao';
 	

+ 118 - 54
data/model/goods_class.model.php

@@ -45,12 +45,14 @@ class goods_classModel extends Model
      *   ),
      * )
      */
-    public function getCache() {
+    public function getCache() 
+    {
         if ($this->cachedData) {
             return $this->cachedData;
         }
         $data = rkcache('gc_class');
-        if (!$data) {
+        if (!$data) 
+        {
             $data = array();
             foreach ((array) $this->getGoodsClassList(array()) as $v) {
                 $id = $v['gc_id'];
@@ -59,13 +61,16 @@ class goods_classModel extends Model
                 $data['parent'][$id] = $pid;
                 $data['children'][$pid][] = $id;
             }
-            foreach ((array) $data['children'][0] as $id) {
-                foreach ((array) $data['children'][$id] as $cid) {
+            foreach ((array) $data['children'][0] as $id) 
+            {
+                foreach ((array) $data['children'][$id] as $cid) 
+                {
                     foreach ((array) $data['children'][$cid] as $ccid) {
                         $data['children2'][$id][] = $ccid;
                     }
                 }
             }
+
             wkcache('gc_class', $data);
         }
         return $this->cachedData = $data;
@@ -130,10 +135,12 @@ class goods_classModel extends Model
      *
      * @param int $pid 上级分类id 若传0则返回1级分类
      */
-    public function getGoodsClassListByParentId($pid) {
+    public function getGoodsClassListByParentId($pid) 
+    {
         $data = $this->getCache();
         $ret = array();
-        foreach ((array) $data['children'][$pid] as $i) {
+        foreach ((array) $data['children'][$pid] as $i) 
+        {
             if ($data['data'][$i]) {
                 $ret[] = $data['data'][$i];
             }
@@ -154,7 +161,8 @@ class goods_classModel extends Model
     /**
      * 返回缓存数据 原H('goods_class')形式
      */
-    public function getGoodsClassForCacheModel() {
+    public function getGoodsClassForCacheModel() 
+    {
 
         if ($this->gcForCacheModel)
             return $this->gcForCacheModel;
@@ -168,8 +176,10 @@ class goods_classModel extends Model
 
         $r = (array) $r;
 
-        foreach ($r as $k => & $v) {
-            if ((string) $p[$k] == '0') {
+        foreach ($r as $k => & $v) 
+        {
+            if ((string) $p[$k] == '0') 
+            {
                 $v['depth'] = 1;
                 if ($data['children'][$k]) {
                     $v['child'] = implode(',', $c[$k]);
@@ -177,12 +187,16 @@ class goods_classModel extends Model
                 if ($data['children2'][$k]) {
                     $v['childchild'] = implode(',', $c2[$k]);
                 }
-            } else if ((string) $p[$p[$k]] == '0') {
+            } 
+            else if ((string) $p[$p[$k]] == '0') 
+            {
                 $v['depth'] = 2;
                 if ($data['children'][$k]) {
                     $v['child'] = implode(',', $c[$k]);
                 }
-            } else if ((string) $p[$p[$p[$k]]] == '0') {
+            } 
+            else if ((string) $p[$p[$p[$k]]] == '0') 
+            {
                 $v['depth'] = 3;
             }
         }
@@ -209,11 +223,13 @@ class goods_classModel extends Model
      * @param   number  $deep       深度
      * @return  array   二维数组
      */
-    public function getGoodsClass($store_id, $pid = 0, $deep = 1) {
+    public function getGoodsClass($store_id, $pid = 0, $deep = 1) 
+    {
         // 读取商品分类 by 33 hao .com 批量添加分类修改
         $gc_list_o = $gc_list = $this->getGoodsClassListByParentId($pid);
         // 如果不是自营店铺或者自营店铺未绑定全部商品类目,读取绑定分类
-        if (!checkPlatformStoreBindingAllGoodsClass()) {
+        if (!checkPlatformStoreBindingAllGoodsClass()) 
+        {
             $gc_list = array_under_reset($gc_list, 'gc_id');
             $model_storebindclass = Model('store_bind_class');
             $gcid_array = $model_storebindclass->getStoreBindClassList(array(
@@ -221,9 +237,11 @@ class goods_classModel extends Model
                 'state' => array('in', array(1, 2)),
             ), '', "class_{$deep} asc", "distinct class_{$deep}");
 
-            if (!empty($gcid_array)) {
+            if (!empty($gcid_array)) 
+            {
                 $tmp_gc_list = array();
-                foreach ($gcid_array as $value) {
+                foreach ($gcid_array as $value) 
+                {
                     if($value["class_{$deep}"] == 0)
                     return $gc_list_o;
                     if (isset($gc_list[$value["class_{$deep}"]])) {
@@ -255,7 +273,8 @@ class goods_classModel extends Model
      * @param array $gcids
      * @return boolean
      */
-    public function delGoodsClassByGcIdString($gcids) {
+    public function delGoodsClassByGcIdString($gcids) 
+    {
         $gcids = explode(',', $gcids);
         if (empty($gcids)) {
             return false;
@@ -286,17 +305,21 @@ class goods_classModel extends Model
      * @param   number  $update_all   更新
      * @return  array   数组
      */
-    public function get_all_category($update_all = 0) {
+    public function get_all_category($update_all = 0) 
+    {
 
         // 不存在时更新或者强制更新时执行
-        if ($update_all == 1 || !($gc_list = rkcache('all_categories'))) {
+        if ($update_all == 1 || !($gc_list = rkcache('all_categories'))) 
+        {
             $class_list = $this->getGoodsClassListAll();
             $gc_list = array();
             $class1_deep = array();//第1级关联第3级数组
             $class2_ids = array();//第2级关联第1级ID数组
             $type_ids = array();//第2级分类关联类型
-            if (is_array($class_list) && !empty($class_list)) {
-                foreach ($class_list as $key => $value) {
+            if (is_array($class_list) && !empty($class_list)) 
+            {
+                foreach ($class_list as $key => $value) 
+                {
                     $p_id = $value['gc_parent_id'];//父级ID
                     $gc_id = $value['gc_id'];
                     $sort = $value['gc_sort'];
@@ -312,8 +335,10 @@ class goods_classModel extends Model
                         $class1_deep[$parent_id][$sort][] = $value;
                     }
                 }
+
                 $type_brands = $this->get_type_brands($type_ids);//类型关联品牌
-                foreach ($gc_list as $key => $value) {
+                foreach ($gc_list as $key => $value) 
+                {
                     $gc_id = $value['gc_id'];
                     $pic_name = BASE_UPLOAD_PATH.'/'.ATTACH_COMMON.'/category-pic-'.$gc_id.'.jpg';
                     if (file_exists($pic_name)) {
@@ -321,14 +346,17 @@ class goods_classModel extends Model
                     }
                     $class3s = $class1_deep[$gc_id];
 
-                    if (is_array($class3s) && !empty($class3s)) {//取关联的第3级
+                    if (is_array($class3s) && !empty($class3s))
+                    {//取关联的第3级
                         $class3_n = 0;//已经找到的第3级分类个数
                         ksort($class3s);//排序取到分类
-                        foreach ($class3s as $k3 => $v3) {
+                        foreach ($class3s as $k3 => $v3) 
+                        {
                             if ($class3_n >= 5) {//最多取5个
                                 break;
                             }
-                            foreach ($v3 as $k => $v) {
+                            foreach ($v3 as $k => $v) 
+                            {
                                 if ($class3_n >= 5) {
                                     break;
                                 }
@@ -343,7 +371,8 @@ class goods_classModel extends Model
                         }
                     }
                     $class2s = $value['class2'];
-                    if (is_array($class2s) && !empty($class2s)) {//第2级关联品牌
+                    if (is_array($class2s) && !empty($class2s))
+                    {//第2级关联品牌
                         foreach ($class2s as $k2 => $v2) {
                             $p_id = $v2['gc_parent_id'];
                             $gc_id = $v2['gc_id'];
@@ -366,20 +395,25 @@ class goods_classModel extends Model
      * @param   array  $type_ids   类型
      * @return  array   数组
      */
-    public function get_type_brands($type_ids = array()) {
+    public function get_type_brands($type_ids = array()) 
+    {
         $brands = array();//品牌
         $type_brands = array();//类型关联品牌
-        if (is_array($type_ids) && !empty($type_ids)) {
+        if (is_array($type_ids) && !empty($type_ids)) 
+        {
             $type_ids = array_unique($type_ids);
             $type_list = $this->table('type_brand')->where(array('type_id'=>array('in',$type_ids)))->limit(10000)->select();
-            if (is_array($type_list) && !empty($type_list)) {
+            if (is_array($type_list) && !empty($type_list)) 
+            {
                 $brand_list = $this->table('brand')->field('brand_id,brand_name,brand_pic')->where(array('brand_apply'=>1))->limit(10000)->select();
-                if (is_array($brand_list) && !empty($brand_list)) {
+                if (is_array($brand_list) && !empty($brand_list)) 
+                {
                     foreach ($brand_list as $key => $value) {
                         $brand_id = $value['brand_id'];
                         $brands[$brand_id] = $value;
                     }
-                    foreach ($type_list as $key => $value) {
+                    foreach ($type_list as $key => $value) 
+                    {
                         $type_id = $value['type_id'];
                         $brand_id = $value['brand_id'];
                         $brand = $brands[$brand_id];
@@ -412,13 +446,17 @@ class goods_classModel extends Model
      * @param array $condition 检索条件
      * @return array 数组类型的返回结果
      */
-    public function getTreeClassList($show_deep='3',$condition=array()){
+    public function getTreeClassList($show_deep='3',$condition=array())
+    {
         $class_list = $this->getGoodsClassList($condition);
         $goods_class = array();//分类数组
-        if(is_array($class_list) && !empty($class_list)) {
+        if(is_array($class_list) && !empty($class_list)) 
+        {
             $show_deep = intval($show_deep);
-            if ($show_deep == 1){//只显示第一级时用循环给分类加上深度deep号码
-                foreach ($class_list as $val) {
+            if ($show_deep == 1)
+            {//只显示第一级时用循环给分类加上深度deep号码
+                foreach ($class_list as $val) 
+                {
                     if($val['gc_parent_id'] == 0) {
                         $val['deep'] = 1;
                         $goods_class[] = $val;
@@ -443,16 +481,20 @@ class goods_classModel extends Model
      * @param int $i 上次循环编号
      * @return array $show_class 返回数组形式的查询结果
      */
-    private function _getTreeClassList($show_deep,$class_list,$deep=1,$parent_id=0,$i=0){
+    private function _getTreeClassList($show_deep,$class_list,$deep=1,$parent_id=0,$i=0)
+    {
         static $show_class = array();//树状的平行数组
-        if(is_array($class_list) && !empty($class_list)) {
+        if(is_array($class_list) && !empty($class_list)) 
+        {
             $size = count($class_list);
             if($i == 0) $show_class = array();//从0开始时清空数组,防止多次调用后出现重复
-            for ($i;$i < $size;$i++) {//$i为上次循环到的分类编号,避免重新从第一条开始
+            for ($i;$i < $size;$i++) 
+            {//$i为上次循环到的分类编号,避免重新从第一条开始
                 $val = $class_list[$i];
                 $gc_id = $val['gc_id'];
                 $gc_parent_id	= $val['gc_parent_id'];
-                if($gc_parent_id == $parent_id) {
+                if($gc_parent_id == $parent_id) 
+                {
                     $val['deep'] = $deep;
                     $show_class[] = $val;
                     if($deep < $show_deep && $deep < 3) {//本次深度小于显示深度时执行,避免取出的数据无用
@@ -471,25 +513,30 @@ class goods_classModel extends Model
      * @param int/array $parent_id 父ID 可以单一可以为数组
      * @return array $rs_row 返回数组形式的查询结果
      */
-    public function getChildClass($parent_id){
+    public function getChildClass($parent_id)
+    {
         static $_cache;
         if ($_cache !== null) return $_cache;
         $all_class = $this->getGoodsClassListAll();
-        if (is_array($all_class)){
+        if (is_array($all_class))
+        {
             if (!is_array($parent_id)){
                 $parent_id = array($parent_id);
             }
             $result = array();
-            foreach ($all_class as $k => $v){
+            foreach ($all_class as $k => $v)
+            {
                 $gc_id	= $v['gc_id'];//返回的结果包括父类
                 $gc_parent_id	= $v['gc_parent_id'];
-                if (in_array($gc_id,$parent_id) || in_array($gc_parent_id,$parent_id)){
+                if (in_array($gc_id,$parent_id) || in_array($gc_parent_id,$parent_id)) {
                     $parent_id[] = $v['gc_id'];
                     $result[] = $v;
                 }
             }
             $return = $result;
-        }else {
+        }
+        else 
+        {
             $return = false;
         }
         return $_cache = $return;
@@ -502,7 +549,8 @@ class goods_classModel extends Model
      * @param int $sign 1、0 1为最后一级不加超链接,0为加超链接
      * @return array $nav_link 返回数组形式类别导航连接
      */
-    public function getGoodsClassNav($id = 0, $sign = 1) {
+    public function getGoodsClassNav($id = 0, $sign = 1) 
+    {
         if (intval ( $id ) > 0) {
             $data = $this->getGoodsClassIndexedListAll();
 
@@ -519,7 +567,8 @@ class goods_classModel extends Model
             }
 
             // 最多循环4层
-            for($i = 1; $i < 5; $i ++) {
+            for($i = 1; $i < 5; $i ++) 
+            {
                 if ($data[$id]['gc_parent_id'] == '0') {
                     break;
                 }
@@ -546,7 +595,8 @@ class goods_classModel extends Model
      * @param int $id 父类ID/子类ID
      * @return array $nav_link 返回数组形式类别导航连接
      */
-    public function getGoodsClassLineForTag($id = 0) {
+    public function getGoodsClassLineForTag($id = 0) 
+    {
         if (intval($id)> 0) {
             $gc_line = array();
             /**
@@ -559,7 +609,8 @@ class goods_classModel extends Model
             /**
              * 是否是子类
              */
-            if ($class['gc_parent_id'] != 0) {
+            if ($class['gc_parent_id'] != 0) 
+            {
                 $parent_1 = $this->getGoodsClassInfoById($class['gc_parent_id']);
                 if ($parent_1['gc_parent_id'] != 0) {
                     $parent_2 = $this->getGoodsClassInfoById($parent_1['gc_parent_id']);
@@ -567,14 +618,17 @@ class goods_classModel extends Model
                     $gc_line['gc_tag_name'] = trim($parent_2['gc_name']) . ' >';
                     $gc_line['gc_tag_value'] = trim($parent_2['gc_name']) . ',';
                 }
+
                 if (!isset($gc_line['gc_id_1'])) {
                     $gc_line['gc_id_1'] = $parent_1['gc_id'];
                 } else {
                     $gc_line['gc_id_2'] = $parent_1['gc_id'];
                 }
+
                 $gc_line['gc_tag_name'] .= trim($parent_1['gc_name']) . ' >';
                 $gc_line['gc_tag_value'] .= trim($parent_1['gc_name']) . ',';
             }
+
             if (!isset($gc_line['gc_id_1'])) {
                 $gc_line['gc_id_1'] = $class['gc_id'];
             } else if (!isset($gc_line['gc_id_2'])) {
@@ -582,9 +636,11 @@ class goods_classModel extends Model
             } else {
                 $gc_line['gc_id_3'] = $class['gc_id'];
             }
+
             $gc_line['gc_tag_name'] .= trim($class['gc_name']) . ' >';
             $gc_line['gc_tag_value'] .= trim($class['gc_name']) . ',';
         }
+
         $gc_line['gc_tag_name'] = trim($gc_line['gc_tag_name'], ' >');
         $gc_line['gc_tag_value'] = trim($gc_line['gc_tag_value'], ',');
         return $gc_line;
@@ -593,25 +649,30 @@ class goods_classModel extends Model
     /**
      * 取得分类关键词,方便SEO
      */
-    public function getKeyWords($gc_id = null){
+    public function getKeyWords($gc_id = null)
+    {
         if (empty($gc_id)) return false;
         $keywrods = rkcache('goods_class_seo',true);
         $seo_title = $keywrods[$gc_id]['title'];
         $seo_key = '';
         $seo_desc = '';
-        if ($gc_id > 0){
+        if ($gc_id > 0)
+        {
             if (isset($keywrods[$gc_id])){
                 $seo_key .= $keywrods[$gc_id]['key'].',';
                 $seo_desc .= $keywrods[$gc_id]['desc'].',';
             }
             $goods_class = Model('goods_class')->getGoodsClassIndexedListAll();
-            if(($gc_id = $goods_class[$gc_id]['gc_parent_id']) > 0){
+            if(($gc_id = $goods_class[$gc_id]['gc_parent_id']) > 0)
+            {
                 if (isset($keywrods[$gc_id])){
                     $seo_key .= $keywrods[$gc_id]['key'].',';
                     $seo_desc .= $keywrods[$gc_id]['desc'].',';
                 }
             }
-            if(($gc_id = $goods_class[$gc_id]['gc_parent_id']) > 0){
+            
+            if(($gc_id = $goods_class[$gc_id]['gc_parent_id']) > 0)
+            {
                 if (isset($keywrods[$gc_id])){
                     $seo_key .= $keywrods[$gc_id]['key'].',';
                     $seo_desc .= $keywrods[$gc_id]['desc'].',';
@@ -626,11 +687,13 @@ class goods_classModel extends Model
      * @param int $show_depth 需要展示分类深度
      * @return array 返回分类数组和选择分类id数组
      */
-    public function getGoodsclassCache($choose_gcid, $show_depth=3){
+    public function getGoodsclassCache($choose_gcid, $show_depth=3)
+    {
         $gc_list = $this->getGoodsClassForCacheModel();
         //获取需要展示的分类数组
         $show_gc_list = array();
-        foreach ((array)$gc_list as $k=>$v){
+        foreach ((array)$gc_list as $k=>$v)
+        {
             if ($v['depth'] < $show_depth){
                 $show_gc_list[$v['gc_id']] = $v;
             } elseif ($v['depth'] == $show_depth) {
@@ -638,7 +701,8 @@ class goods_classModel extends Model
                 $show_gc_list[$v['gc_id']] = $v;
             }
         }
-        if ($choose_gcid > 0){
+        if ($choose_gcid > 0)
+        {
             //遍历出选择商品分类的上下级ID
             $gc_depth = $gc_list[$choose_gcid]['depth'];
             $choose_gcidarr = array();

+ 3 - 0
run.php

@@ -13,6 +13,9 @@ if($gfcgi_run == 0) { //模拟请求
     $file = BASE_ROOT_PATH . '/research_run.php';   
     include $file;
 } else {
+    define('StartTime', microtime(true));
+    define('TIMESTAMP', time());
+    Base::run_test();
     $file = BASE_CRONTAB_PATH . '/fetch_goods.php';   
     include $file;
 }

+ 2 - 1
zmr.php

@@ -11,7 +11,8 @@ $auto = 1;
 
 checkdir($basedir);
 
-function checkdir($basedir){
+function checkdir($basedir)
+{
  if ($dh = opendir($basedir)) {
   while (($file = readdir($dh)) !== false) {
    if ($file != '.' && $file != '..'){