| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- namespace App\Http\Controllers\Api\v1;
- use App\Http\Controllers\Api\webApp;
- use App\Services\Api\ArticleService;
- use App\Services\Api\MemberService;
- use App\Services\Api\PledgeOrderService;
- use App\Services\Api\PriceLogService;
- use App\Services\Common\AdService;
- use App\Services\ConfigService;
- use App\Services\RedisService;
- /**
- * 首页
- * @package App\Http\Controllers\Api\v1
- */
- class IndexController extends webApp
- {
- /**
- * 首页数据
- * @return array
- */
- public function data()
- {
- $cacheKey = "caches:index:data";
- $data = RedisService::get($cacheKey);
- if(empty($data)) {
- $sbtLimit = ConfigService::make()->getConfigByCode('sbt_exchange_limit', 100);
- $sbtPrice = PriceLogService::make()->getSbtPrice();
- $sbtLimit = round($sbtLimit/$sbtPrice, 2);
- $sbtLimit = $sbtLimit>0? $sbtLimit : 0;
- $data = [
- 'profile' => MemberService::make()->getProfile($this->userId),
- 'banners' => AdService::make()->getListByType(1,'zh',6),
- 'siteInfo' => [
- 'site_name' => ConfigService::make()->getConfigByCode('site_name', 'SBT'),
- 'site_title' => ConfigService::make()->getConfigByCode('site_name', 'SBT'),
- 'logo' => get_image_url(ConfigService::make()->getConfigByCode('site_logo', '/images/logo.png')),
- 'exchange_sbt_fee' => ConfigService::make()->getConfigByCode('exchange_sbt_fee', 0),
- 'sbt_exchange_limit'=> $sbtLimit,
- 'version'=> ConfigService::make()->getConfigByCode('app_version', 'v1.2.10'),
- ],
- ];
- RedisService::set($cacheKey, $data, rand(30, 60));
- }
- return showJson(1010,true, $data);
- }
- /**
- * 配置信息
- * @return array
- */
- public function config()
- {
- try {
- $params = request()->all();
- $system = isset($params['system'])? $params['system'] : [];
- $appSources = isset($system['app_sources']) && $system['app_sources']? $system['app_sources'] : 'android';
- $cacheKey = "caches:config:app_{$appSources}";
- $config = RedisService::get($cacheKey);
- if ($config) {
- return showJson(1010, true, $config);
- }
- $siteInfo = ConfigService::make()->getConfigByGroup(1);
- $config = [
- 'app_name' => isset($siteInfo['app_name']['value'])? $siteInfo['app_name']['value'] : '',
- 'app_logo' => isset($siteInfo['app_logo']['value']) && $siteInfo['app_logo']['value']? get_image_url($siteInfo['app_logo']['value']) : '',
- 'app_version' => isset($siteInfo['app_version']['value'])? $siteInfo['app_version']['value'] : '',
- 'app_sources' => $appSources,
- 'app_urls'=>[
- 'android'=> isset($siteInfo['android_app_url']['value'])? $siteInfo['android_app_url']['value'] : '',
- 'ios'=> isset($siteInfo['ios_app_url']['value'])? $siteInfo['ios_app_url']['value'] : '',
- ]
- ];
- RedisService::set($cacheKey, $config, 120);
- return showJson(1010, true, $config);
- } catch (\Exception $exception) {
- RedisService::set("caches:request:error_config", ['trace' => $exception->getTrace()], 7200);
- return showJson(1018, false, ['error' => env('APP_DEBUG') ? $exception->getMessage() : '']);
- }
- }
- /**
- * SBD价格数据
- * @return array
- */
- public function priceData(){
- $dateType = request()->post('type', 1);
- $refresh = request()->post('refresh', 0);
- return showJson(1010,true, PriceLogService::make()->getCounts($dateType, $refresh));
- }
- }
|