NotepadController.class.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <?php
  2. namespace Api\Controller;
  3. use Common\Controller\ApiController;
  4. class NotepadController extends ApiController {
  5. public function __construct(){
  6. parent::__construct();
  7. }
  8. //自由记列表
  9. public function index(){
  10. $sort = I('sort',1);
  11. $lastId = I('last_id',0);
  12. $pageSize = I('page_size',10);
  13. $keyword = I('keyword','');
  14. $condition = array('course_status'=>3,'course_flag'=>2);
  15. if (!empty($keyword)){
  16. $condition['course_name'] = array('LIKE','%'.$keyword.'%');
  17. }
  18. if ($lastId>0){
  19. $condition['course_id'] = array('LT',$lastId);
  20. }
  21. $orderby = '';
  22. if ($sort==1){
  23. $orderby = 'course_join desc';
  24. }else if($sort==2){
  25. $orderby = 'course_id desc';
  26. }
  27. $res = D('Notepad')->getNotepadList($condition, $pageSize, $orderby);
  28. if ($res!=NULL){
  29. $userWordsRes = $this->square();
  30. foreach ($res as $key=>$row){
  31. if (in_array($row['course_id'], $userWordsRes) || $row['user_id']==$this->userId){
  32. $res[$key]['is_add'] = 1;
  33. }else{
  34. $res[$key]['is_add'] = 0;
  35. }
  36. }
  37. }
  38. if ($res==NULL && $lastId>0){
  39. $data = array('code'=>0,'msg'=>'无更多数据','data'=>array());
  40. $this->returnData($data);exit;
  41. }
  42. $data = array('code'=>0,'msg'=>'','data'=>$res);
  43. $this->returnData($data);exit;
  44. }
  45. //获取已经添加的课程或者自由记
  46. private function square($uwType=0){
  47. $condition = array('user_id'=>$this->userId);
  48. if (!empty($uwType)){
  49. $condition['uw_type'] = $uwType;
  50. }
  51. $res = M('UserWords')->where($condition)->field('course_id')->select();
  52. if ($res==NULL){
  53. return array();
  54. }
  55. $arr = array();
  56. foreach ($res as $r){
  57. $arr[] = $r['course_id'];
  58. }
  59. return $arr;
  60. }
  61. //添加自由记到我的自由记
  62. public function favorite(){
  63. $courseId = I('course_id');
  64. if (empty($courseId) || $courseId<1000000){
  65. $data = array('code'=>1,'msg'=>'自由记ID错误');
  66. $this->returnData($data);exit;
  67. }
  68. $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1,'course_status'=>3))->field('course_id,user_id')->find();
  69. if ($courseInfo==NULL){
  70. $data = array('code'=>1,'msg'=>'自由记信息不存在');
  71. $this->returnData($data);exit;
  72. }
  73. if ($courseInfo['user_id']==$this->userId){
  74. $data = array('code'=>1,'msg'=>'自己添加的自由记无需添加');
  75. $this->returnData($data);exit;
  76. }
  77. //判断用户是否已经添加过该课程
  78. $userInfo = M('UserWords')->where(array('course_id'=>$courseId,'is_delete'=>1,'user_id'=>$this->userId))->field('uw_id')->find();
  79. if ($userInfo!=NULL){
  80. $data = array('code'=>1,'msg'=>'用户已经添加过该自由记,请勿重复添加');
  81. $this->returnData($data);exit;
  82. }
  83. M('UserWords')->add(array('course_id'=>$courseId,'user_id'=>$this->userId,'operate_dt'=>time()));
  84. M('Course')->where(array('course_id'=>$courseId))->setInc('course_join');
  85. $data = array('code'=>0,'msg'=>'已添加至我的自由记中','data'=>'');
  86. $this->returnData($data);exit;
  87. }
  88. //自由记详情
  89. public function detail(){
  90. $courseId = I('course_id');
  91. if (empty($courseId) || $courseId<1000000){
  92. $data = array('code'=>1,'msg'=>'自由记ID错误');
  93. $this->returnData($data);exit;
  94. }
  95. //$courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1,'course_status'=>3))->field('course_id,course_name,course_content,operate_dt')->find();
  96. $courseInfo = M('Course')->where(array('course_id'=>$courseId,'is_delete'=>1))->field('user_id,course_id,course_name,course_content,operate_dt')->find();
  97. if ($courseInfo==NULL){
  98. $data = array('code'=>1,'msg'=>'自由记信息不存在');
  99. $this->returnData($data);exit;
  100. }
  101. $userWordsRes = $this->square();
  102. if (in_array($courseInfo['course_id'], $userWordsRes) || $courseInfo['user_id']==$this->userId){
  103. $courseInfo['is_add'] = 1;
  104. }else{
  105. $courseInfo['is_add'] = 0;
  106. }
  107. if ($courseInfo['user_id']!=$this->userId){
  108. $fansInfo = M('Fans')->where(array('user_id'=>$this->userId,'fans_user_id'=>$courseInfo['user_id']))->field('fans_id')->find();
  109. $courseInfo['is_fans'] = $fansInfo==NULL?0:1;
  110. }else{
  111. $courseInfo['is_fans'] = 2;
  112. }
  113. $userInfo = M('User')->where(array('user_id'=>$courseInfo['user_id']))->field('user_id,user_name,user_icon')->find();
  114. $courseInfo['user_icon'] = $userInfo['user_icon'];
  115. $courseInfo['user_name'] = $userInfo['user_name'];
  116. $data = array('code'=>0,'msg'=>'','data'=>$courseInfo);
  117. $this->returnData($data);exit;
  118. }
  119. //添加自由记
  120. public function add(){
  121. $courseId = I('course_id','');
  122. $courseName = I('course_name','');
  123. $courseContent = I('course_content','');
  124. if (mb_strlen($courseName,'UTF8')<2 || mb_strlen($courseName,'UTF8')>40){
  125. $data = array('code'=>1,'msg'=>'自由记名称2到40个汉字',);
  126. $this->returnData($data);exit;
  127. }
  128. if (mb_strlen($courseContent,'UTF8')<2 || mb_strlen($courseContent,'UTF8')>10000){
  129. $data = array('code'=>1,'msg'=>'自由记名称2到10000个汉字',);
  130. $this->returnData($data);exit;
  131. }
  132. if (!empty($courseId)){
  133. $courseInfo = M('Course')->where(array('course_id'=>$courseId))->field('user_id')->find();
  134. if ($courseInfo==NULL || $courseInfo['user_id']!=$this->userId){
  135. $data = array('code'=>1,'msg'=>'暂无权限编辑该自由记',);
  136. $this->returnData($data);exit;
  137. }
  138. }
  139. $res = M('Course')->where(array('course_name'=>$courseName,'is_delete'=>1))->field('course_id')->find();
  140. //新增
  141. if (empty($courseId) && $res!=NULL){
  142. $courseName = $this->getNotepadName($courseName);
  143. }
  144. //更新
  145. if (!empty($courseId) && $courseId!=$res['course_id']){
  146. $courseName = $this->getNotepadName($courseName);
  147. }
  148. if (empty($courseId)){
  149. $courseId = M('Course')->add(array('user_id'=>$this->userId,'course_content'=>$courseContent,'course_name'=>$courseName,'course_source'=>2,'course_flag'=>2,'operate_dt'=>time()));
  150. }else{
  151. M('Course')->where(array('course_id'=>$courseId))->save(array('course_content'=>$courseContent,'course_name'=>$courseName));
  152. }
  153. $noteRes = M('Course')->where(array('course_id'=>$courseId))->field('course_id,course_name,course_content,operate_dt')->find();
  154. $data = array('code'=>0,'msg'=>'','data'=>$noteRes);
  155. $this->returnData($data);exit;
  156. }
  157. //删除自由记
  158. public function del(){
  159. $courseId = I('course_id','');
  160. if (empty($courseId)){
  161. $data = array('code'=>1,'msg'=>'自由记ID错误');
  162. $this->returnData($data);exit;
  163. }
  164. $courseIds = rtrim($courseIds,',');
  165. M('UserWords')->where(array('course_id'=>array('IN',$courseId),'user_id'=>$this->userId,))->delete();
  166. M('Course')->where(array('course_id'=>array('IN',$courseId),'user_id'=>$this->userId,'course_status'=>array('neq',3),))->delete();
  167. $data = array('code'=>0,'msg'=>'自由记删除成功','data'=>'');
  168. $this->returnData($data);exit;
  169. }
  170. //上传到单词广场
  171. public function upSquare(){
  172. $courseId = I('course_id','');
  173. if (empty($courseId)){
  174. $data = array('code'=>1,'msg'=>'自由记ID错误');
  175. $this->returnData($data);exit;
  176. }
  177. $courseId = rtrim($courseId,',');
  178. M('Course')->where(array('course_id'=>array('IN',$courseId)))->save(array('course_status'=>2));
  179. $data = array('code'=>0,'msg'=>'上传成功,请等待管理员审核!','data'=>'');
  180. $this->returnData($data);exit;
  181. }
  182. //获取课程名称相同时,新的课程名称
  183. private function getNotepadName($courseName){
  184. $course = M('Course')->where(array('course_name'=>$courseName,'is_delete'=>1))->field('course_id')->find();
  185. $res = M('TitleNum')->where(array('title_name'=>$courseName,'title_source'=>2))->field('title_id,title_num')->find();
  186. if ($res!=NULL){
  187. $courseName = $courseName.'('.($res['title_num']+1).')';
  188. M('TitleNum')->where(array('title_id'=>$res['title_id']))->setInc('title_num');
  189. }else if($course!=NULL){
  190. $courseName = $courseName.'('.($res['title_num']+1).')';
  191. M('TitleNum')->add(array('title_name'=>$courseName,'operate_dt'=>time()));
  192. //$courseName = $courseName;
  193. }
  194. return $courseName;
  195. }
  196. }