&$item) { if (isset($bossSetting[$type]['is_alone']) && !$bossSetting[$type]['is_alone']) { continue; } if (isset($bossSetting[$type]['is_enable']) && !$bossSetting[$type]['is_enable']) { continue; } $item[$prizeField] = $bossSettingLevelMap[$level]['prize'] ?? 0; $extra_prize = $bossSettingLevelMap[$level]['extra_prize'] ?? 0; $isExtra = $bossSetting[$type]['is_extra'] ?? 0; $item[$extraPrizeField] = !$isExtra ? 0 : $extra_prize; if ($type === 'commission') { $item[$isExtraField] = $isExtra; } } } } /** * 设置全局设置 * * @param array $levelArr * * @return void */ public static function resetCommonSetting(array &$levelArr) { $types = ['commission', 'digital']; foreach ($types as $type) { $prizeField = 'prize'; $isExtraField = 'is_extra'; $extraPrizeField = 'extra_prize'; if ($type === 'digital') { $prizeField = 'digital_prize'; $extraPrizeField = 'extra_digital_prize'; } foreach ($levelArr as &$item) { $item[$prizeField] = 0; $item[$extraPrizeField] = 0; if ($type === 'commission') { $item[$isExtraField] = 0; } } } } /** * @param int $mallId * @param int $goodsId * @param int $mchId * @param string $type * * @return array */ public static function getBossAloneSetting(int $mallId, int $goodsId, int $mchId, string $type = 'commission'): array { $goods_setting = json_decode(MchGoodsModel::find() ->where(['mall_id' => $mallId, 'goods_id' => $goodsId, 'mch_id' => $mchId, 'status' => StatusEnum::ENABLED]) ->select('content') ->scalar(), true); $goods_setting = json_decode($goods_setting[AddonsEnum::ADDONS_NAME_BOSS] ?? '', true) ?: []; $goods_setting = $goods_setting[$type] ?? []; if ($goods_setting) { !isset($goods_setting['is_extra_scale_ratio']) && $goods_setting['is_extra_scale_ratio'] = 0; } return $goods_setting; } /** * 多商户计数器 * * @return void */ public static function decMchTaskCounter(int $mall_id, int $order_id, array $commission_arr = []) { Yii::$app->services->taskCounter->set(self::$pre . $order_id)->callBack($mall_id, $order_id, $commission_arr, ComputeCommissionListener::class); } }