Video.php 45 KB

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