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
$lifeAccountId = MarketingService::getPublicLifeAccountId();
$keywords = $params['keywords'] ?? '';
$takePlaceIds = $params['take_place_id'] ?? [];
$tagIds = $params['tag_ids'] ?? [];
$tagIds = isset($params['tag_ids']) ? $params['tag_ids'] : [];
$businessCircleIds = $params['business_circle_ids'] ?? [];
$offset = $params['offset'] ?? 0;
$limit = $params['limit'] ?? 20;
......@@ -36,7 +36,12 @@ class TakePlaceService
if ($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;
}
if ($businessCircleIds) {
......@@ -123,17 +128,22 @@ class TakePlaceService
*/
private static function getTagAndBusinessCircle($tagIds, $businessCircleIds)
{
$tagList = Tag::getRecords(["tag_id" => $tagIds], ["tag_id", "tag_name"]);
$tagArr = [];
if (!empty($tagIds)) {
$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 = [];
if (!empty($businessCircleIds)) {
$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];
}
......@@ -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']);
$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