Compare commits
7 Commits
20250723-0
...
20250730-0
| Author | SHA1 | Date | |
|---|---|---|---|
| b8f583bcc7 | |||
| 2f1c7a9b28 | |||
| 66666f4a3a | |||
| bbcc0d054f | |||
| 0a1610fc42 | |||
| a296a30080 | |||
| 4d0e3907b2 |
@@ -168,6 +168,7 @@ class GoodCache
|
||||
private function buildData(&$list): mixed
|
||||
{
|
||||
$spuIds = array_column($list, 'id');
|
||||
$spuImage = array_column($list, 'image_id');
|
||||
|
||||
$skuList = $this->skuModel->getListBySpuIds($spuIds);
|
||||
|
||||
@@ -176,7 +177,7 @@ class GoodCache
|
||||
$skuList = $skuList->toArray();
|
||||
|
||||
$imageIdArr = array_column($skuList,'image_ids');
|
||||
$imageList = $this->getOssObjects($imageIdArr);
|
||||
$imageList = $this->getOssObjects(array_merge($spuImage,$imageIdArr));
|
||||
|
||||
$chefIds = array_column($skuList,'chef_id');
|
||||
$chefList = $this->adminUserModel->getDataByIds($chefIds);
|
||||
@@ -209,6 +210,7 @@ class GoodCache
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$item['sku_list'] = $skuListArr[$item['id']] ?? [];
|
||||
$item['spu_image_url'] = $imageList[$item['image_id']] ?? '';
|
||||
$item['image_list'] = $imageArr[$item['id']] ?? [];
|
||||
$item['price'] = !empty($price[$item['id']]) ? (min($price[$item['id']]) ?? 0) : 0;
|
||||
}
|
||||
|
||||
@@ -97,17 +97,17 @@ class SiteCache
|
||||
|
||||
/**
|
||||
* @param int $siteId
|
||||
* @return array|false|\Redis|null
|
||||
* @return array|false|\Redis
|
||||
* @throws ContainerExceptionInterface
|
||||
* @throws NotFoundExceptionInterface
|
||||
*/
|
||||
public function getSiteInfo(int $siteId): false|array|\Redis|null
|
||||
public function getSiteInfo(int $siteId): false|array|\Redis
|
||||
{
|
||||
$siteKey = CommonRedisKey::siteInfoKey($siteId);
|
||||
|
||||
if (!$this->redis->exists($siteKey,RedisCode::SYSTEM_DB)) $this->setSiteInfo($siteId);
|
||||
|
||||
return $this->redis->hGetAll($siteKey,RedisCode::SYSTEM_DB) ?? null;
|
||||
return $this->redis->hGetAll($siteKey,RedisCode::SYSTEM_DB) ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -96,7 +96,7 @@ class Sku extends Model
|
||||
->where('saleable',GoodCode::LISTING)
|
||||
// ->where('is_add_staple_food',GoodCode::IS_NOT_ADD_STAPLE_FOOD)
|
||||
->orderBy('sort')
|
||||
->select(['id','spu_id','title','image_ids','price','param','extra','total_stock','surplus_stock','order_num','is_add_staple_food','occupied','chef_id','origin_sku_id'])
|
||||
->select(['id','spu_id','title','image_ids','price','param','extra','total_stock','surplus_stock','order_num','is_add_staple_food','occupied','chef_id','origin_sku_id','sub_title'])
|
||||
->get();
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ use Hyperf\DbConnection\Model\Model;
|
||||
* @property int $kitchen_id
|
||||
* @property int $chef_id
|
||||
* @property int $caterer_id
|
||||
* @property int $image_id
|
||||
* @property string $title
|
||||
* @property string $sub_title
|
||||
* @property int $category_id
|
||||
@@ -85,7 +86,7 @@ class Spu extends Model
|
||||
->where('type',$type)
|
||||
->where('saleable',GoodCode::LISTING)
|
||||
->orderBy('sort')
|
||||
->select(['id','cycle_id','chef_id','title','title','sub_title','category_id','favorable'])
|
||||
->select(['id','cycle_id','chef_id','title','title','sub_title','category_id','favorable','image_id'])
|
||||
->get();
|
||||
}
|
||||
|
||||
|
||||
@@ -88,6 +88,7 @@ class SpuService extends BaseService
|
||||
if (empty($list['data'])) return $this->return->success('success', ['list' => $list]);
|
||||
|
||||
$spuIds = array_column($list['data'], 'id');
|
||||
$spuImageIds = array_column($list['data'], 'image_id');
|
||||
|
||||
$skuList = $this->skuModel
|
||||
->whereIn('spu_id',$spuIds)
|
||||
@@ -99,7 +100,7 @@ class SpuService extends BaseService
|
||||
|
||||
$imageIdArr = array_column($skuList,'image_ids');
|
||||
$imageIds = array_unique(explode(',',implode(',',$imageIdArr)));
|
||||
$imageList = $this->getOssObjects($imageIds);
|
||||
$imageList = $this->getOssObjects(array_merge($imageIds,$spuImageIds));
|
||||
|
||||
$skuListArr = [];
|
||||
foreach ($skuList as $sku) {
|
||||
@@ -126,6 +127,7 @@ class SpuService extends BaseService
|
||||
|
||||
foreach ($list['data'] as &$item) {
|
||||
$item['sku_list'] = $skuListArr[$item['id']] ?? [];
|
||||
$item['image_url'] = $imageList[$item['image_id']] ?? '';
|
||||
}
|
||||
|
||||
return $this->return->success('success', ['list' => $list]);
|
||||
@@ -156,6 +158,9 @@ class SpuService extends BaseService
|
||||
|
||||
if (!empty($info)) throw new ErrException('该菜品在当前城市已存在');
|
||||
|
||||
$imageId = $this->request->input('image_id');
|
||||
|
||||
$this->updateOssObjects([$imageId]);
|
||||
|
||||
$insertModel = new Spu();
|
||||
|
||||
@@ -170,6 +175,7 @@ class SpuService extends BaseService
|
||||
$insertModel->saleable = $this->request->input('saleable');
|
||||
$insertModel->type = $this->request->input('type');
|
||||
$insertModel->sort = $this->request->input('sort');
|
||||
$insertModel->image_id = $imageId;
|
||||
$insertModel->favorable = GoodCode::NOT_FAVORABLE;
|
||||
|
||||
if (!$insertModel->save()) throw new ErrException('添加菜品失败');
|
||||
@@ -233,6 +239,8 @@ class SpuService extends BaseService
|
||||
|
||||
$this->checkInfo();
|
||||
|
||||
|
||||
|
||||
$kitchenId = (int)$this->request->input('kitchen_id');
|
||||
$oldKitchenId = (int)$info->kitchen_id;
|
||||
|
||||
@@ -245,6 +253,12 @@ class SpuService extends BaseService
|
||||
$info->saleable = $this->request->input('saleable');
|
||||
$info->type = $this->request->input('type');
|
||||
$info->sort = $this->request->input('sort');
|
||||
$requestOssId = $this->request->input('image_id',0);
|
||||
if ($requestOssId != $info->image_id) {
|
||||
$info->image_id = $requestOssId;
|
||||
$this->updateOssObjects([$requestOssId]);
|
||||
$this->updateOssObjectsDisable([$info->image_ids]);
|
||||
}
|
||||
|
||||
if (!$info->save()) throw new ErrException('修改菜品失败');
|
||||
|
||||
@@ -311,6 +325,7 @@ class SpuService extends BaseService
|
||||
$info['city_name'] = $this->systemCityModel->getCityNameById((int)$info['city_id']);
|
||||
$info['kitchen_name'] = $this->kitchenModel->getNameById((int)$info['kitchen_id']);
|
||||
// $info['chef_name'] = $this->chefModel->getChineseNameById((int)$info['chef_id']);
|
||||
$info['image_url'] = $this->getOssObjectById((int)$info['image_id']) ?? '';
|
||||
$info['chef_name'] = '';
|
||||
$info['category_name'] = $this->categoryModel->getNameById((int)$info['category_id']);
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ use App\Constants\ConfigCode;
|
||||
use App\Exception\ErrException;
|
||||
use App\Model\Category;
|
||||
use App\Service\Api\BaseService;
|
||||
use App\Service\ServiceTrait\Api\BannerTrait;
|
||||
use App\Service\ServiceTrait\Common\CycleTrait;
|
||||
use App\Service\ServiceTrait\Common\OssTrait;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
@@ -30,6 +31,7 @@ use function Hyperf\Config\config;
|
||||
class OptionalListService extends BaseService
|
||||
{
|
||||
use CycleTrait;
|
||||
use BannerTrait;
|
||||
|
||||
/**
|
||||
* @var GoodCache
|
||||
@@ -55,6 +57,12 @@ class OptionalListService extends BaseService
|
||||
#[Inject]
|
||||
protected Category $categoryModel;
|
||||
|
||||
/**
|
||||
* 默认地址
|
||||
* @var array|false
|
||||
*/
|
||||
private array|false $siteInfo = [];
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @throws ContainerExceptionInterface
|
||||
@@ -67,19 +75,20 @@ class OptionalListService extends BaseService
|
||||
if (empty($cycleId)) return $this->return->success('success', ['list' => []]);
|
||||
|
||||
$this->goodCache->cycleId = (int)$cycleId;
|
||||
if (!empty($this->request->input('site_id'))){
|
||||
$siteInfo = $this->siteCache->getSiteInfo((int)$this->request->input('site_id'));
|
||||
}
|
||||
if (empty($siteInfo) || empty($siteInfo['kitchen_id'])) $siteInfo['kitchen_id'] = config('system.kitchen_id');
|
||||
|
||||
$this->goodCache->kitchenId = (int)$siteInfo['kitchen_id'];
|
||||
if (!empty($this->request->input('site_id'))){
|
||||
$this->siteInfo = $this->siteCache->getSiteInfo((int)$this->request->input('site_id'));
|
||||
}
|
||||
if (empty($this->siteInfo) || empty($this->siteInfo['kitchen_id'])) $this->siteInfo['kitchen_id'] = config('system.default_kitchen_id');
|
||||
|
||||
$this->goodCache->kitchenId = (int)$this->siteInfo['kitchen_id'];
|
||||
$data = $this->goodCache->getOptionalGoodList();
|
||||
|
||||
if (empty($data)) return $this->return->success('success', ['list' => []]);
|
||||
|
||||
$res = $this->buildData($data);
|
||||
|
||||
return $this->return->success('success', ['list' => $res]);
|
||||
return $this->return->success('success', ['list' => $res,'banner' => $this->getBanner((int)$this->request->input('city_id',config('system.default_city_id')))]);
|
||||
}
|
||||
|
||||
use OssTrait;
|
||||
|
||||
@@ -34,7 +34,7 @@ class IndexService extends BaseService
|
||||
$avatar = $this->getOssObjectById($userInfo->avatar_id);
|
||||
|
||||
$res = [
|
||||
'banner' => $this->getBanner(),
|
||||
// 'banner' => $this->getBanner(),
|
||||
'nickname' => $userInfo->nickname,
|
||||
'avatar' => $avatar,
|
||||
'point' => 0,
|
||||
|
||||
41
app/Service/ServiceTrait/Api/BannerTrait.php
Normal file
41
app/Service/ServiceTrait/Api/BannerTrait.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
namespace App\Service\ServiceTrait\Api;
|
||||
|
||||
use App\Constants\Common\BannerCode;
|
||||
use App\Model\Banner;
|
||||
use App\Service\ServiceTrait\Common\OssTrait;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
|
||||
trait BannerTrait
|
||||
{
|
||||
use OssTrait;
|
||||
|
||||
/**
|
||||
* @var Banner
|
||||
*/
|
||||
#[Inject]
|
||||
protected Banner $bannerModel;
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
private function getBanner(int $cityId): array
|
||||
{
|
||||
$res = $this->bannerModel
|
||||
->where('city_id',$cityId)
|
||||
->where('status',BannerCode::DISPLAYED)
|
||||
->orderBy('sort')
|
||||
->get();
|
||||
if ($res->isEmpty()) return [];
|
||||
$res = $res->toArray();
|
||||
|
||||
$imageList = $this->getOssObjects(array_column($res, 'image_id'));
|
||||
|
||||
foreach ($res as &$v) {
|
||||
$v['url'] = $imageList[$v['image_id']]['url'] ?? '';
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
@@ -30,5 +30,7 @@ return [
|
||||
// upload_dir
|
||||
'upload_dir' => BASE_PATH.'/uploads/',
|
||||
// 默认的厨房 id
|
||||
'default_kitchen_id' => env('DEFAULT_KITCHEN_ID',''),
|
||||
'default_kitchen_id' => env('DEFAULT_KITCHEN_ID',1),
|
||||
// 默认 城市 id
|
||||
'default_city_id' => env('DEFAULT_CITY_ID',3),
|
||||
];
|
||||
@@ -61,4 +61,4 @@ WX_PAYMENT_MCH_SECRET_CERT=__DIR__/config/pay/wx/apiclient_key.pem
|
||||
WX_PAYMENT_MCH_PUBLIC_CERT_PATH=__DIR__/config/pay/wx/apiclient_cert.pem
|
||||
WX_PAYMENT_MINI_APP_ID=wx444b711b6101f25b
|
||||
WX_PAYMENT_SUB_MINI_APP_ID=wxc2bc0e47e212d831
|
||||
WX_PAYMENT_SUB_MCH_ID=1656142874
|
||||
WX_PAYMENT_SUB_MCH_ID=1723727305
|
||||
@@ -56,4 +56,4 @@ WX_PAYMENT_MCH_SECRET_CERT=__DIR__/config/pay/wx/apiclient_key.pem
|
||||
WX_PAYMENT_MCH_PUBLIC_CERT_PATH=__DIR__/config/pay/wx/apiclient_cert.pem
|
||||
WX_PAYMENT_MINI_APP_ID=wx444b711b6101f25b
|
||||
WX_PAYMENT_SUB_MINI_APP_ID=wxc2bc0e47e212d831
|
||||
WX_PAYMENT_SUB_MCH_ID=1656142874
|
||||
WX_PAYMENT_SUB_MCH_ID=1723727305
|
||||
2
env.pre
2
env.pre
@@ -59,4 +59,4 @@ WX_PAYMENT_MCH_SECRET_CERT=__DIR__/config/pay/wx/apiclient_key.pem
|
||||
WX_PAYMENT_MCH_PUBLIC_CERT_PATH=__DIR__/config/pay/wx/apiclient_cert.pem
|
||||
WX_PAYMENT_MINI_APP_ID=wx444b711b6101f25b
|
||||
WX_PAYMENT_SUB_MINI_APP_ID=wxc2bc0e47e212d831
|
||||
WX_PAYMENT_SUB_MCH_ID=1656142874
|
||||
WX_PAYMENT_SUB_MCH_ID=1723727305
|
||||
2
env.prod
2
env.prod
@@ -59,4 +59,4 @@ WX_PAYMENT_MCH_SECRET_CERT=__DIR__/config/pay/wx/apiclient_key.pem
|
||||
WX_PAYMENT_MCH_PUBLIC_CERT_PATH=__DIR__/config/pay/wx/apiclient_cert.pem
|
||||
WX_PAYMENT_MINI_APP_ID=wx444b711b6101f25b
|
||||
WX_PAYMENT_SUB_MINI_APP_ID=wxc2bc0e47e212d831
|
||||
WX_PAYMENT_SUB_MCH_ID=1656142874
|
||||
WX_PAYMENT_SUB_MCH_ID=1723727305
|
||||
Reference in New Issue
Block a user