添加:商品分类查询接口

添加:获取酒道馆列表接口
添加:酒道馆商品支持商品品牌筛选、商品分类筛选、商户筛选
修复:酒道馆购物车未区分用户,导致所有用户使用同一个购物车
This commit is contained in:
wuhui_zzw 2024-03-08 15:43:19 +08:00
parent 4944614d5b
commit 7bbf063c8c
5 changed files with 96 additions and 13 deletions

View File

@ -93,4 +93,9 @@ class StoreCategory extends BaseModel
$query->whereIn('mer_id',$value);
}
public function children(){
return $this->hasMany(self::class, 'pid', 'store_category_id');
}
}

View File

@ -2505,6 +2505,15 @@ class ProductRepository extends BaseRepository
->where('Merchant.merchant_type', 1)
->when(isset($search['store_name']) && $search['store_name'] !== '', function ($query) use ($search) {
$query->whereLike('Product.store_name', "%{$search['store_name']}%");
})
->when(isset($search['store_category_id']) && $search['store_category_id'] !== '' && $search['store_category_id'] > 0, function ($query) use ($search) {
$query->whereLike('Product.cate_id', $search['store_category_id']);
})
->when(isset($search['mer_id']) && $search['mer_id'] !== '' && $search['mer_id'] > 0, function ($query) use ($search) {
$query->whereLike('Product.mer_id', $search['mer_id']);
})
->when(isset($search['brand_id']) && $search['brand_id'] !== '', function ($query) use ($search) {
$query->where('Product.brand_id', $search['brand_id']);
});
// 查询内容
$field = [

View File

@ -5,6 +5,7 @@ namespace app\controller\api;
use app\common\repositories\store\order\StoreCartRepository;
use app\common\repositories\store\product\ProductRepository;
use app\common\repositories\store\product\SupplierProductRepository;
use app\common\repositories\system\merchant\MerchantRepository;
use app\services\supplier\SystemSupplierApplyServices;
use app\services\supplier\SystemSupplierServices;
use crmeb\basic\BaseController;
@ -19,6 +20,26 @@ class Wine extends BaseController{
parent::__construct($app);
$this->services = $services;
}
/**
* Common: 获取酒道馆列表
* Author: wu-hui
* Time: 2024/03/08 15:25
* @return mixed
*/
public function merList(){
// 商户类别0=普通商户1=酒道馆2=供应商
$where['merchant_type'] = 1;
$where['mer_state'] = 1;
$where['status'] = 1;
$list = app()->make(MerchantRepository::class)
->search($where)
->field(['mer_id','mer_name','merchant_type'])
->select()
->toArray();
return app('json')->success($list);
}
/**
* Common: 获取全部酒道馆商品
* Author: wu-hui
@ -27,20 +48,21 @@ class Wine extends BaseController{
*/
public function goodsList(){
// 参数获取
$search = $this->request->params(['store_name','lat','lng']);
$search = $this->request->params(['store_name','lat','lng','brand_id','store_category_id','mer_id']);
[$page, $limit] = $this->getPage();
$data = app()->make(ProductRepository::class)->getWineList($search, $page, $limit);
return app('json')->success($data);
}
/**
* Common: 获取当前商户购物车列表
* Common: 获取当前用户酒道馆商品购物车列表
* Author: wu-hui
* Time: 2024/03/01 15:06
* Time: 2024/03/08 15:39
* @return mixed
*/
public function cartList(){
// 参数获取
$uid = $this->request->uid();
$list = (array)app()->make(StoreCartRepository::class)
->getSearch([
'is_pay' => 0,
@ -48,6 +70,7 @@ class Wine extends BaseController{
'is_new' => 0,
'is_fail' => 0,
'product_type' => 36,
'uid' => $uid,
])
->field(['cart_id','product_type','product_id','product_attr_unique','cart_num','is_batch','batch_num'])
->with([
@ -64,13 +87,14 @@ class Wine extends BaseController{
return app('json')->success($list);
}
/**
* Common: 获取购物车id列表
* Common: 获取当前用户酒道馆购物车id列表
* Author: wu-hui
* Time: 2024/03/01 15:39
* Time: 2024/03/08 15:40
* @return mixed
*/
public function cartIds(){
// 参数获取
$uid = $this->request->uid();
$ids = (array)app()->make(StoreCartRepository::class)
->getSearch([
'is_pay' => 0,
@ -78,18 +102,20 @@ class Wine extends BaseController{
'is_new' => 0,
'is_fail' => 0,
'product_type' => 36,
'uid' => $uid,
])->column('cart_id');
return app('json')->success($ids);
}
/**
* Common: 商户购物车 - 新增购买商品&修改购买商品数量
* Common: 新增购买商品&修改购买商品数量
* Author: wu-hui
* Time: 2024/03/01 14:24
* Time: 2024/03/08 15:41
* @return mixed
*/
public function cartAdd(){
// 参数获取
$uid = $this->request->uid();
$data = $this->request->params([
'cart_num',
'product_attr_unique',
@ -111,6 +137,7 @@ class Wine extends BaseController{
'product_type' => 36,
'product_id' => $data['source_id'],
'product_attr_unique' => $data['product_attr_unique'],
'uid' => $uid,
])->value('cart_id');
if($cartId > 0){
// 已经存在 修改数量
@ -122,19 +149,21 @@ class Wine extends BaseController{
}else{
// 不存在 添加信息
$data['mer_id'] = $result['product']['mer_id'];
$data['uid'] = $uid;
app()->make(StoreCartRepository::class)->create($data);
}
return app('json')->success();
}
/**
* Common: 商户购物车 - 删除购买商品
* Common: 删除购买商品
* Author: wu-hui
* Time: 2024/03/01 14:49
* Time: 2024/03/08 15:42
* @return mixed
*/
public function cartDel(){
// 参数获取
$uid = $this->request->uid();
$data = $this->request->params([
'product_attr_unique',
'product_id',
@ -151,6 +180,7 @@ class Wine extends BaseController{
'product_type' => 36,
'product_id' => $data['source_id'],
'product_attr_unique' => $data['product_attr_unique'],
'uid' => $uid,
])->delete();
return app('json')->success();
@ -158,8 +188,4 @@ class Wine extends BaseController{
}

View File

@ -57,6 +57,46 @@ class StoreCategory extends BaseController
return app('json')->success($this->repository->children($pid));
}
/**
* Common: 获取商品分类
* Author: wu-hui
* Time: 2024/03/08 11:20
* @return mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function productCate(){
// 参数获取
$pid = (int)$this->request->param('pid');
// 获取分类列表
$list = $this->repository->getSearch([])
->field(['store_category_id','pid','cate_name','level'])
->where('pid', $pid)
->where('mer_id', 0)
->where('is_show', 1)
->where('type', 0)
->withCount(['children'])
->order('sort DESC,store_category_id DESC')
->select()
->toArray();
$level = $list[0] ? $list[0]['level'] : 0;
if($level == 0){
$list = array_merge([
[
'store_category_id' => 0,
'pid' => 0,
'cate_name' => '全部',
'level' => $list[0] ? $list[0]['level'] : 0,
'children_count' => 0
]
],$list);
}
return app('json')->success($list);
}
public function cateHotRanking()
{

View File

@ -426,6 +426,8 @@ Route::group('api/', function () {
// 酒道馆商品兑换相关接口
Route::group('wine',function(){
Route::get('list','merList');// 全部酒道馆
// 商品相关
Route::get('goods_list','goodsList');// 全部商品
Route::get('cart_list','cartList');// 购物车列表
Route::get('cart_ids','cartIds');// 购物车IDS
@ -490,6 +492,7 @@ Route::group('api/', function () {
Route::get('seckill/detail/:id', 'StoreProductSeckill/detail')->middleware(VisitProductMiddleware::class, 1);
Route::get('category/lst', 'StoreCategory/lst');
Route::get('category', 'StoreCategory/children');
Route::get('category/list', 'StoreCategory/productCate');// 获取全部商品分类
Route::get('brand/lst', 'StoreBrand/lst');
Route::get('detail/:id', 'StoreProduct/detail')->middleware(VisitProductMiddleware::class, 0);
Route::get('show/:id', 'StoreProduct/show');