Commit c8b062d9 authored by luhongguang's avatar luhongguang

Merge branch 'feature_take_place_20210916' into feature-deliver210913

parents bd1b9cd3 c80630c7
...@@ -25,7 +25,7 @@ class TakePlaceService ...@@ -25,7 +25,7 @@ class TakePlaceService
$lifeAccountId = MarketingService::getPublicLifeAccountId(); $lifeAccountId = MarketingService::getPublicLifeAccountId();
$keywords = $params['keywords'] ?? ''; $keywords = $params['keywords'] ?? '';
$takePlaceIds = $params['take_place_id'] ?? []; $takePlaceIds = $params['take_place_id'] ?? [];
$tagIds = $params['tag_ids'] ?? []; $tagIds = isset($params['tag_ids']) ? $params['tag_ids'] : [];
$businessCircleIds = $params['business_circle_ids'] ?? []; $businessCircleIds = $params['business_circle_ids'] ?? [];
$offset = $params['offset'] ?? 0; $offset = $params['offset'] ?? 0;
$limit = $params['limit'] ?? 20; $limit = $params['limit'] ?? 20;
...@@ -36,7 +36,12 @@ class TakePlaceService ...@@ -36,7 +36,12 @@ class TakePlaceService
if ($lifeAccountId) { if ($lifeAccountId) {
$where['life_account_id'] = $lifeAccountId; $where['life_account_id'] = $lifeAccountId;
} }
if ($tagIds) {
//处理 tag_ids = ['0'] 的情况
if (count($tagIds) == 1 && $tagIds[0] == 0) {
$tagIds = 0;
}
if ($tagIds || $tagIds == 0) {
$where['tag_id'] = $tagIds; $where['tag_id'] = $tagIds;
} }
if ($businessCircleIds) { if ($businessCircleIds) {
...@@ -123,17 +128,22 @@ class TakePlaceService ...@@ -123,17 +128,22 @@ class TakePlaceService
*/ */
private static function getTagAndBusinessCircle($tagIds, $businessCircleIds) private static function getTagAndBusinessCircle($tagIds, $businessCircleIds)
{ {
$tagList = Tag::getRecords(["tag_id" => $tagIds], ["tag_id", "tag_name"]);
$tagArr = []; $tagArr = [];
if (!empty($tagList)) { if (!empty($tagIds)) {
$tagArr = array_column($tagList, null, "tag_id"); $tagList = Tag::getRecords(["tag_id" => $tagIds], ["tag_id", "tag_name"]);
if (!empty($tagList)) {
$tagArr = array_column($tagList, null, "tag_id");
}
} }
$businessCircleList = BusinessCircle::getRecords(["business_circle_id" => $businessCircleIds], ["business_circle_id", "business_circle_name"]);
$businessCircleArr = []; $businessCircleArr = [];
if (!empty($businessCircleList)) { if (!empty($businessCircleIds)) {
$businessCircleArr = array_column($businessCircleList, null, "business_circle_id"); $businessCircleList = BusinessCircle::getRecords(["business_circle_id" => $businessCircleIds], ["business_circle_id", "business_circle_name"]);
if (!empty($businessCircleList)) {
$businessCircleArr = array_column($businessCircleList, null, "business_circle_id");
}
} }
return [$tagArr, $businessCircleArr]; return [$tagArr, $businessCircleArr];
} }
...@@ -273,7 +283,19 @@ class TakePlaceService ...@@ -273,7 +283,19 @@ class TakePlaceService
} }
//本页按距离返回列表 //本页按距离返回列表
$res['list'] = self::sortByDistance($latitude, $longitude, TakePlace::select('*', $takePlaceWhere)); $list = self::sortByDistance($latitude, $longitude, TakePlace::select('*', $takePlaceWhere));
$tagIds = array_unique(array_column($list, "tag_id"));
$businessCircleIds = array_unique(array_column($list, "business_circle_id"));
list ($tagArr, $businessCircleArr) = self::getTagAndBusinessCircle($tagIds, $businessCircleIds);
$data = [];
foreach ($list as $key => $item) {
$data[$key] = $item;
$data[$key]["tag_name"] = empty($tagArr[$item["tag_id"]]) ? "" : $tagArr[$item["tag_id"]]["tag_name"];
$data[$key]["business_circle_name"] = empty($businessCircleArr[$item["business_circle_id"]]) ? "" : $businessCircleArr[$item["business_circle_id"]]["business_circle_name"];
}
$res['list'] = $data;
unset($where['ORDER'], $where['LIMIT']); unset($where['ORDER'], $where['LIMIT']);
$res['total'] = MarketingTakePlace::count('*', $where); $res['total'] = MarketingTakePlace::count('*', $where);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment