Video.php 44 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033
  1. <?php
  2. namespace app\api\controller;
  3. use think\Db;
  4. use fast\Tree;
  5. use app\common\controller\Api;
  6. /**
  7. * 首页接口
  8. */
  9. class Video extends Api
  10. {
  11. protected $noNeedLogin = ['*'];
  12. protected $noNeedRight = ['*'];
  13. /**
  14. * 首页
  15. *
  16. */
  17. public function index()
  18. {
  19. $config=$this->config();
  20. $configs=config('site');
  21. $map['ishot']=2;
  22. $map['endtimesjc']=['>',time()];
  23. if(input('uid',0)>0){
  24. $map['uid']=input('uid');
  25. }
  26. $list = model('Video')
  27. ->with('users')
  28. ->where($map)
  29. ->limit(10)
  30. ->select();
  31. if($list){
  32. foreach ($list as $k=>$v){
  33. $list[$k]['createtime']=date('Y-m-d H:i',$v['createtime']);
  34. if(isset($v['users']['avatar'])){
  35. if(strpos($v['users']['avatar'],'http') !== false){
  36. $list[$k]['avatar']=$v['users']['avatar'];
  37. }else{
  38. if($v['users']['avatar']){
  39. $list[$k]['avatar']= $configs['imgurl'].$v['users']['avatar'];
  40. }else{
  41. $list[$k]['avatar']=$configs['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  42. }
  43. }
  44. }else{
  45. $list[$k]['avatar']=$configs['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  46. }
  47. }
  48. }
  49. $data=['config'=>$config,'doctor'=>$list];
  50. $this->success('请求成功',$data);
  51. }
  52. public function videoRecommend()
  53. {
  54. $uid=input('uid',0);
  55. $page=input('page',1);
  56. $limit=input('limit',100);
  57. $map=['lx'=>1,'status'=>'normal'];
  58. $list =DB::name('videolist')->where($map)->limit($limit)->page($page)->select();
  59. $total = DB::name('videolist')->where($map)->count();
  60. if($list){
  61. foreach ($list as $k=>$v){
  62. $video=DB::name('video')->order('weigh Asc,id Asc')->where(['pid'=>$v['id']])->find();
  63. $videolove=Db::name('videolove')->where(['uid'=>$uid,'vid'=>$v['id'],'mid'=>$video['id']])->find();
  64. $list[$k]['like']=1;
  65. if($videolove){
  66. $list[$k]['like']=2;
  67. }
  68. $videorecord=Db::name('videorecord')->where(['uid'=>$uid,'vid'=>$v['id'],'mid'=>$video['id']])->find();
  69. $list[$k]['iszj']=1;
  70. if($videorecord){
  71. $list[$k]['iszj']=2;
  72. }
  73. $User=\app\common\model\User::where(['id'=>$v['uid']])->field('id,nickname,avatar')->find();
  74. $list[$k]['mid']=$video['id'];
  75. $list[$k]['href']=$this->pissrc($video['img']);
  76. $list[$k]['img']=$this->pissrc($video['img']);
  77. $list[$k]['isShowProgressBarTime']=false;
  78. $list[$k]['isShowimage']=false;
  79. $list[$k]['isplay']=true;
  80. // $list[$k]['like']=$v['give'];
  81. $list[$k]['like_n']=$v['give'];
  82. $list[$k]['msg']=$v['text'];
  83. $list[$k]['pinlun']=[];
  84. $list[$k]['playIng']=false;
  85. $list[$k]['playNumber']=0;
  86. $list[$k]['sms_n']=0;
  87. $list[$k]['src']=$this->pissrc($video['videourl']);
  88. $list[$k]['state']="pause";
  89. $list[$k]['title']='《'.$v['name'].'》';
  90. $list[$k]['userID']=$User['id'];
  91. $list[$k]['username']=$User['nickname'];
  92. //$list[$k]['_id']=md5($v['id']);
  93. $list[$k]['_id']='vid'.$v['id'];
  94. $list[$k]['namets']=$video['name'].' (共'.$v['sum'].'集) 查看更多续集';
  95. }
  96. }
  97. $result = array("total" => $total,"isempty" => !empty($list)?1:2, "result" => $list,"affectedDocs" => $total, "data" => $list,'tuday'=>date('Y-m-d',time()));
  98. return json($result);
  99. }
  100. public function videoinfo()
  101. {
  102. $vid=input('vid',0);//视频id
  103. $page=input('page',1);
  104. $limit=input('limit',100);
  105. Db::name('videolist')->where(['id'=>$vid])->setInc('views');//累加播放记录
  106. $map=['status'=>'normal','pid'=>$vid];
  107. $list =DB::name('video')->where($map)->order('weigh Asc,id Asc')->limit($limit)->page($page)->select();
  108. $total = DB::name('video')->where($map)->count();
  109. //观看权限开始
  110. $isvip=1;//1不是vip 2是vip
  111. $pays=1; //1不能观看 2能观看
  112. $uid=0;
  113. $midlog=0;
  114. if(input('token') and input('token')!='undefined'){
  115. $Userdata=$this->auth->getUserinfo();
  116. if($Userdata){
  117. $uid=$Userdata['id'];
  118. if($Userdata['group_id']>1 and $Userdata['dtime']>=time()){
  119. $isvip=2;
  120. }
  121. $midlogs=DB::name('videolog')->where(['vid'=>$vid,'uid'=>$uid])->order('id desc')->find();
  122. if($midlogs){
  123. $midlog=$midlogs['mid'];
  124. }
  125. //更新播放记录 开始
  126. // $up=['uid'=>$uid,'vid'=>$vid,'mid'=>input('mid'),'vtime'=>0,'createtime'=>time(),'updatetime'=>time()];
  127. // $videolog=Db::name('videolog')->where(['uid'=>$uid,'vid'=>$vid,'mid'=>input('mid')])->find();
  128. // if($videolog){
  129. // Db::name('videolog')->where(['id'=>$videolog['id']])->delete();
  130. // }
  131. // Db::name('videolog')->insertGetId($up);
  132. //更新播放记录 结束
  133. }
  134. }
  135. $datavideo_order=Db::name('video_order')->where(['type'=>2,'lx'=>1,'sid'=>$vid,'uid'=>$uid])->find();// lx 1 全章购买
  136. if($datavideo_order){
  137. $pays=2;
  138. }
  139. //观看权限结束
  140. $videolist=[];
  141. if($list){
  142. foreach ($list as $k=>$v){
  143. $list[$k]['pays']=$pays;
  144. //观看权限开始
  145. if($v['price']==0){
  146. $list[$k]['pays']=2;
  147. }
  148. if($v['vipprice']==0 and $isvip==2){
  149. $list[$k]['pays']=2;
  150. }
  151. $dataviod=Db::name('video_order')->where(['type'=>2,'lx'=>2,'sid'=>$vid,'uid'=>$uid,'smid'=>$v['id']])->find(); //lx 2 单集购买
  152. if($dataviod){
  153. $list[$k]['pays']=2;
  154. }
  155. $videolist=DB::name('videolist')->where(['id'=>$v['pid']])->find();
  156. if($videolist['price']==0){
  157. $list[$k]['pays']=2;
  158. }
  159. if($videolist['vipprice']==0 and $isvip==2){
  160. $list[$k]['pays']=2;
  161. }
  162. //var_dump($list[$k]['pays']);
  163. //观看权限结束
  164. if($videolist['sum']<=$total){
  165. $videolist['wanji']='完结';
  166. }else{
  167. $videolist['wanji']='更新至'.$v['name'];
  168. }
  169. $videolist['zcount']=$total;
  170. $videolove=Db::name('videolove')->where(['uid'=>$uid,'vid'=>$v['pid'],'mid'=>$v['id']])->find();
  171. $list[$k]['like']=1;
  172. if($videolove){
  173. $list[$k]['like']=2;
  174. }
  175. $videorecord=Db::name('videorecord')->where(['uid'=>$uid,'vid'=>$v['pid'],'mid'=>$v['id']])->find();
  176. $list[$k]['iszj']=1;
  177. if($videorecord){
  178. $list[$k]['iszj']=2;
  179. }
  180. $User=\app\common\model\User::where(['id'=>$videolist['uid']])->field('id,nickname,avatar')->find();
  181. $list[$k]['User']=$User;
  182. // $list[$k]['videourl']=$this->pissrc($v['videourl']);
  183. // $list[$k]['img']=$this->pissrc($v['img']);
  184. // $list[$k]['nickname']=$User['nickname'];
  185. // $list[$k]['avatar']=$this->pissrc($User['avatar']);
  186. // $list[$k]['type']="videoSmallCard";
  187. // $list[$k]['mid']=$v['id'];
  188. // $list[$k]['text']=$videolist['text'];
  189. // $list[$k]['give']=$videolist['give'];
  190. // $list[$k]['vname']=$videolist['name'];
  191. // $list[$k]['sum']=$videolist['sum'];
  192. // $list[$k]['fjname']=$v['name'];
  193. // $list[$k]['name']=$v['name'].' (共'.$videolist['sum'].'集) 选集 >';
  194. $list[$k]['priced']=$v['price'];
  195. $list[$k]['vippriced']=$v['vipprice'];
  196. $list[$k]['priceq']=$videolist['price'];
  197. $list[$k]['vippriceq']=$videolist['vipprice'];
  198. $list[$k]['isvip']=$isvip;
  199. $list[$k]['mid']=$v['id'];
  200. $list[$k]['href']=$this->pissrc($v['img']);
  201. $list[$k]['img']=$this->pissrc($v['img']);
  202. $list[$k]['isShowProgressBarTime']=false;
  203. $list[$k]['isShowimage']=false;
  204. $list[$k]['isplay']=true;
  205. // $list[$k]['like']=$videolist['give'];
  206. $list[$k]['like_n']=$videolist['give'];
  207. $list[$k]['msg']=$videolist['text'];
  208. $list[$k]['pinlun']=[];
  209. $list[$k]['playIng']=false;
  210. $list[$k]['playNumber']=0;
  211. $list[$k]['sms_n']=0;
  212. if($list[$k]['pays']==1){
  213. $list[$k]['src']='';
  214. }else{
  215. $list[$k]['src']=$this->pissrc($v['videourl']);
  216. }
  217. $list[$k]['state']="pause";
  218. $list[$k]['title']='《'.$videolist['name'].'》';
  219. $list[$k]['userID']=$User['id'];
  220. $list[$k]['username']=$User['nickname'];
  221. //$list[$k]['_id']=md5($videolist['id']);
  222. $list[$k]['_id']='vid'.$v['id'];
  223. $list[$k]['fjname']=$v['name'];
  224. $list[$k]['namets']=$v['name'].' (共'.$videolist['sum'].'集) 选集 >';
  225. }
  226. }
  227. $result = array( "page" => $page, "midlog" => $midlog,"isempty" => !empty($list)?1:2,"data" => $list,"affectedDocs" => $total, "total" => $total, "result" => $list,"videodata" => $videolist,'tuday'=>date('Y-m-d',time()));
  228. return json($result);
  229. }
  230. public function bfjl(){
  231. $vid=input('vid');
  232. $mid=input('mid');
  233. $uid=input('uid');
  234. if($uid and $mid and $uid){
  235. //更新播放记录 开始
  236. $up=['uid'=>$uid,'vid'=>$vid,'mid'=>$mid,'vtime'=>0,'createtime'=>time(),'updatetime'=>time()];
  237. $videolog=Db::name('videolog')->where(['uid'=>$uid,'vid'=>$vid,'mid'=>$mid])->find();
  238. if($videolog){
  239. Db::name('videolog')->where(['id'=>$videolog['id']])->delete();
  240. }
  241. Db::name('videolog')->insertGetId($up);
  242. //更新播放记录 结束
  243. $this->success('success');
  244. }
  245. }
  246. public function zuiju()
  247. {
  248. $getweek=$this->get_week();
  249. $sy=0;
  250. $i=1;
  251. $tdsy=0;
  252. $fdong=50;
  253. $chus=100;
  254. foreach ($getweek as $k=>$v){
  255. $qdjl=Db::name('qdjl')->where(['uid'=>input('uid'),'time'=>$v['dates']])->find();
  256. if($qdjl){
  257. $sy=$qdjl['sy'];
  258. $getweek[$k]['xz']=2;
  259. }else{
  260. $getweek[$k]['xz']=1;
  261. }
  262. if($v['dates']==date('Y-m-d',time())){
  263. if($sy==0){
  264. $sy=$chus;
  265. }
  266. $tdsy=$sy;
  267. $getweek[$k]['day']='今天';
  268. }
  269. $getweek[$k]['discount']=$sy>0?$sy:$chus;
  270. if($sy>0){
  271. $sy=$sy+$fdong;
  272. }
  273. }
  274. $qdjls=Db::name('qdjl')->where(['uid'=>input('uid')])->order('id desc')->find();
  275. if($qdjls){
  276. $qdjl=$qdjls['sum'];
  277. }else{
  278. $qdjl=0;
  279. }
  280. $map1['uid']=input('uid');
  281. $list =DB::name('videolog')->where($map1)->group('vid')->order('id desc')->limit(12)->select();
  282. foreach ($list as $k=>$v){
  283. $v=DB::name('videolog')->where(['vid'=>$v['vid'],'uid'=>input('uid')])->order('id desc')->find();
  284. $list[$k]=$v;
  285. $videolist = DB::name('videolist')->where(['id'=>$v['vid']])->find();
  286. $list[$k]['vname']=$videolist['name'];
  287. $list[$k]['img']=$this->pissrc($videolist['img']);
  288. $videocount = DB::name('video')->where(['pid'=>$v['vid']])->count();
  289. $videoweigh = DB::name('video')->where(['pid'=>$v['vid']])->order('weigh desc,id desc')->find();
  290. if($videolist['sum']<=$videocount){
  291. $list[$k]['mname']='完结';
  292. }else{
  293. $list[$k]['mname']='更新至'.$videoweigh['name'];
  294. }
  295. $video = DB::name('video')->where(['id'=>$v['mid']])->find();
  296. $list[$k]['dqname']='看到'.$video['name'];
  297. }
  298. $map2['uid']=input('uid');
  299. $record =DB::name('videorecord')->where($map2)->group('vid')->limit(12)->select();
  300. foreach ($record as $k=>$v){
  301. $v=DB::name('videorecord')->where(['vid'=>$v['vid'],'uid'=>input('uid')])->order('id desc')->find();
  302. $record[$k]=$v;
  303. $videolist = DB::name('videolist')->where(['id'=>$v['vid']])->find();
  304. $record[$k]['vname']=$videolist['name'];
  305. $record[$k]['img']=$this->pissrc($videolist['img']);
  306. $videocount = DB::name('video')->where(['pid'=>$v['vid']])->count();
  307. $videoweigh = DB::name('video')->where(['pid'=>$v['vid']])->order('weigh desc,id desc')->find();
  308. if($videolist['sum']<=$videocount){
  309. $record[$k]['mname']='完结';
  310. }else{
  311. $record[$k]['mname']='更新至'.$videoweigh['name'];
  312. }
  313. $video = DB::name('video')->where(['id'=>$v['mid']])->find();
  314. $record[$k]['dqname']='看到'.$video['name'];
  315. }
  316. $result = array( "tdsy" => $tdsy,"qdjl" => $qdjl, "getweek" => $getweek,"new" => $list,"record" => $record, 'config'=>$this->config());
  317. return json($result);
  318. }
  319. /**
  320. * 获取本周所有日期
  321. */
  322. public function get_week($time = '', $format='Y-m-d'){
  323. $time = $time != '' ? $time : time();
  324. //获取当前周几
  325. $week = date('w', $time);
  326. $date = [];
  327. for ($i=1; $i<=7; $i++){
  328. $date[$i-1]['day'] = date('m.d',strtotime( '+' . $i-$week .' days', $time));
  329. $date[$i-1]['dates'] = date($format ,strtotime( '+' . $i-$week .' days', $time));
  330. $date[$i-1]['week']=$i;
  331. }
  332. return $date;
  333. }
  334. public function wdxh()
  335. {
  336. $config=config('site');
  337. $this->relationSearch = true;
  338. //如果发送的来源是Selectpage,则转发到Selectpage
  339. if ($this->request->request('keyField')) {
  340. return $this->selectpage();
  341. }
  342. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  343. $map['uid']=input('uid');
  344. $order='id desc';
  345. $total = model('Videolove')
  346. ->with('users')
  347. ->group('vid')
  348. ->where($where)
  349. ->where($map)
  350. ->count();
  351. $record = model('Videolove')
  352. ->with('users')
  353. ->group('vid')
  354. ->where($where)
  355. ->where($map)
  356. ->order($order)
  357. ->limit($offset, $limit)
  358. ->select();
  359. foreach ($record as $k=>$v){
  360. $videolist = DB::name('videolist')->where(['id'=>$v['vid']])->find();
  361. $record[$k]['vname']=$videolist['name'];
  362. $record[$k]['img']=$this->pissrc($videolist['img']);
  363. }
  364. $result = array("total" => $total, "rows" => $record,'config'=>$this->config());
  365. return json($result);
  366. }
  367. public function recordlist()
  368. {
  369. $config=config('site');
  370. $this->relationSearch = true;
  371. //如果发送的来源是Selectpage,则转发到Selectpage
  372. if ($this->request->request('keyField')) {
  373. return $this->selectpage();
  374. }
  375. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  376. $map['uid']=input('uid');
  377. $order='id desc';
  378. $total = model('Videorecord')
  379. ->with('users')
  380. ->group('vid')
  381. ->where($where)
  382. ->where($map)
  383. ->count();
  384. $record = model('Videorecord')
  385. ->with('users')
  386. ->group('vid')
  387. ->where($where)
  388. ->where($map)
  389. ->order($order)
  390. ->limit($offset, $limit)
  391. ->select();
  392. foreach ($record as $k=>$v){
  393. $v=DB::name('videorecord')->where(['vid'=>$v['vid'],'uid'=>input('uid')])->order('id desc')->find();
  394. $record[$k]=$v;
  395. $videolist = DB::name('videolist')->where(['id'=>$v['vid']])->find();
  396. $record[$k]['vname']=$videolist['name'];
  397. $record[$k]['img']=$this->pissrc($videolist['img']);
  398. $videocount = DB::name('video')->where(['pid'=>$v['vid']])->count();
  399. $videoweigh = DB::name('video')->where(['pid'=>$v['vid']])->order('weigh desc,id desc')->find();
  400. if($videolist['sum']<=$videocount){
  401. $record[$k]['mname']='完结';
  402. }else{
  403. $record[$k]['mname']='更新至'.$videoweigh['name'];
  404. }
  405. $video = DB::name('video')->where(['id'=>$v['mid']])->find();
  406. $record[$k]['dqname']='看到'.$video['name'];
  407. }
  408. $result = array("total" => $total, "rows" => $record,'config'=>$this->config());
  409. return json($result);
  410. }
  411. public function videolog()
  412. {
  413. $config=config('site');
  414. $this->relationSearch = true;
  415. //如果发送的来源是Selectpage,则转发到Selectpage
  416. if ($this->request->request('keyField')) {
  417. return $this->selectpage();
  418. }
  419. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  420. $map['uid']=input('uid');
  421. $order='id desc';
  422. $total = model('Videolog')
  423. ->with('users')
  424. ->group('vid')
  425. ->where($where)
  426. ->where($map)
  427. ->count();
  428. $record = model('Videolog')
  429. ->with('users')
  430. ->group('vid')
  431. ->where($where)
  432. ->where($map)
  433. ->order($order)
  434. ->limit($offset, $limit)
  435. ->select();
  436. foreach ($record as $k=>$v){
  437. $v=DB::name('videolog')->where(['vid'=>$v['vid'],'uid'=>input('uid')])->order('id desc')->find();
  438. $record[$k]=$v;
  439. $videolist = DB::name('videolist')->where(['id'=>$v['vid']])->find();
  440. $record[$k]['vname']=$videolist['name'];
  441. $record[$k]['img']=$this->pissrc($videolist['img']);
  442. $videocount = DB::name('video')->where(['pid'=>$v['vid']])->count();
  443. $videoweigh = DB::name('video')->where(['pid'=>$v['vid']])->order('weigh desc,id desc')->find();
  444. if($videolist['sum']<=$videocount){
  445. $record[$k]['mname']='完结';
  446. }else{
  447. $record[$k]['mname']='更新至'.$videoweigh['name'];
  448. }
  449. $video = DB::name('video')->where(['id'=>$v['mid']])->find();
  450. $record[$k]['dqname']='看到'.$video['name'];
  451. }
  452. $result = array("total" => $total, "rows" => $record,'config'=>$this->config());
  453. return json($result);
  454. }
  455. public function indexdata()
  456. {
  457. $map1=['videolist.lx'=>1,'videolist.status'=>'normal'];
  458. $list = model('Videolist')->with('users')->where($map1)->order('videolist.createtime desc')->limit(12)->select();
  459. $mapjq=['videolist.lx'=>1,'videolist.status'=>'normal'];
  460. $mapjq['videolist.story'] = ['neq',''];
  461. $listjq = model('Videolist')->with('users')->where($mapjq)->order('videolist.createtime desc')->limit(50)->select();
  462. $map2=['videolist.lx'=>1,'videolist.status'=>'normal'];
  463. $hotdata = model('Videolist')->with('users')->where($map2)->order('videolist.views desc')->limit(12)->select();
  464. $map3=['videolist.lx'=>1,'videolist.status'=>'normal'];
  465. $givedata = model('Videolist')->with('users')->where($map3)->order('videolist.give desc')->limit(12)->select();
  466. $mapbz=['videolist.lx'=>4,'videolist.status'=>'normal'];
  467. $listbz = model('Videolist')->with('users')->where($mapbz)->order('videolist.id desc')->limit(50)->select();
  468. $result = array("listbz" => $this->listadt($listbz),"new" => $this->listadt($list),"listjq" => $this->listadt($listjq),"hotdata" => $this->listadt($hotdata),"givedata" => $this->listadt($givedata), 'config'=>$this->config());
  469. return json($result);
  470. }
  471. public function listadt($list)
  472. {
  473. if($list){
  474. $config=config('site');
  475. foreach ($list as $k=>$v){
  476. $list[$k]['updatetime']=date('Y-m-d',$v['updatetime']);
  477. $lx=[1=>'视频',2=>'音频',3=>'小说',4=>'图片'];
  478. $list[$k]['lxname']=isset($lx[$list[$k]['lx']])?$lx[$list[$k]['lx']]:'其他';
  479. if(isset($v['users']['avatar'])){
  480. if(strpos($v['users']['avatar'],'http') !== false){
  481. $list[$k]['avatar']=$v['users']['avatar'];
  482. }else{
  483. if($v['users']['avatar']){
  484. $list[$k]['avatar']= $config['imgurl'].$v['users']['avatar'];
  485. }else{
  486. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  487. }
  488. }
  489. }else{
  490. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  491. }
  492. if(strpos($v['img'],'http') !== false){
  493. $list[$k]['img']=$v['img'];
  494. }else{
  495. if($v['img']){
  496. $list[$k]['img']= $config['imgurl'].$v['img'];
  497. }else{
  498. $list[$k]['img']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  499. }
  500. }
  501. }
  502. }
  503. return $list;
  504. }
  505. public function lists()
  506. {
  507. $config=config('site');
  508. $this->relationSearch = true;
  509. //如果发送的来源是Selectpage,则转发到Selectpage
  510. if ($this->request->request('keyField')) {
  511. return $this->selectpage();
  512. }
  513. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  514. if(input('uid',0)>0){
  515. $map['uid']=input('uid');
  516. }
  517. $order='videolist.createtime desc';
  518. if(input('ishot')){
  519. $map['videolist.ishot']=input('ishot');
  520. }
  521. // if(input('lx')){
  522. // $map['videolist.lx']=input('lx');
  523. // }
  524. if(input('lx')==3){
  525. $order='videolist.give desc';
  526. }else if(input('lx')==2){
  527. $map['videolist.price']=0;
  528. }
  529. $map['videolist.lx']=1;
  530. if(input('typeid')){
  531. $map['videolist.type'] = ['like', '%"'.input('typeid').'"%'];
  532. }
  533. if(input('addddid')){
  534. $map['videolist.adddd'] = ['like', '%"'.input('addddid').'"%'];
  535. }
  536. if(input('yearid')){
  537. $map['videolist.yearq'] = input('yearid');
  538. }
  539. if(input('type')){
  540. if(input('type')=='全部'){
  541. }else{
  542. $map['videolist.type']=input('type');
  543. }
  544. }
  545. if(input('keytext')){
  546. $map['videolist.name|videolist.id'] = ['like', '%'.input('keytext').'%'];
  547. }
  548. $map['videolist.status']='normal';
  549. $total = model('Videolist')
  550. ->with('users')
  551. ->where($where)
  552. ->where($map)
  553. ->count();
  554. $list = model('Videolist')
  555. ->with('users')
  556. ->where($where)
  557. ->where($map)
  558. ->order($order)
  559. ->limit($offset, $limit)
  560. ->select();
  561. if($list){
  562. foreach ($list as $k=>$v){
  563. $list[$k]['updatetime']=date('Y-m-d',$v['updatetime']);
  564. $lx=[1=>'视频',2=>'音频',3=>'小说',4=>'图片'];
  565. $list[$k]['lxname']=isset($lx[$list[$k]['lx']])?$lx[$list[$k]['lx']]:'其他';
  566. if(isset($v['users']['avatar'])){
  567. if(strpos($v['users']['avatar'],'http') !== false){
  568. $list[$k]['avatar']=$v['users']['avatar'];
  569. }else{
  570. if($v['users']['avatar']){
  571. $list[$k]['avatar']= $config['imgurl'].$v['users']['avatar'];
  572. }else{
  573. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  574. }
  575. }
  576. }else{
  577. $list[$k]['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  578. }
  579. if(strpos($v['img'],'http') !== false){
  580. $list[$k]['img']=$v['img'];
  581. }else{
  582. if($v['img']){
  583. $list[$k]['img']= $config['imgurl'].$v['img'];
  584. }else{
  585. $list[$k]['img']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  586. }
  587. }
  588. }
  589. }
  590. $typedata=['type'=>$this->fenlei('type'),'adddd'=>$this->fenlei('adddd'),'year'=>$this->fenlei('year'),'type2'=>$this->fenlei('type2'),'type3'=>$this->fenlei('type3'),'type4'=>$this->fenlei('type4')];
  591. $result = array("total" => $total, "rows" => $list, 'config'=>$this->config(),'typedata'=>$typedata);
  592. return json($result);
  593. }
  594. public function info()
  595. {
  596. $mid=input('mid',0);
  597. $config=config('site');
  598. //var_dump($where);
  599. $isvip=0;
  600. $Userdata=[];
  601. $datavideo_order=[];
  602. $datavideo_orderd=[];
  603. if(input('token')){
  604. $Userdata=$this->auth->getUserinfo();
  605. if($Userdata['group_id']==1){
  606. $isvip=0;
  607. }else{
  608. if($Userdata['dtime']>=time()){
  609. $isvip=2;
  610. }else{
  611. $isvip=1;
  612. }
  613. }
  614. }
  615. $list = model('Videolist')
  616. ->where(['id'=>input('id')])
  617. ->find();
  618. if($list){
  619. $list['updatetime']=date('Y-m-d',$list['updatetime']);
  620. if(strpos($list['img'],'http') !== false){
  621. $list['img']=$list['img'];
  622. }else{
  623. if($list['img']){
  624. $list['img']= $config['imgurl'].$list['img'].'?v='.time();
  625. }else{
  626. $list['img']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  627. }
  628. }
  629. }
  630. $price=$list['price']*1;
  631. $vipprice=$list['vipprice']*1;
  632. if($Userdata){
  633. $datavideo_order=Db::name('video_order')->where(['type'=>2,'lx'=>1,'sid'=>input('id'),'uid'=>$Userdata['id']])->find();//1 全章购买
  634. }
  635. $orders='weigh asc';
  636. $Video = model('Video')
  637. ->where(['pid'=>input('id')])
  638. ->order($orders)
  639. ->select();
  640. if($Video){
  641. foreach ($Video as $k=>$v){
  642. $Video[$k]['updatetime']=date('Y-m-d',$v['updatetime']);
  643. if(strpos($v['img'],'http') !== false){
  644. $Video[$k]['img']=$v['img'];
  645. }else{
  646. if($v['img']){
  647. $Video[$k]['img']= $config['imgurl'].$v['img'];
  648. }else{
  649. $Video[$k]['img']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  650. }
  651. }
  652. if(strpos($v['videourl'],'http') !== false){
  653. $Video[$k]['videourl']=$v['videourl'];
  654. }else{
  655. if($v['videourl']){
  656. $Video[$k]['videourl']= $config['imgurl'].$v['videourl'];
  657. }else{
  658. $Video[$k]['videourl']='';
  659. }
  660. }
  661. if($mid==$Video[$k]['id']){
  662. $list['videourl']=$Video[$k]['videourl'];
  663. $list['pid']=$Video[$k]['id'];
  664. $list['ji']=$Video[$k]['name'];
  665. $list['playIndex']=$k;
  666. $list['infos']=$Video[$k]['info'];
  667. $list['priced']=$Video[$k]['price'];
  668. $list['vippriced']=$Video[$k]['vipprice'];
  669. $list['syj']=isset($Video[$k-1]['id'])?$Video[$k-1]['id']:0;
  670. $list['xyj']=isset($Video[$k+1]['id'])?$Video[$k+1]['id']:0;
  671. }else if($mid==0){
  672. if($v['weigh']==1){
  673. $list['videourl']=$Video[$k]['videourl'];
  674. $list['pid']=$Video[$k]['id'];
  675. $list['ji']=$Video[$k]['name'];
  676. $list['playIndex']=0;
  677. $list['infos']=$Video[$k]['info'];
  678. $list['priced']=$Video[$k]['price'];
  679. $list['vippriced']=$Video[$k]['vipprice'];
  680. $list['syj']=0;
  681. $list['xyj']=isset($Video[$k+1]['id'])?$Video[$k+1]['id']:0;
  682. }
  683. }
  684. $Video[$k]['isplay']=0;
  685. $dataviod=[];
  686. if($Userdata){
  687. $dataviod=Db::name('video_order')->where(['type'=>2,'lx'=>2,'sid'=>input('id'),'uid'=>$Userdata['id'],'smid'=>$Video[$k]['id']])->find(); //单集购买
  688. }
  689. if($price==0){//判断是否全集购买
  690. $Video[$k]['isplay']=1;
  691. }else if($isvip>1 and $vipprice==0){
  692. $Video[$k]['isplay']=1;
  693. }else if($datavideo_order){
  694. $Video[$k]['isplay']=1;
  695. }
  696. if($Video[$k]['price']==0){//判断是否单集购买
  697. $Video[$k]['isplay']=1;
  698. }else if($isvip>1 and $Video[$k]['vipprice']==0){
  699. $Video[$k]['isplay']=1;
  700. }else if($dataviod){
  701. $Video[$k]['isplay']=1;
  702. }
  703. if($Video[$k]['isplay']==0){
  704. $Video[$k]['src']=$config['imgurl'].'/assets/mp3/1b626083-179ccf4b36011.wav?v='.$Video[$k]['id'];
  705. $Video[$k]['title']=$Video[$k]['name'].' 【未购买】';
  706. }else{
  707. $Video[$k]['src']=$Video[$k]['videourl'];
  708. $Video[$k]['title']=$Video[$k]['name'];//$list['name'].' '.
  709. }
  710. $Video[$k]['singer']=$list['uname'];
  711. $Video[$k]['coverImgUrl']=$Video[$k]['img'];
  712. }
  713. }
  714. if($mid==0){
  715. $mid=$list['pid'];
  716. }
  717. if($Userdata){
  718. $datavideo_orderd=Db::name('video_order')->where(['type'=>2,'lx'=>2,'sid'=>input('id'),'uid'=>$Userdata['id'],'smid'=>$mid])->find(); //2单集购买
  719. }
  720. $list['video']=$Video;
  721. $lx=[1=>'视频',2=>'音频',3=>'文章',3=>'图片'];
  722. $list['lxname']=isset($lx[$list['lx']])?$lx[$list['lx']]:'其他';
  723. $priced=$list['priced']*1;
  724. $vippriced=$list['vippriced']*1;
  725. $isplay=0;
  726. $isplayd=0;
  727. if($price==0){
  728. $isplay=1;
  729. }else if($isvip>1 and $vipprice==0){
  730. $isplay=1;
  731. }else if($datavideo_order){
  732. $isplay=1;
  733. }
  734. if($priced==0){
  735. //$isplay=1;
  736. $isplayd=1;
  737. }else if($isvip>1 and $vippriced==0){
  738. //$isplay=1;
  739. $isplayd=1;
  740. }else if($datavideo_orderd){
  741. //$isplay=1;
  742. $isplayd=1;
  743. }
  744. $list['isplayd']=$isplayd;
  745. $list['isplay']=$isplay;
  746. $list['isvip']=$isvip;
  747. $list['mrseek']=isset($config['mrseek'])?$config['mrseek']:15;
  748. return json($list);
  749. }
  750. public function infotp()
  751. {
  752. $mid=input('mid',0);
  753. $config=config('site');
  754. //var_dump($where);
  755. $isvip=0;
  756. $Userdata=[];
  757. $datavideo_order=[];
  758. $datavideo_orderd=[];
  759. if(input('token')){
  760. $Userdata=$this->auth->getUserinfo();
  761. if($Userdata['group_id']==1){
  762. $isvip=0;
  763. }else{
  764. if($Userdata['dtime']>=time()){
  765. $isvip=2;
  766. }else{
  767. $isvip=1;
  768. }
  769. }
  770. }
  771. $list = model('Videolist')
  772. ->where(['id'=>input('id')])
  773. ->find();
  774. if($list){
  775. $list['updatetime']=date('Y-m-d',$list['updatetime']);
  776. if(strpos($list['img'],'http') !== false){
  777. $list['img']=$list['img'];
  778. }else{
  779. if($list['img']){
  780. $list['img']= $config['imgurl'].$list['img'].'?v='.time();
  781. }else{
  782. $list['img']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  783. }
  784. }
  785. }
  786. $price=$list['price']*1;
  787. $vipprice=$list['vipprice']*1;
  788. if($Userdata){
  789. $datavideo_order=Db::name('video_order')->where(['type'=>2,'lx'=>1,'sid'=>input('id'),'uid'=>$Userdata['id']])->find();//1 全章购买
  790. }
  791. if($Userdata){
  792. $datavideo_orderd=Db::name('video_order')->where(['type'=>2,'lx'=>2,'sid'=>input('id'),'uid'=>$Userdata['id'],'smid'=>$mid])->find(); //2单集购买
  793. }
  794. $ud=[];
  795. if($list['pic']){
  796. $arr = explode(',', $list['pic']);
  797. foreach ($arr as $ka=>$va){
  798. $ud[]=$this->pissrc($va);
  799. }
  800. }
  801. $list['images']=$ud;
  802. $list['imageslength']=count($ud);
  803. //$this->pissrc($v['videourl']);
  804. $lx=[1=>'视频',2=>'音频',3=>'文章',3=>'图片'];
  805. $list['lxname']=isset($lx[$list['lx']])?$lx[$list['lx']]:'其他';
  806. $isplay=0;
  807. $isplayd=0;
  808. if($price==0){
  809. $isplay=1;
  810. }else if($isvip>1 and $vipprice==0){
  811. $isplay=1;
  812. }else if($datavideo_order){
  813. $isplay=1;
  814. }else if($isvip>1){
  815. //$isplay=1;
  816. $isplayd=1;
  817. }else if($datavideo_orderd){
  818. //$isplay=1;
  819. $isplayd=1;
  820. }
  821. $list['videoids']=isset($config['weixinxcx']['videoAd'])?$config['weixinxcx']['videoAd']:'';
  822. $list['isplayd']=$isplayd;
  823. $list['isplay']=$isplay;
  824. $list['isvip']=$isvip;
  825. $list['mrseek']=isset($config['mrseek'])?$config['mrseek']:15;
  826. return json($list);
  827. }
  828. public function orderlists()
  829. {
  830. $config=config('site');
  831. $this->relationSearch = true;
  832. //如果发送的来源是Selectpage,则转发到Selectpage
  833. if ($this->request->request('keyField')) {
  834. return $this->selectpage();
  835. }
  836. list($where, $sort, $order, $offset, $limit) = $this->buildparams();
  837. $order='video_order.id desc';
  838. $map['users.id']=input('uid');
  839. $map['video_order.type']=2;
  840. $total = model('VideoOrder')
  841. ->with('users')
  842. ->where($where)
  843. ->where($map)
  844. ->count();
  845. $list = model('VideoOrder')
  846. ->with('users')
  847. ->where($where)
  848. ->where($map)
  849. ->order($order)
  850. ->limit($offset, $limit)
  851. ->select();
  852. if($list){
  853. foreach ($list as $k=>$v){
  854. //var_dump($v['img']);
  855. $videolists=Db::name('videolist')->where(['id'=>$v['sid']])->find();
  856. $splx=isset($videolists['lx'])?$videolists['lx']:0;
  857. $list[$k]['time']=date('Y-m-d',$v['updatetime']);
  858. if($v['type']==1){
  859. $list[$k]['status_means']='未支付';//1未支付 2已支付
  860. }else if($v['type']==2){
  861. $list[$k]['status_means']='已支付';
  862. }
  863. $list[$k]['status']=1;
  864. $list[$k]['exchange_type']=3;
  865. $list[$k]['delivery_type']=1;
  866. $list[$k]['tp']=1;
  867. $list[$k]['splx']=$splx;
  868. //$list[$k]['name']=substr($v['name'],0,10);
  869. }
  870. }
  871. $result = array("total" => $total, "rows" => $list, 'config'=>$this->config());
  872. return json($result);
  873. }
  874. public function tjinfo()
  875. {
  876. $config=config('site');
  877. //var_dump($where);
  878. $list = model('Task')
  879. ->where(['id'=>input('id')])
  880. ->find();
  881. if($list){
  882. $odcount=model('TaskOrder')->where(['oid'=>$list['id'],'uid'=>input('uid',0)])->count();
  883. $TaskOrder=model('TaskOrder')->where(['id'=>input('rwid',0)])->find();
  884. if($TaskOrder){
  885. if($TaskOrder['buz']){
  886. $TaskOrder['buz']=json_decode($TaskOrder['buz'],true);
  887. }
  888. }
  889. $list['TaskOrder']=$TaskOrder;
  890. if($list['idsum']>$odcount){
  891. $list['islname']=1;
  892. }else{
  893. $list['islname']=2;
  894. }
  895. if($list['status']=='hidden'){
  896. $list['islname']=3;
  897. }
  898. $list['odcount']=$odcount;
  899. $UserGroup=model('UserGroup')->where(['id'=>$list['users']['group_id']])->find();
  900. if($list['buz']){
  901. $list['buz']=json_decode($list['buz'],true);
  902. }else{
  903. $list['buz']=[];
  904. }
  905. if($TaskOrder['buz']){
  906. $list['buz']=$TaskOrder['buz'];
  907. }
  908. if(isset($UserGroup['name'])){
  909. $list['Groupname']=$UserGroup['name'];
  910. }else{
  911. $list['Groupname']='';
  912. }
  913. $list['createtime']=date('Y-m-d H:i',$list['createtime']);
  914. if(isset($list['users']['avatar'])){
  915. if(strpos($list['users']['avatar'],'http') !== false){
  916. $list['avatar']=$list['users']['avatar'];
  917. }else{
  918. if($list['users']['avatar']){
  919. $list['avatar']= $config['imgurl'].$list['users']['avatar'];
  920. }else{
  921. $list['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  922. }
  923. }
  924. }else{
  925. $list['avatar']=$config['imgurl'].'/uploads/20200523/250b3f89b40ff3714b07cc51b4c2f63d.png';
  926. }
  927. }
  928. return json($list);
  929. }
  930. public function fenlei($tpie='type')
  931. {
  932. $tree = Tree::instance();
  933. $this->model = model('app\common\model\Category');
  934. $tree->init(collection($this->model->where(['type'=>$tpie])->order('weigh desc,id desc')->field('id,pid,name,nickname,image,type,flag')->select())->toArray(), 'pid');
  935. $fenlei = $tree->getTreeList($tree->getTreeArray(0), 'name');
  936. $groupdata[0]=['name'=>'全部','id'=>0];
  937. foreach ($fenlei as $k => $v) {
  938. $groupdata[$k+1]['name'] = $v['name'];
  939. $groupdata[$k+1]['id'] = $v['id'];
  940. }
  941. return $groupdata;
  942. }
  943. }