Exemplo n.º 1
0
 /**
  * 保存日志信息
  */
 public function actionsavelog()
 {
     $access_key = '';
     $secret_key = '';
     $log_string = '';
     $domain = '';
     $rand = md5(date("Y-m-d H:i:s"));
     if (Yii::app()->request->getParam('access_key')) {
         $access_key = Yii::app()->request->getParam('access_key');
     }
     if (Yii::app()->request->getParam('secret_key')) {
         $secret_key = Yii::app()->request->getParam('secret_key');
     }
     if (empty($access_key) || empty($secret_key)) {
         echo "验证失败";
         exit;
     }
     $brand_obj = Yii::app()->db->createCommand()->select('brandid,domain')->from('erp_qiniu_account')->where('access_key=:access_key and secret_key=:secret_key', array(':access_key' => $access_key, ':secret_key' => $secret_key))->queryRow();
     if (empty($brand_obj)) {
         echo '没有对应的品牌数据';
         exit;
     }
     $domain = $brand_obj['domain'];
     $logurl = $domain . "log/op.log?" . $rand;
     $log_string = file_get_contents($logurl);
     $brand_id = $brand_obj['brandid'];
     //品牌ID号
     //获取品牌 SKU 规则
     $brand_ret = Brand::brandSelectById($brand_id);
     if (count($brand_ret) == 0) {
         throw new Exception('');
     }
     $code_start = $brand_ret[0]['code_start'];
     $code_end = $brand_ret[0]['code_end'];
     if (empty($log_string)) {
         echo "log data fail";
         exit;
     }
     //		$command = Yii::app()->db->createCommand();
     //		$array = array ("orderlog" =>$log_string, "addtime" => date('Y-m-d H:i:s'), "orderid" => $brand_id);
     //		$command->insert('erp_orderlog', $array);
     //		exit();
     //		$log_string='ok|orderlist/z004X001/115230C211261/model/UQ15002441_B_100.jpg|2015-11-06 12:12:12
     //ok|orderlist/z004X001/115230C2112/115230C211261/model/UQ15002441_B_101.jpg|2015-11-06 12:12:12
     //fail|orderlist/z004X001/115250C0327/115250C032734/model/UQ15002441_B_102.jpg|2015-11-06 12:12:12
     //fail|orderlist/z004X002/115230E3211/115230E321115/product/UQ15002441_A0_101.jpg|2015-11-06 12:12:12
     //ok|orderlist/z004X003/115220A6205/115220A620517/product/UQ15002441_A2_101.jpg|2015-11-06 12:12:12
     //ok|poster/15ss/dscn001.jpg|2015-11-06 12:12:12
     //ok|poster/14ss/dscn002.jpg|2015-11-06 12:12:12';
     $log_array = explode("\n", $log_string);
     //按回车进行分隔,日志数组
     $log_array = array_filter($log_array);
     $order_array = array();
     //订单数组
     $brandnumber_array = array();
     //款号数组
     $order_name_array = array();
     //订单名数组
     $poster_array = array();
     //海报数组
     foreach ($log_array as $value) {
         $string_array = explode(" | ", $value);
         //按"|"进行分隔,得到(状态|路径|时间)
         if (count($string_array) > 0) {
             $geshi_array = array();
             //格式数组
             $geshi_array['url'] = '';
             //路径
             if ($string_array[0] == 'ok' || $string_array[0] == 'fail') {
                 $url_array = array();
                 //路径数组
                 $geshi_array['status'] = $string_array[0];
                 //状态
                 $geshi_array['date'] = $string_array[2];
                 //时间
                 if (!empty($string_array[1])) {
                     $geshi_array['url'] = $string_array[1];
                     //路径
                     $url_array = explode("/", $string_array[1]);
                     //将url路径分隔为数组
                     if (count($url_array) == 6) {
                         $order_array[$url_array[1]][] = $geshi_array;
                         $brandnumber_array[$url_array[3]][] = $geshi_array;
                         if (!in_array($url_array[1], $order_name_array)) {
                             $order_name_array[] = $url_array[1];
                             //订单名数组
                         }
                     }
                     if (count($url_array) == 3) {
                         $poster_array[$url_array[1]][] = $geshi_array;
                         //海报数据数组
                     }
                 }
             }
         }
     }
     /***************海报****************开始**************/
     $key_string = '';
     $poster_image_obj = array();
     $image_obj_count = 0;
     if (count($poster_array) > 0) {
         //查询一个款号下的所有的图片url
         $poster_image_obj = Yii::app()->db->createCommand()->select('url')->from('erp_poster')->where("brandid={$brand_id}")->queryAll();
         $image_obj_count = count($image_obj);
     }
     foreach ($poster_array as $key => $value) {
         if ($key != $key_string) {
             foreach ($poster_array[$key] as $poster_array_value) {
                 if ($poster_array_value['status'] == 'ok') {
                     $ishave = false;
                     //默认数据库中不存在
                     foreach ($poster_image_obj as $poster_image_obj_value) {
                         if ($poster_image_obj_value['url'] == $poster_array_value['url']) {
                             $ishave = true;
                         }
                     }
                     if ($ishave == false) {
                         $image_name = '';
                         //图片名字
                         $image_url = explode("/", $poster_array_value['url']);
                         if (count($image_url) > 0) {
                             $image_name = $image_url[count($image_url) - 1];
                         }
                         $array = array("name" => $image_name, "url" => $poster_array_value['url'], "addtime" => $poster_array_value['date'], "brandid" => $brand_id, "status" => 0, "dirname" => $key);
                         $erp_image = Yii::app()->db->createCommand();
                         $erp_image->insert('erp_poster', $array);
                     }
                 }
             }
         }
     }
     /***************海报****************结束**************/
     $order_name_obj = array();
     if (count($order_name_array) > 0) {
         //获取所有需要的订单的ID号
         $order_name_obj = orderclass::select_order_id($brand_id, $order_name_array);
     }
     /***************订单日志表****************开始**************/
     $key_string = '';
     foreach ($order_array as $key => $value) {
         if ($key != $key_string) {
             $log_show_string = '';
             $key_string = $key;
             $success_pnum = 0;
             //成功产品图数量
             $success_mnum = 0;
             //成功模特图数量
             $success_dnum = 0;
             //成功细节图数量
             $fail_pnum = 0;
             //失败产品图数量
             $fail_mnum = 0;
             //失败模特图数量
             $fail_dnum = 0;
             //失败细节图数量
             $success_url = '';
             //成功的图片url
             $fail_url = '';
             //失败的图片url
             $date = date("Y-m-d H:i:s");
             foreach ($order_array[$key] as $order_value) {
                 $date = $order_value['date'];
                 if ($order_value['status'] == 'ok') {
                     if (strpos($order_value['url'], 'product')) {
                         $success_pnum++;
                     } else {
                         if (strpos($order_value['url'], 'model')) {
                             $success_mnum++;
                         } else {
                             if (strpos($order_value['url'], 'details')) {
                                 $success_dnum++;
                             }
                         }
                     }
                     $success_url .= $order_value['url'] . "<br>";
                 }
             }
             $log_show_string .= "时间:" . $date . "<br>";
             $log_show_string .= "产品图:成功" . $success_pnum . "张;模特图:成功" . $success_mnum . "张;细节图:成功" . $success_dnum . "张" . "<br>";
             $log_show_string .= "详情:" . "<br>";
             $log_show_string .= "成功图片列表:" . "<br>";
             $log_show_string .= $success_url . "<br>";
             $orderobj = Yii::app()->db->createCommand()->select('id')->from('erp_order')->where("ordername='" . $key . "'")->queryRow();
             if (!empty($orderobj)) {
                 $command = Yii::app()->db->createCommand();
                 $array = array("orderlog" => $log_show_string, "addtime" => $date, "orderid" => $orderobj['id']);
                 $command->insert('erp_orderlog', $array);
             }
         }
     }
     /***************订单日志表****************结束**************/
     /***************订单衣服表****************开始**************/
     //通过款号录入衣服信息
     $key_string = '';
     $clothesorder = new clothesorderclass();
     foreach ($brandnumber_array as $key => $value) {
         if ($key != $key_string) {
             $order_obj = array();
             //款号所属的订单数
             //查询是否录入过此款号
             $brand_obj = Yii::app()->db->createCommand()->select('id')->from('erp_clothes_order')->where("brandnumber='" . $key . "' and brandid={$brand_id} and status=0")->queryRow();
             if (empty($brand_obj)) {
                 $orderid = 0;
                 if (count($order_name_obj) > 0) {
                     foreach ($brandnumber_array[$key] as $brandnumber_value) {
                         $image_url = explode("/", $brandnumber_value['url']);
                         $order_name = $image_url[1];
                         foreach ($order_name_obj as $order_name_obj_value) {
                             if ($order_name == $order_name_obj_value['ordername']) {
                                 $orderid = $order_name_obj_value['id'];
                                 break;
                             }
                         }
                         break;
                     }
                 }
                 //将SKC转为SKU
                 $brandnumber_SKU = $key;
                 if ($code_start != 0 || $code_end != 0) {
                     //设置了款号规则后 按规则提取款号
                     $brandnumber_SKU = $this->SKCToSKU($code_start, $code_end, $key);
                 }
                 $clothes_order_id = $clothesorder->create_erp_clothes($brandnumber_SKU, $key, $orderid, $brand_id);
                 /*$array = array ("sku"=>$brandnumber_SKU,"brandnumber" =>$key, "pcount" => 0, 
                 		"mcount" => 0,"dcount" => 0,"description" => '',
                 		"orderid" => $orderid,"brandcategoryid" => 0,"addtime" => date("Y-m-d H:i:s"),
                 		"brandid" => $brand_id,"status" => 0);
                 		$command = Yii::app()->db->createCommand();
                 		$command->insert('erp_clothes_order', $array);
                 		$clothes_order_id= Yii::app()->db->getLastInsertID();
                 		*/
                 $clothes_image_array = array("clothes_order_id" => $clothes_order_id, "tablename" => "erp_image");
                 $erp_clothes_image = Yii::app()->db->createCommand();
                 $erp_clothes_image->insert('erp_clothes_image', $clothes_image_array);
             } else {
                 $clothes_order_id = $brand_obj['id'];
             }
             //查询一个款号下的所有的图片url
             $image_obj = Yii::app()->db->createCommand()->select('url,type')->from('erp_image')->where("clothes_order_id={$clothes_order_id} and isshow=0")->queryAll();
             $image_obj_count = count($image_obj);
             foreach ($brandnumber_array[$key] as $brandnumber_value) {
                 if ($brandnumber_value['status'] == 'ok') {
                     $ishave = false;
                     //默认数据库中不存在
                     if ($image_obj_count > 0) {
                         foreach ($image_obj as $image_obj_value) {
                             //找到相同的url了
                             if ($image_obj_value['url'] == $brandnumber_value['url']) {
                                 $ishave = true;
                                 break;
                             }
                         }
                     }
                     if ($ishave == false) {
                         $image_name = '';
                         //图片名字
                         $image_url = explode("/", $brandnumber_value['url']);
                         if (count($image_url) > 0) {
                             $image_name = $image_url[count($image_url) - 1];
                             //								if(strpos($image_name,'.'))
                             //								{
                             //									$name=explode(".",$image_name);
                             //									$image_name=$name[0];
                             //								}
                         }
                         //A图、B模特图、C细节图、D海报图
                         $type = 1;
                         //默认为产品图
                         if (strpos($brandnumber_value['url'], 'model')) {
                             $type = 3;
                         } else {
                             if (strpos($brandnumber_value['url'], 'details')) {
                                 $type = 4;
                             }
                         }
                         $array = array("name" => $image_name, "status" => 0, "addtime" => $brandnumber_value['date'], "updatetime" => $brandnumber_value['date'], "istop" => 0, "type" => $type, "url" => $brandnumber_value['url'], "isshow" => 0, "isback" => 0, "clothes_order_id" => $clothes_order_id);
                         $erp_image = Yii::app()->db->createCommand();
                         $erp_image->insert('erp_image', $array);
                     }
                 }
             }
         }
     }
     /***************订单衣服表****************结束**************/
     echo "success";
     exit;
 }
