123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- <?php
- namespace App\Http\Controllers\Admin\Share;
- use App\Models\BaseSettingsModel;
- use App\Models\DreamInfoModel;
- use App\Models\InteractionInfo;
- use App\Models\SupportDreamModel;
- use App\Models\UserInfoModel;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- class InfoController extends Controller
- {
- public function view(Request $request){
- $id = $request->id;
- $dream = DreamInfoModel::with('img')->find($id);
- $user_id = $request->user_id;
- $times = (strtotime($dream->end_time) -time());
- if ($times>=3600*24) {
- $days =floor($times/3600/24) .'天';
- } elseif($times>3600 && $times< 3600*24){
- $days = floor($times/3600) .'小时';
- }elseif($times <=0){
- $days = '已结束';
- }else{
- $days =floor ($times/60) .'分钟';
- }
- // 支持者
- $support_dream = SupportDreamModel::where('dream_id',$id)->get();
- $top = [] ;
- $topuser = []; //所有支持用户排行
- $top3user = []; // 支持用户排行前三
- foreach ($support_dream as $item) {
- if (!array_key_exists($item->user_id,$top)) {
- $top[$item->user_id] = $item->score;
- }else{
- $top[$item->user_id] += $item->score;
- }
- }
- arsort($top);
- foreach ($top as $user_id => $score){
- $user1 = UserInfoModel::find($user_id);
- if (!empty($user1)) {
- $user1->score = $score;
- $topuser[] = $user1;
- if(count($top3user) <= 2) $top3user[] = $user1 ;
- }
- }
- // 互动
- $interactions = InteractionInfo::where('dream_id',$id)->with(['comments' => function ($query) {
- $query->orderBy('created_at');
- }])->orderBy('id','desc')->get();
-
- // 梦想
- $dream = DreamInfoModel::find($id);
- $setting = BaseSettingsModel::where('category','score')->select('key','value','sort')->first();
- $a = count($setting) > 0 ? $setting->key : 0;
- $b = ceil((time()-strtotime($dream->created_at))/60); //梦想发布分钟数
- $c = count($setting) > 0 ? $setting->value : 3;
- if(empty($c)) $c = 3;
- $n = count($setting) > 0 ? $setting->sort : 0;
- $number =round( $n*exp(-$a*(pow($b,1/$c)))+1,2);
- if ($number <= 1) $number = 1;
- $dream = DreamInfoModel::with(['imgs','user'])->find($id);
- $dream->signs = explode(',',$dream->sign);
- $dream->topuser = $topuser;
- $dream->top3user = $top3user;
- $dream->interactions = $interactions;
- $dream->number = $number;
- $dream->a = $a;
- $dream->c = $c;
- // dd($topuser);
- // foreach ($topuser as $key => $cal) {
- // dump($key);
- // }
- // dd();
- return view('admin.share1',compact('dream','days','user_id','topuser','top3user','interactions'));
- }
- }
|