$goodsId, 'uniacid' => UNIACID ])->find(); if (!$course) { return false; } return in_array($course['type'], self::SCOPE_ALL_ALLOW_TYPES); } /** * 获取用户对应的优惠商品折扣 * @param $userId 用户 * @param $goodsId 商品ID * @return void */ public static function getPrivilegeGoodsDiscount($userId,$goodsId){ //判断会员卡状态 $vipConfig = \app\common\model\app\Config::getConfig('vip'); if($vipConfig['status'] != 1){ return false; } $userVipInfo = \app\common\model\app\vip\CardUser::getUserVipInfo($userId); if(!$userVipInfo){ return false; } //当前会员卡是否开启了折扣权益 if (empty($userVipInfo['card']) || $userVipInfo['card']['privilege_discount'] != 1) { return false; } $discountScope = isset($userVipInfo['card']['privilege_discount_scope']) ? $userVipInfo['card']['privilege_discount_scope'] : self::DISCOUNT_SCOPE_SPECIFY; if ($discountScope == self::DISCOUNT_SCOPE_ALL) { //全部课程作用域:仅作用于 article/video/audio/live/column 类型的课程 if (!self::isCourseInScopeAll($goodsId)) { return false; } return $userVipInfo['card']['privilege_discount_val']; } //指定课程作用域:保持原有逻辑,需匹配权益商品 IDS $privilegeGoodsIds = self::getPrivilegeGoodsIds($userVipInfo['card_id'],'discount'); if(!in_array($goodsId,$privilegeGoodsIds)){ return false; } //返回折扣 return $userVipInfo['card']['privilege_discount_val']; } /** * 获取会员卡包函的权益商品IDS集合 * @param $cardId * @param $type * @return array */ public static function getPrivilegeGoodsIds($cardId,$type){ $list = self::where([ 'card_id'=>$cardId, 'type'=>$type ])->field('goods_id')->select(); $ids = []; if($list){ foreach ($list as $item){ $ids[] = $item['goods_id']; } } return $ids; } }