Report.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace Task\Src;
  3. use Dever;
  4. use Task\Lib\Base;
  5. class Report extends Base
  6. {
  7. /**
  8. * 报告列表:我的
  9. *
  10. * @return mixed
  11. */
  12. public function all()
  13. {
  14. $where['uid'] = $this->data['uid'];
  15. $where['task_id'] = Dever::input('id');
  16. $data = Dever::db('task/user_report')->getAll($where);
  17. if ($data) {
  18. foreach ($data as $k => $v) {
  19. $this->getOne($data[$k]);
  20. }
  21. }
  22. return $data;
  23. }
  24. /**
  25. * 报告详情
  26. *
  27. * @return mixed
  28. */
  29. public function one()
  30. {
  31. $id = Dever::input('id');
  32. $info = array();
  33. if ($id > 0) {
  34. $info = Dever::db('task/user_report')->one($id);
  35. $this->getOne($info);
  36. }
  37. return $info;
  38. }
  39. /**
  40. * 提交报告
  41. *
  42. * @return mixed
  43. */
  44. public function submit()
  45. {
  46. $info = Dever::load('task/info.one');
  47. if (isset($info['button']) && is_array($info['button']) && isset($info['button']['status']) && $info['button']['status'] > 0) {
  48. if ($info['button']['status'] == 5) {
  49. # 可以提交
  50. return $this->submit_action($info);
  51. } else {
  52. Dever::alert(strip_tags($info['button']['desc']));
  53. }
  54. } else {
  55. Dever::alert('提交失败');
  56. }
  57. }
  58. /**
  59. * 立刻提交
  60. *
  61. * @return mixed
  62. */
  63. private function submit_action($info)
  64. {
  65. $username = Dever::input('username');
  66. $pic = Dever::input('pic');
  67. $link = Dever::input('link');
  68. $desc = Dever::input('desc');
  69. $id = Dever::input('id');
  70. $refresh = array('element' => '#dever_report_submit', 'attr' => 'dever-refresh', 'value' => $info['report']['submit']);
  71. if (strstr($info['report_demand'], 'username') && !$username) {
  72. Dever::alert('账号名不能为空', $refresh);
  73. }
  74. if (strstr($info['report_demand'], 'pic') &&!$pic) {
  75. Dever::alert('任务截屏不能为空', $refresh);
  76. }
  77. if (strstr($info['report_demand'], 'link') &&!$link) {
  78. Dever::alert('链接不能为空', $refresh);
  79. }
  80. if (strstr($info['report_demand'], 'desc') &&!$desc) {
  81. Dever::alert('文字说明不能为空', $refresh);
  82. }
  83. $report_id = Dever::input('report_id');
  84. if ($report_id && is_numeric($report_id) && $report_id > 0) {
  85. $update['username'] = $username;
  86. $update['pic'] = $pic;
  87. $update['link'] = $link;
  88. $update['desc'] = $desc;
  89. $update['score'] = $info['score'];
  90. $update['group_score'] = $info['group_score'];
  91. $update['where_id'] = $report_id;
  92. Dever::db('task/user_report')->update($update);
  93. $info['user_report'] = $report_id;
  94. return '提交成功,请等待管理员审核';
  95. } else {
  96. # 验证$info['report_num'] 和 $info['report_user_num']
  97. $where['task_id'] = $info['id'];
  98. $total = Dever::db('task/user_report')->getTotal($where);
  99. if ($total >= $info['report_num']) {
  100. Dever::alert('已经超过报告数量上限', array('url' => Dever::url('task/view?id=' . $info['id'], 'main')));
  101. }
  102. $where['uid'] = $this->data['uid'];
  103. $total = Dever::db('task/user_report')->getTotal($where);
  104. if ($total >= $info['report_user_num']) {
  105. Dever::alert('已经超过人均报告数量上限', array('url' => Dever::url('task/view?id=' . $info['id'], 'main')));
  106. }
  107. $insert['uid'] = $this->data['uid'];
  108. $insert['task_id'] = $info['id'];
  109. $insert['username'] = $username;
  110. $insert['pic'] = $pic;
  111. $insert['link'] = $link;
  112. $insert['desc'] = $desc;
  113. $insert['score'] = $info['score'];
  114. $insert['group_score'] = $info['group_score'];
  115. $insert['status'] = 1;
  116. $info['user_report'] = Dever::db('task/user_report')->insert($insert);
  117. return '提交成功,请等待管理员审核';
  118. }
  119. Dever::alert('提交失败');
  120. }
  121. /**
  122. * 任务详情信息
  123. *
  124. * @return mixed
  125. */
  126. private function getOne(& $data)
  127. {
  128. # 审核文字
  129. if ($data['status'] == 1) {
  130. $url = Dever::url('task/submit?id=' . $data['task_id'] . '&report_id=' . $data['id'], 'main');
  131. $data['audit'] = '<a href="#" class="mini-button disable">待审核</a>';
  132. $data['audit_desc'] = '<a href="'.$url.'" class="button">修改</a>';
  133. $data['audit_icon'] = 'btns';
  134. } elseif ($data['status'] == 2) {
  135. $data['audit'] = '<a href="#" class="mini-button mb-success">已通过</a>';
  136. $data['audit_desc'] = '获得' . $this->data['config']['score_name'] . ':' . $data['score'] . $this->data['config']['score_name_ext'];
  137. if ($data['score_status'] == 1) {
  138. $data['audit_desc'] .= '(未入账)';
  139. } else {
  140. $data['audit_desc'] .= '(已入账)';
  141. }
  142. $data['audit_icon'] = 'tk-ft-success';
  143. } elseif ($data['status'] == 3) {
  144. $data['audit'] = '<a href="#" class="mini-button mb-error">未通过</a>';
  145. $data['audit_desc'] = $data['status_desc'];
  146. $data['audit_icon'] = 'tk-ft-error';
  147. }
  148. $img = explode(',', $data['pic']);
  149. if ($img) {
  150. foreach ($img as $k => $v) {
  151. $data['img'][$k]['url'] = $v;
  152. }
  153. }
  154. $data['name'] = '账号:' . $data['username'] . $data['audit'];
  155. }
  156. }