AdminActivityController.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <?php
  2. namespace app\activity\controller;
  3. use app\activity\model\ActivityModel;
  4. use app\activity\model\ActivityReviewModel;
  5. use cmf\controller\AdminBaseController;
  6. class AdminActivityController extends AdminBaseController
  7. {
  8. /**
  9. * 活动列表
  10. */
  11. public function index()
  12. {
  13. $this->checkSite();
  14. $param = $this->request->param();
  15. //搜索条件
  16. $sessionAdminId = session('ADMIN_ID');
  17. $where = [['user_id', '=', $sessionAdminId]];
  18. if (!empty($param['start_time'])) {
  19. $where[] = ['start_time', '>=', strtotime($param['start_time'])];
  20. }
  21. if (!empty($param['end_time'])) {
  22. $where[] = ['end_time', '<=', strtotime($param['end_time'])];
  23. }
  24. if (!empty($param['keyword'])) {
  25. $where[] = ['title', 'like', "%{$param['keyword']}%"];
  26. }
  27. $activity = ActivityModel::where($where)->order('create_time', 'DESC')->paginate(10, false, ['query' => $param]);
  28. $this->assign('start_time', isset($param['start_time']) ? $param['start_time'] : '');
  29. $this->assign('end_time', isset($param['end_time']) ? $param['end_time'] : '');
  30. $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
  31. $this->assign('activity', $activity->items());
  32. $this->assign('page', $activity->render());
  33. return $this->fetch();
  34. }
  35. /**
  36. * 添加活动
  37. */
  38. public function add()
  39. {
  40. return $this->fetch();
  41. }
  42. /**
  43. * 添加活动提交
  44. */
  45. public function addPost()
  46. {
  47. if ($this->request->isPost()) {
  48. $data = $this->request->post();
  49. $data['create_time'] = time();
  50. $data['user_id'] = session('ADMIN_ID');
  51. $data['signin_code'] = randomStr(16);
  52. $data['options'] = [];
  53. if (!empty($data['file_urls'])) {
  54. foreach ($data['file_urls'] as $k => $v) {
  55. $data['options'][] = ['url' => $v, 'name' => $data['file_names'][$k]];
  56. }
  57. }
  58. ActivityModel::create($data);
  59. $this->success('添加成功!', url('AdminActivity/index'));
  60. }
  61. }
  62. /**
  63. * 编辑活动
  64. */
  65. public function edit()
  66. {
  67. $id = $this->request->param('id', 0, 'intval');
  68. $info = ActivityModel::get($id);
  69. $this->assign('info', $info);
  70. return $this->fetch();
  71. }
  72. /**
  73. * 编辑活动提交
  74. */
  75. public function editPost()
  76. {
  77. if ($this->request->isPost()) {
  78. $data = $this->request->post();
  79. $data['status'] = 1;
  80. $data['options'] = [];
  81. if (!empty($data['file_urls'])) {
  82. foreach ($data['file_urls'] as $k => $v) {
  83. $data['options'][] = ['url' => $v, 'name' => $data['file_names'][$k]];
  84. }
  85. }
  86. ActivityModel::update($data, ['id' => $data['id']]);
  87. $this->success('编辑成功!', url('AdminActivity/index'));
  88. }
  89. }
  90. /**
  91. * 删除
  92. */
  93. public function delete()
  94. {
  95. $id = $this->request->param('id', 0, 'intval');
  96. $info = ActivityModel::get($id);
  97. if ($info['join_num'] > 0) {
  98. $this->error('该活动已有人参加,无法删除');
  99. }
  100. $review = ActivityReviewModel::where('activity_id', $id)->find();
  101. if (!empty($review)) {
  102. $this->error('该活动已有活动回顾,无法删除');
  103. }
  104. $info->delete();
  105. $this->success('删除成功');
  106. }
  107. /**
  108. * 选择活动
  109. */
  110. public function select()
  111. {
  112. $param = $this->request->param();
  113. //搜索条件
  114. $sessionAdminId = session('ADMIN_ID');
  115. $where = [
  116. ['have_review', '=', 2],
  117. ['status', '=', 2],
  118. ['user_id', '=', $sessionAdminId],
  119. ];
  120. if (!empty($param['keyword'])) {
  121. $where[] = ['title', 'like', "%{$param['keyword']}%"];
  122. }
  123. $activity = ActivityModel::where($where)->order('create_time', 'DESC')->paginate(10, false, ['query' => $param]);
  124. $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
  125. $this->assign('activity', $activity->items());
  126. $this->assign('page', $activity->render());
  127. return $this->fetch();
  128. }
  129. }