Huodong.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. <?php
  2. namespace app\api\controller\zzz;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. *
  7. */
  8. class Huodong extends Api
  9. {
  10. protected $noNeedLogin = ['typelist','duixianglist','huodong_list','huodong_info','huodong_joinuser'];
  11. protected $noNeedRight = ['*'];
  12. //活动类型
  13. public function typelist()
  14. {
  15. $list = Db::name('zzz_hdtype')->field('id, name')->select();
  16. $this->success(1, $list);
  17. }
  18. //邀约对象
  19. public function duixianglist(){
  20. $list = Db::name('zzz_hdyaoyue')->field('id, name')->select();
  21. $this->success(1, $list);
  22. }
  23. //发布活动
  24. public function addone(){
  25. $data = [
  26. 'user_id' => $this->auth->id,
  27. 'type_id' => input('type_id',0),
  28. 'didian' => input('didian',''),
  29. 'yaoyue' => input('yaoyue',''),
  30. 'starttime' => input('starttime','','strtotime'),
  31. 'endtime' => input('endtime','','strtotime'),
  32. 'info' => input('info',''),
  33. 'image' => input('image',''),
  34. 'createtime' => time(),
  35. ];
  36. $data['typename'] = Db::name('zzz_hdtype')->where('id',$data['type_id'])->value('name');
  37. Db::name('zzz_huodong')->insertGetId($data);
  38. $this->success();
  39. }
  40. //活动列表
  41. public function huodong_list(){
  42. $type_id = input('type_id',0);
  43. //是否屏蔽
  44. $map = [];
  45. if($this->auth->isLogin()){
  46. $screen_ids = Db::name('zzz_huodong_screen')->where('user_id',$this->auth->id)->column('huodong_id');
  47. if(!empty($screen_ids)){
  48. $map['hd.id'] = ['NOTIN',$screen_ids];
  49. }
  50. }
  51. $where = [];
  52. if(!empty($type_id)){
  53. $where['hd.type_id'] = $type_id;
  54. }
  55. $list = Db::name('zzz_huodong')->alias('hd')
  56. ->field('hd.*,user.avatar,user.nickname,user.gender')
  57. ->join('user','hd.user_id = user.id','LEFT')
  58. ->where($where)
  59. ->where($map)
  60. ->autopage()
  61. ->order('hd.id desc')
  62. ->select();
  63. $list = list_domain_image($list,['image']);
  64. if(!empty($list)){
  65. //我参与的活动ids
  66. $my_join_log = [];
  67. if($this->auth->isLogin()){
  68. $hd_ids = array_column($list,'id');
  69. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id','IN',$hd_ids)->column('hd_id');
  70. }
  71. foreach($list as $key => &$val){
  72. //是否已加入
  73. $val['is_joined'] = 0;
  74. if(in_array($val['id'],$my_join_log)){
  75. $val['is_joined'] = 1;
  76. }
  77. //显示时间
  78. $val['showtime'] = get_last_time($val['createtime']);
  79. }
  80. }
  81. $this->success(1, $list);
  82. }
  83. //活动详情
  84. public function huodong_info(){
  85. $id = input('id',0);
  86. $info = Db::name('zzz_huodong')->alias('hd')
  87. ->field('hd.*,user.avatar,user.nickname,user.gender')
  88. ->join('user','hd.user_id = user.id','LEFT')
  89. ->where('hd.id',$id)
  90. ->find();
  91. if(empty($info)){
  92. $this->error('不存在的活动');
  93. }
  94. $info = info_domain_image($info,['image']);
  95. //是否已加入
  96. $info['is_joined'] = 0;
  97. if($this->auth->isLogin()){
  98. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id',$id)->find();
  99. if($my_join_log){
  100. $info['is_joined'] = 1;
  101. }
  102. }
  103. //显示时间
  104. $info['showtime'] = get_last_time($info['createtime']);
  105. $this->success(1, $info);
  106. }
  107. //活动报名
  108. public function huodong_join(){
  109. $id = input('id',0);
  110. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id',$id)->find();
  111. if($my_join_log){
  112. $this->error('不能重复报名');
  113. }
  114. $data = [
  115. 'hd_id' => $id,
  116. 'user_id' => $this->auth->id,
  117. 'createtime' => time(),
  118. ];
  119. Db::name('zzz_hd_joinlog')->insertGetId($data);
  120. $this->success();
  121. }
  122. //我发起的
  123. public function huodong_myfabu(){
  124. $where = [];
  125. $where['hd.user_id'] = $this->auth->id;
  126. $list = Db::name('zzz_huodong')->alias('hd')
  127. ->field('hd.*,user.avatar,user.nickname,user.gender')
  128. ->join('user','hd.user_id = user.id','LEFT')
  129. ->where($where)
  130. ->autopage()
  131. ->order('hd.id desc')
  132. ->select();
  133. $list = list_domain_image($list,['image']);
  134. if(!empty($list)){
  135. //我参与的活动ids
  136. $hd_ids = array_column($list,'id');
  137. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id','IN',$hd_ids)->column('hd_id');
  138. foreach($list as $key => &$val){
  139. //是否已加入
  140. $val['is_joined'] = 0;
  141. if(in_array($val['id'],$my_join_log)){
  142. $val['is_joined'] = 1;
  143. }
  144. //显示时间
  145. $val['showtime'] = get_last_time($val['createtime']);
  146. }
  147. }
  148. $this->success(1, $list);
  149. }
  150. //我报名的
  151. public function huodong_myjoin(){
  152. $where = [];
  153. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->column('hd_id');
  154. $where['hd.id'] = ['IN',$my_join_log];
  155. $list = Db::name('zzz_huodong')->alias('hd')
  156. ->field('hd.*,user.avatar,user.nickname,user.gender')
  157. ->join('user','hd.user_id = user.id','LEFT')
  158. ->where($where)
  159. ->autopage()
  160. ->order('hd.id desc')
  161. ->select();
  162. $list = list_domain_image($list,['image']);
  163. if(!empty($list)){
  164. foreach($list as $key => &$val){
  165. $val['is_joined'] = 1;
  166. //显示时间
  167. $val['showtime'] = get_last_time($val['createtime']);
  168. }
  169. }
  170. $this->success(1, $list);
  171. }
  172. //某活动的报名人员列表
  173. public function huodong_joinuser(){
  174. $id = input('id',0);
  175. $list = Db::name('zzz_hd_joinlog')->alias('log')
  176. ->field('log.*,user.avatar,user.nickname,user.gender')
  177. ->join('user','log.user_id = user.id','LEFT')
  178. ->where('hd_id',$id)->select();
  179. $this->success(1, $list);
  180. }
  181. //取消报名
  182. public function huodong_join_cancel(){
  183. $id = input('id',0);
  184. Db::name('zzz_hd_joinlog')
  185. ->where('user_id',$this->auth->id)
  186. ->where('hd_id',$id)->delete();
  187. $this->success();
  188. }
  189. //不感兴趣
  190. public function screen(){
  191. $id = input('id',0);
  192. $data = [
  193. 'huodong_id' => $id,
  194. 'user_id' => $this->auth->id,
  195. ];
  196. Db::name('zzz_huodong_screen')->insertGetId($data);
  197. $this->success();
  198. }
  199. }