MediaCostLogic.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <?php
  2. namespace app\v1\logic\advert;
  3. use app\v1\logic\center\GameLogic;
  4. use plugin\saiadmin\basic\BaseLogic;
  5. use plugin\saiadmin\exception\ApiException;
  6. use plugin\saiadmin\utils\Helper;
  7. use app\v1\model\advert\MediaCost;
  8. use plugin\saiadmin\app\logic\system\SystemUserLogic;
  9. use support\think\Db;
  10. /**
  11. * 媒体消耗逻辑层
  12. */
  13. class MediaCostLogic extends BaseLogic
  14. {
  15. protected $agentSiteLogic;
  16. protected $agentListLogic;
  17. protected $gameLogic;
  18. protected $systemUserLogic;
  19. /**
  20. * 构造函数
  21. */
  22. public function __construct()
  23. {
  24. $this->model = new MediaCost();
  25. $this->agentSiteLogic = new AgentSiteLogic();
  26. $this->agentListLogic = new AgentListLogic();
  27. $this->gameLogic = new GameLogic();
  28. $this->systemUserLogic = new SystemUserLogic();
  29. $this->setOrderField('tdate');
  30. $this->setOrderType('desc');
  31. }
  32. /**
  33. * 媒体与组织树形KV
  34. */
  35. public function getMediaOrgTreeKv()
  36. {
  37. // 1. 获取媒体列表
  38. $MediaList = Db::connect('db_advert')->table('media_list')->select()->toArray();
  39. // 2. 获取广告账号
  40. $advertiserList = Db::connect('db_advert')->table('ad_advertiser_bm')->where('status', 1)->select()->toArray();
  41. $advertiserListMap = array_column($advertiserList, null, 'media_id');
  42. $data = [];
  43. foreach ($MediaList as $item) {
  44. if($item['id'] !==0){
  45. $children = [];
  46. if(!empty($advertiserListMap[$item['id']])){
  47. $children[] = [
  48. 'name'=>$advertiserListMap[$item['id']]['advertiser_name'],
  49. 'id'=>$advertiserListMap[$item['id']]['id'],
  50. 'parent_id'=>'group_id_'.$item['id'],
  51. ];
  52. }
  53. $data[] = [
  54. 'name'=>$item['name'],
  55. 'id'=>'group_id_'.$item['id'],
  56. 'children'=>$children
  57. ];
  58. }
  59. }
  60. return $data;
  61. }
  62. /**
  63. * 添加数据
  64. * @param $data
  65. * @return mixed
  66. */
  67. public function add($data): mixed
  68. {
  69. $site_id = $data['site_id'];
  70. $site_info = $this->agentSiteLogic->read($site_id);
  71. $data['media_id'] = $site_info['media_id'];
  72. $data['agent_id'] = $site_info['agent_id'];
  73. $data['auth_id'] = $site_info['auth_id'];
  74. $this->model->save($data);
  75. return $this->model->getKey();
  76. }
  77. /**
  78. * 修改数据
  79. * @param $id
  80. * @param $data
  81. * @return mixed
  82. */
  83. public function edit($id, $data): mixed
  84. {
  85. $model = $this->model->findOrEmpty($id);
  86. if ($model->isEmpty()) {
  87. throw new ApiException('数据不存在');
  88. }
  89. $site_id = $data['site_id'];
  90. $site_info = $this->agentSiteLogic->read($site_id);
  91. $data['media_id'] = $site_info['media_id'];
  92. $data['agent_id'] = $site_info['agent_id'];
  93. $data['auth_id'] = $site_info['auth_id'];
  94. return $model->save($data);
  95. }
  96. }