Huodong.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  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'];
  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. $where = [];
  44. if(!empty($type_id)){
  45. $where['hd.type_id'] = $type_id;
  46. }
  47. $list = Db::name('zzz_huodong')->alias('hd')
  48. ->field('hd.*,user.avatar,user.nickname,user.gender')
  49. ->join('user','hd.user_id = user.id','LEFT')
  50. ->where($where)
  51. ->autopage()
  52. ->order('hd.id desc')
  53. ->select();
  54. $list = list_domain_image($list,['image']);
  55. if(!empty($list)){
  56. //我参与的活动ids
  57. $hd_ids = array_column($list,'id');
  58. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id','IN',$hd_ids)->column('hd_id');
  59. foreach($list as $key => &$val){
  60. //是否已加入
  61. $val['is_joined'] = 0;
  62. if(in_array($val['id'],$my_join_log)){
  63. $val['is_joined'] = 1;
  64. }
  65. //显示时间
  66. $val['showtime'] = get_last_time($val['createtime']);
  67. }
  68. }
  69. $this->success(1, $list);
  70. }
  71. //活动详情
  72. public function huodong_info(){
  73. $id = input('id',0);
  74. $info = Db::name('zzz_huodong')->alias('hd')
  75. ->field('hd.*,user.avatar,user.nickname,user.gender')
  76. ->join('user','hd.user_id = user.id','LEFT')
  77. ->where('hd.id',$id)
  78. ->find();
  79. if(empty($info)){
  80. $this->error('不存在的活动');
  81. }
  82. $info = info_domain_image($info,['image']);
  83. //是否已加入
  84. $info['is_joined'] = 0;
  85. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id',$id)->find();
  86. if($my_join_log){
  87. $info['is_joined'] = 1;
  88. }
  89. //显示时间
  90. $info['showtime'] = get_last_time($info['createtime']);
  91. $this->success(1, $info);
  92. }
  93. //活动报名
  94. public function huodong_join(){
  95. $id = input('id',0);
  96. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id',$id)->find();
  97. if($my_join_log){
  98. $this->error('不能重复报名');
  99. }
  100. $data = [
  101. 'hd_id' => $id,
  102. 'user_id' => $this->auth->id,
  103. 'createtime' => time(),
  104. ];
  105. Db::name('zzz_hd_joinlog')->insertGetId($data);
  106. $this->success();
  107. }
  108. //我发起的
  109. public function huodong_myfabu(){
  110. $where = [];
  111. $where['hd.user_id'] = $this->auth->id;
  112. $list = Db::name('zzz_huodong')->alias('hd')
  113. ->field('hd.*,user.avatar,user.nickname,user.gender')
  114. ->join('user','hd.user_id = user.id','LEFT')
  115. ->where($where)
  116. ->autopage()
  117. ->order('hd.id desc')
  118. ->select();
  119. $list = list_domain_image($list,['image']);
  120. if(!empty($list)){
  121. //我参与的活动ids
  122. $hd_ids = array_column($list,'id');
  123. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->where('hd_id','IN',$hd_ids)->column('hd_id');
  124. foreach($list as $key => &$val){
  125. //是否已加入
  126. $val['is_joined'] = 0;
  127. if(in_array($val['id'],$my_join_log)){
  128. $val['is_joined'] = 1;
  129. }
  130. //显示时间
  131. $val['showtime'] = get_last_time($val['createtime']);
  132. }
  133. }
  134. $this->success(1, $list);
  135. }
  136. //我报名的
  137. public function huodong_myjoin(){
  138. $where = [];
  139. $my_join_log = Db::name('zzz_hd_joinlog')->where('user_id',$this->auth->id)->column('hd_id');
  140. $where['hd.id'] = ['IN',$my_join_log];
  141. $list = Db::name('zzz_huodong')->alias('hd')
  142. ->field('hd.*,user.avatar,user.nickname,user.gender')
  143. ->join('user','hd.user_id = user.id','LEFT')
  144. ->where($where)
  145. ->autopage()
  146. ->order('hd.id desc')
  147. ->select();
  148. $list = list_domain_image($list,['image']);
  149. if(!empty($list)){
  150. foreach($list as $key => &$val){
  151. $val['is_joined'] = 1;
  152. //显示时间
  153. $val['showtime'] = get_last_time($val['createtime']);
  154. }
  155. }
  156. $this->success(1, $list);
  157. }
  158. //某活动的报名人员列表
  159. public function huodong_joinuser(){
  160. $id = input('id',0);
  161. $list = Db::name('zzz_hd_joinlog')->alias('log')
  162. ->field('log.*,user.avatar,user.nickname,user.gender')
  163. ->join('user','log.user_id = user.id','LEFT')
  164. ->where('hd_id',$id)->select();
  165. $this->success(1, $list);
  166. }
  167. //取消报名
  168. public function huodong_join_cancel(){
  169. $id = input('id',0);
  170. Db::name('zzz_hd_joinlog')
  171. ->where('user_id',$this->auth->id)
  172. ->where('hd_id',$id)->delete();
  173. $this->success();
  174. }
  175. }