where(' 1=1 '.$where)->count(); return $total; } public function show_bargain_page($search) { $sql='SELECT p.goods_id,p.name,p.quantity,p.type as goods_type,pg.begin_time,pg.end_time,p.status,pg.id,p.price,p.image,pg.bargain_price,pg.bargain_count FROM ' .C('DB_PREFIX').'bargain_goods as pg left join '.C('DB_PREFIX').'goods as p on pg.goods_id=p.goods_id where 1=1 '; if(isset($search['customer_id'])){ $sql.=" and p.store_id = ".$search['customer_id']; } //name if(isset($search['name'])){ $sql.=" and p.name like '%".$search['name']."%'"; } //'customer_id' => UID $count=count(M()->query($sql)); $Page = new \Think\Page($count,C('BACK_PAGE_NUM')); $show = $Page->show();// 分页显示输出 $sql.=' order by pg.id desc LIMIT '.$Page->firstRow.','.$Page->listRows; $list=M()->query($sql); foreach ($list as $key => $value) { $list[$key]['image']=resize($value['image'], 50, 50); } return array( 'empty'=>'~~暂无数据', 'list'=>$list, 'page'=>$show ); } public function show_pingoods_page($search) { $sql='SELECT p.goods_id,p.name,p.quantity,p.type as goods_type,pg.type,pg.begin_time,pg.end_time,p.status,pg.id,p.price,p.image,pg.pin_price,pg.pin_count FROM ' .C('DB_PREFIX').'pin_goods as pg left join '.C('DB_PREFIX').'goods as p on pg.goods_id=p.goods_id where 1=1 '; if(isset($search['customer_id'])){ $sql.=" and p.store_id = ".$search['customer_id']; } //name if(isset($search['name'])){ $sql.=" and p.name like '%".$search['name']."%'"; } //'customer_id' => UID $count=count(M()->query($sql)); $Page = new \Think\Page($count,C('BACK_PAGE_NUM')); $show = $Page->show();// 分页显示输出 $sql.=' order by pg.id desc LIMIT '.$Page->firstRow.','.$Page->listRows; $list=M()->query($sql); foreach ($list as $key => $value) { $list[$key]['image']=resize($value['image'], 50, 50); } return array( 'empty'=>'~~暂无数据', 'list'=>$list, 'page'=>$show ); } function copy_goods($goods_id){ $query = M()->query("SELECT DISTINCT * FROM " . C('DB_PREFIX') . "goods p LEFT JOIN " . C('DB_PREFIX') . "goods_description pd ON (p.goods_id = pd.goods_id) WHERE p.goods_id =" . (int)$goods_id); if ($query) { $data = $query[0]; $data['viewed'] = '0'; $data['image']=''; $data['goods_description'] =M('goods_description')->where(array('goods_id'=>$goods_id))->find(); $data['goods_description']['name']=$data['name']; $data['goods_discount'] = M('goods_discount')->where(array('goods_id'=>$goods_id))->select(); $category = M('goods_to_category')->where(array('goods_id'=>$goods_id))->select(); foreach ($category as $k => $v) { $data['goods_category'][]=$v['category_id']; } $this->add_Goods($data); } } public function del_Goods($id){ try{ $image=M('goods')->where(array('goods_id'=>$id))->field('image')->find(); if(!empty($image)){ A('Image')->del_image('goods',$image['image'],'goods'); } $gallery=M('goods_image')->where(array('goods_id'=>$id))->field('image')->select(); if(!empty($gallery)){ foreach ($gallery as $key => $value) { A('Image')->del_image('gallery',$value['image'],'gallery'); } } M('goods')->where(array('goods_id'=>$id))->delete(); M('goods_description')->where(array('goods_id'=>$id))->delete(); M('goods_image')->where(array('goods_id'=>$id))->delete(); M('goods_to_category')->where(array('goods_id'=>$id))->delete(); M('goods_discount')->where(array('goods_id'=>$id))->delete(); M('goods_option')->where(array('goods_id'=>$id))->delete(); M('goods_option_value')->where(array('goods_id'=>$id))->delete(); M('goods_area')->where(array('goods_id'=>$id))->delete(); return array( 'status'=>'success', 'message'=>'删除成功', 'jump'=>U('Goods/index') ); }catch(Exception $e){ return array( 'status'=>'fail', 'message'=>'删除失败,未知异常', 'jump'=>U('Goods/index') ); } } public function get_goods_data($id){ $d=M('Goods')->find($id); $d['thumb_image']=resize($d['image'], 100, 100); if(!empty($d['fan_image'])) { $d['fan_image_thumb']=resize($d['fan_image'], 100, 100); } return $d; } public function get_goods_image_data($id){ $d=M('goods_image')->where(array('goods_id'=>$id))->select(); foreach ($d as $k => $v) { $d[$k]['thumb']=resize($v['image'], 100, 100); } return $d; } public function get_goods_category_data($id){ $sql='SELECT pc.name FROM '.C('DB_PREFIX').'goods_to_category ptc,' .C('DB_PREFIX').'goods_category pc WHERE (pc.id=ptc.class_id1 or pc.id=ptc.class_id2 or pc.id=ptc.class_id3) AND ptc.goods_id='.$id.' order by pc.pid asc,sort_order asc'; $d=M()->query($sql); return $d; } public function show_comment_page($search){ $sql='SELECT * FROM '.C('DB_PREFIX').'order_comment where 1= 1 '; if(isset($search['goods_id'])) { $sql.=" and goods_id=".$search['goods_id']; } $count=count(M()->query($sql)); $Page = new \Think\Page($count,C('BACK_PAGE_NUM')); $show = $Page->show();// 分页显示输出 $sql.=' order by state asc,add_time desc LIMIT '.$Page->firstRow.','.$Page->listRows; $list=M()->query($sql); foreach($list as $key => $val) { //member_id $member_info = M('member')->field('name,avatar')->where( array('member_id' => intval($val['member_id'])) )->find(); $val['user_name'] = $member_info['name']; $val['avatar'] = $member_info['avatar']; $list[$key] = $val; } return array( 'empty'=>'~~暂无数据', 'list'=>$list, 'page'=>$show ); } public function show_guobie_page() { $sql='SELECT * from '.C('DB_PREFIX').'guobie '; $count=count(M()->query($sql)); $Page = new \Think\Page($count,C('BACK_PAGE_NUM')); $show = $Page->show();// 分页显示输出 $sql.=' order by id desc LIMIT '.$Page->firstRow.','.$Page->listRows; $list=M()->query($sql); return array( 'empty'=>'~~暂无数据', 'list'=>$list, 'page'=>$show ); } public function show_goods_page($search){ $sql='SELECT p.goods_id,p.name,p.model,p.price,p.danprice,p.is_index_show,pd.reason,p.index_sort,p.quantity,p.store_id,p.status,p.model,p.image,p.type,p.lock_type,gtc.class_id1,gtc.class_id2,gtc.class_id3 FROM '.C('DB_PREFIX').'goods_description pd,' .C('DB_PREFIX').'goods p,'.C('DB_PREFIX').'goods_to_category gtc WHERE pd.goods_id=p.goods_id and p.goods_id=gtc.goods_id'; if(isset($search['name'])){ $sql.=" and p.name like '%".$search['name']."%'"; } if(isset($search['category'])){ $sql.=" and (gtc.class_id1=".$search['category']." or gtc.class_id2=".$search['category']." or gtc.class_id3=".$search['category'].")"; } if(isset($search['status'])){ $sql.=" and p.status=".$search['status']; }else { $sql.=" and p.status!=4 and p.status != 5"; } if(isset($search['store_id'])) { $sql.=" and p.store_id=".$search['store_id']; } if(isset($search['type'])) { if($search['type'] == 'activity') { $sql.=" and p.type != 'normal'"; } else { $sql.=" and p.type= '".$search['type']."'"; } } if(isset($search['_string'])) { $sql.=" and ".$search['_string']; } $count=count(M()->query($sql)); $Page = new \Think\Page($count,C('BACK_PAGE_NUM')); $show = $Page->show();// 分页显示输出 $sql.=' order by p.goods_id desc LIMIT '.$Page->firstRow.','.$Page->listRows; $list=M()->query($sql); foreach ($list as $key => $value) { $list[$key]['image']=resize($value['image'], 50, 50); $class_info1 = M('goods_category')->where( array('id' => $value['class_id1']) )->field('name')->find(); $list[$key]['class_name1'] = $class_info1['name']; $class_info2 = M('goods_category')->where( array('id' => $value['class_id2']) )->field('name')->find(); $list[$key]['class_name2'] = $class_info2['name']; $class_info3 = M('goods_category')->where( array('id' => $value['class_id3']) )->field('name')->find(); $list[$key]['class_name3'] = $class_info3['name']; } return array( 'empty'=>'~~暂无数据', 'list'=>$list, 'page'=>$show ); } public function validate($data){ $error=array(); if(empty($data['goods_description']['name'])){ $error='产品名称必填'; } if(!isset($data['class_1']) &&!isset($data['class_2'])&& !isset($data['class_3']) ){ $error='产品分类必填'; }else if( empty($data['class_1'])){ $error='产品分类必填'; } if($error){ return array( 'status'=>'back', 'message'=>$error ); } } public function edit_Goods($data){ $error=array(); if(empty($data['goods_description']['name'])){ $error='产品名称必填'; } if($error){ return array( 'status'=>'back', 'message'=>$error ); } $id=$data['goods_id']; $goods['goods_id']=$id; $goods['name']=$data['goods_description']['name']; $goods['image']=$data['image']; $goods['fan_image']=$goods['image']; $water_image = ''; if(!empty($goods['fan_image'])) { $water_image = get_team_water_image($goods['fan_image']); } $goods['model']=$data['model']; $goods['danprice']=$data['danprice']; $goods['virtual_count'] = $data['virtual_count']; $goods['pick_just'] = $data['pick_just']; $goods['is_free_in'] = $data['is_free_in']; if( !empty($data['express']) ) { $need_express = array(); foreach($data['express'] as $express) { $need_express[$express] = array('express_id' => $express,'price' => $data['express_price_'.$express] ); } $goods['express_list'] = serialize($need_express); } else if( empty($data['express']) && $data['express'] > 0){ $goods['express_list'] = ''; } if( !empty($data['pick_just']) && $data['pick_just'] >0) { $goods['pick_up'] = serialize($data['pick_up']); } else if( empty($data['pick_up']) && $data['store_id'] > 0){ $goods['pick_up'] = ''; } $goods['price']=$data['price']; $goods['quantity']=$data['quantity']; $goods['transport_id'] = $data['transport_id']; $goods['goods_freight'] = $data['goods_freight']; $goods['shipping']=$data['shipping']; $goods['weight']=$data['weight']; $goods['head_disc']=$data['head_disc']; $goods['commiss_three_dan_disc'] = $data['commiss_three_dan_disc']; $goods['commiss_two_dan_disc'] = $data['commiss_two_dan_disc']; $goods['commiss_one_dan_disc'] = $data['commiss_one_dan_disc']; $goods['commiss_fen_one_disc'] = isset($data['commiss_fen_one_disc']) ? $data['commiss_fen_one_disc']:''; $goods['commiss_fen_two_disc'] = isset($data['commiss_fen_two_disc']) ? $data['commiss_fen_two_disc']:''; $goods['commiss_fen_three_disc'] = isset($data['commiss_fen_three_disc']) ? $data['commiss_fen_three_disc']:''; //commiss_fen_one_disc commiss_fen_two_disc commiss_fen_three_disc $goods['points'] = $data['points']; $goods['sort_order']=$data['sort_order']; $goods['date_modified']=date('Y-m-d H:i:s',time()); $goods['status']=$data['status']; if(isset($data['type'])) { $goods['type'] = $data['type']; } if(isset($data['guobie_id'])) { $goods['guobie_id'] = $data['guobie_id']; } $r=M('Goods')->save($goods); $quantity = $data['quantity']; if($r){ $goods_description['summary']=$data['goods_description']['summary']; $goods_description['activity_summary']=$data['goods_description']['activity_summary']; $goods_description['description']=$data['goods_description']['description']; $goods_description['tag']=$data['goods_description']['tag']; $goods_description['share_title']=$data['goods_description']['share_title']; $goods_description['share_group_title']=$data['goods_description']['share_group_title']; $goods_description['share_descript']=$data['goods_description']['share_descript']; $goods_description['per_number']=$data['goods_description']['per_number']; $goods_description['is_video']=$data['goods_description']['is_video']; $goods_description['video_src']=$data['goods_description']['video_src']; $goods_description['video_size_width']=$data['goods_description']['video_size_width']; $goods_description['vedio_size_height']=$data['goods_description']['vedio_size_height']; //goods_description[is_video] //goods_description[video_src] //goods_description[video_src] //goods_description[video_src] $goods_description['water_image'] = $water_image; $member_model= D('Admin/Member'); $level_list = $member_model->show_member_level(); $member_default_levelname_info = M('config')->where( array('name' => 'member_default_levelname') )->find(); $member_defualt_discount_info = M('config')->where( array('name' => 'member_defualt_discount') )->find(); $default = array('id'=>'default', 'level' => 0,'levelname' => $member_default_levelname_info['value'],'discount' => $member_defualt_discount_info['value']); array_unshift($level_list['list'], $default ); $need_level_list = $level_list['list']; $need_disc = array(); foreach($need_level_list as $val) { $need_disc[$val['level']] = $data['level_'.$val['level']]; } $goods_description['is_untake_level'] = isset($data['isuntake_in_level']) ? intval($data['isuntake_in_level']) : 0; $goods_description['level_discount'] = serialize($need_disc); M('goods_description')->where(array('goods_id'=>$id))->save($goods_description); //citychk M('goods_area')->where( array('goods_id' => $id) )->delete(); M('goods_area')->add( array('goods_id' =>$id,'area_ids_text' => serialize($data['citychk']) ) ); try{ //商品分类 if(isset($data['class_1']) && !empty($data['class_1']) ){ //M('goods_to_category')->where(array('goods_id'=>$id))->delete(); $old_goods_info = M('goods_to_category')->where(array('goods_id'=>$id))->find(); if( empty($old_goods_info) ) { $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_to_category SET goods_id = '" . (int)$id . "', class_id1 = '" . (int)$data['class_1'] . "', class_id2 = '" . (int)$data['class_2'] . "', class_id3 = '" . (int)$data['class_3'] . "'"); }else{ //class_id1 = '" . (int)$data['class_1'] . "', class_id2 = '" . (int)$data['class_2'] . "', class_id3 = '" . (int)$data['class_3'] M('goods_to_category')->where(array('goods_id'=>$id))->save( array('class_id1' => $data['class_1'], 'class_id2' => $data['class_2'], 'class_id3' => $data['class_3']) ); } } M('GoodsImage')->where(array('goods_id'=>$id))->delete(); if (isset($data['goods_image'])) { foreach ($data['goods_image'] as $goods_image) { $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_image SET goods_id = '" . (int)$id . "', image = '" . $goods_image['image'] . "', sort_order = '" . (int)$goods_image['sort_order'] . "',". " is_video_click = '" . (int)$goods_image['is_video_click'] . "'"); } } //商品选项 //商品选项 //M('goods_option')->where(array('goods_id'=>$id))->delete(); //M('goods_option_value')->where(array('goods_id'=>$id))->delete(); $goods_option_old = M('goods_option')->where(array('goods_id'=>$id))->select(); $goods_option_old_goodsid_optionid = array(); foreach($goods_option_old as $old_val) { $goods_option_old_goodsid_optionid[$old_val['goods_id'].'_'.$old_val['option_id']] = $old_val['goods_id'].'_'.$old_val['option_id']; } $goods_option_value_old = M('goods_option_value')->where(array('goods_id'=>$id))->select(); $goods_option_old_goodsid_optionvalueid = array(); foreach($goods_option_value_old as $old_val) { $goods_option_old_goodsid_optionvalueid[$old_val['goods_id'].'_'.$old_val['option_value_id']] = $old_val['goods_id'].'_'.$old_val['option_value_id']; } $old_goods_option_mult_value = M('goods_option_mult_value')->where(array('goods_id'=>$id))->select(); $old_goods_option_mult_value_relagoodsoptionvalueid = array(); foreach($old_goods_option_mult_value as $old_val) { $old_goods_option_mult_value_relagoodsoptionvalueid[$old_val['rela_goodsoption_valueid']] = $old_val['rela_goodsoption_valueid']; } $goods_option_value_arr = $data['goods_option_value']; $rela_option_value = array(); if(!empty($goods_option_value_arr)) { foreach($goods_option_value_arr as $val) { $res = M('option_value')->field('option_id,option_value_id')->where( array('option_value_id' =>$val) )->find(); if( !isset($rela_option_value[$res['option_id']]) || !in_array()) { $rela_option_value[$res['option_id']][] = $res; } } } if (isset($data['goods_option']) && !empty($data['goods_option'])) { $data['goods_option'] = explode(',', $data['goods_option']); foreach ($data['goods_option'] as $goods_option_id) { $goods_option = M('option')->where( array('option_id' =>$goods_option_id) )->find(); $option['goods_id']=$id; $option['option_id']=(int)$goods_option['option_id']; $option['required'] =(int)$goods_option['required']; $option['option_name'] =$goods_option['name']; $option['type'] =$goods_option['type']; if( in_array($id.'_'.$goods_option['option_id'], $goods_option_old_goodsid_optionid) ) { $old_goods_option = M('goods_option')->where( array('goods_id' =>$id,'option_id' =>$goods_option['option_id']) )->find(); unset($goods_option_old_goodsid_optionid[$id.'_'.$goods_option['option_id']]); M('goods_option')->where( array('goods_id' =>$id,'option_id' =>$goods_option['option_id']) )->save($option); $option_id=$old_goods_option['goods_option_id']; } else { $option_id=M('goods_option')->add($option); } //$rela_option_value[$res['option_id']][] = $res; $option_value_list = $rela_option_value[$goods_option_id]; if (isset($option_value_list) && count($option_value_list) > 0 ) { foreach ($option_value_list as $goods_option_value) { $option_value['goods_option_id']=(int)$option_id; $option_value['goods_id']=$id; $option_value['option_id']=(int)$goods_option['option_id']; $option_value['image']=''; $option_value['option_value_id']=(int)$goods_option_value['option_value_id']; $option_value['quantity']=0; $option_value['subtract']=''; $option_value['price']=0 ; $option_value['price_prefix']=0; $option_value['weight']=0; $option_value['weight_prefix']=0; if( in_array($id.'_'.$goods_option_value['option_value_id'], $goods_option_old_goodsid_optionvalueid) ) { unset($goods_option_old_goodsid_optionvalueid[$id.'_'.$goods_option_value['option_value_id']]); M('goods_option_value')->where( array('option_value_id' =>$goods_option_value['option_value_id'], 'goods_id' => $id) )->save($option_value); } else { M('goods_option_value')->add($option_value); } } } } //M('goods_option')->where(array('goods_id'=>$id))->delete(); //商品多选项目 $data['mult_option_zuhe'] $min_dan_price = $data['danprice']; //$id=$data['goods_id']; //$goods['danprice']=$data['danprice']; if(isset($data['mult_option_zuhe']) && !empty($data['mult_option_zuhe'])) { //M('goods_option_mult_value')->where(array('goods_id'=>$id))->delete(); //rela_goodsoption_valueid if(!empty($data['mult_option_zuhe'])) { $mult_option_arr = explode(',', $data['mult_option_zuhe']); $option_value_id_arr = array(); $new_quantity = 0; foreach($mult_option_arr as $mult_option) { $dan_option = explode('@@',$mult_option); $mult_id_arr = explode(':',$dan_option[0]); $mult_quantity_arr = explode(':',$dan_option[1]); $mult_image_arr = explode(':',$dan_option[2]); $mult_price_arr = explode(':',$dan_option[3]); $mult_weight_arr = explode(':',$dan_option[4]); $tmp_option_value_id = explode('_',$mult_id_arr[1]); foreach($tmp_option_value_id as $vv) { if(empty($option_value_id_arr) || !isset($option_value_id_arr[$vv])) { $option_value_id_arr[$vv] = $mult_quantity_arr[1]; } else{ $option_value_id_arr[$vv] += $mult_quantity_arr[1]; } } $mul_option_data = array(); $mul_option_data['rela_goodsoption_valueid'] = $mult_id_arr[1]; $mul_option_data['goods_id'] = $id; $mul_option_data['pin_price'] = 0; $mul_option_data['weight'] = $mult_weight_arr[1]; if($min_dan_price > $mult_price_arr[1]) { $min_dan_price = $mult_price_arr[1]; } $mul_option_data['dan_price'] = $mult_price_arr[1]; $mul_option_data['quantity'] = $mult_quantity_arr[1]; $mul_option_data['image'] = $mult_image_arr[1]; if( in_array($mult_id_arr[1],$old_goods_option_mult_value_relagoodsoptionvalueid ) ) { unset($mul_option_data['pin_price']); unset($old_goods_option_mult_value_relagoodsoptionvalueid[$mult_id_arr[1]]); M('goods_option_mult_value')->where( array('rela_goodsoption_valueid' =>$mult_id_arr[1] , 'goods_id' => $id) )->save($mul_option_data); }else { M('goods_option_mult_value')->add($mul_option_data); } $new_quantity += $mul_option_data['quantity']; } if($data['danprice'] > $min_dan_price) { M('goods')->where( array('goods_id' => $id) )->save( array('danprice' => $min_dan_price) ); } //rela_goodsoption_valueid //var_dump($old_goods_option_mult_value_relagoodsoptionvalueid);die(); if($new_quantity != $quantity) { //更新库存,以规格库存为依据 M('goods')->where( array('goods_id' => $id) )->save( array('quantity' => $new_quantity) ); } if(!empty($option_value_id_arr)) { foreach($option_value_id_arr as $key => $id_quantity) { M('goods_option_value')->where( array('goods_id' => $id,'option_value_id' =>$key) )->save( array('quantity' => $id_quantity) ); } } } } } if( !empty($goods_option_old_goodsid_optionid )) { foreach($goods_option_old_goodsid_optionid as $vv) { $tp_arr = explode('_',$vv); M('goods_option')->where( array('goods_id' =>$tp_arr[0],'option_id' =>$tp_arr[1]) )->delete(); } } if(!empty($goods_option_old_goodsid_optionvalueid)) { foreach($goods_option_old_goodsid_optionvalueid as $vv) { $tp_arr = explode('_',$vv); M('goods_option_value')->where( array('option_value_id' =>$tp_arr[1], 'goods_id' => $tp_arr[0]) )->delete(); } } if( !empty($old_goods_option_mult_value_relagoodsoptionvalueid) ) { foreach($old_goods_option_mult_value_relagoodsoptionvalueid as $vv) { //$tp_arr = explode('_',$vv); $rs = M('goods_option_mult_value')->where( array('rela_goodsoption_valueid' =>$vv , 'goods_id' => $id) )->delete(); } } return array( 'status'=>'success', 'message'=>'修改成功', 'jump'=>U('Goods/index') ); }catch(Exception $e){ return array( 'status'=>'fail', 'message'=>'修改失败,未知异常', 'jump'=>U('Goods/index') ); } }else{ return array( 'status'=>'fail', 'message'=>'修改失败', 'jump'=>U('Goods/index') ); } } function add_caiji_Goods($data) { /** $goods_data['title'] = $item['title']; $goods_data['marketprice'] = $item['marketprice']; $goods_data['sales'] = $item['sales']; $goods_data['quantity'] = $item['total']; $goods_data['html'] = $html; **/ $name = $data['title']; $image = ''; if( !empty($data['image_lists']) ) { $tmp_img = array_slice($data['image_lists'],0,1); $image = $tmp_img[0]; } $goods['name']=$name; $goods['image']=$image; $goods['fan_image']=$image; $water_image = ''; if(!empty($goods['fan_image'])) { $water_image = get_team_water_image($goods['fan_image']); } $goods['model']=''; $goods['pinprice']=$data['marketprice']; $goods['danprice']=$data['marketprice']; $goods['pin_count']=2; $goods['pin_hour']=24; $goods['head_disc'] = 100; $goods['commiss_one_money'] = 0; $goods['commiss_one_pin_disc'] = 0; $goods['commiss_one_dan_disc'] = 0; $goods['virtual_count'] = $data['sales']; $goods['pick_just'] = 0; $goods['is_free_in'] = 0; $goods['express_list'] = ''; $goods['pick_up'] = ''; $goods['sku']=''; $goods['price']=$data['marketprice']; $goods['quantity']=$data['quantity']; $goods['transport_id'] = 0; $goods['goods_freight'] = 0; $goods['shipping']=$data['shipping']; $goods['store_id']=$data['store_id']; $goods['status']=5; $goods['sort_order']=0; $goods['date_added']=date('Y-m-d H:i:s',time()); $goods['date_modified']=date('Y-m-d H:i:s',time()); $goods_id=M('Goods')->add($goods); if($goods_id){ try{ $goods_description['goods_id']=$goods_id; $goods_description['summary']=''; $goods_description['description']= htmlspecialchars($data['html']); $goods_description['tag']=''; $goods_description['per_number']=0; $goods_description['water_image'] = $water_image; M('goods_description')->add($goods_description); M('goods_area')->add( array('goods_id' =>$goods_id,'area_ids_text' => serialize(array()) ) ); //商品分类 $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_to_category SET goods_id = '" . (int)$goods_id . "', class_id1 = '0', class_id2 = '0', class_id3 = '0'"); if (isset($data['image_lists'])) { foreach ($data['image_lists'] as $goods_image) { $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_image SET goods_id = '" . (int)$goods_id . "', image = '" . $goods_image . "', sort_order = '0'"); } } return true; }catch(Exception $e){ return false; } }else{ return false; } } function add_Goods($data){ $error=$this->validate($data); if($error){ return $error; } $goods['name']=$data['goods_description']['name']; $goods['image']=$data['image']; $goods['fan_image']=$goods['image']; $water_image = ''; if(!empty($goods['fan_image'])) { $water_image = get_team_water_image($goods['fan_image']); } $goods['model']=$data['model']; $goods['danprice']=$data['danprice']; $goods['virtual_count'] = $data['virtual_count']; $goods['pick_just'] = $data['pick_just']; $goods['is_free_in'] = $data['is_free_in']; if( !empty($data['express']) ) { $need_express = array(); foreach($data['express'] as $express) { $need_express[$express] = array('express_id' => $express,'price' => $data['express_price_'.$express] ); } $goods['express_list'] = serialize($need_express); } else if( empty($data['express']) && $data['express'] > 0){ $goods['express_list'] = ''; } if( !empty($data['pick_just']) && $data['pick_just'] >0 ) { $goods['pick_up'] = serialize($data['pick_up']); } else if( empty($data['pick_up']) && $data['store_id'] > 0){ $goods['pick_up'] = ''; } $goods['sku']=''; $goods['price']=$data['price']; $goods['quantity']= $data['quantity']; $goods['transport_id'] = $data['transport_id']; $goods['goods_freight'] = $data['goods_freight']; $goods['weight'] = $data['weight']; $goods['head_disc'] = $data['head_disc']; $goods['commiss_three_dan_disc'] = $data['commiss_three_dan_disc']; $goods['commiss_two_dan_disc'] = $data['commiss_two_dan_disc']; $goods['commiss_one_dan_disc'] = $data['commiss_one_dan_disc']; $goods['commiss_fen_one_disc'] = isset($data['commiss_fen_one_disc']) ? $data['commiss_fen_one_disc']:''; $goods['commiss_fen_two_disc'] = isset($data['commiss_fen_two_disc']) ? $data['commiss_fen_two_disc']:''; $goods['commiss_fen_three_disc'] = isset($data['commiss_fen_three_disc']) ? $data['commiss_fen_three_disc']:''; $goods['points'] = $data['points']; $goods['shipping']=$data['shipping']; $goods['store_id']=$data['store_id']; $goods['status']=$data['status']; $goods['sort_order']=$data['sort_order']; $goods['date_added']=date('Y-m-d H:i:s',time()); $goods['date_modified']=date('Y-m-d H:i:s',time()); if(isset($data['type'])) { $goods['type'] = $data['type']; } //$goods['points'] = $data['points']; $goods_id=M('Goods')->add($goods); $quantity = $data['quantity']; if($goods_id){ try{ $goods_description['goods_id']=$goods_id; $goods_description['summary']=$data['goods_description']['summary']; $goods_description['activity_summary']=$data['goods_description']['activity_summary']; $goods_description['share_group_title']=$data['goods_description']['share_group_title']; $goods_description['share_title']=$data['goods_description']['share_title']; $goods_description['share_descript']=$data['goods_description']['share_descript']; $goods_description['description']=$data['goods_description']['description']; $goods_description['tag']=$data['goods_description']['tag']; $goods_description['per_number']=$data['goods_description']['per_number']; $goods_description['water_image'] = $water_image; $goods_description['is_video']=$data['goods_description']['is_video']; $goods_description['video_src']=$data['goods_description']['video_src']; $goods_description['video_size_width']=$data['goods_description']['video_size_width']; $goods_description['vedio_size_height']=$data['goods_description']['vedio_size_height']; $member_model= D('Admin/Member'); $level_list = $member_model->show_member_level(); $member_default_levelname_info = M('config')->where( array('name' => 'member_default_levelname') )->find(); $member_defualt_discount_info = M('config')->where( array('name' => 'member_defualt_discount') )->find(); $default = array('id'=>'default', 'level' => 0,'levelname' => $member_default_levelname_info['value'],'discount' => $member_defualt_discount_info['value']); array_unshift($level_list['list'], $default ); $need_level_list = $level_list['list']; $need_disc = array(); foreach($need_level_list as $val) { $need_disc[$val['level']] = $data['level_'.$val['level']]; } $goods_description['is_untake_level'] = isset($data['isuntake_in_level']) ? intval($data['isuntake_in_level']) : 0; $goods_description['level_discount'] = serialize($need_disc); M('goods_description')->add($goods_description); M('goods_area')->add( array('goods_id' =>$goods_id,'area_ids_text' => serialize($data['citychk']) ) ); //商品分类 if(isset($data['class_1']) || isset($data['class_2']) || isset($data['class_3'])){ $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_to_category SET goods_id = '" . (int)$goods_id . "', class_id1 = '" . (int)$data['class_1'] . "', class_id2 = '" . (int)$data['class_2'] . "', class_id3 = '" . (int)$data['class_3'] . "'"); } if (isset($data['goods_image'])) { foreach ($data['goods_image'] as $goods_image) { $this->execute("INSERT INTO " . C('DB_PREFIX') . "goods_image SET goods_id = '" . (int)$goods_id . "', image = '" . $goods_image['image'] . "', sort_order = '" . (int)$goods_image['sort_order'] . "',". " is_video_click = '" . (int)$goods_image['is_video_click'] . "'"); } } //商品选项 if (isset($data['goods_option']) && !empty($data['goods_option'])) { $goods_option_value_arr = $data['goods_option_value']; $rela_option_value = array(); if(!empty($goods_option_value_arr)) { foreach($goods_option_value_arr as $val) { $res = M('option_value')->field('option_id,option_value_id')->where( array('option_value_id' =>$val) )->find(); if( !isset($rela_option_value[$res['option_id']]) || !in_array()) { $rela_option_value[$res['option_id']][] = $res; } } } $data['goods_option'] = explode(',', $data['goods_option']); foreach ($data['goods_option'] as $goods_option_id) { $goods_option = M('option')->where( array('option_id' =>$goods_option_id) )->find(); $option['goods_id']=$goods_id; $option['option_id']=(int)$goods_option['option_id']; $option['required'] =(int)$goods_option['required']; $option['option_name'] =$goods_option['name']; $option['type'] =$goods_option['type']; $option_id=M('goods_option')->add($option); $option_value_list = $rela_option_value[$goods_option_id]; if (isset($option_value_list) && count($option_value_list) > 0 ) { foreach ($option_value_list as $goods_option_value) { $option_value['goods_option_id']=(int)$option_id; $option_value['goods_id']=$goods_id; $option_value['option_id']=(int)$goods_option['option_id']; $option_value['image']=''; $option_value['option_value_id']=(int)$goods_option_value['option_value_id']; $option_value['quantity']=0; $option_value['subtract']=''; $option_value['price']=0 ; $option_value['price_prefix']=0; $option_value['weight']=0; $option_value['weight_prefix']=0; M('goods_option_value')->add($option_value); } } } } $new_quantity = 0; $min_dan_price = $data['danprice']; if(isset($data['mult_option_zuhe']) && !empty($data['mult_option_zuhe'])) { if(!empty($data['mult_option_zuhe'])) { $mult_option_arr = explode(',', $data['mult_option_zuhe']); $option_value_id_arr = array(); foreach($mult_option_arr as $mult_option) { $dan_option = explode('@@',$mult_option); $mult_id_arr = explode(':',$dan_option[0]); $mult_quantity_arr = explode(':',$dan_option[1]); $mult_image_arr = explode(':',$dan_option[2]); $mult_price_arr = explode(':',$dan_option[3]); $mult_weight_arr = explode(':',$dan_option[4]); $tmp_option_value_id = explode('_',$mult_id_arr[1]); foreach($tmp_option_value_id as $vv) { if(empty($option_value_id_arr) || !isset($option_value_id_arr[$vv])) { $option_value_id_arr[$vv] = $mult_quantity_arr[1]; } else{ $option_value_id_arr[$vv] += $mult_quantity_arr[1]; } } $mul_option_data = array(); $mul_option_data['rela_goodsoption_valueid'] = $mult_id_arr[1]; $mul_option_data['goods_id'] = $goods_id; if($min_dan_price > $mult_price_arr[1] ) { $min_dan_price = $mult_price_arr[1]; } $mul_option_data['dan_price'] = $mult_price_arr[1]; $mul_option_data['quantity'] = $mult_quantity_arr[1]; $mul_option_data['weight'] = $mult_weight_arr[1]; $mul_option_data['image'] = $mult_image_arr[1]; M('goods_option_mult_value')->add($mul_option_data); $new_quantity += $mul_option_data['quantity']; } if($data['danprice'] > $min_dan_price) { M('goods')->where( array('goods_id' => $goods_id) )->save( array('danprice' => $min_dan_price) ); } if(!empty($option_value_id_arr)) { foreach($option_value_id_arr as $key => $id_quantity) { M('goods_option_value')->where( array('goods_id' => $goods_id,'option_value_id' =>$key) )->save( array('quantity' => $id_quantity) ); } } if($new_quantity != $quantity) { //更新库存,以规格库存为依据 M('goods')->where( array('goods_id' => $goods_id) )->save( array('quantity' => $new_quantity) ); } } } return array( 'status'=>'success', 'message'=>'新增成功', 'jump'=>U('Goods/index') ); }catch(Exception $e){ return array( 'status'=>'fail', 'message'=>'新增失败', 'jump'=>U('Goods/index') ); } }else{ return array( 'status'=>'fail', 'message'=>'新增失败', 'jump'=>U('Goods/index') ); } } function get_goods_options($goods_id) { $goods_option_data = array(); $goods_option_query = M()->query("SELECT * FROM " . C('DB_PREFIX') . "goods_option po LEFT JOIN " . C('DB_PREFIX') . "option o ON po.option_id = o.option_id WHERE po.goods_id =".(int)$goods_id); foreach ($goods_option_query as $goods_option) { $goods_option_value_data = array(); $goods_option_value_query = M()->query("SELECT * FROM " . C('DB_PREFIX') . "goods_option_value WHERE goods_option_id = '" . (int)$goods_option['goods_option_id'] . "'"); foreach ($goods_option_value_query as $goods_option_value) { $goods_option_value_data[] = array( 'goods_option_value_id' => $goods_option_value['goods_option_value_id'], 'option_value_id' => $goods_option_value['option_value_id'], 'quantity' => $goods_option_value['quantity'], 'subtract' => $goods_option_value['subtract'], 'price' => $goods_option_value['price'], 'price_prefix' => $goods_option_value['price_prefix'], 'image' => $goods_option_value['image'], 'weight' => $goods_option_value['weight'], 'weight_prefix' => $goods_option_value['weight_prefix'] ); } $goods_option_data[] = array( 'goods_option_id' => $goods_option['goods_option_id'], 'option_id' => $goods_option['option_id'], 'name' => $goods_option['name'], 'type' => $goods_option['type'], 'option_value' => $goods_option['name'], 'required' => $goods_option['required'], 'goods_option_value' => $goods_option_value_data, ); } return $goods_option_data; } } ?>