GoodtestController.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\Goodtest;
  4. use App\Models\OrderDetail;
  5. use Carbon\Carbon;
  6. use Illuminate\Support\Facades\Cache;
  7. class GoodtestController extends Controller{
  8. public function good_show(){
  9. $datas=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->count();
  10. if ($datas>0){
  11. $datas=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->orderBy('sort')->select('storage','id')->get();
  12. foreach ($datas as $k=>$v){
  13. $n=$v->storage;
  14. Cache::remember('tnsj_good_num'.$v->id,Carbon::now()->addDays(1),function ()use ($n){
  15. return $n;
  16. });
  17. }
  18. $data=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->groupBy('main_attr','name')->orderBy('sort')->select('main_attr','attr_id','name')->get();
  19. $i=0;
  20. $re=[];
  21. foreach ($data as $k=>$v){
  22. $sec_attr=Goodtest::whereIn('is_show',[2,3])
  23. ->where('is_deleted',0)
  24. ->where('main_attr',$v->main_attr)
  25. ->where('name',$v->name)
  26. ->groupBy('sec_attr')
  27. ->orderBy('sort')
  28. ->select('sec_attr','name','goods_num','money','unit','main_img','banner_img','id','attr_id','show_time','off_time')
  29. ->get();
  30. foreach ($sec_attr as $ke=>$va){
  31. $size=Goodtest::whereIn('is_show',[2,3])->where('is_deleted',0)->where('name',$v->name)->where('main_attr',$v->main_attr)->where('sec_attr',$va->sec_attr)->select('storage','size','id')->get()->toArray();
  32. // $now=Carbon::now()->timestamp;
  33. // if ($va->show_time==null){
  34. // $re[$i]['limit_time']=false;
  35. // }else{
  36. // if (strtotime($va->show_time)<$now&&strtotime($va->off_time)>$now){
  37. // $re[$i]['limit_time']=true;
  38. // $re[$i]['show_time']=$va->show_time->toDateTimeString();
  39. // $re[$i]['off_time']=$va->off_time->toDateTimeString();
  40. // }
  41. // }
  42. $re[$i]['name']=$va->name;
  43. $re[$i]['attr_id']=$va->attr_id;
  44. $re[$i]['size_id']=array_column($size,'id');
  45. $re[$i]['size']=array_column($size,'size');
  46. $re[$i]['storage']=array_column($size,'storage');
  47. $re[$i]['goods_num']=$va->goods_num;
  48. $re[$i]['money']=$va->money;
  49. $re[$i]['unit']=$va->unit;
  50. $re[$i]['main_img']=$va->main_img;
  51. $re[$i]['banner_img']=json_decode($va->banner_img);
  52. // $re[$i]['banner_img']=[$va->main_img];
  53. $re[$i]['sec_attr']=$va->sec_attr;
  54. $i++;
  55. }
  56. }
  57. }else{
  58. return $this->success_list([]);
  59. }
  60. // dd($re);
  61. return $this->success_list($re);
  62. }
  63. public function again_order(){
  64. $order_detail=OrderDetail::where('order_id',7)->groupBy('goods_name')->get();
  65. foreach ($order_detail as $k=>$v){
  66. $data=OrderDetail::where('goods_name',$v->goods_name)->where('order_id',7)->with(['get_good'])->get();
  67. $size=[];
  68. $size_id=[];
  69. $num=[];
  70. dump($data);
  71. foreach ($data as $ke=>$va){
  72. $size[$ke]=$va->goods_size;
  73. $size_id[$ke]=$va->goods_id;
  74. $num[$ke]=$va->num;
  75. }
  76. $re[$k]['size']=$size;
  77. $re[$k]['size_id']=$size_id;
  78. $re[$k]['num']=$num;
  79. $re[$k]['name']=$v->goods_name;
  80. $re[$k]['main_img']=$data[0]->get_good->main_img;
  81. }
  82. dd($re);
  83. }
  84. public function GetGoodNum(){
  85. $datas=Goodtest::where('is_deleted',0)->orderBy('sort')->select('storage','all_storage','id')->get();
  86. foreach ($datas as $k=>$v){
  87. $n=$v->all_storage;
  88. // Cache::forever('tnsj_good_num'.$v->id,$n);
  89. dump(Cache::get('tnsj_good_num'.$v->id));
  90. }
  91. }
  92. }