添加购物车商品操作
This commit is contained in:
parent
4e17620cbe
commit
86dd75b3cf
@ -45,9 +45,33 @@ class CartController extends BaseLikeAdminController
|
|||||||
return $this->data(['count' => $data]);
|
return $this->data(['count' => $data]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function change()
|
public function productList(CartLogic $cartLogic)
|
||||||
{
|
{
|
||||||
|
$params['keyword'] = $this->request->get('keyword');
|
||||||
|
$params['uid'] = $this->request->user->id;
|
||||||
|
$params['page'] = $this->request->page();
|
||||||
|
$params['limit'] = $this->request->limit();
|
||||||
|
$data = $cartLogic->productList($params);
|
||||||
|
return $this->data($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeNumber(CartLogic $cartLogic)
|
||||||
|
{
|
||||||
|
$params['uid'] = $this->request->user->id;
|
||||||
|
$params['id'] = $this->request->post('id');
|
||||||
|
$params['nums'] = $this->request->post('nums');
|
||||||
|
$cartLogic->changeNumber($params);
|
||||||
|
return $this->success('修改成功', [], 1, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changePeopleNumber(CartLogic $cartLogic)
|
||||||
|
{
|
||||||
|
$params['uid'] = $this->request->user->id;
|
||||||
|
$params['people_number'] = $this->request->post('people_number');
|
||||||
|
if ($cartLogic->changePeopleNumber($params)) {
|
||||||
|
return $this->success('修改成功', [], 1, 1);
|
||||||
|
}
|
||||||
|
return $this->fail('修改失败');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,7 @@ class CartLogic extends BaseLogic
|
|||||||
$dishesIds = Dishes::whereLike('name', "%{$params['keyword']}%")->column('id');
|
$dishesIds = Dishes::whereLike('name', "%{$params['keyword']}%")->column('id');
|
||||||
$query->whereIn('dishes_id', $dishesIds);
|
$query->whereIn('dishes_id', $dishesIds);
|
||||||
}
|
}
|
||||||
$data = $query->page($params['page'], $params['limit'])->select()->toArray();
|
return $query->page($params['page'], $params['limit'])->select()->toArray();
|
||||||
return $data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function count($params)
|
public function count($params)
|
||||||
@ -49,6 +48,9 @@ class CartLogic extends BaseLogic
|
|||||||
Db::startTrans();
|
Db::startTrans();
|
||||||
try {
|
try {
|
||||||
$cart = new Cart();
|
$cart = new Cart();
|
||||||
|
if (empty($params['people_number'])) {
|
||||||
|
$params['people_number'] = 1;
|
||||||
|
}
|
||||||
if (!$cart->save($params)) {
|
if (!$cart->save($params)) {
|
||||||
throw new \Exception('添加购物车失败');
|
throw new \Exception('添加购物车失败');
|
||||||
}
|
}
|
||||||
@ -78,4 +80,41 @@ class CartLogic extends BaseLogic
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function productList($params)
|
||||||
|
{
|
||||||
|
$query = CartProduct::alias('t1')
|
||||||
|
->with(['dishes', 'product', 'unit'])
|
||||||
|
->join('cart t2', 't1.cart_id = t2.id')
|
||||||
|
->where('t2.uid', $params['uid'])
|
||||||
|
->where('t2.buy_now', 0)
|
||||||
|
->where('t2.paid', 0);
|
||||||
|
if (!empty($params['keyword'])) {
|
||||||
|
$dishesIds = Dishes::whereLike('name', "%{$params['keyword']}%")->column('id');
|
||||||
|
$query->whereIn('t2.dishes_id', $dishesIds);
|
||||||
|
}
|
||||||
|
return $query->page($params['page'], $params['limit'])->select()->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changePeopleNumber($params)
|
||||||
|
{
|
||||||
|
Db::startTrans();
|
||||||
|
try {
|
||||||
|
$cartWhere = ['uid' => $params['uid'], 'paid' => 0, 'buy_now' => 0];
|
||||||
|
Cart::update(['people_number' => $params['people_number']], $cartWhere);
|
||||||
|
$cartIds = Cart::where($cartWhere)->column('id');
|
||||||
|
CartProduct::whereIn('cart_id', $cartIds)->where('uid', $params['uid'])->update(['people_number' => $params['people_number']]);
|
||||||
|
Db::commit();
|
||||||
|
return true;
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
Db::rollback();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function changeNumber($params)
|
||||||
|
{
|
||||||
|
CartProduct::whereIn('id', $params['id'])->where('uid', $params['uid'])->update(['nums' => $params['nums']]);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,11 @@ class CartProduct extends BaseModel
|
|||||||
protected $name = 'cart_product';
|
protected $name = 'cart_product';
|
||||||
protected $deleteTime = 'delete_time';
|
protected $deleteTime = 'delete_time';
|
||||||
|
|
||||||
|
public function dishes()
|
||||||
|
{
|
||||||
|
return $this->hasOne(Dishes::class, 'id', 'dishes_id')->bind(['dishes_name' => 'name']);
|
||||||
|
}
|
||||||
|
|
||||||
public function product()
|
public function product()
|
||||||
{
|
{
|
||||||
return $this->hasOne(Product::class, 'id', 'product_id')->bind(['product_name' => 'name', 'image', 'product_type']);
|
return $this->hasOne(Product::class, 'id', 'product_id')->bind(['product_name' => 'name', 'image', 'product_type']);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user