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.
99 lines
2.7 KiB
99 lines
2.7 KiB
<?php
|
|
|
|
namespace app\integral\service;
|
|
|
|
use app\integral\model\IntegralCart;
|
|
|
|
class Cart extends Base
|
|
{
|
|
|
|
/**
|
|
* 获取用户购物车现有有效和无效产品列表
|
|
* @date 2022-11-15
|
|
*/
|
|
public function listUserCartEffectiveAndInvalid()
|
|
{
|
|
$cart_model = new IntegralCart();
|
|
|
|
// 获取用户购物车商品
|
|
$cart_list = $cart_model->listUserCart();
|
|
|
|
// 购物车有效商品
|
|
$cart_effective = [];
|
|
// 购物车无效商品
|
|
$cart_invalid = [];
|
|
|
|
// 拆分有效和无效商品
|
|
foreach ($cart_list as $k => $v) {
|
|
unset($cart_list[$k]['freight_type']);
|
|
unset($cart_list[$k]['freight_id']);
|
|
unset($cart_list[$k]['freight_money']);
|
|
unset($cart_list[$k]['weight']);
|
|
unset($cart_list[$k]['product_is_publish']);
|
|
unset($cart_list[$k]['product_delete_time']);
|
|
if ($v['is_effective'] == 1) {
|
|
$cart_effective[] = $v;
|
|
} else {
|
|
$cart_invalid[] = $v;
|
|
}
|
|
}
|
|
|
|
return [
|
|
// 购物车有效产品
|
|
$cart_effective,
|
|
// 购物车无效产品
|
|
$cart_invalid
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 更新兑换车失效产品
|
|
* @param int $user_id 用户ID
|
|
* @date 2022-11-15
|
|
*/
|
|
public function updateInvalid($user_id)
|
|
{
|
|
$cart_model = new IntegralCart();
|
|
|
|
$cart = $cart_model->listUserCart($user_id);
|
|
|
|
if (count($cart)) {
|
|
$cart = $cart -> toArray();
|
|
|
|
foreach ($cart as $k => $v) {
|
|
// 失效状态 1--有效 0--失效
|
|
$is_effective = 1;
|
|
|
|
// 原产品删除或下架
|
|
if (empty($v['product_name']) || !empty($v['product_delete_time']) || $v['product_is_publish'] == 0) {
|
|
$is_effective = 0;
|
|
}
|
|
|
|
// 之前没有规格,现在有规格了
|
|
// if ($v['is_product_spec_open'] == 0 && empty($v['product_sku_name'])) {
|
|
// $is_effective = 0;
|
|
// }
|
|
|
|
// 之前有规格,现在没有规格了 或者 SKU更改
|
|
if ($v['is_product_spec_open'] == 1 && empty($v['product_sku_name'])) {
|
|
$is_effective = 0;
|
|
}
|
|
|
|
// 库存不足 或者 之前没有规格,现在有规格了
|
|
if ($v['product_stock'] <= 0) {
|
|
$is_effective = 0;
|
|
}
|
|
|
|
$data[] = [
|
|
'id' => $v['id'],
|
|
'is_effective' => $is_effective
|
|
];
|
|
}
|
|
|
|
return $cart_model->saveAll($data);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|