Report.php 5.6 KB

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