mall_id; $config_arr = []; $name = $this->name; $where = [['item_id' => $this->order_detail['goods_id']], ['mall_id' => $mall_id], ['item_type' => AddonsEnum::ADDONS_NAME_COURSE], ['commission_type' => $name], ['status' => StatusEnum::ENABLED]]; $distribution_goods_setting = DistributionCommissionItemSetting::getOne($where, true, ['detail']); if (!empty($distribution_goods_setting)) { if ($distribution_goods_setting['commission_type'] == $name && $distribution_goods_setting['is_enable']) { foreach ($distribution_goods_setting['detail'] as $val) { $config_arr[$val['level']] = [ 'is_percent' => $distribution_goods_setting['is_percent'], 'first_prize' => $val['first_prize'], 'second_prize' => $val['second_prize'], 'third_prize' => $val['third_prize'], ]; } $this->goods_config = $config_arr; } } return $config_arr; } /** * @desc:奖励规则 * @Author: hua * @Date: 2021/10/28 * @Time: 16:08 * @Copyright: copyright (c) 2021 广东七件事集团 * @return array */ public function getRules($source_table) { $money = $this->order_detail['goods_price']; $multiple = $this->order_detail['num'] ?? 1; $extension = ['source_table' => $this->source_table, 'source_table_id' => $this->order_detail['id'], 'from_type' => DistributionEnum::ADDONS_NAME]; $this->extension = $extension; return ['money' => $money, 'multiple' => $multiple, 'extension' => $extension]; } /** * @desc:记录每次触发奖励的相关配置 * @Author: hua * @Date: 2021/11/18 * @Time: 11:09 * @Copyright: copyright (c) 2021 广东七件事集团 */ public function addRewardConfigLog() { $extension = $this->extension; $add_data['source_table'] = $extension['source_table']; $add_data['source_table_id'] = $extension['source_table_id']; $add_data['type'] = $this->name; $add_data['from_type'] = $extension['from_type']; $add_data['basic_config'] = !empty($this->basic_conf) ? json_encode($this->basic_conf) : ''; $add_data['level_config'] = !empty($this->level_config) ? json_encode($this->level_config) : ''; if (!empty($this->goods_config)) $add_data['goods_config'] = json_encode($this->goods_config); $distribution_arr = []; foreach ($this->distribution_list as $agent) { $distribution_arr[$agent['id']] = [ 'user_id' => $agent['user_id'], 'level' => $agent['level'], ]; } $add_data['relation_ship'] = !empty($distribution_arr) ? json_encode($distribution_arr) : ''; $add_data['mall_id'] = $this->mall_id; $add_data['status'] = StatusEnum::ENABLED; $res = DistributionCommissionBasisLog::setData($add_data); if ($res == false) echo 'DistributionReward:addRewardConfigLog:err:' . DistributionCommissionBasisLog::getStaticError(); } public function packagingData($prize_list, $extension) { //投递到资产队列 $state = ComputingEnum::DISTRIBUTION_FROZEN; if ($this->basic_conf['compute_type'] == ComputingEnum::ORDER_PAY) $state = ComputingEnum::DISTRIBUTION_FROZEN; $insert_wallet = []; $is_frozen = false; // if ($this->basic_conf['compute_type'] == ComputingEnum::ORDER_PAY) $is_frozen = false; // if ($this->basic_conf['compute_type'] == ComputingEnum::ORDER_FINISH) $is_frozen = true; $from_type = $extension['from_type'] ?? DistributionEnum::ADDONS_NAME; foreach ($prize_list as $user_id => $item) { $item['price'] = bcmul($item['price'],1,2); if($item['price']>0){ $prize_name = self::PRICE_NAME_MAP[$item['deep']] ?? '未知资金类型'; $desc = '用户('.$user_id.'),获得视频课程订单('.$this->order_detail['order_id'].')分销商奖励,奖励类型:'.$prize_name.',金额:'.$item['price']; // echo $desc.PHP_EOL; $insert_wallet [] = ['mall_id' => $this->mall_id, 'user_id' => $user_id, 'is_frozen' => $is_frozen, 'wallet_type' => $this->name, 'money' => $item['price'], 'desc' => $desc, 'source_table' => $extension['source_table'] ?? '', 'source_table_id' => $extension['source_table_id'] ?? '', 'from_type' => $from_type, 'capital_type' => $item['deep'], 'order_no' =>$this->order_detail['order_no'], 'contributor_name' =>$this->order_detail['goods_name'], 'contributor_id' =>$this->user_id, 'contributor_money' =>$this->order_detail['goods_price'], ]; } } return $insert_wallet; } }