AdminActivityJoinManageController.php 3.2 KB

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