123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- namespace app\api\controller;
- use app\api\controller\Base;
- use think\Db;
- use hg\apidoc\annotation as Apidoc;
- /**
- * @Apidoc\Title("申购模块")
- * @Apidoc\Group("api")
- */
- class Subscribe extends Base
- {
- public function initialize()
- {
- parent::initialize();
- parent::checkLogin();
- }
- /**
- * @Apidoc\Title("获取商品导入模板地址")
- * @Apidoc\Desc("获取审批流程")
- * @Apidoc\Method("GET")
- * @Apidoc\Author("HG")
- * @Apidoc\Tag("")
- * @Apidoc\Returned("", type="string", desc="模板链接地址")
- */
- public function template_url()
- {
- $url = 'https://'.$_SERVER['HTTP_HOST'].'/template.xlsx';
- $this->success('获取成功',$url);
- }
- /**
- * @Apidoc\Title("获取商品导入后的商品信息")
- * @Apidoc\Desc("获取审批流程")
- * @Apidoc\Method("GET")
- * @Apidoc\Author("HG")
- * @Apidoc\Tag("")
- * @Apidoc\Query("url", type="string", desc="导入文件上传后的路径")
- * @Apidoc\Returned("", type="string", desc="模板链接地址")
- */
- public function goods_info()
- {
- $url = input('url');
- if(empty($url)){
- $this->error('参数错误');
- }
- $file_name = explode('/',$url);
- $import_path = $_SERVER['DOCUMENT_ROOT'].'/upload/excel/'.end($file_name);
- $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
- $objExcel = $objReader->load($import_path);
- $list = $objExcel->getActiveSheet()->toArray();
- if(empty($list)){
- $this->error('暂无数据');
- }
- $data = array();
- foreach ($list as $k=>$v){
- if($k > 0 && $v[0]){
- //判断分类是否有
- $old_cate_one_id = $cate_one_id = Db::name('goods_cate')->where('title',$v[1])->where('level',1)->value('id');
- $old_cate_two_id = $cate_two_id = Db::name('goods_cate')->where('title',$v[2])->where('level',2)->value('id');
- if(empty($cate_one_id)){
- Db::name('goods_cate')->insert(array('title'=>$v[1]));
- $cate_one_id = Db::name('goods_cate')->getLastInsID();
- Db::name('goods_cate')->insert(array('title'=>$v[2],'level'=>2,'pid'=>$cate_one_id));
- $cate_two_id = Db::name('goods_cate')->getLastInsID();
- }
- if(empty($cate_two_id)){
- Db::name('goods_cate')->insert(array('title'=>$v[2],'level'=>2,'pid'=>$cate_one_id));
- $cate_two_id = Db::name('goods_cate')->getLastInsID();
- }
- $goods_id = Db::name('store_goods')->where('name',$v[4])->value('id');
- if(empty($old_cate_one_id) || empty($old_cate_two_id) || empty($goods_id)){
- Db::name('store_goods')->insert(array('name'=>$v[4],'brand'=>$v[3],'first_classify'=>$cate_one_id,'second_classify'=>$cate_two_id,'user_id'=>$this->user_id));
- $goods_id = Db::name('store_goods')->getLastInsID();
- }
- $specification_name_arr = explode(',',$v[5]);
- $specification_value_arr = explode(',',$v[6]);
- if(count($specification_name_arr) != count($specification_value_arr)){
- $this->error('规格信息有误');
- }
- $specification = '';
- foreach ($specification_name_arr as $sk=>$sv){
- if($sk == 0){
- $specification = $sv.':'.$specification_value_arr[$sk];
- }else{
- $specification .= ','.$sv.':'.$specification_value_arr[$sk];
- }
- //保存规格键值
- $spec_id = Db::name('goods_spec')->where('goods_id',$goods_id)->where('spec_name',$sv)->where('spec_value',$specification_value_arr[$sk])->value('id');
- if(empty($spec_id)){
- Db::name('goods_spec')->insert(array('goods_id'=>$goods_id,'spec_name'=>$sv,'spec_value'=>$specification_value_arr[$sk]));
- }
- }
- $goods_item_id = Db::name('store_goods_item')->where('goods_id',$goods_id)->where('goods_spec',$specification)->value('id');
- if(empty($goods_item_id)){
- Db::name('store_goods_item')->insert(array('goods_id'=>$goods_id, 'goods_spec'=>$specification, 'goods_no'=>$v[0]));
- $goods_item_id = Db::name('store_goods_item')->getLastInsID();
- }
- $data[] = array('name'=>$v[4],'specification'=>$specification,'num'=>$v[7],'price'=>$v[8],'goods_item_id'=>$goods_item_id);
- }
- }
- $this->success('导入成功',$data);
- }
- }
|