CodeController.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace App\Controllers\Admin;
  3. use App\Models\Code;
  4. use App\Models\User;
  5. use App\Controllers\AdminController;
  6. use App\Utils\Tools;
  7. use App\Services\Auth;
  8. use Ozdemir\Datatables\Datatables;
  9. use App\Utils\DatatablesHelper;
  10. class CodeController extends AdminController
  11. {
  12. public function index($request, $response, $args)
  13. {
  14. $table_config['total_column'] = array("id" => "ID", "code" => "内容",
  15. "type" => "类型", "number" => "操作",
  16. "isused" => "是否已经使用", "userid" => "用户ID",
  17. "user_name" => "用户名", "usedatetime" => "使用时间");
  18. $table_config['default_show_column'] = array();
  19. foreach ($table_config['total_column'] as $column => $value) {
  20. array_push($table_config['default_show_column'], $column);
  21. }
  22. $table_config['ajax_url'] = 'code/ajax';
  23. return $this->view()->assign('table_config', $table_config)->display('admin/code/index.tpl');
  24. }
  25. public function create($request, $response, $args)
  26. {
  27. return $this->view()->display('admin/code/add.tpl');
  28. }
  29. public function donate_create($request, $response, $args)
  30. {
  31. return $this->view()->display('admin/code/add_donate.tpl');
  32. }
  33. public function add($request, $response, $args)
  34. {
  35. $n = $request->getParam('amount');
  36. $type = $request->getParam('type');
  37. $number = $request->getParam('number');
  38. for ($i = 0; $i < $n; $i++) {
  39. $char = Tools::genRandomChar(32);
  40. $code = new Code();
  41. $code->code = time() . $char;
  42. $code->type = -1;
  43. $code->number = $number;
  44. $code->userid=0;
  45. $code->usedatetime="1989:06:04 02:30:00";
  46. $code->save();
  47. }
  48. $rs['ret'] = 1;
  49. $rs['msg'] = "充值码添加成功";
  50. return $response->getBody()->write(json_encode($rs));
  51. }
  52. public function donate_add($request, $response, $args)
  53. {
  54. $amount = $request->getParam('amount');
  55. $type = $request->getParam('type');
  56. $text = $request->getParam('code');
  57. $code = new Code();
  58. $code->code = $text;
  59. $code->type = $type;
  60. $code->number = $amount;
  61. $code->userid = Auth::getUser()->id;
  62. $code->isused = 1;
  63. $code->usedatetime = date("Y:m:d H:i:s");
  64. $code->save();
  65. $rs['ret'] = 1;
  66. $rs['msg'] = "添加成功";
  67. return $response->getBody()->write(json_encode($rs));
  68. }
  69. public function ajax_code($request, $response, $args)
  70. {
  71. $datatables = new Datatables(new DatatablesHelper());
  72. $datatables->query('Select code.id,code.code,code.type,code.number,code.isused,code.userid,code.userid as user_name,code.usedatetime from code');
  73. $datatables->edit('number', function ($data) {
  74. switch ($data['type']) {
  75. case -1:
  76. return "充值 ".$data['number']." 元";
  77. case -2:
  78. return "支出 ".$data['number']." 元";
  79. default:
  80. return "已经废弃";
  81. }
  82. });
  83. $datatables->edit('isused', function ($data) {
  84. return $data['isused'] == 1 ? '已使用' : '未使用';
  85. });
  86. $datatables->edit('userid', function ($data) {
  87. return $data['userid'] == 0 ? '未使用' : $data['userid'];
  88. });
  89. $datatables->edit('user_name', function ($data) {
  90. $user = User::find($data['user_name']);
  91. if ($user == null) {
  92. return "未使用";
  93. }
  94. return $user->user_name;
  95. });
  96. $datatables->edit('type', function ($data) {
  97. switch ($data['type']) {
  98. case -1:
  99. return "充值金额";
  100. case -2:
  101. return "财务支出";
  102. default:
  103. return "已经废弃";
  104. }
  105. });
  106. $datatables->edit('usedatetime', function ($data) {
  107. return $data['usedatetime'] > '2000-1-1 0:0:0' ? $data['usedatetime'] : "未使用";
  108. });
  109. $body = $response->getBody();
  110. $body->write($datatables->generate());
  111. }
  112. }