Browse Source
Merge branch 'phoenix' of http://120.24.33.109:11081/hyzjshwo/lanzu_api_hyperf into phoenix
Merge branch 'phoenix' of http://120.24.33.109:11081/hyzjshwo/lanzu_api_hyperf into phoenix
# Conflicts: # config/routes.phpmaster
11 changed files with 401 additions and 1 deletions
-
28app/Constants/v3/ActivityType.php
-
4app/Constants/v3/ErrorCode.php
-
5app/Constants/v3/OrderState.php
-
5app/Constants/v3/OrderType.php
-
5app/Constants/v3/Payment.php
-
31app/Constants/v3/Tabs.php
-
122app/Controller/v3/GoodsRecommendController.php
-
157app/Controller/v3/HomeController.php
-
39app/Controller/v3/LocationController.php
-
5config/config.php
-
1config/routes.php
@ -0,0 +1,28 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Constants\v3; |
||||
|
|
||||
|
use Hyperf\Constants\AbstractConstants; |
||||
|
|
||||
|
class ActivityType extends AbstractConstants |
||||
|
{ |
||||
|
/** |
||||
|
* @Message("无") |
||||
|
*/ |
||||
|
const NONE = 'none'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("限时抢购") |
||||
|
*/ |
||||
|
const FLASH_SALE = 'flash_sale'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("限时团购") |
||||
|
*/ |
||||
|
const GROUP_BUY = 'group_buy'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("新品推荐") |
||||
|
*/ |
||||
|
const NEW_PRODUCT = 'new_product'; |
||||
|
} |
||||
@ -0,0 +1,31 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Constants\v3; |
||||
|
|
||||
|
/** |
||||
|
* 选项卡标识 |
||||
|
* Class Tabs |
||||
|
* @package App\Constants\v3 |
||||
|
*/ |
||||
|
class Tabs |
||||
|
{ |
||||
|
/** |
||||
|
* @Message("小程序首页推荐") |
||||
|
*/ |
||||
|
const APPLET_INDEX_RECOMMEND = 'applet_index_recommend'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("小程序首页懒族上新") |
||||
|
*/ |
||||
|
const APPLET_INDEX_NEW = 'applet_index_new'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("小程序首页实时鲜货") |
||||
|
*/ |
||||
|
const APPLET_INDEX_FRESH = 'applet_index_fresh'; |
||||
|
|
||||
|
/** |
||||
|
* @Message("小程序首页上班带餐") |
||||
|
*/ |
||||
|
const APPLET_INDEX_OFFICE = 'applet_index_office'; |
||||
|
} |
||||
@ -0,0 +1,122 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Controller\v3; |
||||
|
|
||||
|
use App\Constants\v3\Tabs; |
||||
|
use App\Controller\BaseController; |
||||
|
|
||||
|
/** |
||||
|
* 推荐商品相关 |
||||
|
* Class GoodsRecommend |
||||
|
* @package App\Controller\v3 |
||||
|
*/ |
||||
|
class GoodsRecommendController extends BaseController |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* 获取首页tabs推荐商品列表 |
||||
|
* 1、前端上传tab标识 |
||||
|
* 2、根据tab标识从Elasticsearch中获取商品IDs |
||||
|
* 3、根据IDs获取商品数据 |
||||
|
* 4、返回数据,id、封面图、名称、原价、现价、库存、月销、tag、规格、购物车相关、商户id、商户avatar、商户名 |
||||
|
*/ |
||||
|
public function getByTabsForAppletIndex() |
||||
|
{ |
||||
|
|
||||
|
$tabsData = [ |
||||
|
Tabs::APPLET_INDEX_RECOMMEND => [ |
||||
|
[ |
||||
|
'goods' => [ |
||||
|
'id' => 1, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜11', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'tag' => ['限时', '折扣'], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 10, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 2, |
||||
|
'noneffective_note' => '已卖完', |
||||
|
], |
||||
|
'store' => ['id' => 111, 'logo' => '', 'name' => '我是一个商家'] |
||||
|
], |
||||
|
|
||||
|
], |
||||
|
Tabs::APPLET_INDEX_NEW => [ |
||||
|
[ |
||||
|
'goods' => [ |
||||
|
'id' => 2, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜11', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'tag' => ['限时', '折扣'], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 10, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 2, |
||||
|
'noneffective_note' => '已卖完', |
||||
|
], |
||||
|
'store' => ['id' => 222, 'logo' => '', 'name' => '我是一个商家222'] |
||||
|
], |
||||
|
], |
||||
|
Tabs::APPLET_INDEX_FRESH => [ |
||||
|
[ |
||||
|
'goods' => [ |
||||
|
'id' => 3, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜11', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'tag' => ['限时', '折扣'], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 10, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 2, |
||||
|
'noneffective_note' => '已卖完', |
||||
|
], |
||||
|
'store' => ['id' => 333, 'logo' => '', 'name' => '我是一个商家333'] |
||||
|
], |
||||
|
], |
||||
|
Tabs::APPLET_INDEX_OFFICE => [ |
||||
|
[ |
||||
|
'goods' => [ |
||||
|
'id' => 4, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜11', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'tag' => ['限时', '折扣'], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 10, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 2, |
||||
|
'noneffective_note' => '已卖完', |
||||
|
], |
||||
|
'store' => ['id' => 444, 'logo' => '', 'name' => '我是一个商家444'] |
||||
|
], |
||||
|
] |
||||
|
]; |
||||
|
|
||||
|
return $this->success([ |
||||
|
'tab_data' => $tabsData[$this->request->post('tab', 'applet_index_recommend')] |
||||
|
]); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,157 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Controller\v3; |
||||
|
|
||||
|
use App\Constants\v3\ActivityType; |
||||
|
use App\Constants\v3\Tabs; |
||||
|
use App\Controller\BaseController; |
||||
|
|
||||
|
/** |
||||
|
* 首页相关 |
||||
|
* Class HomeController |
||||
|
* @package App\Controller\v3 |
||||
|
*/ |
||||
|
class HomeController extends BaseController |
||||
|
{ |
||||
|
/** |
||||
|
* 小程序首页,根据market_id |
||||
|
* 1.banner数据 |
||||
|
* 2.一级分类 |
||||
|
* 3.活动数据(秒杀、团购、新品、无) |
||||
|
* 4.tabs数据 |
||||
|
*/ |
||||
|
public function appletIndex() |
||||
|
{ |
||||
|
$seconds = 25600; |
||||
|
$days = bcdiv($seconds, 86400); |
||||
|
$leftSeconds = bcsub($seconds, bcmul($days,86400)); |
||||
|
$hours = bcdiv($leftSeconds,3600); |
||||
|
$leftSeconds = bcsub($leftSeconds, bcmul($hours,3600)); |
||||
|
$minutes = bcdiv($leftSeconds,60); |
||||
|
$leftSeconds = bcsub($leftSeconds, bcmul($minutes,60)); |
||||
|
|
||||
|
return $this->success([ |
||||
|
'banners' => [ |
||||
|
[ |
||||
|
'id' => 2, |
||||
|
'img' => 'https://store.lanzu.vip/attachment/images/2/2020/06/nfXxIhEgH71hcSxSz2hHnaaEaF1g3A.jpg', |
||||
|
'title' => '懒族生活', |
||||
|
'subtitle' => '满足您的美味生活', |
||||
|
'redirect_type' => '', |
||||
|
'redirect_url' => '', |
||||
|
], |
||||
|
[ |
||||
|
'id' => 3, |
||||
|
'img' => 'http://lanzutest.lanzulive.com/attachment/images/2/2020/08/PY55Y3Mz17yJo17rv1Z7vImX1V5159.jpg', |
||||
|
'title' => '鲜菜有爱', |
||||
|
'subtitle' => '很实在', |
||||
|
'redirect_type' => 'page', |
||||
|
'redirect_url' => '/pages/index', |
||||
|
], |
||||
|
], |
||||
|
'categories' => [ |
||||
|
['id' => 1, 'icon' => config('alioss.img_host').'/attachment/types/卤菜.png', 'name' => '卤菜'], |
||||
|
['id' => 2, 'icon' => config('alioss.img_host').'/attachment/types/水果.png', 'name' => '水果'], |
||||
|
['id' => 3, 'icon' => config('alioss.img_host').'/attachment/types/肉.png', 'name' => '肉'], |
||||
|
['id' => 4, 'icon' => config('alioss.img_host').'/attachment/types/蔬菜.png', 'name' => '蔬菜'], |
||||
|
['id' => 5, 'icon' => config('alioss.img_host').'/attachment/types/蔬菜.png', 'name' => '蔬菜'], |
||||
|
['id' => 6, 'icon' => config('alioss.img_host').'/attachment/types/肉.png', 'name' => '肉'], |
||||
|
['id' => 7, 'icon' => config('alioss.img_host').'/attachment/types/水果.png', 'name' => '水果'], |
||||
|
['id' => 8, 'icon' => config('alioss.img_host').'/attachment/types/卤菜.png', 'name' => '卤菜'], |
||||
|
], |
||||
|
'activity' => [ |
||||
|
'type' => ActivityType::FLASH_SALE, |
||||
|
'goods' => [ |
||||
|
[ |
||||
|
'id' => 1, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 0, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 1, |
||||
|
'noneffective_note' => '已抢光', |
||||
|
'total_seconds' => $seconds, |
||||
|
'days' => $days, |
||||
|
'hours' => $hours, |
||||
|
'minutes' => $minutes, |
||||
|
'seconds' => $leftSeconds, |
||||
|
],[ |
||||
|
'id' => 1, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 0, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 1, |
||||
|
'noneffective_note' => '已抢光', |
||||
|
'total_seconds' => $seconds, |
||||
|
'days' => $days, |
||||
|
'hours' => $hours, |
||||
|
'minutes' => $minutes, |
||||
|
'seconds' => $leftSeconds, |
||||
|
],[ |
||||
|
'id' => 1, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 0, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 1, |
||||
|
'noneffective_note' => '已抢光', |
||||
|
'total_seconds' => $seconds, |
||||
|
'days' => $days, |
||||
|
'hours' => $hours, |
||||
|
'minutes' => $minutes, |
||||
|
'seconds' => $leftSeconds, |
||||
|
],[ |
||||
|
'id' => 1, |
||||
|
'cover_img' => config('alioss.img_host').'/attachment/types/c9b656181bbbc463624ca3803c5be7539f2fd62253f9a-cwVLri.png', |
||||
|
'name' => '【优质】大白菜', |
||||
|
'spec' => [ |
||||
|
['key' => '净含量', 'value' => '500g'] |
||||
|
], |
||||
|
'original_price' => 50.5, |
||||
|
'price' => 25.25, |
||||
|
'inventory' => 0, |
||||
|
'month_sales' => 20, |
||||
|
'total_sales' => 20, |
||||
|
'cart_num' => 0, |
||||
|
'is_effective' => 1, |
||||
|
'noneffective_note' => '已抢光', |
||||
|
'total_seconds' => $seconds, |
||||
|
'days' => $days, |
||||
|
'hours' => $hours, |
||||
|
'minutes' => $minutes, |
||||
|
'seconds' => $leftSeconds, |
||||
|
], |
||||
|
] |
||||
|
], |
||||
|
'tabs' => [ |
||||
|
['tab' => Tabs::APPLET_INDEX_RECOMMEND, 'title' => '推荐', 'subtitle' => '猜你喜欢', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], |
||||
|
['tab' => Tabs::APPLET_INDEX_NEW, 'title' => '懒族上新', 'subtitle' => '买点不一样', 'badge' => '限时', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], |
||||
|
['tab' => Tabs::APPLET_INDEX_FRESH, 'title' => '实时鲜货', 'subtitle' => '今天辛苦了', 'badge' => '好新鲜', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], |
||||
|
['tab' => Tabs::APPLET_INDEX_OFFICE, 'title' => '上班带餐', 'subtitle' => '轻奢快手菜', 'badge' => '不慌', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], |
||||
|
] |
||||
|
]); |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,39 @@ |
|||||
|
<?php |
||||
|
|
||||
|
namespace App\Controller\v3; |
||||
|
|
||||
|
use App\Controller\BaseController; |
||||
|
|
||||
|
/** |
||||
|
* 定位相关 |
||||
|
* Class LocationController |
||||
|
* @package App\Controller\v3 |
||||
|
*/ |
||||
|
class LocationController extends BaseController |
||||
|
{ |
||||
|
|
||||
|
/** |
||||
|
* 获取当前用户定位最近的市场 |
||||
|
* 1.用户上报经纬度数据 |
||||
|
* 2.如果经纬度不存在或无法获取到最近市场信息,则返回空数据 |
||||
|
* 3.根据经纬度查询获取市场数据,id、名称、省份、城市、行政区、地址、经纬度 |
||||
|
*/ |
||||
|
public function getNearestMarket() |
||||
|
{ |
||||
|
return $this->success([ |
||||
|
'market' => [ |
||||
|
'id' => 1, |
||||
|
'name' => '海尔青啤', |
||||
|
'province_id' => 1, |
||||
|
'province_name' => '广西', |
||||
|
'city_id' => 2, |
||||
|
'city_name' => '南宁市', |
||||
|
'area_id' => 3, |
||||
|
'area_name' => '良庆区', |
||||
|
'address' => '海尔青啤广场', |
||||
|
'lng' => '108.383566', |
||||
|
'lat' => '22.759946', |
||||
|
] |
||||
|
]); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue