1, 'sales_type'=>['like',"%alone%"], 'hide'=>0 ]; $normalCount = self::with(['course'])->where($normalGoodsCondition)->count(); $start = 0; if(($normalCount - $count) > 0){ $start = rand(0,(($normalCount - $count) - 1)); } $list = self::with(['course']) ->where($normalGoodsCondition) ->field(['course.name','course.cover','course.price','course.price_marking','course.pay_type','course.type','course.id']) ->limit($start,$count) ->select(); if ($list){ $vipAppConfig = \app\common\model\app\Config::getConfig('vip'); foreach ($list as &$item){ unset($item['course']); $item['is_vip_goods'] = false; if($vipAppConfig['status'] == 1){ //判断是否为会员权益课程 $item['is_vip_goods'] = \app\api\model\app\vip\CardPrivilege::checkVipGoods($item['id']); } $goodsType = $item['type'] ?? ''; $isVirtualPay = \app\common\library\pay\VirtualPayService::isUseVirtualPay($goodsType); $item['is_virtual_pay'] = $isVirtualPay ? 1 : 0; if ($isVirtualPay) { $item = \app\common\library\pay\VirtualPayService::convertPriceFields($item, ['price', 'price_marking']); $item['_virtual_converted'] = true; } } unset($item); $list = collection($list)->toArray(); } Cache::tag(\app\common\constant\cache\Keys::COURSE_TAG)->set(\app\common\constant\cache\Keys::COURSE_RECOMMEND,$list); return $list; } public function course() { return $this->belongsTo('app\api\model\course\Course', 'goods_id', 'id', [], 'RIGHT')->setEagerlyType(0); } }