You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/app/common/service/GoodsEs.php

163 lines
4.3 KiB

6 months ago
<?php
namespace app\common\service;
use app\common\library\elasticsearch\Client;
class GoodsEs
{
private Client $esService;
6 months ago
private $index_name = 'goods_list';
6 months ago
public function __construct()
{
6 months ago
$this->esService = Client::setEs('goods_List');
6 months ago
}
/**
* 查询商品列表
* @param $params
* @return
*/
public function list($params)
{
$page = 1;
$limit = 10;
$body = [
'query' => [
'match_all' => []
],
'from' => ($page - 1) * $limit,
'size' => $limit,
'sort' => [
'id' => [
'order' => 'desc'
]
]
];
6 months ago
return $this->esService
->equal(['title' => 1])
->from(0)
->size(10)
->order(['id' => 'desc'])
->query($body);
6 months ago
}
/**
* 更新商品
*/
6 months ago
public function update($goods_id)
6 months ago
{
$goods_id = 1;
$doc = [
'id' => $goods_id,
'video_title' => '少爷的甜蜜良药',
'director' => '吴宇森',
'intro' => '吴宇森导演的《少爷的甜蜜良药》是吴宇森导演的经典作品,讲述了一个boyfriend和girlfriend的故事,boyfriend因为工作原因,被拒了girlfriend的offer,然后boyfriend和girlfriend一起去一个地方,然后boyfriend和girlfriend',
'cover' => 'https://oss-duanju-file.luochen.com/cover/202404/62249c6a-5f57-45cf-90ac-be6de5890ce0.jpg?x-oss-process=image/resize,m_fixed,h_400,w_360',
'episode_count' => '12',
'wechat_vid' => 'wx_vid_1',
'duration' => '01:02:03',
'service_types' => '2,3',
];
$res = $this->esService->updateDoc($goods_id, $doc);
var_dump($res);
}
6 months ago
/**
* 查询商品详情
*/
public function detail($goods_id)
{
$goods_id = 1;
$res = $this->esService->getDoc($goods_id);
var_dump($res);
}
6 months ago
/**
* 创建商品
* @return
*/
6 months ago
public function create($goods_id)
6 months ago
{
$goods_id = 1;
$doc = [
'id' => $goods_id,
'video_title' => '少爷的甜蜜良药',
'director' => '吴宇森',
'intro' => '吴宇森导演的《少爷的甜蜜良药》是吴宇森导演的经典作品,讲述了一个boyfriend和girlfriend的故事,boyfriend因为工作原因,被拒了girlfriend的offer,然后boyfriend和girlfriend一起去一个地方,然后boyfriend和girlfriend',
'cover' => 'https://oss-duanju-file.luochen.com/cover/202404/62249c6a-5f57-45cf-90ac-be6de5890ce0.jpg?x-oss-process=image/resize,m_fixed,h_400,w_360',
'episode_count' => '12',
'wechat_vid' => 'wx_vid_1',
'duration' => '01:02:03',
'service_types' => '2,3',
];
$res = $this->esService->addDoc($goods_id, $doc);
var_dump($res);
}
/**
* 删除商品
*/
6 months ago
public function delete($goods_id)
6 months ago
{
$res = $this->esService->deleteDoc($goods_id);
var_dump($res);
}
/**
* 创建商品Index
* @return void
* @throws Exception
*/
function createGoodsIndex()
{
$mapping = [
'properties' => [
6 months ago
'goods_id' => [
'type' => 'integer'
6 months ago
],
6 months ago
'goods_type' => [
'type' => 'keyword'
6 months ago
],
'director' => [
'type' => 'text',
"analyzer" => "ik_smart"
],
'intro' => [
'type' => 'text',
"analyzer" => "ik_smart"
],
'cover' => [
'type' => 'keyword'
],
'episode_count' => [
'type' => 'keyword'
],
'wechat_vid' => [
'type' => 'keyword'
],
'duration' => [
'type' => 'keyword'
],
'service_types' => [
'type' => 'keyword'
],
]
];
6 months ago
$res = $this->esService->createIndex($this->index_name, $mapping);
6 months ago
var_dump($res);
}
}