getWhere($params, $where); $params['where'] = $where; $params['order'] = 'id desc'; $page_data = $class::listPage($params, false, true); if (!empty($page_data['list'])) { $user_ids = array_column($page_data['list'], 'user_id'); $dispense_order_ids = $fill_order_ids = $goods_ids = []; foreach ($page_data['list'] as $val) { if ($val['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $fill_order_ids[] = $val['source_table_id']; } elseif ($val['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $dispense_order_ids[] = $val['source_table_id']; } } if (!empty($dispense_order_ids)) { $cloud_stock_dispense_order_list = CloudStockDispenseOrder::lists(['where' => [ ['id' => $dispense_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_ids = array_merge($user_ids, array_column($cloud_stock_dispense_order_list, 'user_id')); $temp_goods_ids = array_column($cloud_stock_dispense_order_list, 'goods_id'); $goods_ids = array_merge($goods_ids, $temp_goods_ids); } if (!empty($fill_order_ids)) { $fill_order_list = CloudStockFillOrder::lists(['where' => [ ['id' => $fill_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_ids = array_merge($user_ids, array_column($fill_order_list, 'user_id')); $temp_goods_ids = array_column($fill_order_list, 'goods_id'); $goods_ids = array_merge($goods_ids, $temp_goods_ids); } $goods_list = Goods::lists(['where' => [ ['id' => $goods_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_list = User::lists(['where' => [ ['id' => $user_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); foreach ($page_data['list'] as &$item) { $item['user'] = $item['from_user'] = []; $item['num'] = $item['cover_pic'] = $item['goods_name'] = ''; if (isset($user_list[$item['user_id']])) { $item['user'] = [ 'id' => $user_list[$item['user_id']]['id'], 'nickname' => $user_list[$item['user_id']]['nickname'], 'mobile' => $user_list[$item['user_id']]['mobile'], 'avatar_url' => $user_list[$item['user_id']]['avatar_url'], ]; } if ($item['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $fill_order_id = $item['source_table_id']; if (isset($fill_order_list[$fill_order_id])) { $temp_uid = $fill_order_list[$fill_order_id]['user_id']; $item['num'] = $fill_order_list[$fill_order_id]['num']; $goods_id = $fill_order_list[$fill_order_id]['goods_id']; if (isset($goods_list[$goods_id])) { $item['cover_pic'] = $goods_list[$goods_id]['cover_pic']; $item['goods_name'] = $goods_list[$goods_id]['goods_name']; } } } elseif ($item['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $dispense_order_id = $item['source_table_id']; if (isset($cloud_stock_dispense_order_list[$dispense_order_id])) { $item['num'] = $cloud_stock_dispense_order_list[$dispense_order_id]['num']; $temp_uid = $cloud_stock_dispense_order_list[$dispense_order_id]['user_id']; $goods_id = $cloud_stock_dispense_order_list[$dispense_order_id]['goods_id']; if (isset($goods_list[$goods_id])) { $item['cover_pic'] = $goods_list[$goods_id]['cover_pic']; $item['goods_name'] = $goods_list[$goods_id]['goods_name']; } } } if (isset($temp_uid) && isset($user_list[$temp_uid])) { $item['from_user'] = [ 'id' => $user_list[$temp_uid]['id'], 'nickname' => $user_list[$temp_uid]['nickname'], 'mobile' => $user_list[$temp_uid]['mobile'], 'avatar_url' => $user_list[$temp_uid]['avatar_url'], ]; } } } list($settlement, $no_settlement) = $this->getStatistic(); $page_data['settlement'] = $settlement; $page_data['no_settlement'] = $no_settlement; return $page_data; } public function equalAwardList($params) { if (empty($params['month'])) { $month = date('Y-m'); } else { $month = $params['month']; } $start_time = strtotime($month . '-01 00:00:00'); $end_time = DateHelper::getMonthLastDayTime($start_time); $params['date'][0] = date('Y-m-d', $start_time); $params['date'][1] = date('Y-m-d', $end_time); $params['user_id'] = $this->user_id; $class = $this->getWhere($params, $where); $params['where'] = $where; $params['order'] = 'id desc'; $params['select'] = 'user_id,order_no,capital_type,source_table,source_table_id,desc,change_num,created_at'; $page_data = $class::listPage($params, false, true); if (!empty($page_data['list'])) { $user_ids = array_column($page_data['list'], 'user_id'); $dispense_order_ids = $fill_order_ids = $goods_ids = []; foreach ($page_data['list'] as $val) { if ($val['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $fill_order_ids[] = $val['source_table_id']; } elseif ($val['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $dispense_order_ids[] = $val['source_table_id']; } } if (!empty($dispense_order_ids)) { $cloud_stock_dispense_order_list = CloudStockDispenseOrder::lists(['where' => [ ['id' => $dispense_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_ids = array_merge($user_ids, array_column($cloud_stock_dispense_order_list, 'user_id')); $temp_goods_ids = array_column($cloud_stock_dispense_order_list, 'goods_id'); $goods_ids = array_merge($goods_ids, $temp_goods_ids); } if (!empty($fill_order_ids)) { $fill_order_list = CloudStockFillOrder::lists(['where' => [ ['id' => $fill_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_ids = array_merge($user_ids, array_column($fill_order_list, 'user_id')); $temp_goods_ids = array_column($fill_order_list, 'goods_id'); $goods_ids = array_merge($goods_ids, $temp_goods_ids); } $goods_list = Goods::lists(['where' => [ ['id' => $goods_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); $user_list = User::lists(['where' => [ ['id' => $user_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); foreach ($page_data['list'] as &$item) { $item['from_user_id'] = $item['from_user_mobile'] = $item['capital_type_text'] = ''; $item['num'] = $item['goods_name'] = ''; if (isset($user_list[$item['user_id']])) { $item['user'] = [ 'id' => $user_list[$item['user_id']]['id'], 'nickname' => $user_list[$item['user_id']]['nickname'], 'mobile' => $user_list[$item['user_id']]['mobile'], 'avatar_url' => $user_list[$item['user_id']]['avatar_url'], ]; } if ($item['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $fill_order_id = $item['source_table_id']; if (isset($fill_order_list[$fill_order_id])) { $temp_uid = $fill_order_list[$fill_order_id]['user_id']; $item['num'] = $fill_order_list[$fill_order_id]['num']; $goods_id = $fill_order_list[$fill_order_id]['goods_id']; if (isset($goods_list[$goods_id])) { $item['cover_pic'] = $goods_list[$goods_id]['cover_pic']; $item['goods_name'] = $goods_list[$goods_id]['goods_name']; } } } elseif ($item['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $dispense_order_id = $item['source_table_id']; if (isset($cloud_stock_dispense_order_list[$dispense_order_id])) { $item['num'] = $cloud_stock_dispense_order_list[$dispense_order_id]['num']; $temp_uid = $cloud_stock_dispense_order_list[$dispense_order_id]['user_id']; $goods_id = $cloud_stock_dispense_order_list[$dispense_order_id]['goods_id']; if (isset($goods_list[$goods_id])) { $item['cover_pic'] = $goods_list[$goods_id]['cover_pic']; $item['goods_name'] = $goods_list[$goods_id]['goods_name']; } } } if (isset($temp_uid) && isset($user_list[$temp_uid])) { $item['from_user_id'] = $user_list[$temp_uid]['id']; $item['from_user_mobile'] = $user_list[$temp_uid]['mobile']; } if ($item['capital_type'] == 'equal') { $item['capital_type_text'] = '平级奖励'; } elseif ($item['capital_type'] == 'price_difference_equal') { $item['capital_type_text'] = '云库存差价平级奖'; } unset($item['user']); } } return $page_data; } protected function getStatistic() { $statistic = CloudStockStatistic::lists([ 'where' => [ ['mall_id' => $this->mall_id], ['capital_type' => ['equal', 'price_difference_equal']] ], 'group' => 'settlement_status', 'select' => 'settlement_status,sum(money) as money' ]); $settlement = $no_settlement = 0; foreach ($statistic as $val) { if ($val['settlement_status'] == 0) { $no_settlement = $val['money']; } elseif ($val['settlement_status'] == 1) { $settlement = $val['money']; } } return [$settlement, $no_settlement]; } protected function getWhere($params, &$where) { $class = CapitalLog::class; $where[] = ['mall_id' => $this->mall_id, 'from_type' => CloudStockEnum::ADDONS_NAME, 'capital_type' => ['equal', 'price_difference_equal']]; if (empty($params['active_name']) || $params['active_name'] == 'settlement') { $class::$capitalType = 'commission'; } else { $where[] = ['status' => 0]; $class::$capitalType = 'commission_frozen'; } if (!empty($params['keyword'])) { $user_list = User::lists(['where' => [ ['mall_id' => $this->mall_id], ['or', ['like', 'nickname', $params['keyword']], ['like', 'mobile', $params['keyword']]]], 'select' => 'id']); if (!empty($user_list)) { $user_ids = array_column($user_list, 'id'); $where[] = ['user_id' => $user_ids]; } else { $where[] = ['user_id' => []]; } } if (!empty($params['user_id'])) { $where[] = ['user_id' => $params['user_id']]; } if (!empty($params['order_no'])) { $where[] = ['order_no' => trim($params['order_no'])]; } if (!empty($params['capital_type'])) { $where[] = ['capital_type' => trim($params['capital_type'])]; } if (!empty($params['date'][0])) { $where[] = ['>=', 'created_at', strtotime($params['date'][0] . ' 00:00:00')]; } if (!empty($params['date'][1])) { $where[] = ['<=', 'created_at', strtotime($params['date'][1] . ' 23:59:59')]; } return $class; } public function getListExportFieldList() { return $this->exportFieldsList(); } public function exportFieldsList() { return [ 'nickname' => '用户昵称', 'mobile' => '用户手机', 'capital_type' => '佣金类型', 'change_num' => '结算金额', 'desc' => '说明', 'status' => '结算状态', 'order_no' => '订单号', 'created_at' => '创建时间', ]; } public static function exportData($params) { (new EqualAwardService(['mall_id' => $params['mall_id']]))->export($params); } public function add($params) { $res = CloudStockPaymentLog::add($params); if (empty($res)) { throw new \Exception(CloudStockPaymentLog::$static_error); } if (empty($params['status'])) { $params['is_frozen'] = true; } else { $params['is_frozen'] = false; } WithdrawService::handle($params); return $res; } public function export($data) { ini_set('memory_limit', '512M'); $download_id = $data['download_id'] ?? 0; $download = Download::findOne(['id' => $download_id]); if ($download) { try { $params = json_decode($download->params, true); $filename = $download->name; $type = $download->type; $where = []; $class = $this->getWhere($params, $where); $status = 0; if (empty($params['active_name']) || $params['active_name'] == 'settlement') { $status = 1; } $params['where'] = $where; $params['order'] = 'id desc'; $list = $class::lists($params); $fields = $params['fields']; $fields_arr = $this->exportFieldsList(); $have_select_field_arr = []; foreach ($fields as $value) { $have_select_field_arr[] = $fields_arr[$value]; } $csv = new CsvTool(); $csv->filename = $filename; $csv->file_dirname = DownloadEnum::getTypeStorageDirMap($type); $csv->export_mode = CsvTool::EXPORT_MODE_ASYNC; $csv->header = $have_select_field_arr; $user_id_arr = array_column($list, 'user_id'); $user_arr = User::lists([ 'where' => [ ['id' => $user_id_arr] ], 'index' => 'id', ]); $csv->data = array_map(function ($item) use ($fields, $user_arr, $status) { $row = []; foreach ($fields as $field) { switch (true) { case $field == 'created_at': $row[] = !empty($item[$field]) ? date('Y-m-d H:i:s', $item[$field]) : ''; break; case $field == 'mobile': $row[] = $user_arr[$item['user_id']]['mobile'] ?? ''; break; case $field == 'capital_type': $row[] = $item['capital_type'] == 'equal' ? '云库存-平级奖励' : '云库存-云库存差价平级奖'; break; case $field == 'status': $row[] = $status == 0 ? '未结算' : '已结算'; break; case $field == 'nickname': $row[] = $user_arr[$item['user_id']]['nickname'] ?? ''; break; default: $row[] = !empty($item[$field]) ? $item[$field] : ''; } } return $row; }, $list); $csv->export(); $csv->updateDown($download, $params['mall_id']); return true; } catch (\Exception $e) { var_dump($e->getMessage() . $e->getFile() . $e->getLine()); $download->status = 3; $res = $download->save(); return $e->getMessage(); } } } /** * 修复佣金记录表的订单号字段 * @param $capitalType * @return void */ public function fixOrderNo($capitalType) { $i = 1; $limit = 1000; while (true) { CapitalLog::$capitalType = $capitalType; $list = CapitalLog::find()->where([ 'mall_id' => $this->mall_id, 'from_type' => 'CloudStock', 'order_no' => '', 'capital_type' => ['equal', 'price_difference_equal'] ])->orderBy('id asc')->offset(($i - 1) * $limit)->limit($limit)->all(); if (empty($list)) { break; } $i++; $dispense_order_ids = $fill_order_ids = []; foreach ($list as $item) { if ($item['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $fill_order_ids[] = $item['source_table_id']; } elseif ($item['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $dispense_order_ids[] = $item['source_table_id']; } } if (!empty($dispense_order_ids)) { $cloud_stock_dispense_order_list = CloudStockDispenseOrder::lists(['where' => [ ['id' => $dispense_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); } $fill_order_list = []; if (!empty($fill_order_ids)) { $fill_order_list = CloudStockFillOrder::lists(['where' => [ ['id' => $fill_order_ids], ['mall_id' => $this->mall_id] ], 'index' => 'id', ]); } foreach ($list as $val) { if ($val['source_table'] == '{{%addons_cloud_stock_fill_order}}') { $val->order_no = $fill_order_list[$val['source_table_id']]['order_no'] ?? ''; } elseif ($val['source_table'] == '{{%addons_cloud_stock_dispense_order}}') { $val->order_no = $cloud_stock_dispense_order_list[$val['source_table_id']]['order_no'] ?? ''; } $res = $val->save(); var_dump('id:' . $val['id'] . $res); } } } /** * 手动结算 * @param $params * @return true * @throws \Exception */ public function manualSettlement($params) { if (empty($params['id'])) { throw new \Exception('id不能为空'); } CapitalLog::$capitalType = 'commission_frozen'; $list = CapitalLog::lists([ 'where' => [ ['id' => $params['id']] ], 'select' => 'sum(change_num) as change_num,capital_type', 'group' => 'capital_type' ]); $user_list = CapitalLog::lists([ 'where' => [ ['id' => $params['id']] ], 'select' => 'sum(change_num) as change_num,capital_type,user_id', 'group' => 'capital_type,user_id' ]); foreach ($params['id'] as $id) { UserWalletService::unfrozen($id, 'commission'); } foreach ($list as $item) { $add_data = ['mall_id' => $this->mall_id, 'capital_type' => $item['capital_type'], 'settlement_status' => 0, 'money' => -$item['change_num']]; CloudStockStatistic::setData($add_data);//扣除待结算统计 $add_data = ['mall_id' => $this->mall_id, 'capital_type' => $item['capital_type'], 'settlement_status' => 1, 'money' => $item['change_num']]; CloudStockStatistic::setData($add_data);//增加已结算统计 } foreach ($user_list as $item) { $add_data = ['settlement_status' => 0, 'money' => -$item['change_num']]; (new AgentService(['mall_id' => $this->mall_id, 'user_id' => $item['user_id']]))->setData($add_data); $add_data = ['settlement_status' => 1, 'money' => $item['change_num']]; (new AgentService(['mall_id' => $this->mall_id, 'user_id' => $item['user_id']]))->setData($add_data); } return true; } /** * 发放平级奖-计算统计 * @param $insert_wallet * @param $capital_type * @return void */ public function setStatistics($insert_wallet, $capital_type) { $statistics_data = []; $statistics_user_data = []; $mall_id = 0; foreach ($insert_wallet as $user) { if (!in_array($user['capital_type'], ['equal', 'price_difference_equal'])) { continue; } $mall_id = $user['mall_id']; if (!empty($user['is_frozen'])) { if (isset($statistics_data[$user['mall_id']]['frozen_price'])) { $statistics_data[$user['mall_id']]['frozen_price'] += $user['money']; } else { $statistics_data[$user['mall_id']]['frozen_price'] = $user['money']; } if (isset($statistics_user_data[$user['user_id']]['frozen_price'])) { $statistics_user_data[$user['user_id']]['frozen_price'] += $user['money']; } else { $statistics_user_data[$user['user_id']]['frozen_price'] = $user['money']; } } else { if (isset($statistics_data[$user['mall_id']]['price'])) { $statistics_data[$user['mall_id']]['price'] += $user['money']; } else { $statistics_data[$user['mall_id']]['price'] = $user['money']; } if (isset($statistics_user_data[$user['user_id']]['price'])) { $statistics_user_data[$user['user_id']]['price'] += $user['money']; } else { $statistics_user_data[$user['user_id']]['price'] = $user['money']; } } } foreach ($statistics_data as $mall_id => $data) { if (!empty($data['frozen_price'])) { $add_data = ['mall_id' => $mall_id, 'capital_type' => $capital_type, 'settlement_status' => 0, 'money' => $data['frozen_price']]; CloudStockStatistic::setData($add_data); } if (!empty($data['price'])) { $add_data = ['mall_id' => $mall_id, 'capital_type' => $capital_type, 'settlement_status' => 1, 'money' => $data['price']]; CloudStockStatistic::setData($add_data); } } foreach ($statistics_user_data as $user_id => $data) { if (!empty($data['frozen_price'])) { $add_data = ['settlement_status' => 0, 'money' => $data['frozen_price']]; (new AgentService(['mall_id' => $mall_id, 'user_id' => $user_id]))->setData($add_data); } if (!empty($data['price'])) { $add_data = ['settlement_status' => 1, 'money' => $data['price']]; (new AgentService(['mall_id' => $mall_id, 'user_id' => $user_id]))->setData($add_data); } } } /** * 上级给下级配货-触发平级一、二奖励 * @param $order * @return true */ public function reward($order) { $user_id = $order['user_id'];//配货者 $child_id = $order['child_id'];//配货下级 $mall_id = $order['mall_id']; $goods_id = $order['goods_id']; $setting = \Yii::$app->services->setting->addons->get($this->mall_id, AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'basic'); if (empty($setting['is_trigger_level_award'])) { return true; } $this->setting = $setting; $agent = CloudStockAgent::findOne(['user_id' => $child_id, 'mall_id' => $mall_id, 'status' => StatusEnum::ENABLED]); $stock_good = CloudStockGoods::findOne(['mall_id' => $mall_id, 'status' => StatusEnum::ENABLED, 'goods_id' => $goods_id]); $this->stock_goods = $stock_good; $this->order = $order; if (empty($stock_good)) { return true; } //紧凑平级奖 if (!empty($stock_good['is_find_equal'])) { $parent_id_arr = UserPartitionRelationship::getParentIdArr($child_id); $parent_id_arr = array_reverse($parent_id_arr); $reward_list = []; $is_find_equal = false; $parent_agent_list = CloudStockAgent::lists([ 'where' => [ ['user_id' => $parent_id_arr], ['mall_id' => $mall_id], ['status' => StatusEnum::ENABLED], ], 'index' => 'user_id' ], false); foreach ($parent_id_arr as $parent_id) { if (empty($parent_agent_list[$parent_id])) { continue; } $parent_agent = $parent_agent_list[$parent_id]; if (!empty($direct_agent['is_equal_award_restriction'])) { continue; } //找平级 if ($parent_agent['level'] == $agent['level']) { if (!$is_find_equal) { $reward_list[] = [ 'level' => 1, 'agent' => $parent_agent, ]; $is_find_equal = true; } else { $reward_list[] = [ 'level' => 2, 'agent' => $parent_agent, ]; break; } } } if (!empty($reward_list)) { $stock_level = CloudStockLevel::findOne(['mall_id' => $this->mall_id, 'level' => $agent['level'], 'status' => StatusEnum::ENABLED]); foreach ($reward_list as $reward) { if ($reward['agent']['level'] == $agent['level']) { $this->desc = "用户({$user_id})配货给用户({$child_id})获得平" . $reward['level'] . "级奖励";; $this->sendEqualReward($reward['agent'], $stock_level, $reward['level']); } } } } else { //发放平一级对象,直推 $user = User::findOne(['id' => $child_id]); if (!empty($user['parent_id'])) { $direct_agent = CloudStockAgent::findOne(['user_id' => $user['parent_id'], 'mall_id' => $this->mall_id, 'status' => StatusEnum::ENABLED]); if ($direct_agent && $agent['level'] == $direct_agent['level'] && empty($direct_agent['is_equal_award_restriction'])) { $stock_level = CloudStockLevel::findOne(['mall_id' => $this->mall_id, 'level' => $direct_agent['level'], 'status' => StatusEnum::ENABLED]); $this->desc = "用户({$user_id})配货给用户({$child_id})获得平1级奖励"; $this->sendEqualReward($direct_agent, $stock_level, 1); } //发放平二级用户,间推 if (!empty($user['second_parent_id'])) { $second_parent_agent = CloudStockAgent::findOne(['user_id' => $user['second_parent_id'], 'status' => StatusEnum::ENABLED, 'mall_id' => $this->mall_id]); if ($second_parent_agent && $agent['level'] == $second_parent_agent['level'] && empty($second_parent_agent['is_equal_award_restriction'])) { $this->desc = "用户({$user_id})配货给用户({$child_id})获得平2级奖励"; $stock_level = CloudStockLevel::findOne(['mall_id' => $this->mall_id, 'level' => $second_parent_agent['level'], 'status' => StatusEnum::ENABLED]); $this->sendEqualReward($second_parent_agent, $stock_level, 2); } } } } return true; } public function sendEqualReward($parent_user_agent, $stock_level, $equal_level) { $this->equal_level = $equal_level; $this->bonus_agent = $parent_user_agent; //该代理商等级是否开启平级奖 if (empty($stock_level['is_equal'])) { return true; } $setting = $this->setting; $is_frozen = true; if (empty($setting['settlement_cycle_of_equal_prize'])) { $is_frozen = false;//平级奖结算周期:立即结算 } $this->is_frozen = $is_frozen; $this->getRewardUnitPrice(); $insert_wallet = $this->getInsertWallet(UserWalletEnum::EQUAL); //投递到资产队列 if ($insert_wallet) CloudStockAgent::sendUserWalletQueue($insert_wallet); var_dump($insert_wallet); if (!empty($insert_wallet)) { $this->setStatistics($insert_wallet, UserWalletEnum::EQUAL); } } public function getRewardUnitPrice() { switch ($this->equal_level) { case 1: $config_key = CloudStockEnum::CONFIG_KEY_EQUAL_LEVEL_ONE; break; case 2: $config_key = CloudStockEnum::CONFIG_KEY_EQUAL_LEVEL_TWO; break; default: $this->reward_unit_price = 0; } $equal_level_list = json_decode($this->stock_goods['equal_level_list'], true); //校验该等级存不存 $level = CloudStockLevel::findOne(['mall_id' => $this->mall_id, 'level' => $this->bonus_agent['level'], 'status' => StatusEnum::ENABLED]); if (!empty($level)) { foreach ($equal_level_list as $value) { if ($value['level'] == $this->bonus_agent['level'] && $value['config_key'] == $config_key) { $this->reward_unit_price = !empty($value['config_value']) ? $value['config_value'] : 0; return; } } } $this->reward_unit_price = 0; } public function getInsertWallet($capital_type) { $insert_wallet = []; $commission_num = $this->reward_unit_price * $this->order['num']; if (empty($commission_num)) return $insert_wallet; $insert_wallet[] = ['mall_id' => $this->mall_id, 'user_id' => $this->bonus_agent->user_id, 'is_frozen' => $this->is_frozen, 'wallet_type' => 'commission', 'money' => $commission_num, 'desc' => $this->desc, 'source_table' => CloudStockDispenseOrder::tableName(), 'source_table_id' => $this->order['id'], 'from_type' => AddonsEnum::ADDONS_NAME_CLOUD_STOCK, 'capital_type' => $capital_type, 'order_no' => $this->order['order_no'] ?? '', ]; return $insert_wallet; } }