1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <?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 getMd5($str)
- {
- $start = strripos($str, '/');
- $last = substr($str, $start);
- return $last;
- }
- 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();
- foreach ($interactions as $k => $v){
- if ($v->video) $v->interaction_md5 = $this->getMd5($v->video);
- }
- // 梦想
- $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;
- $dream->dream_md5 = $this->getMd5($dream->video);
- return view('admin.share1',compact('dream','days','user_id','topuser','top3user','interactions'));
- }
- }
|