UserBoardController.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace app\api\controller\board;
  3. use crmeb\services\UtilService;
  4. use app\models\board\UserBoard;
  5. use \think\facade\Config;
  6. use crmeb\utils\Redis;
  7. /**
  8. * @api {get} /boards 获取排行榜
  9. * @apiName GetBoards
  10. * @apiGroup Activity
  11. *
  12. * 协议见文档 docs/board.md, 协议可能变更
  13. *
  14. * 使用 UserBoard Model, 数据表为 store_order_cart_info
  15. *
  16. *
  17. * Class UserBoardController
  18. * @package app\api\controller\board
  19. */
  20. class UserBoardController
  21. {
  22. protected static $DAILY_WIN_MONEY = 1;
  23. public static $RDS_BOARD_KEY = 'tmp:board';
  24. public function boards()
  25. {
  26. [$type,] = UtilService::getMore([
  27. ['type', 1],
  28. ], null, true);
  29. $s = $this->get_cached_board();
  30. $board = json_decode($s, true);
  31. return app('json')->successful('ok', $board);
  32. }
  33. protected function daily_win_money()
  34. {
  35. $board = new UserBoard();
  36. $res = $board->getDailyWinMoney();
  37. foreach ($res as &$row) {
  38. $row['value'] = floatval($row['value']);
  39. $row['border'] = 0;
  40. $row['vip'] = 0;
  41. }
  42. return array(
  43. 'banner' => Config::get('app.leader_board_banner'),
  44. 'name' => "日榜",
  45. 'board' => $res,
  46. );
  47. }
  48. public function cache_board()
  49. {
  50. $redis = Redis::instance();
  51. $redis->set(self::$RDS_BOARD_KEY, json_encode($this->daily_win_money()));
  52. }
  53. protected function get_cached_board()
  54. {
  55. $redis = Redis::instance();
  56. return $redis->get(self::$RDS_BOARD_KEY);
  57. }
  58. }