Home.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace app\controller\api\warehouse;
  3. use app\common\model\store\product\Product;
  4. use app\common\repositories\store\order\StoreOrderRepository;
  5. use app\common\repositories\store\product\ProductRepository;
  6. use app\controller\merchant\gong\Goods;
  7. use crmeb\basic\BaseController;
  8. use think\App;
  9. use think\facade\Db;
  10. class Home extends BaseController
  11. {
  12. private $source;
  13. private $merId;
  14. public function __construct(App $app)
  15. {
  16. parent::__construct($app);
  17. $this->source = request()->header('source');
  18. $this->merId = request()->header('merId');
  19. }
  20. //大仓列表
  21. public function da_cang_lst()
  22. {
  23. $list=Db::name('big_warehouse')->where('status',1)->field('id,logo,warehouse_name')->select()->toArray();
  24. return app('json')->success($list);
  25. }
  26. //大仓分类
  27. public function classify(){
  28. $merid=$this->merId;
  29. $cate_arr=[];
  30. $list = Db::name('store_category')
  31. -> where('is_show',1)
  32. -> when( !$this->source ,function($query) use ($merid){
  33. $query->where('pid',564);
  34. })
  35. -> when( $this->source =='yhc',function($q) use ($cate_arr,$merid){
  36. $q->where(function($q1) use ($cate_arr) {
  37. $q1->where(function($query) use ($cate_arr) {
  38. $query->where('pid', 564)->whereIn('cate_name', $cate_arr);
  39. })->whereOr('mer_id', 496);
  40. });
  41. })
  42. -> field('store_category_id,cate_name')
  43. -> order('sort desc')
  44. -> group('cate_name')
  45. -> select();
  46. foreach ($list as $key => $item) {
  47. $product = Db::name('store_product')
  48. ->where('is_show',1)
  49. ->where('status',1)
  50. ->where('mer_id',$merid)
  51. ->where('cate_id',$item['store_category_id'])
  52. ->limit(1)
  53. ->find();
  54. if(!$product) unset($list[$key]);
  55. }
  56. return app('json')->success($list);
  57. }
  58. //大仓列表商品1
  59. public function da_cang_product_lst()
  60. {
  61. [$page, $limit] = $this->getPage();
  62. $classify = $this -> request -> params(['classify','keyword']);
  63. $where=[
  64. 'is_used'=>1,
  65. 'mer_status'=>1,
  66. // 'type'=>5,
  67. 'is_show'=>1,
  68. 'is_hide'=>0,
  69. 'is_del' => 0
  70. ];
  71. $product_id=[];
  72. $cateIds=[];
  73. if (isset($classify['classify']) && !empty($classify['classify'])){
  74. $where['cate_id'] = $classify['classify'];
  75. }
  76. $make2 = app()->make(Goods::class);
  77. $gongProduct439=$make2->getJoinProduct439();
  78. $ProductRepository=app() -> make(ProductRepository::class);
  79. $product_data=Db::name('store_product')->where($where)
  80. ->when(isset($classify['keyword']) && !empty($classify['keyword']), function ($query) use ($classify) {
  81. $query->where('store_name', 'like', "%" . $classify['keyword'] . "%");
  82. })->when(!$this->source, function ($q1) use ($gongProduct439) {
  83. $q1->where(function ($query) use ($gongProduct439) {
  84. $query->whereNotIn('spu_id', $gongProduct439)->whereOr("spu_id is null");
  85. });
  86. })->when(!$this->source, function ($query) {
  87. $query->where('type=5 or mer_id= 595');
  88. // $query2->where('spu_id IS NOT NULL')->whereOr("mer_id","321");
  89. // })->when(isset($product_id) && count($product_id), function ($query) use ($product_id) {
  90. // $query->whereIn('product_id',$product_id);
  91. // })
  92. })
  93. ->order('sort desc,create_time desc')
  94. ->page($page,$limit)
  95. ->select()->toArray();
  96. // echo Db::getlastsql();die;
  97. foreach ($product_data as &$product){
  98. $product['price']=set_price_rtrim($product['price']);
  99. $product['cost']=set_price_rtrim($product['cost']);
  100. $product['ot_price']=set_price_rtrim($product['ot_price']);
  101. $product['flag']='1';
  102. $product['yanglao']=set_price_rtrim($ProductRepository->yanglaojin($product['product_id'],0,1));//养老金
  103. $product['yanglao']=isset($product['yanglao']) && $product['yanglao']!=''? $product['yanglao']:0;
  104. $dacang_price=Db::name('store_product_attr_value')->where('product_id',$product['product_id'])->order('dacang_price','asc')->limit(1)->value('dacang_price');
  105. $product['da_cang_price']=set_price_rtrim($dacang_price);
  106. $product['yanglao_price']= $product['yanglao'];
  107. if($product['spu_id']!=''){
  108. $product['type']=5;
  109. }
  110. if(isset($product['type'])){
  111. $product['type']=(int)$product['type'];
  112. }
  113. }
  114. return app('json')->success($product_data);
  115. }
  116. //大仓介绍
  117. public function introduce($id)
  118. {
  119. $data=Db::name('big_warehouse')->where('id',$id)->find();//查询ID为它的数据
  120. if($data)
  121. return app('json')->success($data);
  122. return app('json')->fail('');
  123. }
  124. //大仓首页商品列表
  125. public function dc_home_product($id)
  126. {
  127. [$page, $limit] = $this->getPage();
  128. $where=[
  129. 'is_used'=>1,
  130. 'mer_status'=>1,
  131. 'type'=>5,
  132. 'is_show'=>1,
  133. 'is_hide'=>0,
  134. 'is_del' => 0
  135. ];
  136. $ProductRepository=app() -> make(ProductRepository::class);
  137. $product_data=Db::name('store_product')->where('dc_id',$id)->where($where)->page($page,$limit)->select()->toArray();
  138. foreach ($product_data as &$product){
  139. $product['flag']='1';
  140. $product['yanglao']=$ProductRepository->yanglaojin($product['product_id']);//养老金
  141. $product['da_cang_price']=Db::name('store_product_attr_value')->where('product_id',$product['product_id'])->order('dacang_price','asc')->limit(1)->value('dacang_price');
  142. }
  143. return app('json')->success($product_data);
  144. }
  145. //大仓首页商户
  146. public function dc_home_merchant($id)
  147. {
  148. $data=Db::name('merchant')->where('dc_id',$id)->field('mer_id,mer_name,mer_avatar')->select()->toArray();
  149. return app('json')->success($data);
  150. }
  151. }