Home.php 6.3 KB

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