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.
54 lines
1.4 KiB
54 lines
1.4 KiB
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class ShopCart extends Model
|
|
{
|
|
const STATE_CHECKED = 1;
|
|
const STATE_NOT_CHECKED = 0;
|
|
const STATE_CHECKED_STRING = '选中';
|
|
const STATE_NOT_CHECKED_STRING = '正常';
|
|
|
|
//
|
|
protected $table = "shop_cart";
|
|
public $timestamps = false;
|
|
|
|
public function shop_goods()
|
|
{
|
|
return $this->hasOne(ShopGoods::class,'id','goods_id');
|
|
}
|
|
|
|
public static function getStateDisplayMap()
|
|
{
|
|
return [
|
|
self::STATE_CHECKED => self::STATE_CHECKED_STRING,
|
|
self::STATE_NOT_CHECKED => self::STATE_NOT_CHECKED_STRING
|
|
];
|
|
}
|
|
|
|
public static function getGoodsCount($where){
|
|
return static::where($where)->sum('number');
|
|
}
|
|
|
|
public static function getGoodsAmountCount($where){
|
|
$cartData = static::where($where)->get();
|
|
$goodsTotalPrice = 0.00;
|
|
if($cartData){
|
|
foreach($cartData as $item){
|
|
$goodsTotalPrice = PriceCalculate($goodsTotalPrice,'+',PriceCalculate($item['retail_price'],'*',$item['number']));
|
|
}
|
|
}
|
|
return $goodsTotalPrice;
|
|
}
|
|
|
|
// 获取选中的商品
|
|
public static function getCheckedGoodsList($uid){
|
|
$where['uid'] = $uid;
|
|
$where['checked'] = self::STATE_CHECKED;
|
|
return static::with('shop_goods')->where($where)->get();
|
|
}
|
|
|
|
}
|