Exemplo n.º 2
0
 /**
  * 设置衣服的不同穿 不同色
  **/
 function setClothesDifferentAndRelated($brandid, $clothesid, $brandnumber)
 {
     try {
         $Different_data = self::beuDifferentSelectByClothesid2($clothesid);
         //根据衣服ID查找其不同穿法
         if (count($Different_data) > 0) {
             $arr = array();
             $id = 0;
             foreach ($Different_data as $key => $value) {
                 if ($key == 'id') {
                     $id = $value;
                 } else {
                     if (!empty($value) && $value != $clothesid) {
                         $arr[] = $value;
                     }
                 }
             }
             if (count($arr) < 2) {
                 //当其去除当前单品后,不同穿没有其他单品 就将其关联关系删除
                 self::beuDifferentDeleteByid($id);
             } else {
                 $num = 1;
                 $ret_data_new = array();
                 for ($num = 1; $num <= 30; $num++) {
                     $ret_data_new['clothesid' . $num] = isset($arr[$num - 1]) ? $arr[$num - 1] : '';
                 }
                 beu_clothesdifferent::model()->updateAll($ret_data_new, 'id=:textx', array(':textx' => $id));
             }
         }
         /*$Related_data=self::beuRelatedSelectByClothesid2($clothesid);//根据衣服id查找不同颜色完整数据
         		if(count($Related_data)>0){
         			$arr = array ();
         			$id=0;
         			foreach ( $Related_data as $key => $value ) {
         				if($key == 'id'){
         					$id=$value;
         				}else if (! empty ( $value ) && $value!=$clothesid) {
         					$arr [] = $value;
         				}
         			}
         			if(count($arr)<2){//当其去除当前单品后,不同穿没有其他单品 就将其关联关系删除
         				self::beuRelatedDeleteByid($id);
         			}else{
         				$num=1;
         				$ret_data_new=array();
         				for($num=1;$num<=30;$num++){
         					$ret_data_new['clothesid'.$num]=isset($arr[$num-1])?$arr[$num-1]:'';
         				}
         				beu_clothesrelated::model ()->updateAll ( $ret_data_new, 'id=:textx', array (':textx' => $id ) );
         			}
         		}*/
         if (!empty($brandnumber)) {
             //款号不为空的时候才自动绑定
             //查询品牌的款号规则
             $brand_code = Brand::brandSelectById($brandid);
             if (empty($brand_code) || !isset($brand_code[0]['code_start']) || empty($brand_code[0]['code_start']) && empty($brand_code[0]['code_end'])) {
                 throw new Exception('查询款号规则错误!');
             }
             //根据品牌的款号规则截取款号字符段
             $barcode_str = substr($brandnumber, $brand_code[0]['code_start'], $brand_code[0]['code_end'] - $brand_code[0]['code_start']);
             //查询此品牌下的衣服
             $ret_clothes = self::getclothesBybrandandCode($brandid, $barcode_str, isset($brand_code[0]['code_start']) ? $brand_code[0]['code_start'] : 0, 2);
             if ($ret_clothes['status'] == 0) {
                 throw new Exception($ret_clothes['msg']);
             }
             $Different_arr = array();
             //不同穿数组
             $Related_arr = array();
             //不同色数组
             foreach ($ret_clothes['data'] as $value) {
                 if ($value['brandnumber'] == $brandnumber) {
                     //添加不同穿数据
                     $Different_arr[] = $value['id'];
                 }
                 //$Related_arr[$value['brandnumber']]=
             }
             if (count($Different_arr) > 1) {
                 self::clothesDifferentUpdataById($clothesid, implode(',', $Different_arr));
             }
         }
     } catch (Exception $e) {
     }
 }