From 313e9ff79e82570e24f97e7d1875bfcc84c67b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Fri, 8 May 2026 15:54:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E6=BB=9A=E9=97=A8=E5=BA=97=E7=BB=91?= =?UTF-8?q?=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v1/controllers/StoreController.php | 82 +++++++------------ 1 file changed, 28 insertions(+), 54 deletions(-) diff --git a/member/modules/v1/controllers/StoreController.php b/member/modules/v1/controllers/StoreController.php index 2c659c9..6066a8a 100644 --- a/member/modules/v1/controllers/StoreController.php +++ b/member/modules/v1/controllers/StoreController.php @@ -97,80 +97,54 @@ class StoreController extends BaseAppController */ public function actionStoreChange() { - $post = \Yii::$app->request->post(); - $this->requestValidate($post, [ - ['store_id', 'required'] + $post=\Yii::$app->request->post(); + + $this->requestValidate($post,[ + ['store_id','required'] ]); - - $t = \Yii::$app->db->beginTransaction(); + $t=\Yii::$app->db->beginTransaction(); try { - $userId = \Yii::$app->user->identity->getId(); - $store = Store::findOne($post['store_id']); - if (!$store) { - throw new Exception('门店不存在'); - } + if(!$store)throw new Exception('门店不存在'); - // 先将该用户所有在线门店置为离线 - StoreUser::updateAll(['is_online' => 0], [ - 'user_id' => $userId, + + StoreUser::updateAll(['is_online' => 0],[ + 'user_id' => \Yii::$app->user->identity->getId(), 'is_delete' => 0, 'is_online' => 1 ]); - // 先查找未删除的绑定记录 - $StoreUser = StoreUser::find()->where([ - 'user_id' => $userId, - 'store_id' => $post['store_id'], + $StoreUser=StoreUser::find()->where([ + 'user_id' => \Yii::$app->user->identity->getId(), + 'store_id' => $post['store_id'], 'is_delete' => 0, ])->one(); + if (!$StoreUser){//绑定门店 + $StoreUser = new StoreUser(); + $StoreUser->store_id = $post['store_id']; + $StoreUser->user_id = \Yii::$app->user->identity->getId(); + //如果是搜索小程序进入后扫码其他门店,删除默认门店数据 - if (!$StoreUser) { - // 未找到有效记录,尝试恢复已删除的同门店记录 - $deletedStoreUser = StoreUser::find()->where([ - 'user_id' => $userId, - 'store_id' => $post['store_id'], - 'is_delete' => 1, - ])->one(); - - if ($deletedStoreUser) { - // 恢复旧记录,避免唯一键冲突 - $StoreUser = $deletedStoreUser; - $StoreUser->is_delete = 0; - } else { - // 完全新建绑定 - $StoreUser = new StoreUser(); - $StoreUser->store_id = $post['store_id']; - $StoreUser->user_id = $userId; - - // 清除之前的默认门店(仅针对全新绑定) - StoreUser::updateAll(['is_delete' => 1], [ - 'user_id' => $userId, - 'is_delete' => 0, - 'type' => 1 - ]); - } + StoreUser::updateAll(['is_delete' => 1],[ + 'user_id' => \Yii::$app->user->identity->getId(), + 'is_delete' => 0, + 'type' => 1 + ]); } - - // 更新登录信息并保存 $StoreUser->last_login_time = time(); - $StoreUser->type = 2; - $StoreUser->is_online = 1; + $StoreUser->type=2; + $StoreUser->is_online=1; $StoreUser->saveOrFail(); - // 更新用户当前门店 - $user = User::find()->where(['id' => $userId])->one(); - if (!$user) { - throw new Exception('用户不存在'); - } - $user->current_store_id = $post['store_id']; + $user=User::find()->where(['id'=>\Yii::$app->user->identity->getId()])->one(); + if (!$user) throw new Exception('用户不存在'); + $user->current_store_id=$post['store_id']; $user->saveOrFail(); $t->commit(); return ['success']; - } catch (\Exception $exception) { + }catch (\Exception $exception){ $t->rollBack(); - ds([1], $exception->getMessage()); throw new Exception($exception->getMessage()); } }