Score.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  1. <?php
  2. namespace Task\Src;
  3. use Dever;
  4. use Task\Lib\Base;
  5. class Score extends Base
  6. {
  7. /**
  8. * 我的积分
  9. *
  10. * @return mixed
  11. */
  12. public function user()
  13. {
  14. # 检测用户是否登录
  15. $state = $this->checkUser();
  16. if ($state) {
  17. $this->data['user_score']['exchange'] = Dever::url("user/exchange", "main");
  18. } else {
  19. $this->data['user_score']['exchange'] = 'javascript:certify.Show(\''.Dever::url("user/info_certify", "main").'\')';
  20. }
  21. return $this->data['user_score'];
  22. }
  23. /**
  24. * 金币兑换
  25. *
  26. * @return mixed
  27. */
  28. public function exchange()
  29. {
  30. $user = $this->user();
  31. $user['score_name'] = $this->data['config']['score_name'];
  32. $user['score_name_ext'] = $this->data['config']['score_name_ext'];
  33. $user['exchange'] = $this->data['config']['exchange'];
  34. $user['exchange_min'] = $this->data['config']['exchange_min'];
  35. $user['cash'] = floor($user['score']/$user['exchange']);
  36. if ($user['exchange_min'] > 0) {
  37. $user['desc'] = '最低兑换数量'.$user['exchange_min'].$user['score_name'];
  38. } else {
  39. $user['desc'] = '';
  40. }
  41. $user['exchange'] = '兑换数量(可兑换'.$user['cash'].$user['score_name_ext'] . ')';
  42. return $user;
  43. }
  44. /**
  45. * 金币兑换
  46. *
  47. * @return mixed
  48. */
  49. public function submit_commit()
  50. {
  51. $user = $this->exchange();
  52. $type = Dever::input('type');
  53. $score = Dever::input('score');
  54. if (!$score) {
  55. Dever::alert('请输入' . $user['score_name'] . '数量');
  56. }
  57. if (!$type) {
  58. Dever::alert('请选择兑现途径');
  59. }
  60. if ($type != 1 && $type != 2) {
  61. Dever::alert('请选择兑现途径');
  62. }
  63. if ($user['exchange_min'] > 0 && $score < $user['exchange_min']) {
  64. Dever::alert($user['desc']);
  65. }
  66. if ($score > $user['score']) {
  67. Dever::alert('实际兑换数量不能超过剩余' . $user['score_name'] . '数量');
  68. }
  69. $exchange = $this->data['config']['exchange'];
  70. $insert['cash'] = floor($score/$exchange);
  71. $insert['score'] = $score;
  72. $insert['uid'] = $user['uid'];
  73. $insert['type'] = $type;
  74. $insert['status'] = 1;
  75. Dever::db('task/user_cash')->insert($insert);
  76. $insert['type'] = 1;
  77. $insert['status'] = 1;
  78. $insert['cash_type'] = $type;
  79. Dever::db('task/user_score_log')->insert($insert);
  80. # 剩余数量
  81. $sur_score = $user['score'] - $score;
  82. $update['score'] = $sur_score;
  83. $update['where_id'] = $user['id'];
  84. Dever::db('task/user_score')->update($update);
  85. return '提交成功,请等待管理员审核';
  86. }
  87. /**
  88. * 我的积分日志列表
  89. *
  90. * @return mixed
  91. */
  92. public function logs()
  93. {
  94. # 检测用户是否登录
  95. $this->checkUser();
  96. $where['uid'] = $this->data['uid'];
  97. $name = $this->data['config']['score_name'];
  98. $ext = $this->data['config']['score_name_ext'];
  99. $data = Dever::db('task/user_score_log')->getAll($where);
  100. if ($data) {
  101. foreach ($data as $k => $v) {
  102. $data[$k]['cdate'] = $this->date($v['cdate']);
  103. # 时间
  104. $data[$k]['date'] = $data[$k]['cdate'];
  105. # 描述
  106. $data[$k]['desc'] = '';
  107. # 金币数量
  108. $data[$k]['score'] = '';
  109. # 状态
  110. $data[$k]['status'] = '';
  111. # 弹窗中的介绍
  112. $data[$k]['info'] = '';
  113. # 兑现途径
  114. $data[$k]['cash_desc'] = '';
  115. # 图标
  116. $data[$k]['icon'] = '';
  117. $data[$k]['class'] = '';
  118. if ($v['type'] <= 3) {
  119. $data[$k]['info'] = '本次兑现:'.$v['score'].$name;
  120. $data[$k]['score'] = '兑换' . $v['score'] . $name;
  121. if ($v['type'] == 1) {
  122. # 兑现申请
  123. $data[$k]['desc'] = '申请兑现时间:'.$data[$k]['cdate'];
  124. $data[$k]['status'] = '申请兑现';
  125. } elseif ($v['type'] == 2) {
  126. # 兑现完成
  127. $data[$k]['date'] = $this->date($v['cash_date']);
  128. $data[$k]['desc'] = '申请兑现时间:'.$data[$k]['date'] . '<br />兑现完成时间:' . $data[$k]['cdate'];
  129. $data[$k]['status'] = '兑现完成';
  130. $data[$k]['icon'] = 'suc';
  131. } elseif ($v['type'] == 3) {
  132. # 兑现失败
  133. $data[$k]['date'] = $this->date($v['cash_date']);
  134. $data[$k]['desc'] = '申请兑现时间:'.$data[$k]['date'] . '<br />' . $v['type_desc'];
  135. $data[$k]['status'] = '兑现失败';
  136. $data[$k]['icon'] = 'err';
  137. $data[$k]['class'] = 'fail';
  138. }
  139. if ($v['cash_type'] == 1) {
  140. $data[$k]['cash_type'] = '微信';
  141. } else {
  142. $data[$k]['cash_type'] = '支付宝';
  143. }
  144. $data[$k]['cash_desc'] = '兑现途径:' . $data[$k]['cash_type'];
  145. } elseif ($v['type'] <= 5) {
  146. $task = Dever::db('task/info')->one($v['task_id']);
  147. $data[$k]['score'] = '任务#'.$task['name'].'奖励'.$v['score'].$name;
  148. $data[$k]['desc'] = '入账时间:' . $this->date($v['cdate']) . '<br />';
  149. $data[$k]['info'] = '本次入账:'.$v['score'].$name;
  150. $data[$k]['status'] = '已入账';
  151. $data[$k]['icon'] = 'wan';
  152. if ($v['type'] == 4) {
  153. $user = Dever::db('passport/user')->one($v['uid']);
  154. # 任务奖励
  155. $data[$k]['desc'] .= '来源:'.$user['username'] . '完成任务#'.$task['name'].'的奖励';
  156. } elseif ($v['type'] == 5) {
  157. $user = Dever::db('passport/user')->one($v['group_uid']);
  158. # 任务提成
  159. $data[$k]['desc'] .= '来源:'.$user['username'] . '完成任务#'.$task['name'].'的提成奖励';
  160. }
  161. } elseif ($v['type'] == 6) {
  162. $data[$k]['score'] = '系统奖励:'.$v['type_desc'];
  163. $data[$k]['desc'] = '入账时间:' . $this->date($v['cdate']) . '<br />' . $data[$k]['score'];
  164. $data[$k]['info'] = '本次入账:'.$v['score'].$name;
  165. $data[$k]['status'] = '已入账';
  166. $data[$k]['icon'] = 'wan';
  167. }
  168. }
  169. }
  170. return $data;
  171. }
  172. private function date($value)
  173. {
  174. return date('Y-m-d H:i', $value);
  175. }
  176. }