model = new MediaCost(); $this->agentSiteLogic = new AgentSiteLogic(); $this->agentListLogic = new AgentListLogic(); $this->gameLogic = new GameLogic(); $this->systemUserLogic = new SystemUserLogic(); $this->setOrderField('tdate'); $this->setOrderType('desc'); } /** * 媒体与组织树形KV */ public function getMediaOrgTreeKv() { // 1. 获取媒体列表 $MediaList = Db::connect('db_advert')->table('media_list')->select()->toArray(); // 2. 获取广告账号 $advertiserList = Db::connect('db_advert')->table('ad_advertiser_bm')->where('status', 1)->select()->toArray(); $advertiserListMap = array_column($advertiserList, null, 'media_id'); $data = []; foreach ($MediaList as $item) { if($item['id'] !==0){ $children = []; if(!empty($advertiserListMap[$item['id']])){ $children[] = [ 'name'=>$advertiserListMap[$item['id']]['advertiser_name'], 'id'=>$advertiserListMap[$item['id']]['id'], 'parent_id'=>'group_id_'.$item['id'], ]; } $data[] = [ 'name'=>$item['name'], 'id'=>'group_id_'.$item['id'], 'children'=>$children ]; } } return $data; } /** * 添加数据 * @param $data * @return mixed */ public function add($data): mixed { $site_id = $data['site_id']; $site_info = $this->agentSiteLogic->read($site_id); $data['media_id'] = $site_info['media_id']; $data['agent_id'] = $site_info['agent_id']; $data['auth_id'] = $site_info['auth_id']; $this->model->save($data); return $this->model->getKey(); } /** * 修改数据 * @param $id * @param $data * @return mixed */ public function edit($id, $data): mixed { $model = $this->model->findOrEmpty($id); if ($model->isEmpty()) { throw new ApiException('数据不存在'); } $site_id = $data['site_id']; $site_info = $this->agentSiteLogic->read($site_id); $data['media_id'] = $site_info['media_id']; $data['agent_id'] = $site_info['agent_id']; $data['auth_id'] = $site_info['auth_id']; return $model->save($data); } }