repository) $this->repository = $repository; } function index(Request $reqeust) { $search['keyword'] = $reqeust->input('keyword'); $query = $this->repository->pushCriteria(new MultiWhere($search)); $request = $reqeust->all(); if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $query = $query->pushCriteria(new OrderBy($request['sort_field'],$request['sort_field_by'])); }else{ $query = $query->pushCriteria(new OrderBy('id','desc')); } $list = $query->with(['meet'])->paginate(); $ab_value = BaseSettingsModel::where('category','paihang')->first(); return view('admin.dream.info.index',compact('list','ab_value')); } function check(Request $reqeust) { $request = $reqeust->all(); $search['keyword'] = $reqeust->input('keyword'); $orderby = array(); if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $orderby[$request['sort_field']] = $request['sort_field_by']; } $list = $this->repository->search($search,$orderby); return view('admin.dream.info.check',compact('list')); } /** * 添加 * */ public function create(Request $reqeust) { if($reqeust->method() == 'POST') { return $this->_createSave(); } $signs = BaseSettingsModel::where('category','sign')->orderBy('id')->get(); return view('admin.dream.info.edit',compact('signs')); } /** * 保存修改 */ private function _createSave(){ $data = (array) request('data'); if (is_array($data['sign'])) { $data['sign'] = join(',',$data['sign']); } $pics = (array) request('pic'); if (request("file")) { $file = request("file"); $fileSize = $file->getSize(); $size = 200 * 1024 * 1024; if ($fileSize > $size) { return back()->with('error','请上传小于200MB的文件!'); } $mimeType = [ 'video/mp4', ]; $fileMimeType = $file->getMimeType(); if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) { return back()->with('error','File type allow MP4!'); } if (!$file = VideoUpload::mvFile('file')) return back()->with('error','上传失败'); $data["video"] = $file; } $data['created_at'] = date('Y-m-d H:i:s'); $data['updated_at'] = date('Y-m-d H:i:s'); $id = DreamInfoModel::insertGetId($data); // 生成二维码 /* $info['transaction_id'] = date('YmdHis') . mt_rand(1000, 9999); $info['code'] = 'WECHATPAY_' . $info['transaction_id']; $code_url = env('APP_URL').'/user/meet?dream_id='.$id; $code_path = public_path('qrcodes/'.$info['code'].'.png'); \QrCode::format('png')->size(500)->generate($code_url,$code_path); $code = env('APP_URL').'/qrcodes/'.$info['code'].'.png'; DreamInfoModel::where('id',$id)->update(compact('code'));*/ if($id) { $arr = []; if (!empty($pics)) { foreach ($pics['url'] as $pic) { $arr[] = [ 'pic'=>getenv('APP_URL').$pic, 'dream_id'=>$id, 'created_at'=>date("Y-m-d H:i:s"), 'updated_at'=>date("Y-m-d H:i:s"), ]; } DreamImages::insert($arr); } $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); $url[] = array('url'=>U( 'Dream/Info/create'),'title'=>'继续添加'); $this->showMessage('添加成功',$url); }else{ $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('添加失败',$url); } } /** * * 修改 * * */ public function update(Request $reqeust) { if($reqeust->method() == 'POST') { return $this->_updateSave(); } $data = $this->repository->find($reqeust->get('id')); if (empty($data->video)) { $data->is_video = 0; }else{ $data->is_video = 1; } $imgs = $data->imgs; $arr = []; foreach ($imgs as $pic) { $arr[] = $pic['pic']; } $data->imgs = $arr; // dd($data); $data['sign'] = explode(',',$data['sign']); $signs = BaseSettingsModel::where('category','sign')->orderBy('id')->get(); return view('admin.dream.info.edit',compact('data','signs')); } /** * 保存修改 */ private function _updateSave() { $data = (array) request('data'); if ($data['status']==2) { //审核不过 $info = [ 'user_id' => $data['user_id'], 'message' => ' 你的梦想被暂停,客服会在短时间内联络你', 'type_id' => 1, 'attr_id' => 5, ]; SystemInfoModel::create($info); } if (array_key_exists('sign',$data)) { $data['sign'] = join(',',$data['sign']); } if (!array_key_exists('status',$data)) { $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('请选择梦想状态',$url); } // 后台修改排行参数时,梦想分数也改变 $dream_id = request('id'); $data2 = UserCareDream::where('dream_id',$dream_id)->get(); $care_num = count($data2); $setting = BaseSettingsModel::where('category','paihang')->first(); $a = $data['parameter']; $b = $setting?$setting->value:1; $t = 21*3600 / 60; \Log::debug($data['end_time'].' care_num:'.$care_num.' a:'.$a.' b:'.$b.' t:'.$t); if ($care_num == 0) { $data['score'] = (($a/$t) + $b)*100000000 ; }else{ $data['score'] = (log($care_num) + ($a/$t) + $b)*100000000 ; } $pics = (array) request('pic'); if (request("file")) { $file = request("file"); $fileSize = $file->getSize(); $size = 200 * 1024 * 1024; if ($fileSize > $size) { return back()->with('error','请上传小于200 MB的文件!'); } $mimeType = [ 'video/mp4', ]; $fileMimeType = $file->getMimeType(); if (!empty($mimeType) && !in_array($fileMimeType, $mimeType)) { return back()->with('error','File type allow MP4!'); } if (!$file = VideoUpload::mvFile('file')) return back()->with('error','上传失败'); $data["video"] = $file; } if (!empty($pics)) { $old_data_pics = $this->repository->find(request('id'))->imgs->toArray(); $old_pics = array_column($old_data_pics,'pic'); $a = array_diff($pics['url'],$old_pics); $b = array_diff($old_pics,$pics['url']); if (!empty($a) || !empty($b)) { //有图片变化执行 // 删除以前图片 重新插入 if (!empty($b)) { foreach ($b as $old_pic){ if (is_file('.'.str_replace(getenv('APP_URL'),'',$old_pic))) { unlink('.'.str_replace(getenv('APP_URL'),'',$old_pic)); } BaseAttachmentModel::where('url',$old_pic)->delete(); DreamImages::where('pic',$old_pic)->delete(); } } $arr = []; //插入新的图片 foreach ($a as $pic) { $arr[] = [ 'pic'=>getenv('APP_URL').$pic, 'dream_id'=>request('id'), 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ]; } DreamImages::insert($arr); } } $ok = $this->repository->update(request('id'),$data); if ($data['status'] == 1) { //审核通过 $message = '你的梦想《'.$data['name'].'》已被批准,离你实现梦想又更进一步啦~ '; $info = [ 'user_id' => $data['user_id'], 'message' => $message, ]; SystemInfoModel::create($info); // 长连接 // $this->jPush($message,'',$data['user_id']); } if($ok) { $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showMessage('操作成功',urldecode(request('_referer'))); }else{ $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表'); return $this->showWarning('操作失败',$url); } } public function view(Request $reqeust) { $data = $this->repository->find(request('id')); return view('admin.dream.info.view',compact('data')); } /** * * 状态改变 * */ public function status(Request $reqeust) { $ok = $this->repository->updateStatus(request('id'),request('status')); if($ok) { return $this->showMessage('操作成功'); }else{ return $this->showWarning('操作失败'); } } /** * 删除 */ public function destroy(Request $reqeust) { $dream = DreamInfoModel::find($reqeust->get('id')); if($dream) { $old_data_pics = $dream->imgs->toArray(); $old_pics = array_column($old_data_pics,'pic'); if (!empty($old_pics)) { foreach ($old_pics as $old_pic){ if (is_file('.'.str_replace(getenv('APP_URL'),'',$old_pic))) { unlink('.'.str_replace(getenv('APP_URL'),'',$old_pic)); } BaseAttachmentModel::where('url',$old_pic)->delete(); } BaseAttachmentModel::where('url',$old_pic)->delete(); } DreamImages::where('dream_id',$reqeust->get('id'))->delete(); $this->repository->destroy($reqeust->get('id')); return $this->showMessage('操作成功'); }else{ return $this->showWarning("操作失败"); } } public function show_code(Request $request) { $code = $request->code; return view('admin.dream.info.show_code',compact('code')); } // 查看支持记录 public function supportInfo(Request $request) { $dream_id = $request->input('dream_id'); $request = $request->all(); if(isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) { $query = SupportDreamModel::orderBy($request['sort_field'],$request['sort_field_by']); }else{ $query = SupportDreamModel::orderBy('id','desc'); } $list = $query->with('user')->where('dream_id',$dream_id)->paginate(); return view('admin.dream.support_dream.index',compact('list')); } }