UseradvertController.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. <?php
  2. /**
  3. * 用户发布的广告视频
  4. */
  5. namespace app\admin\controller;
  6. use cmf\controller\AdminBaseController;
  7. use think\facade\Db;
  8. use think\db\Query;
  9. class UseradvertController extends AdminbaseController {
  10. protected function getStatus($k=''){
  11. $status=array(
  12. '0'=>'待审核',
  13. '1'=>'审核通过',
  14. '2'=>'拒绝',
  15. );
  16. if($k===''){
  17. return $status;
  18. }
  19. return isset($status[$k])?$status[$k]:'';
  20. }
  21. protected function getDel($k=''){
  22. $del=array(
  23. '0'=>'未下架',
  24. '1'=>'已下架',
  25. );
  26. if($k===''){
  27. return $del;
  28. }
  29. return isset($del[$k])?$del[$k]:'';
  30. }
  31. /*广告列表*/
  32. public function index(){
  33. $p = $this->request->param('p');
  34. if(!$p){
  35. $p=1;
  36. }
  37. $lists = Db::name('user_video')
  38. ->where(function (Query $query) {
  39. $data = $this->request->param();
  40. $query->where('is_ad', '0');
  41. $query->where('is_userad', '1');
  42. $keyword=isset($data['keyword']) ? $data['keyword']: '';
  43. if (!empty($keyword)) {
  44. $query->where('uid|id', '=' , $keyword);
  45. }
  46. $keyword1=isset($data['keyword1']) ? $data['keyword1']: '';
  47. if (!empty($keyword1)) {
  48. $query->where('title', 'like', "%$keyword1%");
  49. }
  50. $keyword2=isset($data['keyword2']) ? $data['keyword2']: '';
  51. if (!empty($keyword2)) {
  52. $userlist =Db::name("user")->field("id")
  53. ->where("user_nickname like '%".$keyword2."%'")
  54. ->select();
  55. $strids="";
  56. foreach($userlist as $ku=>$vu){
  57. if($strids==""){
  58. $strids=$vu['id'];
  59. }else{
  60. $strids.=",".$vu['id'];
  61. }
  62. }
  63. $query->where('uid', 'in', $strids);
  64. }
  65. })
  66. ->order("orderno desc,addtime DESC")
  67. ->paginate(20);
  68. $lists->each(function($v,$k){
  69. if($v['uid']==0){
  70. $userinfo=array(
  71. 'user_nickname'=>'系统管理员'
  72. );
  73. }else{
  74. $userinfo=getUserInfo($v['uid']);
  75. if(!$userinfo){
  76. $userinfo=array(
  77. 'user_nickname'=>'已删除'
  78. );
  79. }
  80. }
  81. $v['userinfo']=$userinfo;
  82. $v['thumb']=get_upload_path($v['thumb']);
  83. $ad_endtime='';
  84. if($v['ad_endtime'] == 0){
  85. $v['ad_endtime']='---';
  86. }else{
  87. $ad_endtime=(int)$v['ad_endtime'];
  88. $v['ad_endtime']=date('Y-m-d',$ad_endtime);
  89. }
  90. return $v;
  91. });
  92. //分页-->筛选条件参数
  93. $data = $this->request->param();
  94. $lists->appends($data);
  95. // 获取分页显示
  96. $page = $lists->render();
  97. $this->assign('lists', $lists);
  98. $this->assign("page", $page);
  99. $this->assign("p",$p);
  100. $this->assign("status", $this->getStatus());
  101. $this->assign("isdel", $this->getDel());
  102. return $this->fetch();
  103. }
  104. //删除视频
  105. public function del(){
  106. $res=array("code"=>0,"msg"=>"删除成功","info"=>array());
  107. $data = $this->request->param();
  108. $id=$data['id'];
  109. $reason=$data["reason"];
  110. if(!$id){
  111. $res['code']=1001;
  112. $res['msg']='视频信息加载失败';
  113. echo json_encode($res);
  114. return;
  115. }
  116. $result=Db::name("user_video")->where("id={$id}")->delete();
  117. if($result!==false){
  118. Db::name("user_video_comments_at_messages")->where("videoid={$id}")->delete(); //删除视频评论@信息列表
  119. Db::name("user_video_comments_messages")->where("videoid={$id}")->delete(); //删除视频评论信息列表
  120. Db::name("praise_messages")->where("videoid={$id}")->delete(); //删除赞通知列表
  121. Db::name("user_video_comments")->where("videoid={$id}")->delete(); //删除视频评论
  122. Db::name("user_video_like")->where("videoid={$id}")->delete(); //删除视频喜欢
  123. Db::name("user_video_report")->where("videoid={$id}")->delete(); //删除视频举报
  124. Db::name("user_video_comments_like")->where("videoid={$id}")->delete(); //删除视频评论喜欢
  125. $res['msg']='广告删除成功';
  126. echo json_encode($res);
  127. return;
  128. }else{
  129. $res['code']=1002;
  130. $res['msg']='广告删除失败';
  131. echo json_encode($res);
  132. return;
  133. }
  134. }
  135. //通过/拒绝
  136. public function setStatus(){
  137. $rs=array('code'=>0,'msg'=>'','info'=>array());
  138. $data = $this->request->param();
  139. $id=$data['id'];
  140. $status=$data['status'];
  141. $reason=$data['reason'];
  142. if(!$id){
  143. $rs['code']=1001;
  144. $rs['msg']='信息错误';
  145. echo json_encode($rs);
  146. return;
  147. }
  148. $result=Db::name("user_video")->where("id={$id}")->update(array("status"=>$status,'reason'=>$reason));
  149. if(!$result){
  150. $rs['code']=1001;
  151. $rs['msg']='处理失败';
  152. echo json_encode($rs);
  153. return;
  154. }
  155. $videoInfo=Db::name("user_video")->where("id={$id}")->find();
  156. $uid=$videoInfo['uid'];
  157. $baseMsg='您于'.date("Y-m-d H:i:s",$videoInfo['addtime']).$videoTitle.'广告视频被管理员于'.date("Y-m-d H:i:s",time()).'审核为';
  158. if($status==1){
  159. $text="广告视频审核通过提醒";
  160. $baseMsg.='通过';
  161. }else{
  162. $text="广告视频审核失败提醒";
  163. $baseMsg.='不通过。';
  164. if($reason!=''){
  165. $baseMsg.='审核意见:'.$reason;
  166. }
  167. }
  168. $result1=addSysytemInfo($uid,$text,$baseMsg);
  169. if($result1!==false){
  170. //发送腾讯云IM
  171. txMessageIM($text,$uid);
  172. }
  173. $rs['msg']='处理成功';
  174. echo json_encode($rs);
  175. }
  176. //下架/上架
  177. public function setDel(){
  178. $data = $this->request->param();
  179. $id=$data['id'];
  180. $isdel=$data['isdel'];
  181. if(!$id){
  182. $this->error("信息错误");
  183. }
  184. $result=Db::name("user_video")->where("id={$id}")->update(array("isdel"=>$isdel));
  185. if($result!==false){
  186. if($isdel==1){
  187. //将视频喜欢列表的状态更改
  188. Db::name("user_video_like")->where("videoid={$id}")->update(['status'=>0]);
  189. //将点赞信息列表里的状态修改
  190. Db::name("praise_messages")->where("videoid={$id}")->update(['status'=>0]);
  191. //将评论@信息列表的状态更改
  192. Db::name("user_video_comments_at_messages")->where("videoid={$id}")->update(['status'=>0]);
  193. //将评论信息列表的状态更改
  194. Db::name("user_video_comments_messages")->where("videoid={$id}")->update(['status'=>0]);
  195. //更新此视频的举报信息
  196. $data1=array(
  197. 'status'=>1,
  198. 'uptime'=>time()
  199. );
  200. Db::name("user_video_report")->where("videoid={$id}")->update($data1);
  201. }
  202. if($isdel==0){
  203. //将视频喜欢列表的状态更改
  204. Db::name("user_video_like")->where("videoid={$id}")->update(['status'=>1]);
  205. //将点赞信息列表里的状态修改
  206. Db::name("praise_messages")->where("videoid={$id}")->update(['status'=>1]);
  207. //将评论@信息列表的状态更改
  208. Db::name("user_video_comments_at_messages")->where("videoid={$id}")->update(['status'=>1]);
  209. //将评论信息列表的状态更改
  210. Db::name("user_video_comments_messages")->where("videoid={$id}")->update(['status'=>1]);
  211. }
  212. $this->success("操作成功");
  213. }else{
  214. $this->error("操作失败");
  215. }
  216. }
  217. //观看视频
  218. public function video_listen(){
  219. $id = $this->request->param('id');
  220. if(!$id||$id==""||!is_numeric($id)){
  221. $this->error("加载失败");
  222. }else{
  223. //获取音乐信息
  224. $info=Db::name("user_video")->where("id={$id}")->find();
  225. $info['thumb']=get_upload_path($info['thumb']);
  226. $info['href']=get_upload_path($info['href']);
  227. $this->assign("info",$info);
  228. }
  229. return $this->fetch();
  230. }
  231. //评论列表
  232. public function commentlists(){
  233. $data = $this->request->param();
  234. $videoid=$data['videoid'];
  235. $lists = Db::name('user_video_comments')
  236. ->where("videoid={$videoid}")
  237. ->order("addtime DESC")
  238. ->paginate(20);
  239. $lists->each(function($v,$k){
  240. $userinfo=getUserInfo($v['uid']);
  241. if(!$userinfo){
  242. $userinfo=array(
  243. 'user_nickname'=>'已删除'
  244. );
  245. }
  246. $v['user_nickname']=$userinfo['user_nickname'];
  247. if($v['voice']){
  248. $v['voice']=get_upload_path($v['voice']);
  249. }
  250. return $v;
  251. });
  252. //分页-->筛选条件参数
  253. $lists->appends($data);
  254. // 获取分页显示
  255. $page = $lists->render();
  256. $this->assign("lists",$lists);
  257. $this->assign("page", $page);
  258. return $this->fetch();
  259. }
  260. }