AlarmController.class.php 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. namespace Admin\Controller;
  3. use Common\Controller\AdminController;
  4. class AlarmController extends AdminController {
  5. public function __construct(){
  6. parent::__construct();
  7. }
  8. public function index(){
  9. $page = I('get.p','1');
  10. session('page',$page);
  11. $condition = array('is_delete'=>1,'notice_flag'=>array('IN','5,6,7'));
  12. $count = M('Notice')->where($condition)->count();
  13. //分页
  14. $Page = new \Think\Page($count);
  15. $show = $Page->show();
  16. $noticeList = M('Notice')->where($condition)->field()->order('notice_id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
  17. foreach($noticeList as $k=>$v){
  18. $tmp=json_decode($v['extra'],1);
  19. $wc_id=$tmp['wc_id'];
  20. $checkinfo = M('words_check')->where(array('wc_id'=>$wc_id))->field('*')->find();
  21. if($v['notice_flag']==5){
  22. if($checkinfo['wc_status']==0){
  23. $noticeList[$k]['status_info']='未处理';
  24. }elseif($checkinfo['wc_status']==1){
  25. $noticeList[$k]['status_info']='已通过';
  26. }else{
  27. $noticeList[$k]['status_info']='未通过';
  28. }
  29. }else{
  30. $noticeList[$k]['status_info']='';
  31. }
  32. $noticeList[$k]['wc_info']=$checkinfo;
  33. if($v['notice_read']==0){
  34. $c=session('alarm');
  35. $c--;
  36. session('alarm',$c);
  37. M('Notice')->where(array('notice_id'=>$v['notice_id']))->save(array('notice_read'=>1));
  38. }
  39. }
  40. $this->assign('page',$show);
  41. $this->assign('list',$noticeList);
  42. $this->display();
  43. }
  44. public function refuse(){
  45. $noticeId = I('notice_id','');
  46. $this->assign('notice_id',$noticeId);
  47. $this->display();
  48. }
  49. public function info(){
  50. $noticeId = I('notice_id','');
  51. $wordsKeys = array('n'=>'words_n','pron'=>'words_pron','adj'=>'words_adj','num'=>'words_num','v'=>'words_v','adv'=>'words_adv','art'=>'words_art',
  52. 'prep'=>'words_prep','conj'=>'words_conj','int'=>'words_int','vt'=>'words_vt','vi'=>'words_vi','other'=>'words_other',);
  53. if (empty($noticeId)){
  54. $this->error("通知消息ID错误",'/admin/alarm/index');
  55. }
  56. $info = M('Notice')->where(array('notice_id'=>$noticeId))->find();
  57. $tmp=json_decode($info['extra'],1);
  58. $wc_id=$tmp['wc_id'];
  59. $checkinfo = M('words_check')->where(array('wc_id'=>$wc_id))->field('*')->find();
  60. if(!$checkinfo){
  61. $this->error("审核信息错误",'/admin/alarm/index');
  62. }
  63. $info = json_decode($checkinfo['wc_json'],1);
  64. $where=array();
  65. $where['course_id']=$checkinfo['course_id'];
  66. $where['words_id']=$checkinfo['words_id'];
  67. $info2 = M('Words')->where($where)->field('*')->find();
  68. if(!$info2){
  69. $this->error("原课程单词信息获取失败",'/admin/alarm/index');
  70. }
  71. $dif=array();
  72. foreach($info as $k=>$v){
  73. if(in_array($k,array('id','words_voice1','words_voice2')))continue;
  74. if($v!=$info2[$k]){
  75. $dif[]=$k;
  76. }
  77. }
  78. if($info['words_img']){
  79. $arr=explode(',',$info['words_img']);
  80. $info['words_img1']=$arr[0];
  81. $info['words_img2']=$arr[1];
  82. $info['words_img3']=$arr[2];
  83. }
  84. $this->assign('info',$info);
  85. $this->assign('dif',$dif);
  86. $this->assign('notice_id',$noticeId);
  87. $this->assign('wordsKeys', $wordsKeys);
  88. $this->assign('status', $checkinfo['wc_status']);
  89. $this->assign('wc_content', $checkinfo['wc_content']);
  90. $this->display();
  91. }
  92. public function check(){
  93. $noticeId = I('notice_id','');
  94. $wc_status= I('wc_status','');
  95. $wc_content = I('wc_content','');
  96. if (empty($noticeId)){
  97. $this->error("通知消息ID错误",'/admin/alarm/index');
  98. }
  99. $info = M('Notice')->where(array('notice_id'=>$noticeId))->find();
  100. $tmp=json_decode($info['extra'],1);
  101. $wc_id=$tmp['wc_id'];
  102. $checkinfo = M('words_check')->where(array('wc_id'=>$wc_id))->field('*')->find();
  103. M('words_check')->where(array('wc_id'=>$wc_id))->save(array('wc_status'=>$wc_status,'wc_content'=>$wc_content));
  104. $saveData=json_decode($checkinfo['wc_json'],1);
  105. $courseInfo = M('Course')->where(array('course_id'=>$saveData['course_id'],'is_delete'=>1))->field('course_id,user_id,course_name,course_num,course_status,course_source')->find();
  106. if($wc_status==1){
  107. if($checkinfo['words_id']){
  108. M('Words')->where(array('words_id'=>$checkinfo['words_id']))->save($saveData);
  109. }
  110. $Content="亲爱的小主,您提交的关于课程《".$courseInfo['course_name']."》的修改,作者已同意修改,并已更新课程内容";
  111. $temp=array();
  112. $temp['wc_id']=$checkinfo['wc_id'];
  113. M('Notice')->add(array('ref_user_id'=>$checkinfo['user_id'],'user_id'=>$this->userId,'notice_flag'=>6,'notice_status'=>1,'notice_type'=>0,'notice_title'=>'课程修改审核通过','notice_content'=>$Content,'operate_dt'=>time(),'extra'=>json_encode($temp)));
  114. M('User')->where(array('user_id'=>$checkinfo['user_id']))->setInc('sys_notice');
  115. $data = json_encode(array('type'=>0,'msg'=>$Content,'data'=>array('title'=>"课程修改审核通过",'wc_id'=>$checkinfo['wc_id'],'course_id'=>$saveData['course_id'],'words_id'=>$saveData['words_id'],'content'=>$Content)));
  116. }else{
  117. $Content="亲爱的小主,您提交的关于课程《".$courseInfo['course_name']."》的修改,作者拒绝修改,拒绝原因:".$wc_content;
  118. $temp=array();
  119. $temp['wc_id']=$checkinfo['wc_id'];
  120. M('Notice')->add(array('ref_user_id'=>$checkinfo['user_id'],'user_id'=>$this->userId,'notice_flag'=>7,'notice_status'=>1,'notice_type'=>0,'notice_title'=>'课程修改审核不通过','notice_content'=>$Content,'operate_dt'=>time(),'extra'=>json_encode($temp)));
  121. M('User')->where(array('user_id'=>$checkinfo['user_id']))->setInc('sys_notice');
  122. $data = json_encode(array('type'=>0,'msg'=>$Content,'data'=>array('title'=>"课程修改审核不通过",'wc_id'=>$checkinfo['wc_id'],'course_id'=>$saveData['course_id'],'words_id'=>$saveData['words_id'],'content'=>$Content)));
  123. }
  124. $uid=$checkinfo['user_id'];
  125. $url="http://www.hanlinyuanonline.com/api/choice/push?uid=".$uid."&data=".urlencode(base64_encode(json_encode($data)));
  126. $ch = curl_init();
  127. curl_setopt($ch, CURLOPT_URL, $url);
  128. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  129. $output = curl_exec($ch);
  130. curl_close($ch);
  131. $this->success('消息处理成功','/admin/alarm/index');
  132. }
  133. }