load->library('session'); $this->load->_model('Model_weight','weight'); $this->load->_model('Model_typeclass','typeclass'); $this->load->_model('Model_excel','excel'); } //定义方法的调用规则 获取URI第二段值 public function _remap($arg,$arg_array) { if($arg == 'add')//添加 { $this->_add(); } else if($arg == 'edit')//修改 { $this->_edit($arg_array); } else if($arg == 'del')//修改 { $this->_del(); } else if($arg == 'cx') { $this->_cx(); } else if($arg == 'weight') { $this->_weight(); } else if($arg == 'excel')//修改 { $this->_excel(); } else if($arg == 'drexcel')//修改 { $this->_drexcel($arg_array); } else if($arg == 'mb')//修改 { $this->_mb(); } else { $this->_index(); } } //管理 public function _index() { $post = $this->input->post(NULL, TRUE); if(isset($post['page'])) { $page = $this->input->post('page',true); $perpage = $this->input->post('perpage',true); $sku = $this->input->post('sku',true); $title = $this->input->post('title',true); $features = $this->input->post('category',true); $where = "1=1 "; if($features) { $where .= " and features like '%$features-%'"; } if($sku) { $where .= " and sku like '%$sku%'"; } if($title) { $where .= " and title like '%$title%'"; } //数据排序 $order_str = "id asc"; if(empty($page)) { $start = 0; $perpage = 1; } else { $start = ($page - 1)*$perpage; } //取得信息列表 $info_list = $this->weight->find_all($where,'id,title,sku,weight',$order_str,$start,$perpage); foreach ($info_list as $key=>$value) { $info_list[$key]['weight'] = $value['weight'].'克'; } $total = $this->weight->find_count($where); $pagenum = ceil($total/$perpage); $over = $total-($start+$perpage); $rows = array('total'=>$total,'over'=>$over,'pagenum'=>$pagenum,'rows'=>($info_list)); echo json_encode($rows);exit; } $this->_Template('weight',$this->data); } //添加 public function _add() { $post = $this->input->post(NULL, TRUE); if(isset($post['weight'])) { $list = array();$num = "";$title = ""; $post['weight'] = $this->input->post('weight',true); $category = $this->input->post('category',true); $list['category'] = $category; $list['hairtype'] = $this->input->post('hairtype',true); $list['grade'] = $this->input->post('grade',true); $size = $this->input->post('size',true); $list['size'] = rtrim($size,','); $list['hairnumber'] = $this->input->post('hairnumber',true); $list['extension'] = $this->input->post('extension',true); if($category == 1297) { $list['sywignumber'] = $this->input->post('sywignumber',true); } if($category == 1702) { $list['syhairnumber'] = $this->input->post('syhairnumber',true); $list['syother'] = $this->input->post('syother',true); } if($category == 133) { $list['fittype'] = $this->input->post('fittype',true); $list['acother'] = $this->input->post('acother',true); } $list['color'] = $this->input->post('color',true); $list['lowe'] = $this->input->post('lowe',true); if($category == 127) { $list['type'] = $this->input->post('type',true); $list['headroad'] = $this->input->post('headroad',true); $list['density'] = $this->input->post('density',true); if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199) { $list['lacesize'] = $this->input->post('lacesize',true); } $list['lacecolor'] = $this->input->post('lacecolor',true); $list['lacetypes'] = $this->input->post('lacetypes',true); } if($category == 128) { $list['lacetype'] = $this->input->post('lacetype',true); $list['haircap'] = $this->input->post('haircap',true); $list['density'] = $this->input->post('density',true); $list['lacecolor'] = $this->input->post('lacecolor',true); $list['lacetypes'] = $this->input->post('lacetypes',true); $list['wigother'] = $this->input->post('wigother',true); $list['wigother2'] = $this->input->post('wigother2',true); } if($category == 129) { $list['wide'] = $this->input->post('wide',true); } if($category == 131) { $list['gifttype'] = $this->input->post('gifttype',true); $list['giftother'] = $this->input->post('giftother',true); } if($category == 134) { $list['pieceweight'] = $this->input->post('pieceweight',true); } if($category == 1297) { $list['synthetictype'] = $this->input->post('synthetictype',true); $list['sywigother'] = $this->input->post('sywigother',true); } if($category == 130 || $category == 133 || $category == 1702) { $list['items'] = $this->input->post('items',true); $list['weight'] = $this->input->post('weight',true); } if($category == 1702) { $list['syhairther'] = $this->input->post('syhairther',true); } foreach($list as $k=>$v) { if($v != 0) { $num .=$v.'-'; $post[$k] = $v; $typeclass = $this->typeclass->read($v); $title = $title.$typeclass['title']." "; } } $post['sku'] = rtrim($num,'-'); $post['title'] = rtrim($title,' '); $rows = $this->weight->get_title($title); if(!$rows) { $this->weight->insert($post); echo json_encode(array('msg'=>'添加成功','success'=>true));exit; } else { echo json_encode(array('msg'=>'添加失败,有重复数据','success'=>false));exit; } } $this->_Template('weight_add',$this->data); } //修改 public function _edit($arg_array) { $post = $this->input->post(NULL, TRUE); if(isset($post['id'])) { $list = array();$num = "";$title = ""; $id = $this->input->post('id',true); $data = $this->weight->read($id); foreach($data as $k=>$v) { $post[$k] = 0; } $post['id'] = $id; $post['sku'] = $this->input->post('sku',true); $post['weight'] = $this->input->post('weight',true); $category = $this->input->post('category',true); $list['category'] = $category; $list['hairtype'] = $this->input->post('hairtype',true); $list['grade'] = $this->input->post('grade',true); $size = $this->input->post('size',true); $list['size'] = rtrim($size,','); $list['hairnumber'] = $this->input->post('hairnumber',true); $list['extension'] = $this->input->post('extension',true); if($category == 1297) { $list['sywignumber'] = $this->input->post('sywignumber',true); } if($category == 1702) { $list['syhairnumber'] = $this->input->post('syhairnumber',true); $list['syother'] = $this->input->post('syother',true); } if($category == 133) { $list['fittype'] = $this->input->post('fittype',true); $list['acother'] = $this->input->post('acother',true); } $list['color'] = $this->input->post('color',true); $list['lowe'] = $this->input->post('lowe',true); if($category == 127) { $list['type'] = $this->input->post('type',true); $list['headroad'] = $this->input->post('headroad',true); $list['density'] = $this->input->post('density',true); if($list['type'] == 195 || $list['type'] == 197 || $list['type'] == 199) { $list['lacesize'] = $this->input->post('lacesize',true); } $list['lacecolor'] = $this->input->post('lacecolor',true); $list['lacetypes'] = $this->input->post('lacetypes',true); } if($category == 128) { $list['lacetype'] = $this->input->post('lacetype',true); $list['haircap'] = $this->input->post('haircap',true); $list['density'] = $this->input->post('density',true); $list['lacecolor'] = $this->input->post('lacecolor',true); $list['lacetypes'] = $this->input->post('lacetypes',true); $list['wigother'] = $this->input->post('wigother',true); $list['wigother2'] = $this->input->post('wigother2',true); } if($category == 129) { $list['wide'] = $this->input->post('wide',true); } if($category == 131) { $list['gifttype'] = $this->input->post('gifttype',true); $list['giftother'] = $this->input->post('giftother',true); } if($category == 134) { $list['pieceweight'] = $this->input->post('pieceweight',true); } if($category == 1297) { $list['synthetictype'] = $this->input->post('synthetictype',true); $list['sywigother'] = $this->input->post('sywigother',true); } if($category == 130 || $category == 133 || $category == 1702) { $list['items'] = $this->input->post('items',true); $list['weight'] = $this->input->post('weight',true); } if($category == 1702) { $list['syhairther'] = $this->input->post('syhairther',true); } foreach($list as $k=>$v) { if($v != 0) { $num .=$v.'-'; $post[$k] = $v; $typeclass = $this->typeclass->read($v); $title = $title.$typeclass['title']." "; } } $post['sku'] = rtrim($num,'-'); $post['title'] = rtrim($title,' '); $rows = $this->weight->get_title($title); if(!$rows || $rows['id'] == $id) { $this->weight->save($post,$id); echo json_encode(array('msg'=>'修改成功','success'=>true));exit; } else { echo json_encode(array('msg'=>'修改失败,有重复数据','success'=>false));exit; } } $arg_array = $arg_array[0]; $weight = $this->weight->read($arg_array); $this->data['weight'] = $weight; $this->_Template('weight_edit',$this->data); } //删除 public function _del() { $post = $this->input->post(NULL, TRUE); if(isset($post['s'])) { $id_arr = $this->input->post('s'); $id_arr = explode(',',$id_arr); if(!$id_arr) { echo json_encode(array('msg'=>'参数错误!','success'=>false));exit; } //循环删除记录 foreach ($id_arr as $v) { $this->weight->remove($v); } echo json_encode(array('del'=>$id_arr,'msg'=>'删除记录成功!','success'=>true)); } } //笛卡儿积 function cp($ps,$sets,$list) { $result = array();$j=0; for($i=0,$count=count($sets); $i<$count-1; $i++) { if($i==0) { $result = $sets[$i]; } $tmp = array(); foreach($result as $res) { foreach($sets[$i+1] as $set) { $tmp[] = $res.','.$set; } } $result = $tmp; } $this->db->trans_begin(); foreach ($result as $v) { $post = array();$title = "";$num=""; $data = explode(',',$v); for($i=0;$itypeclass->read($data[$i]); $title = $title.$typeclass['title']." "; if($data[$i] != 0) { $num .=$data[$i];//所有数据ID拼接 } } foreach ($ps as $kp=>$vp) { $post[$kp] = $vp; } $post['number'] = $num; $info_list = $this->weight->get_number($num);//查询weight是否存在此拼接的数据ID if($info_list) { $j++; } else { $skunum = $this->weight->find_count(); $post['sku'] = 'LY'.substr(strval($skunum+1+10000000),1,7); $post['title'] = rtrim($title,' '); $this->weight->insert($post); } } if ($this->db->trans_status() === FALSE) { $this->db->trans_commit(); return NULL; } else { $this->db->trans_commit(); return $j; } } public function _weight() { $post = $this->input->post(NULL, TRUE); if(isset($post['data'])) { $data = $this->input->post('data'); $list = explode('-',rtrim($data,'-')); $weight = '';$lssku = '';$sku = array(); $weightdata = $this->weight->find_all(); foreach ($weightdata as $w) { $sku[$w['sku']] = $w['weight']; } if(stripos($data,'126') !== false && isset($sku['126'])) { $weight = $sku['126']; } else if(stripos($data,'127') !== false) { if(isset($list[8])) { $sku127a = $list[0].'-'.$list[2].'-'.$list[4].'-'.$list[5].'-'.$list[8]; $sku127b = $list[0].'-'.$list[4].'-'.$list[5].'-'.$list[8]; if(isset($sku[$sku127a])) { $weight = $sku[$sku127a]; } else if(isset($sku[$sku127b])) { $weight = $sku[$sku127b]; } else { $weight = 0; } } } else if(stripos($data,'128') !== false) { $sku128 = $list[0].'-'.$list[4].'-'.$list[5].'-'.$list[7]; if(isset($sku[$sku128])) { $weight = $sku[$sku128]; } else { $weight = 0; } } else if(stripos($data,'130') !== false || stripos($data,'133') !== false) { $sku130 = $list[0].'-'.$list[5].'-'.$list[4]; if(isset($sku[$sku130])) { $weight = $sku[$sku130]; } else { $weight = 0; } } else { $weight = 0; } echo json_encode(array('weight'=>$weight,'success'=>true)); } } public function _cx() { $post = $this->input->post(NULL, TRUE); if(isset($post['data'])) { $weight = 0; $list = $this->input->post('data'); $list = '-'.$list; $listarray = explode('-',trim($list,'-')); $tc = array(); $typeclass = $this->typeclass->find_all(); foreach ($typeclass as $v) { $tc[$v['id']] = $v; } $listarray = array_filter($listarray); $ttpx = array('128'=>'','18'=>'','14'=>'','10'=>''); $features = ''; if(stripos($list,'-126-') !== false) { $features = $listarray[0]; } else if(stripos($list,'-127-') !== false) { $features = $listarray[0].'-'.$listarray[8].'-'.$listarray[4]; } else if(stripos($list,'-128-') !== false) { foreach ($listarray as $v) { if(isset($tc[$v]) && isset($ttpx[$tc[$v]['classid']])) { $ttpx[$tc[$v]['classid']] = $v; } } $features = '128'.implode("-",$ttpx); } else if(stripos($list,'-133-') !== false) { $features = $listarray[0].'-'.$listarray[5].'-'.(isset($listarray[4])?$listarray[4]:''); } else if(stripos($list,'-130-') !== false) { $features = $listarray[0].'-'.$listarray[4].'-'.$listarray[3]; } $data = $this->weight->get_features($features); if($data) { $weight = $data['weight']; } echo json_encode(array('weight'=>$weight,'success'=>true)); } } public function _excel() { if(isset($_GET['excel'])) { $where = "1=1"; $features = $this->input->get('category',true); $sku = $this->input->get('sku',true); $title = $this->input->get('title',true); if($sku) { $where .= " and sku like '%$sku%'"; } if($title) { $where .= " and title like '%$title%'"; } if($features) { $where .= " and features like '%$features%'"; } $order_str = "id asc"; $list = array(); $rows = $this->weight->find_all($where,'title,sku,weight'); $title = "产品重量"; $titlename = "
产品名称 sku 重量
"; $filename = $title.".xls"; $tail = ""; $this->excel->get_fz2($rows,$titlename,$filename,$tail); } } public function _mb() { $list = array(); $rows = array(); $title = "导入模板"; $titlename = "
标签sku 重量
"; $filename = $title.".xls"; $tail = ""; $this->excel->get_fz2($rows,$titlename,$filename,$tail); } public function _drexcel($arg_array) { $dir = '/data/excel/'.date('Ymd',time()).'/'; $config['upload_path'] = '.'.$dir ; $config['file_name'] = date('Ymd_His_',time()).rand(1000,9999); $config['allowed_types'] = 'xls|xlsx|csv'; $config['max_size'] = 10240; $this->load->library('upload', $config); $this->upload->initialize($config); if ($this->upload->do_upload('userfile')) { $full_path = $dir.$this->upload->data('file_name'); $fileName = '.' . $full_path; if (!file_exists($fileName)) { echo json_encode(array('msg'=>"上传失败,请重试",'success'=>false));exit; } else { libxml_use_internal_errors(true); require_once "./data/excel/PHPExcel/IOFactory.php"; $phpExcel = PHPExcel_IOFactory::load($fileName);// 载入当前文件 $phpExcel->setActiveSheetIndex(0);// 设置为默认表 $sheetCount = $phpExcel->getSheetCount();// 获取表格数量 $row = $phpExcel->getActiveSheet()->getHighestRow();// 获取行数 $column = $phpExcel->getActiveSheet()->getHighestColumn();// 获取列数 ++$column;//如果列数大于26行 $list = array(); for ($i = 2; $i <= $row; $i++) // 行数循环 { $data = array(); for ($c = 'A'; $c != $column; $c++) // 列数循环 { $data[] = $phpExcel->getActiveSheet()->getCell($c . $i)->getValue(); } $list[] = $data; } } $i = 0;$j = 0;$ed = array(); foreach ($list as $key=>$value) { $tc = 0; $i = $key+1; $time = time(); $post['sku'] = $value['0'];//SKU $post['weight'] = $value['1'];//重量 $post['features'] = $arg_array[0].'-'; $post['title'] = $arg_array[1].' '; $post['title'] = str_replace('%20',' ',$post['title']); $s = $this->weight->get_sku($post['sku']); if($s) { $ed[] = array($i.'行 - '.$value['0'].' - 此信息已存在!'); $j++; continue; } $features = explode('-',trim($post['sku'],'-')); foreach ($features as $k=>$v) { /** if($k > 0 && is_numeric($v)) { $v = $v.'inch'; } **/ $title = $this->typeclass->get_bq_sku($v); if(isset($title['id'])) { $post['features'] .= $title['id'].'-'; $post['title'] .= $v.' '; } else { $ed[] = array($i.'行 - '.$value['0'].' - 字典库中不存在此名称!'); $j++; $tc = 1; break(1); } } if($tc == 1) { continue; } $post['title'] = trim($post['title'],' '); $post['title'] = str_replace('Hair Weaving-','',$post['title']); $post['features'] = trim($post['features'],'-'); $f = $this->weight->get_features($post['features']); if($f) { $ed[] = array($i.'行 - '.$value['0'].' - 此信息已存在!'); $j++; continue; } $this->weight->insert($post); } if($j > 0) { $tt = date('Ymd',time()); $title = '导入错误信息-'.$tt; $titlename = "
错误详情
"; $tail = "\n"; $filename = $title.".xls"; $ecl = $this->excel->get_fz3($ed,$titlename,$filename,$tail); $dir = '/data/excel/'.$time.'/'; $file_name = 'error_'.$time.rand(1000,9999); if(!is_dir('.'.$dir))mkdir('.'.$dir,0777); $myfile = fopen(".".$dir.$file_name.".xls", "w") or die(); fwrite($myfile,$ecl); fclose($myfile); $error = $dir.$file_name.'.xls'; echo json_encode(array('msg'=>'导入成功,'.$j.'条异常,','error'=>$error,'success'=>true));exit; } else { echo json_encode(array('msg'=>'导入成功!','error'=>1,'success'=>true));exit; } } } }