AdminActivityJoinController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace app\activity\controller;
  3. use app\activity\model\ActivityJoinModel;
  4. use cmf\controller\AdminBaseController;
  5. class AdminActivityJoinController extends AdminBaseController
  6. {
  7. /**
  8. * 活动列表
  9. */
  10. public function index()
  11. {
  12. $this->checkSite();
  13. $param = $this->request->param();
  14. //搜索条件
  15. $sessionAdminId = session('ADMIN_ID');
  16. $where = [['a.user_id', '=', $sessionAdminId]];
  17. if (!empty($param['keyword'])) {
  18. $where[] = ['a.title', 'like', "%{$param['keyword']}%"];
  19. }
  20. if (!empty($param['activity_id'])) {
  21. $where[] = ['aj.activity_id', '=', $param['activity_id']];
  22. }
  23. if (isset($param['status']) && ($param['status'] === '0' || $param['status'] > 0)) {
  24. $where[] = ['aj.status', '=', $param['status']];
  25. }
  26. $activity = ActivityJoinModel::alias('aj')
  27. ->leftJoin('activity a', 'aj.activity_id = a.id')
  28. ->leftJoin('user u', 'aj.user_id = u.id')
  29. ->field('aj.*,a.title,u.user_name,u.mobile')
  30. ->where($where)
  31. ->order('create_time', 'DESC')
  32. ->paginate(10, false, ['query' => $param]);
  33. $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
  34. $this->assign('activity_id', isset($param['activity_id']) ? $param['activity_id'] : '');
  35. $this->assign('status', isset($param['status']) ? $param['status'] : '');
  36. $this->assign('activity', $activity->items());
  37. $this->assign('page', $activity->render());
  38. return $this->fetch();
  39. }
  40. public function export()
  41. {
  42. $param = $this->request->param();
  43. //搜索条件
  44. $sessionAdminId = session('ADMIN_ID');
  45. $where = [['a.user_id', '=', $sessionAdminId]];
  46. if (!empty($param['ids'])) {
  47. $where[] = ['aj.id', 'in', $param['ids']];
  48. } else {
  49. if (!empty($param['keyword'])) {
  50. $where[] = ['a.title', 'like', "%{$param['keyword']}%"];
  51. }
  52. if (!empty($param['activity_id'])) {
  53. $where[] = ['aj.activity_id', '=', $param['activity_id']];
  54. }
  55. if (isset($param['status']) && ($param['status'] === '0' || $param['status'] > 0)) {
  56. $where[] = ['aj.status', '=', $param['status']];
  57. }
  58. }
  59. //获取数据
  60. $activity = ActivityJoinModel::alias('aj')
  61. ->leftJoin('activity a', 'aj.activity_id = a.id')
  62. ->leftJoin('user u', 'aj.user_id = u.id')
  63. ->field('aj.*,a.title,u.user_name,u.mobile')
  64. ->where($where)
  65. ->order('create_time', 'DESC')
  66. ->select();
  67. //表头
  68. $header = [
  69. 'id' => 'id',
  70. 'activity_id' => '活动id',
  71. 'title' => '活动标题',
  72. 'user_id' => '用户id',
  73. 'user_name' => '用户姓名',
  74. 'mobile' => '用户电话',
  75. 'status' => '状态',
  76. 'create_time' => '报名时间',
  77. ];
  78. //表格内容
  79. foreach ($activity as $v) {
  80. $v['create_time'] = date('Y-m-d H:i', $v['create_time']);
  81. $v['status'] = $v['status'] == 0 ? '未签到' : '已签到';
  82. }
  83. export_excel_data($header, $activity, '报名列表', ['mobile','create_time']);
  84. }
  85. }