error = "同一手机号码用户不能有多重身份"; return false; } foreach ($data['identity_user'] as $item) { // 判断是否已添加过 if (User::where('mobile', $item['mobile'])->where('shop_id', $shopId)->where('role', $item['role_id'])->find()) { $this->error = "该用户已存在,请勿重复添加"; return false; } // 厨师不能同时在其他门店担任职务 if (User::where('mobile', $item['mobile'])->where('role', '>', User::NORMAL_USER)->find()) { $this->error = "同一手机号码用户不能有多重身份"; return false; } User::createUserByMobile(make_nickname($item['mobile']), $item['mobile'], $shopId, $item['role_id'], $shopId); } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); $this->error = $e->getMessage(); return false; } } /** * 写入门店身份配置 */ public function addShopIdentity($shopId, $data) { Db::startTrans(); try { $shopModel = Shops::find($shopId); $shopModel->staff_percent = $data['staff_percent'] ?? 0; $shopModel->manager_percent = $data['manager_percent'] ?? 0; $shopModel->boss_percent = $data['boss_percent'] ?? 0; $shopModel->save(); // 写入门店身份 if (!empty($data['shop_identity'])) { foreach ($data['shop_identity'] as $item) { // 判断门店身份是否存在 $shopIdentity = ShopIdentity::where('shop_id', $shopId)->where('role_id', $item['role_id'])->find(); if (empty($shopIdentity)) { ShopIdentity::create([ 'shop_id' => $shopId, 'role_id' => $item['role_id'], 'fc_percent' => $item['fc_percent'], ]); } else { $shopIdentity->fc_percent = $item['fc_percent']; $shopIdentity->save(); } } } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); $this->error = $e->getMessage(); return false; } } }