GoodtestController.php 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Activity;
  4. use App\Models\Goodtest;
  5. use App\Models\OrderDetail;
  6. use App\Models\Ordertest;
  7. use App\Models\User;
  8. use Carbon\Carbon;
  9. use Illuminate\Support\Facades\Auth;
  10. use Illuminate\Support\Facades\Cache;
  11. class GoodtestController extends Controller{
  12. public function GetGoodStatus(){
  13. $activity=Activity::where('is_ing',1)->first();
  14. $time=Carbon::now();
  15. $status=false;
  16. if ($time>=$activity->start_time && $time<=$activity->end_time){
  17. if ($activity->set_company_buy_num==1){
  18. $status=true;
  19. }
  20. }
  21. return $this->success(['status'=>$status]);
  22. }
  23. public function good_show(){
  24. $id=Auth::user()->id;
  25. $user=User::find($id);
  26. $time=Carbon::now();
  27. $activity=Activity::where('is_ing',1)->first();
  28. if ($time>=$activity->start_time && $time<=$activity->end_time){
  29. if ($time<Carbon::today()->addHours(9) || $time>Carbon::today()->addHours(21)){
  30. return $this->success_list([]);
  31. }
  32. }
  33. $re=[];
  34. $mobile=Auth::user()->mobile;
  35. // if (in_array($mobile,[15286818088])){
  36. $datas=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->count();
  37. if ($datas>0){
  38. $data=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->groupBy('main_attr')->orderBy('sort')->select('main_attr','attr_id')->get();
  39. $i=0;
  40. $re=[];
  41. foreach ($data as $k=>$v){
  42. $sec_attr=Goodtest::whereIn('is_show',[2,3])
  43. ->where('is_deleted',0)
  44. ->where('main_attr',$v->main_attr)
  45. ->groupBy('sec_attr')
  46. ->orderBy('sort')
  47. ->select('sec_attr','name','goods_num','money','unit','main_img','banner_img','id','attr_id','show_time','off_time','main_attr')
  48. ->get();
  49. foreach ($sec_attr as $ke=>$va){
  50. $size=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->where('main_attr',$v->main_attr)->where('sec_attr',$va->sec_attr)->select('storage','size','id')->get()->toArray();
  51. // $now=Carbon::now()->timestamp;
  52. // if ($va->show_time==null){
  53. // $re[$i]['limit_time']=false;
  54. // }else{
  55. // if (strtotime($va->show_time)<$now&&strtotime($va->off_time)>$now){
  56. // $re[$i]['limit_time']=true;
  57. // $re[$i]['show_time']=$va->show_time->toDateTimeString();
  58. // $re[$i]['off_time']=$va->off_time->toDateTimeString();
  59. // }
  60. // }
  61. $re[$i]['step']=1;
  62. if($user->level=='3'){
  63. if($activity && $activity->set_company_buy_num==1){
  64. if ($time>=$activity->start_time && $time<=$activity->end_time){
  65. if ($time>=Carbon::today()->addHours(9) && $time<=Carbon::today()->addHours(21)){
  66. if($va->main_attr=='大卫博士精装版'){
  67. $re[$i]['step']=6;
  68. }elseif($va->main_attr=='大卫博士高腰版' || $va->main_attr=='大卫博士青春版'){
  69. $re[$i]['step']=3;
  70. }
  71. }
  72. }
  73. }
  74. }
  75. $re[$i]['name']=$va->name;
  76. $re[$i]['goods_list']=$size;
  77. $re[$i]['attr_id']=$va->attr_id;
  78. $re[$i]['size_id']=array_column($size,'id');
  79. $re[$i]['size']=array_column($size,'size');
  80. $re[$i]['storage']=array_column($size,'storage');
  81. $re[$i]['goods_num']=$va->goods_num;
  82. $re[$i]['money']=$va->money;
  83. $re[$i]['unit']=$va->unit;
  84. $re[$i]['main_img']=$va->main_img;
  85. $re[$i]['banner_img']=json_decode($va->banner_img);
  86. // $re[$i]['banner_img']=[$va->main_img];
  87. $re[$i]['sec_attr']=$va->sec_attr;
  88. $i++;
  89. }
  90. }
  91. }else{
  92. return $this->success_list([]);
  93. }
  94. // }
  95. //else{
  96. // $datas=Goodtest::whereIn('is_show',[2,3])->where('main_attr','<>','大卫博士青春版')->where('is_deleted',0)->count();
  97. // if ($datas>0){
  98. // $data=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->where('main_attr','<>','大卫博士青春版')->groupBy('main_attr')->orderBy('sort')->select('main_attr','attr_id')->get();
  99. // $i=0;
  100. // $re=[];
  101. // foreach ($data as $k=>$v){
  102. // $sec_attr=Goodtest::whereIn('is_show',[2,3])
  103. // ->where('is_deleted',0)
  104. // ->where('main_attr',$v->main_attr)
  105. // ->groupBy('sec_attr')
  106. // ->orderBy('sort')
  107. // ->select('sec_attr','name','goods_num','money','unit','main_img','banner_img','id','attr_id','show_time','off_time')
  108. // ->get();
  109. // foreach ($sec_attr as $ke=>$va){
  110. // $size=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->where('main_attr',$v->main_attr)->where('sec_attr',$va->sec_attr)->select('storage','size','id')->get()->toArray();
  111. //// $now=Carbon::now()->timestamp;
  112. //// if ($va->show_time==null){
  113. //// $re[$i]['limit_time']=false;
  114. //// }else{
  115. //// if (strtotime($va->show_time)<$now&&strtotime($va->off_time)>$now){
  116. //// $re[$i]['limit_time']=true;
  117. //// $re[$i]['show_time']=$va->show_time->toDateTimeString();
  118. //// $re[$i]['off_time']=$va->off_time->toDateTimeString();
  119. //// }
  120. //// }
  121. // $re[$i]['name']=$va->name;
  122. // $re[$i]['attr_id']=$va->attr_id;
  123. // $re[$i]['size_id']=array_column($size,'id');
  124. // $re[$i]['size']=array_column($size,'size');
  125. // $re[$i]['storage']=array_column($size,'storage');
  126. // $re[$i]['goods_num']=$va->goods_num;
  127. // $re[$i]['money']=$va->money;
  128. // $re[$i]['unit']=$va->unit;
  129. // $re[$i]['main_img']=$va->main_img;
  130. // $re[$i]['banner_img']=json_decode($va->banner_img);
  131. //// $re[$i]['banner_img']=[$va->main_img];
  132. // $re[$i]['sec_attr']=$va->sec_attr;
  133. // $i++;
  134. // }
  135. // }
  136. // }else{
  137. // return $this->success_list([]);
  138. // }
  139. // }
  140. // dd($re);
  141. return $this->success_list($re);
  142. }
  143. public function again_order(){
  144. $order_detail=OrderDetail::where('order_id',7)->groupBy('goods_name')->get();
  145. foreach ($order_detail as $k=>$v){
  146. $data=OrderDetail::where('goods_name',$v->goods_name)->where('order_id',7)->with(['get_good'])->get();
  147. $size=[];
  148. $size_id=[];
  149. $num=[];
  150. dump($data);
  151. foreach ($data as $ke=>$va){
  152. $size[$ke]=$va->goods_size;
  153. $size_id[$ke]=$va->goods_id;
  154. $num[$ke]=$va->num;
  155. }
  156. $re[$k]['size']=$size;
  157. $re[$k]['size_id']=$size_id;
  158. $re[$k]['num']=$num;
  159. $re[$k]['name']=$v->goods_name;
  160. $re[$k]['main_img']=$data[0]->get_good->main_img;
  161. }
  162. dd($re);
  163. }
  164. public function AddDataGood(){
  165. // $re=User::where('level',3)->whereNull('deleted_at')->whereNotIn('mobile',['13837111367','15617601787'])->pluck('mobile')->toArray();
  166. // if (in_array(13837111367,$re)){
  167. // dd(1);
  168. // }
  169. // dd(2);
  170. // dump($request->isEmptyString('id'));
  171. // dd($request->inputs('id',2));
  172. $good=Goodtest::where('is_deleted',0)->get();
  173. foreach ($good as $k=>$v){
  174. $num=$v->storage;
  175. Cache::forget('dwbs_good_num'.$v->id);
  176. Cache::put('dwbs_good_num'.$v->id,$num,3600*24*7);
  177. $ids=Ordertest::where('created_at','>','2021-08-04 08:00:00')->where('is_deleted',0)->pluck('id');
  178. $nums=Orderdetail::whereIn('order_id',$ids)->where('goods_id',$v->id)->sum('num');
  179. $n=$nums;
  180. dump(Cache::get('dwbs_good_num'.$v->id).'=========='.$v->name.$v->size.'('.$v->id.')'.'======='.$v->storage.'======'.$n);
  181. // dump(Cache::get('dwbs_good_num'.$v->id).'=========='.$v->name.$v->size.'('.$v->id.')'.'======='.$v->storage);
  182. }
  183. // Cache::forever('dwbs_good_num74',500);
  184. // 70
  185. }
  186. }