ShareController.class.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  1. <?php
  2. namespace Api\Controller;
  3. use Common\Controller\ApiController;
  4. class ShareController extends ApiController {
  5. public function __construct(){
  6. parent::__construct();
  7. }
  8. //好友动态、我的动态(不用传uid)
  9. public function user(){
  10. $uid = I('uid');
  11. if (empty($uid)){
  12. $uid = $this->userId;
  13. $condition = array('s.user_id'=>$uid);
  14. }else{
  15. $groupInfo = M('GroupUser')->where(array('user_id'=>$uid))->group('group_id')->field('group_id')->select();
  16. if (function_exists('array_column')){
  17. $groupIdArr = array_column($groupInfo, 'group_id');
  18. }else{
  19. foreach ($groupInfo as $r){
  20. $groupIdArr[] = $r['group_id'];
  21. }
  22. }
  23. $groupIdArr[] = 0;
  24. $condition = array('s.user_id'=>$uid,'share_status'=>1,'group_id'=>array('IN',$groupIdArr));
  25. }
  26. $lastId = I('last_id',0);
  27. $pageSize = I('page_size',15);
  28. if (empty($uid) || $uid<1000000){
  29. $data = array('code'=>1,'msg'=>'用户ID错误');
  30. $this->returnData($data);exit;
  31. }
  32. if ($lastId>0){
  33. $condition['share_id'] = array('LT',$lastId);
  34. }
  35. $courseJoin = ' s LEFT JOIN t_course c ON s.course_id=c.course_id';
  36. $res = M('Share')->join($courseJoin)->where($condition)->field('share_id,share_content,s.course_id,c.course_name,share_type as course_flag,s.operate_dt')->order('share_id desc')->limit($pageSize)->select();
  37. //echo M('Share')->getLastSql();exit;
  38. if ($res == NULL){
  39. $data = array('code'=>0,'msg'=>'', 'data'=>array());
  40. $this->returnData($data);exit;
  41. }
  42. $userNicknameArr = $this->getUserNickname();
  43. foreach ($res as $k=>$r){
  44. $shareRes = M('ShareUser')->join('sw LEFT JOIN t_user u ON sw.user_id=u.user_id')
  45. ->where(array('share_id'=>$r['share_id']))
  46. ->field('sw.user_id,u.user_icon,u.user_name')->select();
  47. foreach ($shareRes as $key=>$item){
  48. if(isset($userNicknameArr[$item['user_id']])){
  49. $shareRes[$key]['user_nickname'] = $userNicknameArr[$item['user_id']];
  50. }else{
  51. $shareRes[$key]['user_nickname'] = '';
  52. }
  53. $shareRes[$key]['user_icon'] = empty($item['user_icon'])?'':$item['user_icon'];
  54. $shareRes[$key]['user_name'] = empty($item['user_name'])?'':$item['user_name'];
  55. }
  56. $res[$k]['user_list'] = $shareRes;
  57. }
  58. $data = array('code'=>0,'msg'=>'', 'data'=>$res);
  59. $this->returnData($data);exit;
  60. }
  61. //全部好友动态
  62. public function index(){
  63. $lastId = I('last_id',0);
  64. $pageSize = I('page_size',15);
  65. $condition = array('share_status'=>1);
  66. if ($lastId>0){
  67. $condition['share_id'] = array('LT',$lastId);
  68. }
  69. $condition['user_id|ref_user_id'] = $this->userId;
  70. $condition['friend_status'] = 2;
  71. $friendRes = M('Friend')->where($condition)->field('user_id,ref_user_id,user_nickname,ref_user_nickname')->order('friend_id desc')->limit($pageSize)->select();
  72. if ($friendRes!=NULL){
  73. $userIdArr = array();
  74. $userNickArr = array();
  75. foreach ($friendRes as $r){
  76. if ($r['user_id']==$this->userId){
  77. $userIdArr[] = $r['ref_user_id'];
  78. $userNickArr[$r['ref_user_id']] = $r['ref_user_nickname'];
  79. }else{
  80. $userIdArr[] = $r['user_id'];
  81. $userNickArr[$r['user_id']] = $r['user_nickname'];
  82. }
  83. }
  84. }
  85. $userIdArr[] = $this->userId;
  86. if (count($userIdArr)==0){
  87. $data = array('code'=>1,'msg'=>'暂时没有好友', 'data'=>array());
  88. $this->returnData($data);exit;
  89. }
  90. $userIdArr = array_unique($userIdArr);
  91. $cons['s.user_id'] = array('IN',implode(',', $userIdArr));
  92. //获取我所在的群组
  93. $groupInfo = M('GroupUser')->where(array('user_id'=>$this->userId))->group('group_id')->field('group_id')->select();
  94. if (function_exists('array_column')){
  95. $groupIdArr = array_column($groupInfo, 'group_id');
  96. }else{
  97. foreach ($groupInfo as $r){
  98. $groupIdArr[] = $r['group_id'];
  99. }
  100. }
  101. $groupIdArr[] = 0;
  102. $cons['group_id'] = array('IN',$groupIdArr);
  103. $res = M('Share')->join(' s LEFT JOIN t_user u ON s.user_id=u.user_id LEFT JOIN t_course c ON s.course_id=c.course_id')
  104. ->where($cons)->field('share_id,s.user_id,share_content,s.course_id,c.course_name,share_type as course_flag,s.operate_dt,u.user_name,u.user_icon')
  105. ->order('share_id desc')->limit($pageSize)->select();
  106. //echo M('Share')->getLastSql();exit;
  107. if ($res == NULL){
  108. $data = array('code'=>0,'msg'=>'', 'data'=>array());
  109. $this->returnData($data);exit;
  110. }
  111. $userNicknameArr = $this->getUserNickname();
  112. foreach ($res as $k=>$r){
  113. if (empty($r['user_name'])){
  114. $res[$k]['user_name'] = '';
  115. }
  116. if (isset($userNickArr[$r['user_id']])){
  117. $res[$k]['user_nickname'] = $userNickArr[$r['user_id']];
  118. }else{
  119. $res[$k]['user_nickname'] = '';
  120. }
  121. if (empty($r['user_icon'])){
  122. $res[$k]['user_icon'] = '';
  123. }
  124. //获取好友点赞
  125. $shareRes = M('ShareUser')->join('sw LEFT JOIN t_user u ON sw.user_id=u.user_id')
  126. ->where(array('share_id'=>$r['share_id']))
  127. ->field('sw.user_id,u.user_icon,u.user_name')->select();
  128. foreach ($shareRes as $key=>$item){
  129. if(isset($userNicknameArr[$item['user_id']])){
  130. $shareRes[$key]['user_nickname'] = $userNicknameArr[$item['user_id']];
  131. }else{
  132. $shareRes[$key]['user_nickname'] = '';
  133. }
  134. $shareRes[$key]['user_icon'] = empty($item['user_icon'])?'':$item['user_icon'];
  135. $shareRes[$key]['user_name'] = empty($item['user_name'])?'':$item['user_name'];
  136. }
  137. $res[$k]['user_list'] = $shareRes;
  138. }
  139. $data = array('code'=>0,'msg'=>'', 'data'=>$res);
  140. $this->returnData($data);exit;
  141. }
  142. //分享自由记
  143. public function notepad(){
  144. $groupId = I('group_id');
  145. $courseId = I('course_id');
  146. if (empty($courseId) || $courseId<1000000){
  147. $data = array('code'=>1,'msg'=>'自由记ID错误');
  148. $this->returnData($data);exit;
  149. }
  150. /* $shareInfo = M('Share')->where(array('course_id'=>$courseId,'user_id'=>$this->userId,'share_type'=>2))->field('share_id')->find();
  151. if ($shareInfo!=NULL){
  152. $data = array('code'=>1,'msg'=>'该自由记已经分享过了');
  153. $this->returnData($data);exit;
  154. } */
  155. $info = M('Course')->where(array('course_id'=>$courseId))->field('course_name')->find();
  156. $shareContent = '发现了一个好的自由记《'.$info['course_name'].'》,推荐给你,拿去不谢!';
  157. $saveData = array('user_id'=>$this->userId,'course_id'=>$courseId,'group_id'=>$groupId,'share_content'=>$shareContent,'operate_dt'=>time(),'share_type'=>2);
  158. $share_id = M('Share')->add($saveData);
  159. $data = array('code'=>0,'msg'=>'分享自由记成功', 'data'=>'');
  160. $this->returnData($data);exit;
  161. }
  162. //分享课程
  163. public function course(){
  164. $groupId = I('group_id');
  165. $courseId = I('course_id');
  166. if (empty($courseId) || $courseId<1000000){
  167. $data = array('code'=>1,'msg'=>'课程ID错误');
  168. $this->returnData($data);exit;
  169. }
  170. /* $shareInfo = M('Share')->where(array('course_id'=>$courseId,'user_id'=>$this->userId,'share_type'=>1))->field('share_id')->find();
  171. if ($shareInfo!=NULL){
  172. $data = array('code'=>1,'msg'=>'该课程已经分享过了');
  173. $this->returnData($data);exit;
  174. } */
  175. $info = M('Course')->where(array('course_id'=>$courseId))->field('course_name')->find();
  176. $shareContent = '发现了一门好的课程《'.$info['course_name'].'》,推荐给你,拿去不谢!';
  177. $saveData = array('user_id'=>$this->userId,'course_id'=>$courseId,'group_id'=>$groupId,'share_content'=>$shareContent,'operate_dt'=>time(),'share_type'=>1);
  178. $share_id = M('Share')->add($saveData);
  179. $data = array('code'=>0,'msg'=>'分享课程成功', 'data'=>'');
  180. $this->returnData($data);exit;
  181. }
  182. //分享课程给用户
  183. public function course_user(){
  184. $user_id = I('user_id');
  185. $courseId = I('course_id');
  186. if (empty($courseId) || $courseId<1000000){
  187. $data = array('code'=>1,'msg'=>'课程ID错误');
  188. $this->returnData($data);exit;
  189. }
  190. $data = array('code'=>0,'msg'=>'分享课程成功', 'data'=>'');
  191. $this->returnData($data);exit;
  192. }
  193. //分享社区给用户
  194. public function choice_user(){
  195. $user_id = I('user_id');
  196. $choiceId = I('choice_id');
  197. if (empty($choiceId) || $choiceId<1000000){
  198. $data = array('code'=>1,'msg'=>'社区ID错误');
  199. $this->returnData($data);exit;
  200. }
  201. $data = array('code'=>0,'msg'=>'分享社区成功', 'data'=>'');
  202. $this->returnData($data);exit;
  203. }
  204. //分享对战结果
  205. public function pk(){
  206. $groupId = I('group_id');
  207. $recordId = I('record_id');
  208. $shareContent = I('share_content');
  209. if (empty($recordId)){
  210. $data = array('code'=>1,'msg'=>'对战ID错误');
  211. $this->returnData($data);exit;
  212. }
  213. if (empty($shareContent)){
  214. $data = array('code'=>1,'msg'=>'分享内容不能为空');
  215. $this->returnData($data);exit;
  216. }
  217. /* $shareInfo = M('Share')->where(array('record_id'=>$recordId,'user_id'=>$this->userId,'share_type'=>3))->field('share_id')->find();
  218. if ($shareInfo!=NULL){
  219. $data = array('code'=>1,'msg'=>'该对战已经分享过了');
  220. $this->returnData($data);exit;
  221. } */
  222. //$shareContent = '经过1分58秒的对战,我轻松赢得跟xxx的单词对抗赛,我就想问:还有谁!';
  223. $saveData = array('user_id'=>$this->userId,'course_id'=>$recordId,'group_id'=>$groupId,'share_content'=>$shareContent,'operate_dt'=>time(),'share_type'=>3);
  224. $share_id = M('Share')->add($saveData);
  225. $data = array('code'=>0,'msg'=>'分享对战成功', 'data'=>'');
  226. $this->returnData($data);exit;
  227. }
  228. //好友动态点赞
  229. public function zan(){
  230. $shareId = I('share_id');
  231. $info = M('ShareUser')->where(array('user_id'=>$this->userId,'share_id'=>$shareId))->field('sw_id')->find();
  232. if ($info!=NULL){
  233. $data = array('code'=>1,'msg'=>'请不要重复点赞');
  234. $this->returnData($data);exit;
  235. }
  236. $shareInfo = M('Share')->where(array('share_id'=>$shareId))->field('user_id')->find();
  237. if ($shareInfo==NULL){
  238. $data = array('code'=>1,'msg'=>'该分享不存在');
  239. $this->returnData($data);exit;
  240. }
  241. /* if ($shareInfo['user_id']==$this->userId){
  242. $data = array('code'=>0,'msg'=>'点赞成功');
  243. $this->returnData($data);exit;
  244. } */
  245. $noticeTitle = '占消息';
  246. $noticeContent = '您的好友给你点赞了,请查看吧。';
  247. M('User')->where(array('user_id'=>$shareInfo['user_id']))->setInc('zan_notice');
  248. M('Notice')->add(array('ref_user_id'=>$shareInfo['user_id'],'user_id'=>$this->userId,'share_type'=>3,'notice_title'=>$noticeTitle,'notice_content'=>$noticeContent,'operate_dt'=>time()));
  249. M('ShareUser')->add(array('user_id'=>$this->userId,'share_id'=>$shareId,'operate_dt'=>time()));
  250. $data = array('code'=>0,'msg'=>'点赞成功');
  251. $this->returnData($data);exit;
  252. }
  253. //删除分享
  254. public function del(){
  255. $shareId = I('share_id');
  256. $shareInfo = M('Share')->where(array('share_id'=>$shareId))->field('user_id')->find();
  257. if ($shareInfo==NULL && $shareInfo['user_id']!=$this->userId){
  258. $data = array('code'=>1,'msg'=>'无权删除该分享');
  259. $this->returnData($data);exit;
  260. }
  261. M('Share')->where(array('share_id'=>$shareId))->delete();
  262. $data = array('code'=>0,'msg'=>'分享删除成功');
  263. $this->returnData($data);exit;
  264. }
  265. //删除点赞
  266. public function delZan(){
  267. $swId = I('sw_id');
  268. $shareInfo = M('ShareUser')->where(array('sw_id'=>$swId))->field('user_id')->find();
  269. if ($shareInfo==NULL){
  270. $data = array('code'=>0,'msg'=>'已删除');
  271. $this->returnData($data);exit;
  272. }
  273. M('ShareUser')->where(array('sw_id'=>$swId))->delete();
  274. $data = array('code'=>0,'msg'=>'已删除');
  275. $this->returnData($data);exit;
  276. }
  277. public function url(){
  278. $url = 'http://www.hanlinyuanonline.com/api/download';
  279. $data = array('code'=>0,'msg'=>'','data'=>array('url'=>$url,'title'=>'碰词儿, 全能的单词助手'));
  280. $this->returnData($data);exit;
  281. }
  282. }