Commit 14c0b581 by 肖康

Merge branch 'dev/ver/1.0.0' of http://git.ichunt.net/semour/semour_web into dev/ver/1.0.0

parents ac2d8a59 56298307
......@@ -19,7 +19,7 @@ QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120
REDIS_HOST=192.168.1.235
REDIS_HOST=192.168.1.234
REDIS_PASSWORD=icDb29mLy2s
REDIS_PORT=6379
......
......@@ -14,3 +14,4 @@ Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
.idea/workspace.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="fb90add0-1393-48c2-9f26-72365d42cd03" name="变更" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Api/AuthApiController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Api/AuthApiController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bootstrap/app.php" beforeDir="false" afterPath="$PROJECT_DIR$/bootstrap/app.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bootstrap/cache/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/bootstrap/cache/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/api.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/api.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/app/public/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/app/public/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/cache/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/cache/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/cache/data/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/cache/data/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/sessions/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/sessions/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/testing/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/testing/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/framework/views/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/framework/views/.gitignore" afterDir="false" />
<change beforePath="$PROJECT_DIR$/storage/logs/.gitignore" beforeDir="false" afterPath="$PROJECT_DIR$/storage/logs/.gitignore" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ComposerSettings" doNotAsk="true" synchronizationState="SYNCHRONIZE">
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
<execution />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GitSEFilterConfiguration">
<file-type-list>
<filtered-out-file-type name="LOCAL_BRANCH" />
<filtered-out-file-type name="REMOTE_BRANCH" />
<filtered-out-file-type name="TAG" />
<filtered-out-file-type name="COMMIT_BY_MESSAGE" />
</file-type-list>
</component>
<component name="PhpWorkspaceProjectConfiguration">
<include_path>
<path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
<path value="$PROJECT_DIR$/vendor/psy/psysh" />
<path value="$PROJECT_DIR$/vendor/fakerphp/faker" />
<path value="$PROJECT_DIR$/vendor/asm89/stack-cors" />
<path value="$PROJECT_DIR$/vendor/fideloper/proxy" />
<path value="$PROJECT_DIR$/vendor/ramsey/uuid" />
<path value="$PROJECT_DIR$/vendor/ramsey/collection" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/brick/math" />
<path value="$PROJECT_DIR$/vendor/egulias/email-validator" />
<path value="$PROJECT_DIR$/vendor/theseer/tokenizer" />
<path value="$PROJECT_DIR$/vendor/league/mime-type-detection" />
<path value="$PROJECT_DIR$/vendor/league/commonmark" />
<path value="$PROJECT_DIR$/vendor/fruitcake/laravel-cors" />
<path value="$PROJECT_DIR$/vendor/league/flysystem" />
<path value="$PROJECT_DIR$/vendor/mockery/mockery" />
<path value="$PROJECT_DIR$/vendor/phpoption/phpoption" />
<path value="$PROJECT_DIR$/vendor/opis/closure" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/ralouphie/getallheaders" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/scrivo/highlight.php" />
<path value="$PROJECT_DIR$/vendor/sebastian/type" />
<path value="$PROJECT_DIR$/vendor/psr/http-factory" />
<path value="$PROJECT_DIR$/vendor/sebastian/diff" />
<path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
<path value="$PROJECT_DIR$/vendor/sebastian/recursion-context" />
<path value="$PROJECT_DIR$/vendor/psr/http-client" />
<path value="$PROJECT_DIR$/vendor/voku/portable-ascii" />
<path value="$PROJECT_DIR$/vendor/sebastian/resource-operations" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/sebastian/code-unit-reverse-lookup" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-enumerator" />
<path value="$PROJECT_DIR$/vendor/psr/http-message" />
<path value="$PROJECT_DIR$/vendor/sebastian/comparator" />
<path value="$PROJECT_DIR$/vendor/sebastian/environment" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/sebastian/global-state" />
<path value="$PROJECT_DIR$/vendor/sebastian/exporter" />
<path value="$PROJECT_DIR$/vendor/sebastian/object-reflector" />
<path value="$PROJECT_DIR$/vendor/monolog/monolog" />
<path value="$PROJECT_DIR$/vendor/sebastian/version" />
<path value="$PROJECT_DIR$/vendor/myclabs/deep-copy" />
<path value="$PROJECT_DIR$/vendor/facade/flare-client-php" />
<path value="$PROJECT_DIR$/vendor/facade/ignition" />
<path value="$PROJECT_DIR$/vendor/facade/ignition-contracts" />
<path value="$PROJECT_DIR$/vendor/phpunit/phpunit" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-timer" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-file-iterator" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-text-template" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-token-stream" />
<path value="$PROJECT_DIR$/vendor/phpunit/php-code-coverage" />
<path value="$PROJECT_DIR$/vendor/nunomaduro/collision" />
<path value="$PROJECT_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<path value="$PROJECT_DIR$/vendor/laravel/tinker" />
<path value="$PROJECT_DIR$/vendor/hamcrest/hamcrest-php" />
<path value="$PROJECT_DIR$/vendor/laravel/framework" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/psr7" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/promises" />
<path value="$PROJECT_DIR$/vendor/vlucas/phpdotenv" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/vendor/guzzlehttp/guzzle" />
<path value="$PROJECT_DIR$/vendor/dragonmantank/cron-expression" />
<path value="$PROJECT_DIR$/vendor/symfony/css-selector" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php80" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/vendor/nesbot/carbon" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
<path value="$PROJECT_DIR$/vendor/symfony/mime" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php72" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/filp/whoops" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-php73" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/phar-io/version" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-idn" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/phar-io/manifest" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-iconv" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/symfony/translation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/string" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/process" />
<path value="$PROJECT_DIR$/vendor/symfony/translation" />
<path value="$PROJECT_DIR$/vendor/laravel/ui" />
<path value="$PROJECT_DIR$/vendor/_laravel_idea" />
</include_path>
</component>
<component name="ProjectId" id="2GLaKmM80GSH0Rk212pAfPdF2Hx" />
<component name="ProjectLevelVcsManager">
<ConfirmationsSetting value="1" id="Add" />
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="DatabaseDriversLRU" value="mysql" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/app/Http/Services" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
<property name="vue.rearranger.settings.migration" value="true" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\app\Http\Services" />
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\app\Http\Controllers\Api" />
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\app\Models" />
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\resources\views" />
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\resources\views\sku" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\resources\views\home" />
<recent name="\\wsl$\Ubuntu-20.04\data\www\semour_web\app\Http\Controllers" />
</key>
</component>
<component name="RunManager">
<configuration name="phpunit.xml" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
<TestRunner scope="XML" />
<method v="2" />
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="默认任务">
<changelist id="fb90add0-1393-48c2-9f26-72365d42cd03" name="变更" comment="" />
<created>1666170258203</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1666170258203</updated>
<workItem from="1666170260162" duration="17108000" />
<workItem from="1666835076791" duration="693000" />
<workItem from="1667266026118" duration="40321000" />
<workItem from="1667959054458" duration="183000" />
<workItem from="1667986756173" duration="2006000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.History.Properties">
<option name="COLUMN_ID_ORDER">
<list>
<option value="Default.Root" />
<option value="Default.Author" />
<option value="Default.Date" />
<option value="Default.Subject" />
</list>
</option>
</component>
</project>
\ No newline at end of file
......@@ -133,6 +133,7 @@ class AuthApiController extends Controller
Redis::expire($redisKey, 60);
$subject = config('mail.from.name');
$msg = 'Email Code:' . $code . '.';
return $this->setSuccessData($code);
Mail::raw($msg, function ($message) use ($email, $subject) {
$message->to($email)->subject($subject);
});
......
......@@ -21,7 +21,7 @@ class CartApiController extends Controller
{
//添加购物车, items: {"goods_id":1166788996788323407,"goods_number":2}
public function addCart(Request $request)
public function saveCart(Request $request)
{
$validator = Validator::make($request->all(), [
'items' => 'required|string',
......@@ -37,13 +37,13 @@ class CartApiController extends Controller
'data',
]);
$result = CartService::addCart($data, $request->user->id);
$result = CartService::saveCart($data, $request->user->id);
return !$result ? $this->setError('Add cart failed , please contact administrator'):$this->setSuccess('Add inquiry success');
}
//购物车列表
public function cartLists(){
public function cartLists(Request $request){
$result = CartService::cartLists($request->user->id);
}
......
......@@ -2,6 +2,7 @@
namespace App\Http\Controllers;
use App\Http\Services\BrandService;
use Illuminate\Http\Request;
class BrandController extends Controller
......@@ -23,7 +24,8 @@ class BrandController extends Controller
*/
public function map()
{
return view('brand.map');
$brandList = BrandService::getStandardBrandList();
return view('brand.map',compact('brandList'));
}
public function list()
{
......
<?php
namespace App\Http\Services;
use Illuminate\Support\Facades\Redis;
class BrandService
{
//获取品牌页的数据(标准品牌)
public static function getStandardBrandList()
{
$redisKey = 'semour_standard_brand_map';
$standardBrandList = Redis::get($redisKey);
if ($standardBrandList) {
return $standardBrandList;
}
$standardBrandCache = Redis::hgetall('standard_brand');
$standardBrandCache = array_map(function ($value) {
return json_decode($value, true);
}, $standardBrandCache);
$letters = generate_letters();
$standardBrandList = [];
foreach ($standardBrandCache as $standardBrand) {
$matchLetter = false;
foreach ($letters as $letter) {
if (start_with(strtoupper($standardBrand['brand_name']),$letter)) {
$standardBrandList[$letter][] = $standardBrand;
$matchLetter = true;
}
}
if (!$matchLetter) {
$standardBrandList['#'][] = $standardBrand;
}
}
$data = [];
ksort($standardBrandList);
Redis::set($redisKey, json_encode($standardBrandList), 60);
return $standardBrandList;
}
}
......@@ -14,8 +14,8 @@ use App\Models\CartModel;
//购物车服务器层
class CartService
{
//添加购物车
public static function addCart($data, $user_id)
//添加或者更新购物车
public static function saveCart($data, $user_id)
{
try{
......@@ -47,14 +47,14 @@ class CartService
$checkHas = CartModel::where(["user_id"=>$user_id,"goods_id"=>$goods_id,"status"=>1])->first();
if ($checkHas){ //存在累计库存
$temp["goods_number"] = $skuInfo["stock"] > ($item['buy_number']+$checkHas["buy_number"]) ? $item['buy_number']+$checkHas["buy_number"] : $skuInfo["stock"];
$temp["buy_number"] = $skuInfo["stock"] > ($item['buy_number']+$checkHas["buy_number"]) ? $item['buy_number']+$checkHas["buy_number"] : $skuInfo["stock"];
$temp["update_time"] = time();
$flag = CartModel::where(["cart_id"=>$checkHas["cart_id"]])->update($temp);
if (!$flag){
return false;
}
}else{ //不存在插入购物车
$temp["goods_number"] = $skuInfo["stock"] > $item['buy_number'] ? $item['buy_number'] : $skuInfo["stock"];
$temp["buy_number"] = $skuInfo["stock"] > $item['buy_number'] ? $item['buy_number'] : $skuInfo["stock"];
$temp["create_time"] = time();
$temp["update_time"] = time();
......@@ -75,7 +75,7 @@ class CartService
}
//刷新购物车并且返回列表
public static function cartUpdateGetLists($user_id){
public static function cartLists($user_id){
//当前用户所有可用的购物车数据
$query = CartModel::where(['user_id'=>$user_id,"status"=>1])
......@@ -92,6 +92,7 @@ class CartService
$redis = Redis::connection();
$goodsInfoArr = ThirdService::getGoodsInfo(array_column($result,"goods_id"));
$cartList = [];
foreach ($result as $item) {
$goods_id = $item['goods_id'];
......
......@@ -2,7 +2,50 @@
namespace App\Http\Services;
use Illuminate\Support\Facades\Redis;
class ClassService
{
//获取首页需要的所有分类,没有英文名称的不要
public static function getClassificationForHome()
{
//先获取所有分类
$classCache = Redis::hgetall('pool_class_info');
$topClassList = [];
foreach ($classCache as $key => &$class) {
$class = json_decode($class, true);
if (!$class['parent_id']) {
$topClassList[] = $class;
}
}
unset($class);
foreach ($classCache as $key => $class) {
if (!$class['parent_id']) {
continue;
}
foreach ($topClassList as &$topClass) {
if ($topClass['class_id'] == $class['parent_id']) {
$topClass['children'][] = $class;
}
}
unset($topClass);
}
$topClassMapping = config('field.top_class_mapping');
$topFields = array_map(function ($value){
return [
'class_name' => $value,
];
},$topClassMapping);
foreach ($topClassMapping as $key => $mapping) {
foreach ($topClassList as $topClass) {
if (in_array($topClass['class_id'], $topClassMapping[$key])) {
$topFields[$key]['children'][] = $topClass;
}
}
}
return array_values($topFields);
}
}
<?php
namespace App\Http\Services;
class DataService
{
}
<?php
namespace App\Http\ViewComposers;
use App\Http\Services\ClassService;
use Illuminate\View\View;
class ClassificationViewComposer
{
public function compose(View $view)
{
$classification = ClassService::getClassificationForHome();
$view->with('classification', $classification);
}
}
......@@ -25,6 +25,5 @@ class AppServiceProvider extends ServiceProvider
public function boot()
{
//
View::share ('public',config('field.public_url'));
}
}
<?php
namespace App\Providers;
use Illuminate\Support\Facades\View;
use Illuminate\Support\ServiceProvider;
class ViewServiceProvider extends ServiceProvider
{
/**
* 注册任何应用服务
*
* @return void
*/
public function register()
{
//
}
/**
* 引导任何应用服务
*
* @return void
*/
public function boot()
{
View::share('public', config('field.public_url'));
View::composer(
['common.mallHeaderNav'],
'App\Http\ViewComposers\ClassificationViewComposer'
);
}
}
<?php
function test_helper() {
function test_helper()
{
return 'OK';
}
if (!function_exists('start_with')) {
function start_with($str, $pattern)
{
return strpos($str, $pattern) === 0;
}
}
if (!function_exists('generate_letters')) {
function generate_letters($upper = true)
{
$letters = [];
for ($i = 65; $i < 91; $i++) {
$letters[] = $upper ? strtoupper(chr($i)) : strtolower(chr($i));
}
return $letters;
}
}
/*
* 反爬虫用html标签替换数字,不包括“.”
* $number 数字串
*/
function numberToHtml($number){
$arr = [
['asfgdqwer','asfgdtyhg','asfgdpolk','asfgdpoqw'],
['asfgdrfdf','asfgderfd','asfgdwdsa','asfgdpoer'],
['asfgdasde','asfgdqwsz','asfgdrtgd','asfgdpovv'],
['asfgdwsxc','asfgdwsxz','asfgdrfvb','asfgdpoee'],
['asfgdqazs','asfgdqasd','asfgdqwag','asfgdpogh'],
['asfgdrtyh','asfgdyutr','asfgdeews','asfgdpotg'],
['asfgdpluj','asfgdikjf','asfgdesgj','asfgdpfff'],
['asfgdtrdb','asfgdiksf','asfgdsgkp','asfgdprty'],
['asfgdpehl','asfgdstgb','asfgderll','asfgdpokf'],
['asfgdpehg','asfgdstgf','asfgderlf','asfgdpogk']
];
if(empty($arr)){
return $number;
}
$len = strlen($number);
if($len>0){
$str = '';
for($i=0;$i<$len;$i++){
$num = substr($number, $i,1);
if(preg_match('/\d/', $num)){
$index = rand(0, 3);
$class = $arr[$num][$index];
$other_class = strRandom($class);
$num = '<font class="'.$class.$other_class.'"></font>';
}
$str .= $num;
}
return $str;
}else{
return $number;
}
}
File mode changed
File mode changed
......@@ -174,6 +174,7 @@ return [
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
App\Providers\ViewServiceProvider::class,
],
......
......@@ -7,5 +7,12 @@ return [
-1 => 'Closed',
0 => 'Pending',
1 => 'Replied',
],
//顶级分类和具体分类的映射,目前是写死的
'top_class_mapping' => [
'Actives' => [13396, 13782, 13359, 13287, 13482, 13488],
'Passives' => [13693, 13799, 13706, 13586, 13626, 13883],
'Modules & Devices & Products' => [13550, 13449, 13821, 13734, 13757, 13762],
]
];
我是商城头部
\ No newline at end of file
我是商城头部
......@@ -4,7 +4,7 @@
<div class="fr clr ghn-right-box">
<div class="grb-top clr">
<a href="" class="fr clj">CONTACT US</a>
<div class="login-head-box notLoginclj fr clj" >
<a href="" >Login</a>
<font>/</font>
......@@ -23,7 +23,7 @@
<ul class="clr onenav">
<li class="oneli fr">
<a href="" class="onea">Quality Inspection</a>
</li>
<li class="oneli fr"><a href="" class="onea">Real-time RFQ</a></li>
<li class="oneli fr"><a href="" class="onea">Online Mall</a></li>
......
......@@ -107,4 +107,4 @@
<a href="" class="li">About us</a>
</div>
</div>
</div>
\ No newline at end of file
</div>
......@@ -5,4 +5,4 @@
GRAND OPENING OF SEMOUR ELECTRONICS ONLINE STORE. CLICK TO VISIT.
</div>
</div>
@endempty
\ No newline at end of file
@endempty
......@@ -17,6 +17,7 @@ use Illuminate\Support\Facades\Route;
Route::middleware(['api'])->namespace('Api')->group(function () {
Route::POST('/auth/login', 'AuthApiController@login');
Route::POST('/auth/register', 'AuthApiController@register');
Route::POST('auth/send_email_code', 'AuthApiController@sendEmailCode');
});
......@@ -24,7 +25,6 @@ Route::middleware(['api', 'api.check'])->namespace('Api')->group(function () {
Route::GET('/auth/logout', 'AuthApiController@logout');
Route::POST('auth/reset_password', 'AuthApiController@resetPassword');
Route::POST('auth/send_email_code', 'AuthApiController@sendEmailCode');
Route::get('user/info', 'UserApiController@info');
Route::POST('user/update', 'UserApiController@update');
......@@ -43,7 +43,8 @@ Route::middleware(['api', 'api.check'])->namespace('Api')->group(function () {
Route::get('country/list', 'CountryApiController@list');
Route::POST('cart/addCart', 'CartApiController@addCart'); //添加购物车
Route::POST('cart/saveCart', 'CartApiController@saveCart'); //添加或者更新购物车
Route::POST('cart/cartLists', 'CartApiController@cartLists'); //购物车列表
});
<?php
/** @noinspection PhpUndefinedClassInspection */
/** @noinspection PhpFullyQualifiedNameUsageInspection */
<?php //57e58246c1892c9d4d68cdd025828591
/** @noinspection all */
namespace Facade\Ignition\Facades {
/**
* @see \Facade\FlareClient\Flare::applicationPath
* @method static \Facade\FlareClient\Flare applicationPath(string $applicationPath)
......@@ -68,7 +67,7 @@ namespace Facade\Ignition\Facades {
}
namespace Illuminate\Support\Facades {
/**
* @see \Illuminate\Contracts\Foundation\Application::runningUnitTests
* @method static bool runningUnitTests()
......@@ -168,7 +167,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Support\ServiceProvider register(\Illuminate\Support\ServiceProvider|string $provider, bool $force = false)
*/
class App {}
/**
* @see \Illuminate\Contracts\Console\Kernel::all
* @method static array all()
......@@ -184,7 +183,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Foundation\Bus\PendingDispatch queue(string $command, array $parameters = [])
*/
class Artisan {}
/**
* @see \Illuminate\Auth\CreatesUserProviders::getDefaultUserProvider
* @method static string getDefaultUserProvider()
......@@ -242,7 +241,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Contracts\Auth\Authenticatable loginUsingId($id, bool $remember = false)
*/
class Auth {}
/**
* @see \Illuminate\View\Compilers\BladeCompiler::getCustomDirectives
* @method static array getCustomDirectives()
......@@ -306,13 +305,13 @@ namespace Illuminate\Support\Facades {
* @method static string newComponentHash(string $component)
*/
class Blade {}
/**
* @see \Illuminate\Contracts\Broadcasting\Factory::connection
* @method static \Illuminate\Contracts\Broadcasting\Broadcaster connection(null|string $name = null)
*/
class Broadcast {}
/**
* @see \Illuminate\Contracts\Bus\Dispatcher::getCommandHandler
* @method static bool|mixed getCommandHandler($command)
......@@ -328,7 +327,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Contracts\Bus\Dispatcher map(array $map)
*/
class Bus {}
/**
* @see \Psr\SimpleCache\CacheInterface::setMultiple
* @method static bool setMultiple(iterable $values, \DateInterval|int|null $ttl = null)
......@@ -422,7 +421,7 @@ namespace Illuminate\Support\Facades {
* @method static mixed macroCall(string $method, array $parameters)
*/
class Cache {}
/**
* @see \Illuminate\Config\Repository::all
* @method static array all()
......@@ -448,7 +447,7 @@ namespace Illuminate\Support\Facades {
* @method static void push(string $key, $value)
*/
class Config {}
/**
* @see \Illuminate\Support\Traits\Macroable::macro
* @method static void macro(string $name, callable|object $macro)
......@@ -476,7 +475,7 @@ namespace Illuminate\Support\Facades {
* @method static void queue(...$parameters)
*/
class Cookie {}
/**
* @see \Illuminate\Encryption\Encrypter::getKey
* @method static string getKey()
......@@ -494,7 +493,7 @@ namespace Illuminate\Support\Facades {
* @method static bool supported(string $key, string $cipher)
*/
class Crypt {}
/**
* @see \Illuminate\Database\Connection::logQuery
* @method static void logQuery(string $query, array $bindings, float|null $time = null)
......@@ -648,7 +647,7 @@ namespace Illuminate\Support\Facades {
* @method static mixed|null getResolver(string $driver)
*/
class DB {}
/**
* @see \Illuminate\Events\Dispatcher::dispatch
* @method static array|null dispatch(object|string $event, $payload = [], bool $halt = false)
......@@ -686,7 +685,7 @@ namespace Illuminate\Support\Facades {
* @method static array getListeners(string $eventName)
*/
class Event {}
/**
* @see \Illuminate\Filesystem\Filesystem::extension
* @method static string extension(string $path)
......@@ -776,7 +775,7 @@ namespace Illuminate\Support\Facades {
* @method static bool deleteDirectories(string $directory)
*/
class File {}
/**
* @see \Illuminate\Contracts\Auth\Access\Gate::allows
* @method static bool allows(string $ability, array|mixed $arguments = [])
......@@ -812,7 +811,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Contracts\Auth\Access\Gate policy(string $class, string $policy)
*/
class Gate {}
/**
* @see \Illuminate\Hashing\HashManager::createArgonDriver
* @method static \Illuminate\Hashing\ArgonHasher createArgonDriver()
......@@ -838,7 +837,7 @@ namespace Illuminate\Support\Facades {
* @method static array info(string $hashedValue)
*/
class Hash {}
/**
* @see \Illuminate\Http\Client\Factory::assertSentCount
* @method static void assertSentCount(int $count)
......@@ -874,7 +873,7 @@ namespace Illuminate\Support\Facades {
* @method static void assertNotSent(callable $callback)
*/
class Http {}
/**
* @see \Illuminate\Translation\Translator::parseKey
* @method static array parseKey(string $key)
......@@ -922,7 +921,7 @@ namespace Illuminate\Support\Facades {
* @method static void setSelector(\Illuminate\Translation\MessageSelector $selector)
*/
class Lang {}
/**
* @see \Illuminate\Log\Logger::debug
* @method static void debug(string $message, array $context = [])
......@@ -954,7 +953,7 @@ namespace Illuminate\Support\Facades {
* @method static void notice(string $message, array $context = [])
*/
class Log {}
/**
* @see \Illuminate\Mail\Mailer::alwaysReplyTo
* @method static void alwaysReplyTo(string $address, null|string $name = null)
......@@ -1030,7 +1029,7 @@ namespace Illuminate\Support\Facades {
* @method static void assertNotSent(string $mailable, callable|null $callback = null)
*/
class Mail {}
/**
* @see \Illuminate\Notifications\ChannelManager::channel
* @method static mixed channel(null|string $name = null)
......@@ -1054,7 +1053,7 @@ namespace Illuminate\Support\Facades {
* @method static array getDrivers()
*/
class Notification {}
/**
* @see \Illuminate\Auth\Passwords\PasswordBroker::sendResetLink
* @method static string sendResetLink(array $credentials)
......@@ -1072,7 +1071,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Contracts\Auth\CanResetPassword|mixed|null|string reset(array $credentials, \Closure $callback)
*/
class Password {}
/**
* @see \Illuminate\Queue\QueueManager::addConnector
* @method static void addConnector(string $driver, \Closure $resolver)
......@@ -1130,7 +1129,7 @@ namespace Illuminate\Support\Facades {
* @method static mixed getJobExpiration($job)
*/
class Queue {}
/**
* @see \Illuminate\Support\Traits\Macroable::macro
* @method static void macro(string $name, callable|object $macro)
......@@ -1170,7 +1169,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Routing\UrlGenerator getUrlGenerator()
*/
class Redirect {}
/**
* @see \Illuminate\Redis\Connections\Connection::throttle
* @method static \Illuminate\Redis\Limiters\DurationLimiterBuilder throttle(string $name)
......@@ -1222,7 +1221,7 @@ namespace Illuminate\Support\Facades {
* @method static mixed macroCall(string $method, array $parameters)
*/
class Redis {}
/**
* @see \Illuminate\Http\Request::hasValidSignature
* @method static bool hasValidSignature($absolute = true)
......@@ -1544,7 +1543,7 @@ namespace Illuminate\Support\Facades {
* @method static array getLanguages()
*/
class Request {}
/**
* @see \Illuminate\Contracts\Routing\ResponseFactory::streamDownload
* @method static \Symfony\Component\HttpFoundation\StreamedResponse streamDownload(\Closure $callback, null|string $name = null, array $headers = [], null|string $disposition = 'attachment')
......@@ -1576,7 +1575,7 @@ namespace Illuminate\Support\Facades {
* @method static \Illuminate\Http\RedirectResponse redirectToAction(string $action, $parameters = [], int $status = 302, array $headers = [])
*/
class Response {}
/**
* @see \Illuminate\Routing\Router::apiResources
* @method static void apiResources(array $resources, array $options = [])
......@@ -1726,9 +1725,17 @@ namespace Illuminate\Support\Facades {
* @method static mixed macroCall(string $method, array $parameters)
* @see \Illuminate\Routing\Router::getPatterns
* @method static array getPatterns()
* @see Route::emailVerification
* @method static void emailVerification()
* @see Route::auth
* @method static void auth($options = [])
* @see Route::resetPassword
* @method static void resetPassword()
* @see Route::confirmPassword
* @method static void confirmPassword()
*/
class Route {}
/**
* @see \Illuminate\Database\Schema\Builder::disableForeignKeyConstraints
* @method static bool disableForeignKeyConstraints()
......@@ -1774,7 +1781,7 @@ namespace Illuminate\Support\Facades {
* @method static void table(string $table, \Closure $callback)
*/
class Schema {}
/**
* @see \Illuminate\Session\SessionManager::setDefaultDriver
* @method static void setDefaultDriver(string $name)
......@@ -1878,7 +1885,7 @@ namespace Illuminate\Support\Facades {
* @method static void setId(string $id)
*/
class Session {}
/**
* @see \Illuminate\Filesystem\FilesystemManager::createS3Driver
* @method static \Illuminate\Contracts\Filesystem\Cloud|\Illuminate\Contracts\Filesystem\Filesystem|\Illuminate\Filesystem\FilesystemAdapter createS3Driver(array $config)
......@@ -1944,7 +1951,7 @@ namespace Illuminate\Support\Facades {
* @method static bool append(string $path, string $data)
*/
class Storage {}
/**
* @see \Illuminate\Routing\UrlGenerator::formatRoot
* @method static string formatRoot(string $scheme, null|string $root = null)
......@@ -2022,7 +2029,7 @@ namespace Illuminate\Support\Facades {
* @method static string asset(string $path, bool|null $secure = null)
*/
class URL {}
/**
* @see \Illuminate\Validation\Factory::resolver
* @method static void resolver(\Closure $resolver)
......@@ -2046,7 +2053,7 @@ namespace Illuminate\Support\Facades {
* @method static array validate(array $data, array $rules, array $messages = [], array $customAttributes = [])
*/
class Validator {}
/**
* @see \Illuminate\View\Concerns\ManagesLayouts::stopSection
* @method static string stopSection(bool $overwrite = false)
......@@ -2228,4 +2235,4 @@ namespace {
class URL extends Illuminate\Support\Facades\URL {}
class Validator extends Illuminate\Support\Facades\Validator {}
class View extends Illuminate\Support\Facades\View {}
}
}
\ No newline at end of file
<?php
/** @noinspection PhpUndefinedClassInspection */
/** @noinspection PhpFullyQualifiedNameUsageInspection */
<?php //eb887b72f4c195a7661d55cc5b0e6fb2
/** @noinspection all */
namespace Illuminate\Http {
namespace Illuminate\Database\Eloquent {
/**
* @method $this onlyTrashed()
* @method int restore()
* @method $this withTrashed($withTrashed = true)
* @method $this withoutTrashed()
*/
class Builder {}
}
namespace Illuminate\Http {
/**
* @method bool hasValidSignature($absolute = true)
* @method array validate(array $rules, ...$params)
* @method array validateWithBag(string $errorBag, array $rules, ...$params)
* @method bool hasValidSignature($absolute = true)
*/
class Request {}
}
namespace Illuminate\Support\Facades {
/**
* @method void emailVerification()
* @method void auth($options = [])
* @method void resetPassword()
* @method void confirmPassword()
* @method void emailVerification()
* @method void resetPassword()
*/
class Route {}
}
}
\ No newline at end of file
<?php
/** @noinspection PhpUndefinedClassInspection */
/** @noinspection PhpFullyQualifiedNameUsageInspection */
<?php //5f7aad5b00d94544916e296bddb7d62f
/** @noinspection all */
namespace Illuminate\Http {
namespace Illuminate\Database\Eloquent {
/**
* @method static $this onlyTrashed()
* @method static int restore()
* @method static $this withTrashed($withTrashed = true)
* @method static $this withoutTrashed()
*/
class Builder {}
}
namespace Illuminate\Http {
/**
* @method static bool hasValidSignature($absolute = true)
* @method static array validate(array $rules, ...$params)
* @method static array validateWithBag(string $errorBag, array $rules, ...$params)
* @method static bool hasValidSignature($absolute = true)
*/
class Request {}
}
namespace Illuminate\Support\Facades {
/**
* @method static void emailVerification()
* @method static void auth($options = [])
* @method static void resetPassword()
* @method static void confirmPassword()
* @method static void emailVerification()
* @method static void resetPassword()
*/
class Route {}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment