Score.php 6.9 KB

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