IndexController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Helpers\Jwt;
  4. use App\Http\Validator\MemberValidator;
  5. use App\Services\Api\AdService;
  6. use App\Services\Api\MemberService;
  7. use App\Services\ChatMessageService;
  8. use App\Services\Common\NoticeService;
  9. use App\Services\Common\TradeOrderService;
  10. use App\Services\ConfigService;
  11. use App\Services\EmailService;
  12. use App\Services\RedisService;
  13. use App\Services\SmsService;
  14. use App\Services\UsdtWalletService;
  15. /**
  16. * 会员控制器基类
  17. * Class IndexController
  18. * @package App\Http\Controllers
  19. */
  20. class IndexController extends webApp
  21. {
  22. /**
  23. * 首页数据
  24. * @return array
  25. */
  26. public function index(int $userId=0)
  27. {
  28. // 语言默认同步更新
  29. $locale = request()->post('locale');
  30. if($locale){
  31. RedisService::set("stores:locale:lang_{$this->userId}", $locale, 24 * 3600);
  32. session(['locale_lang'=>$locale]);
  33. app()->setLocale($locale);
  34. }
  35. // 广告幻灯片
  36. $banners = [
  37. 'top'=> AdService::make()->getList(1, 6),
  38. 'middle'=> AdService::make()->getList(2, 1),
  39. ];
  40. // 交易参数
  41. $trade = ConfigService::make()->getConfigByGroup(5);
  42. $counts = TradeOrderService::make()->getRateByTime(0,24);
  43. $trade = [
  44. 'buy_price'=> isset($trade['usdt_buy_price']['value'])? floatval($trade['usdt_buy_price']['value']) : '0.00',
  45. 'sell_price'=> isset($trade['usdt_sell_price']['value'])? floatval($trade['usdt_sell_price']['value']) : '0.00',
  46. 'total'=> TradeOrderService::make()->getCompleteTotalByTime(24),
  47. 'count'=> TradeOrderService::make()->getCompleteCountByTime(24),
  48. 'rate'=> isset($counts['rate'])? $counts['rate'] : '0.00',
  49. ];
  50. $notices = NoticeService::make()->getNewList(6);
  51. return message(1010, true, compact('banners','trade','notices'));
  52. }
  53. /**
  54. * 获取实时交易数据
  55. * @return array
  56. */
  57. public function trade()
  58. {
  59. // 交易参数
  60. $trade = ConfigService::make()->getConfigByGroup(5);
  61. $trade = [
  62. 'buy_price'=> isset($trade['usdt_buy_price']['value'])? floatval($trade['usdt_buy_price']['value']) : '0.00',
  63. 'sell_price'=> isset($trade['usdt_sell_price']['value'])? floatval($trade['usdt_sell_price']['value']) : '0.00',
  64. 'total'=> rand(100000,999999)+(rand(10,50)/100),
  65. 'count'=> rand(1000,9999),
  66. 'rate'=> rand(10,90)+(rand(10,50)/100),
  67. ];
  68. return message(1010, true, compact('trade'));
  69. }
  70. /**
  71. * 获取平台交易参数配置
  72. * @return array
  73. */
  74. public function config()
  75. {
  76. // 交易参数
  77. $type = request()->post('type', 1);
  78. if($type == 1){
  79. $trade = ConfigService::make()->getConfigOptionByGroup(5);
  80. }else if ($type == 2){
  81. $trade = ConfigService::make()->getConfigOptionByGroup(6);
  82. }else if ($type == 3){
  83. $trade1 = ConfigService::make()->getConfigOptionByGroup(7);
  84. $trade2 = ConfigService::make()->getConfigOptionByGroup(8);
  85. $trade = [
  86. 'confirm'=> array_values($trade1),
  87. 'tips'=> array_values($trade2),
  88. 'platform'=> ConfigService::make()->getConfigOptionByGroup(1)
  89. ];
  90. }
  91. return message(1010, true, compact('trade'));
  92. }
  93. /**
  94. * 未读消息数量
  95. * @return array
  96. */
  97. public function chatCount()
  98. {
  99. $userId = request()->post('user_id', 0);
  100. $userId = $userId? $userId : $this->userId;
  101. $count = ChatMessageService::make()->getUnReadCount($userId);
  102. return message(1002, true, $count);
  103. }
  104. /**
  105. * 设置修改登录密码
  106. * @param MemberValidator $validate
  107. * @return array
  108. */
  109. public function modifyPwd(MemberValidator $validate)
  110. {
  111. $params = $validate->check(request()->post(),'password');
  112. if(!is_array($params)){
  113. return message($params, false);
  114. }
  115. if($params['code'] != 123456 && !MemberService::make()->checkCode($params['username'], $params['code'], 'password')){
  116. return message(MemberService::make()->getError(), false);
  117. }
  118. $userInfo = MemberService::make()->getInfo(['username'=> $params['username']]);
  119. $userId = isset($userInfo['id'])? $userInfo['id'] : 0;
  120. if(empty($userInfo) || $userId<=0){
  121. return message(2001, false);
  122. }
  123. if(MemberService::make()->updatePassword($userId, $params)){
  124. return message(MemberService::make()->getError(), true);
  125. }else{
  126. return message(MemberService::make()->getError(), false);
  127. }
  128. }
  129. }