Commit 7d23ad24 authored by luhongguang's avatar luhongguang

update:es search

parent c77697c7
......@@ -7,6 +7,7 @@ use Api\PhpUtils\Elastic\ElasticUtil;
class ElasticGoodService
{
const INDEX = "bp_goods";
public static function createIndex($index)
{
$elasticClient = ElasticUtil::getInstance();
......@@ -72,10 +73,6 @@ class ElasticGoodService
*/
public static function searchDoc($params = [])
{
if (!empty($params["search_content"])) {
}
$sortType = 0;
if (!empty($params["sort_type"])) {
$sortType = $params["sort_type"];
......@@ -92,11 +89,14 @@ class ElasticGoodService
$data = [
"from" => $from,
"size" => $size,
// "query" => [
// "bool" => [],
// ],
"sort" => $sortList[$sortType],
];
if (!empty($params["search_content"])) {
$data["query"] = ["multi_match" => [
"query" => $params["search_content"],
"fields" => ["name", "category_1_name", "category_2_name", "desc"],
]];
}
$elasticClient = ElasticUtil::getInstance();
$res = $elasticClient->searchDoc(self::INDEX, $data);
......@@ -104,16 +104,16 @@ class ElasticGoodService
$result = [];
if (!empty($res["hits"]["total"]["value"])) {
$result["count"] = $res["hits"]["total"]["value"];
foreach ($res["hits"]["hits"] as $key=>$source) {
$result["data"][$key]["id"] = empty($source["_source"]["id"]) ? $source["_source"]["doc"]["id"] : $source["_source"]["id"];
$result["data"][$key]["goods_pic"] = empty($source["_source"]["goods_pic"]) ? $source["_source"]["doc"]["goods_pic"] : $source["_source"]["goods_pic"];
$result["data"][$key]["name"] = empty($source["_source"]["name"]) ? $source["_source"]["doc"]["name"] : $source["_source"]["name"];
$result["data"][$key]["inventory_rest"] = empty($source["_source"]["inventory_rest"]) ? $source["_source"]["doc"]["inventory_rest"] : $source["_source"]["inventory_rest"];
$result["data"][$key]["total_amount_sold"] = empty($source["_source"]["total_amount_sold"]) ? $source["_source"]["doc"]["total_amount_sold"] : $source["_source"]["total_amount_sold"];
$result["data"][$key]["original_price"] = empty($source["_source"]["original_price"]) ? $source["_source"]["doc"]["original_price"] : $source["_source"]["original_price"];
$result["data"][$key]["price"] = empty($source["_source"]["price"]) ? $source["_source"]["doc"]["price"] : $source["_source"]["price"];
$result["data"][$key]["status"] = empty($source["_source"]["status"]) ? $source["_source"]["doc"]["status"] : $source["_source"]["status"];
$result["data"][$key]["online_status"] = empty($source["_source"]["online_status"]) ? $source["_source"]["doc"]["online_status"] : $source["_source"]["online_status"];
foreach ($res["hits"]["hits"] as $key => $source) {
$result["data"][$key]["id"] = $source["_source"]["id"];
$result["data"][$key]["goods_pic"] = $source["_source"]["goods_pic"];
$result["data"][$key]["name"] = $source["_source"]["name"];
$result["data"][$key]["inventory_rest"] = $source["_source"]["inventory_rest"];
$result["data"][$key]["total_amount_sold"] = $source["_source"]["total_amount_sold"];
$result["data"][$key]["original_price"] = $source["_source"]["original_price"];
$result["data"][$key]["price"] = $source["_source"]["price"];
$result["data"][$key]["status"] = $source["_source"]["status"];
$result["data"][$key]["online_status"] = $source["_source"]["online_status"];
}
}
//为避免空数据时候返回给前端错误结构
......
......@@ -6,6 +6,7 @@ namespace App\Services\goods;
use Api\PhpServices\Idgen\Idgen;
use App\Exception\custom\GoodsException;
use App\Models\goods\mysql\Category;
use App\Models\goods\mysql\GoodsOperationRecord;
use App\Models\goods\mysql\GoodsSku;
use App\Models\goods\mysql\GoodsSpu;
......@@ -542,7 +543,7 @@ class GoodsService
*/
private static function updateGoodsInfoToEs($skuData, $skuParams)
{
$index = "bp_goods";
$nameList = Category::select("name", ["category_id" => [$skuParams["category_1_id"], $skuParams["category_2_id"]]]);
$data = [
"doc" => [
"id" => $skuData["goods_sku_id"],
......@@ -552,12 +553,15 @@ class GoodsService
"total_amount_sold" => $skuData["total_amount_sold"],
"original_price" => $skuParams["original_price"] / 100,
"price" => $skuParams["price"] / 100,
"price_sort" => $skuParams["price"],
"price_sort" => (int)$skuParams["price"],
"status" => $skuData["status"],
"online_status" => $skuData["online_status"],
"desc" => $skuData["desc"],
"category_1_name" => $nameList[0],
"category_2_name" => $nameList[1],
],
];
return ElasticService::updateDoc($index, $skuData["goods_sku_id"], $data);
return ElasticGoodService::updateDoc($skuData["goods_sku_id"], $data);
}
/**
......@@ -567,22 +571,23 @@ class GoodsService
*/
private static function addGoodsInfoToEs($skuParams)
{
$index = "bp_goods";
$nameList = Category::select("name", ["category_id" => [$skuParams["category_1_id"], $skuParams["category_2_id"]]]);
$data = [
"doc" => [
"id" => $skuParams["goods_sku_id"],
"goods_pic" => $skuParams["url"],
"name" => $skuParams["name"],
"inventory_rest" => $skuParams["inventory_rest"],
"total_amount_sold" => 0,
"original_price" => $skuParams["original_price"] / 100,
"price" => $skuParams["price"] / 100,
"price_sort" => $skuParams["price"],
"status" => GoodsSku::STATUS_AUDIT,
"online_status" => GoodsSku::ONLINE_STATUS_NO_ONLINE,
],
"id" => $skuParams["goods_sku_id"],
"goods_pic" => $skuParams["url"],
"name" => $skuParams["name"],
"inventory_rest" => $skuParams["inventory_rest"],
"total_amount_sold" => 0,
"original_price" => $skuParams["original_price"] / 100,
"price" => $skuParams["price"] / 100,
"price_sort" => (int)$skuParams["price"],
"status" => GoodsSku::STATUS_AUDIT,
"online_status" => GoodsSku::ONLINE_STATUS_NO_ONLINE,
"desc" => $skuParams["desc"],
"category_1_name" => $nameList[0],
"category_2_name" => $nameList[1],
];
$esRes = ElasticService::indexDoc($index, $skuParams["goods_sku_id"], $data);
$esRes = ElasticGoodService::indexDoc($skuParams["goods_sku_id"], $data);
if ($esRes["result"] == "created" && $esRes["_shards"]["successful"] == 1) {
return true;
}
......
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