You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
aquaculture/app/Http/Controllers/HomeController.php

68 lines
1.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace App\Http\Controllers;
use App\Enums\SettingKeyEnum;
use App\Models\Subscribe;
use App\Models\User;
use App\Utils\HomeCacheDataUtil;
class HomeController extends Controller
{
/**
* 首页显示的数据
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index()
{
// 取出后台排序好的九个分类,并且关联出商品的总数
// 如没有 key存入缓存中防止用户未配置好任务调度确访问首页
// 数据将不会从首页更新,每分钟任务调度更新,请务必配置好
$ttl = 120 + mt_rand(10, 30);
$categories = HomeCacheDataUtil::categories($ttl);
$hotProducts = HomeCacheDataUtil::hotProducts($ttl);
$latestProducts = HomeCacheDataUtil::latestProducts($ttl);
$users = HomeCacheDataUtil::users($ttl);
// 秒杀数据
$secKills = HomeCacheDataUtil::getSeckillData();
/**
* 当前登录用户
*
* @var $loginUser User
*/
if ($loginUser = auth()->user()) {
$loginUser->load('subscribe');
}
// 查询优惠券
$couponTemplates = HomeCacheDataUtil::couponTemplates();
$setting = new SettingKeyEnum(SettingKeyEnum::IS_OPEN_SECKILL);
$isOpenSeckill = setting($setting) == 1;
return view(
'homes.index',
compact('categories', 'hotProducts', 'latestProducts', 'users', 'secKills', 'loginUser', 'isOpenSeckill', 'couponTemplates')
);
}
public function unSubscribe($email)
{
try {
$email = decrypt($email);
} catch (\Exception $e) {
return view('hint.error', ['status' => '未知的账号']);
}
Subscribe::query()->where('email', $email)->update(['is_subscribe' => 0]);
return view('hint.success', ['status' => '已取消订阅']);
}
}