diff --git a/app/apis/controller/AdpController.php b/app/apis/controller/AdpController.php index 605025d..a732fe8 100644 --- a/app/apis/controller/AdpController.php +++ b/app/apis/controller/AdpController.php @@ -44,19 +44,12 @@ class AdpController extends BaseController if ($scene === 'default') { $item['title'] = isset($item['translation']) ? $item['translation']['title'] : ''; unset($item['translation']); - $ad = AdModel::with('translation')->where(['adp_id' => $item['id'], 'status' => 1])->limit(8)->get(); - foreach ($ad as $k => $v) { - $v['type_txt'] = $v['type'] == 1?'新车' : ($v['type'] == 2?'二手车' : ''); - $v['alt'] = isset($v['translation']) ? $v['translation']['alt'] : ''; - $v['title'] = isset($v['translation']) ? $v['translation']['title'] : ''; - if(!empty($v['img'])){ - $v['full_img'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($v['img']); - }else{ - $v['full_img'] = ''; - } - unset($v['translation']); - $item['ad'][$k] = $v; - } + $ad = AdModel::with('translation')->where(['adp_id' => $item['id'], 'type' => 1, 'status' => 1])->limit(8)->get()->toArray(); + $ad = $this->getService()->ad_arrange($ad); + $item['new_ad'] = $ad; + $ad = AdModel::with('translation')->where(['adp_id' => $item['id'], 'type' => 2, 'status' => 1])->limit(8)->get()->toArray(); + $ad = $this->getService()->ad_arrange($ad); + $item['used_ad'] = $ad; } return $item; diff --git a/app/apis/model/AdpModel.php b/app/apis/model/AdpModel.php index 6a02097..0fa866f 100644 --- a/app/apis/model/AdpModel.php +++ b/app/apis/model/AdpModel.php @@ -77,4 +77,20 @@ class AdpModel extends Model { return $this->hasMany(AdModel::class, 'adp_id','id'); } + + /** + * 广告 + */ + public function new_ad() + { + return $this->hasMany(AdModel::class, 'adp_id','id')->where(['type' => 1]); + } + + /** + * 广告 + */ + public function used_ad() + { + return $this->hasMany(AdModel::class, 'adp_id','id')->where(['type' => 2]); + } } \ No newline at end of file diff --git a/app/apis/service/AdpService.php b/app/apis/service/AdpService.php index 6ecdadb..2678b9c 100644 --- a/app/apis/service/AdpService.php +++ b/app/apis/service/AdpService.php @@ -31,8 +31,10 @@ class AdpService extends BaseService 'fields' => ['id', 'new_url', 'used_url', 'status', 'sort', 'creater', 'created_at', 'updated_at'], 'relations' => [ 'translation' => ['adp_id', 'title'], - 'ad' => ['id', 'type', 'img', 'price', 'status', 'sort', 'creater', 'created_at', 'updated_at'], - 'ad.translation' => ['ad_id', 'alt', 'title'], +// 'new_ad' => ['id', 'type', 'img', 'price', 'status', 'sort', 'creater', 'created_at', 'updated_at'], +// 'new_ad.translation' => ['ad_id', 'alt', 'title'], +// 'used_ad' => ['id', 'type', 'img', 'price', 'status', 'sort', 'creater', 'created_at', 'updated_at'], +// 'used_ad.translation' => ['ad_id', 'alt', 'title'], ], 'sorts' => [ ['field' => 'sort', 'direction' => 'desc'], @@ -46,4 +48,20 @@ class AdpService extends BaseService }, ]; } + + public function ad_arrange(array $ad): array{ + foreach ($ad as $k => &$v) { + $v['type_txt'] = $v['type'] == 1?'新车' : ($v['type'] == 2?'二手车' : ''); + $v['alt'] = isset($v['translation']) ? $v['translation']['alt'] : ''; + $v['title'] = isset($v['translation']) ? $v['translation']['title'] : ''; + if(!empty($v['img'])){ + $v['full_img'] = (new \app\mzl\modules\upload\service\OssService())->generatePrivateUrl($v['img']); + }else{ + $v['full_img'] = ''; + } + unset($v['translation']); + $item['ad'][$k] = $v; + } + return $ad; + } } \ No newline at end of file