Subscribe.php 4.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\api\controller;
  3. use app\api\controller\Base;
  4. use think\Db;
  5. use hg\apidoc\annotation as Apidoc;
  6. /**
  7. * @Apidoc\Title("申购模块")
  8. * @Apidoc\Group("api")
  9. */
  10. class Subscribe extends Base
  11. {
  12. public function initialize()
  13. {
  14. parent::initialize();
  15. parent::checkLogin();
  16. }
  17. /**
  18. * @Apidoc\Title("获取商品导入模板地址")
  19. * @Apidoc\Desc("获取审批流程")
  20. * @Apidoc\Method("GET")
  21. * @Apidoc\Author("HG")
  22. * @Apidoc\Tag("")
  23. * @Apidoc\Returned("", type="string", desc="模板链接地址")
  24. */
  25. public function template_url()
  26. {
  27. $url = 'https://'.$_SERVER['HTTP_HOST'].'/template.xlsx';
  28. $this->success('获取成功',$url);
  29. }
  30. /**
  31. * @Apidoc\Title("获取商品导入后的商品信息")
  32. * @Apidoc\Desc("获取审批流程")
  33. * @Apidoc\Method("GET")
  34. * @Apidoc\Author("HG")
  35. * @Apidoc\Tag("")
  36. * @Apidoc\Query("url", type="string", desc="导入文件上传后的路径")
  37. * @Apidoc\Returned("", type="string", desc="模板链接地址")
  38. */
  39. public function goods_info()
  40. {
  41. $url = input('url');
  42. if(empty($url)){
  43. $this->error('参数错误');
  44. }
  45. $file_name = explode('/',$url);
  46. $import_path = $_SERVER['DOCUMENT_ROOT'].'/upload/excel/'.end($file_name);
  47. $objReader =\PHPExcel_IOFactory::createReader('Excel2007');
  48. $objExcel = $objReader->load($import_path);
  49. $list = $objExcel->getActiveSheet()->toArray();
  50. if(empty($list)){
  51. $this->error('暂无数据');
  52. }
  53. $data = array();
  54. foreach ($list as $k=>$v){
  55. if($k > 0 && $v[0]){
  56. //判断分类是否有
  57. $old_cate_one_id = $cate_one_id = Db::name('goods_cate')->where('title',$v[1])->value('id');
  58. $old_cate_two_id = $cate_two_id = Db::name('goods_cate')->where('title',$v[2])->value('id');
  59. if(empty($cate_one_id)){
  60. $cate_one_id = Db::name('goods_cate')->getLastInsID(array('title'=>$v[0]));
  61. $cate_one_id = Db::name('goods_cate')->getLastInsID(array('title'=>$v[1],'level'=>2,'pid'=>$cate_one_id));
  62. }
  63. if(empty($cate_two_id)){
  64. $cate_two_id = Db::name('goods_cate')->getLastInsID(array('title'=>$v[1],'level'=>2,'pid'=>$cate_one_id));
  65. }
  66. $goods_id = Db::name('store_goods')->where('name',$v[4])->value('id');
  67. if(empty($old_cate_one_id) || empty($old_cate_two_id) || empty($goods_id)){
  68. $goods_id = Db::name('store_goods')->getLastInsID(
  69. array(
  70. 'name'=>$v[4],
  71. 'brand'=>$v[3],
  72. 'first_classify'=>$cate_one_id,
  73. 'second_classify'=>$cate_two_id,
  74. 'user_id'=>$this->user_id
  75. )
  76. );
  77. }
  78. $specification_name_arr = explode(',',$v[5]);
  79. $specification_value_arr = explode(',',$v[6]);
  80. if(count($specification_name_arr) != count($specification_value_arr)){
  81. $this->error('规格信息有误');
  82. }
  83. foreach ($specification_name_arr as $sk=>$sv){
  84. $specification = $sv.'::'.$specification_value_arr[$sk];
  85. $goods_item_id = Db::name('store_goods_item')->where('goods_id',$goods_id)->where('goods_spec',$specification)->value('id');
  86. if(empty($goods_item_id)){
  87. $goods_item_id = Db::name('store_goods_item')->getLastInsID(array('goods_id'=>$goods_id, 'goods_spec'=>$specification, 'goods_no'=>$v[0]));
  88. }
  89. $data[] = array('name'=>$v[4],'specification'=>$sv.';'.$specification_value_arr[$sk],'num'=>$v[7],'price'=>$v[8],'goods_item_id'=>$goods_item_id);
  90. }
  91. }
  92. }
  93. $this->success('导入成功',$data);
  94. }
  95. }