fix : site

This commit is contained in:
2025-03-31 15:20:51 +08:00
parent 003613a918
commit d84ffd4c9e
5 changed files with 81 additions and 6 deletions

View File

@@ -84,7 +84,7 @@ class SiteCache
if ($info->status == SiteCode::SITE_DISABLE || $info->is_del == SiteCode::SITE_DEL) return; if ($info->status == SiteCode::SITE_DISABLE || $info->is_del == SiteCode::SITE_DEL) return;
$this->redis->hMset($siteKey, [ $this->redis->hMset($siteKey, [
'id' => $info->id, 'site_id' => $info->id,
'name' => $info->name, 'name' => $info->name,
'kitchen_id' => $info->kitchen_id, 'kitchen_id' => $info->kitchen_id,
'city_id' => $info->city_id, 'city_id' => $info->city_id,

View File

@@ -83,6 +83,28 @@ class UserController extends AbstractController
return (new SiteService)->del(); return (new SiteService)->del();
} }
/**
* @return array
*/
#[RequestMapping(path: 'site/set_default',methods: 'post')]
#[Scene(scene: 'set_default_site')]
public function setDefaultSite()
{
return (new SiteService)->setDefault();
}
/**
* @return array
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
#[RequestMapping(path: 'site/get_default',methods: 'GET')]
#[Scene(scene: 'get_default_site')]
public function getDefaultSite()
{
return (new SiteService)->getDefault();
}
/** /**
* @return array * @return array
*/ */
@@ -117,6 +139,6 @@ class UserController extends AbstractController
public function updateProfile() public function updateProfile()
{ {
} }
} }

View File

@@ -80,7 +80,16 @@ class UserSite extends Model
* @param int $userId * @param int $userId
* @return BuildsQueries|Builder|\Hyperf\Database\Model\Model|object|null * @return BuildsQueries|Builder|\Hyperf\Database\Model\Model|object|null
*/ */
public function getUserNoDefaultIdByUserId(int $userId) public function getUserNoDefaultIdByUserId(int $userId): \Hyperf\Database\Model\Model|Builder|BuildsQueries|null
{
return $this->where('user_id', $userId)->where('is_default',SiteCode::USER_NO_DEFAULT)->first();
}
/**
* @param int $userId
* @return BuildsQueries|Builder|\Hyperf\Database\Model\Model|object|null
*/
public function getUserDefaultInfoByUserId(int $userId)
{ {
return $this->where('user_id', $userId)->where('is_default',SiteCode::USER_NO_DEFAULT)->first(); return $this->where('user_id', $userId)->where('is_default',SiteCode::USER_NO_DEFAULT)->first();
} }

View File

@@ -37,7 +37,7 @@ class MyPageService extends BaseService
$adminInfo = $this->adminUserModel->getAdminInfoByBindUserId($this->userId); $adminInfo = $this->adminUserModel->getAdminInfoByBindUserId($this->userId);
return [ $res = [
'id' => $this->userId, 'id' => $this->userId,
'nickname' => $userInfo->nickname, 'nickname' => $userInfo->nickname,
'avatar' => $this->getOssObjectById($userInfo->avatar_id) ?? '', 'avatar' => $this->getOssObjectById($userInfo->avatar_id) ?? '',
@@ -47,6 +47,8 @@ class MyPageService extends BaseService
'invite_num' => 0, 'invite_num' => 0,
'role_id' => (!empty($adminInfo) && $adminInfo->role_id > 0) ? $adminInfo->role_id : 0, 'role_id' => (!empty($adminInfo) && $adminInfo->role_id > 0) ? $adminInfo->role_id : 0,
]; ];
return $this->return->success('success', $res);
} }
/** /**

View File

@@ -50,13 +50,13 @@ class SiteService extends BaseService
*/ */
public function handle(): array public function handle(): array
{ {
$siteIds = $this->userSiteModel->where('user_id', $this->userId)->select(['id','is_default'])->get(); $siteIds = $this->userSiteModel->where('user_id', $this->userId)->select(['id','site_id','is_default'])->get();
if (empty($siteIds)) $this->return->success('success', ['list' => []]); if (empty($siteIds)) $this->return->success('success', ['list' => []]);
$siteIds = $siteIds->toArray(); $siteIds = $siteIds->toArray();
foreach ($siteIds as &$siteId) { foreach ($siteIds as &$siteId) {
$siteId = array_merge($siteId,$this->siteCache->getSiteInfo($siteId['id'])); $siteId['info'] = $this->siteCache->getSiteInfo($siteId['site_id']);
} }
return $this->return->success('success', ['list' => $siteIds]); return $this->return->success('success', ['list' => $siteIds]);
@@ -119,4 +119,46 @@ class SiteService extends BaseService
return $this->return->success(); return $this->return->success();
} }
/**
* @return array
*/
public function setDefault(): array
{
$id = (int)$this->request->input('site_id');
$info = $this->userSiteModel->getInfoByUserIdAndId($this->userId,$id);
if ($info->is_default == SiteCode::USER_DEFAULT) throw new ErrException('该地址已经是默认地址');
$updateInfo = $this->userSiteModel->getUserDefaultInfoByUserId($this->userId);
if (!empty($updateInfo)) {
if ($updateInfo->id == $id) throw new ErrException('该地址已经是默认地址');
$updateInfo->is_default = SiteCode::USER_NO_DEFAULT;
if(!$updateInfo->save()) throw new ErrException('修改失败-修改联动数据失败');
}
$info->is_default = SiteCode::USER_DEFAULT;
if (!$info->save()) throw new ErrException('修改失败');
return $this->return->success();
}
/**
* @return array
* @throws ContainerExceptionInterface
* @throws NotFoundExceptionInterface
*/
public function getDefault(): array
{
$info = $this->userSiteModel->getUserDefaultInfoByUserId($this->userId);
if (empty($info)) return $this->return->success();
$info = $info->toArray();
$info['info'] = $this->siteCache->getSiteInfo($info['site_id']);
return $this->return->success('success', $info);
}
} }