db->beginTransaction(); try { $manufacturerModel = Yii::createObject(ManufacturerModel::className()); $manufacturerModel->manufacture_no = self::getManufactureNo(); $manufacturerModel->name = $item["name"]; // 厂商名称 $manufacturerModel->phone = $item['phone']; $result = $manufacturerModel->save(); $saveResult = false; if ($result) { $model = Yii::createObject(SysUserModel::className()); $model->username = self::getSysUserName(); $model->password = "1234567"; $model->is_enable = 1; $model->is_manufacture = 1; // 厂商用户 $model->save(); $manufacturerModel->sys_user_id = $model->id; $manufacturerModel->save(); // 绑定管理员角色 $roleId = isset(Yii::$app->params['MANUFACTURE_ROLE_ID']) ? Yii::$app->params['MANUFACTURE_ROLE_ID'] : ""; if ($roleId) { $authUsersRole = new AuthUsersRoles(); $authUsersRole->role_id = $roleId; $authUsersRole->sys_user_id = $model->id; $authUsersRole->save(); } $profile = Yii::createObject(SysUserProfileModel::className()); $profile->sys_user_id = $model->id; $profile->realname = $item["name"]; $profile->email = ""; $profile->mobile = $item['phone']; $saveResult = $profile->save(); } if($saveResult) { $saveResult = $manufacturerModel->id; $transaction->commit(); } else { $transaction->rollBack(); } return $saveResult; } catch (Exception $e) { $transaction->rollBack(); return false; } } /** * @param $id * @param $item * @return null|static */ static function update($id, $item) { $manufacturerModel = ManufacturerModel::findOne($id); if (empty($manufacturerModel)) { return false; } $sysUserModel = SysUserModel::findOne($manufacturerModel->sys_user_id); if (empty($sysUserModel)) { return false; } if (isset($item['name']) && !empty($item['name'])) { $manufacturerModel->name = $item['name']; } if (isset($item['phone'])) { $manufacturerModel->phone = $item["phone"]; // 厂商电话 } $manufacturerModel->save(); if (isset($item['name']) && !empty($item['name'])) { $sysUserProfileModel = SysUserProfileModel::findOne(["sys_user_id" => $manufacturerModel->sys_user_id]); if ($sysUserProfileModel) { $sysUserProfileModel->realname = $item['name']; if (isset($item['phone'])) { $sysUserProfileModel->mobile = $item["phone"]; // 厂商电话 } $sysUserProfileModel->save(); } } $sysUserModel->username = $item['username']; $sysUserModel->password = $item['password']; $resultSave = $sysUserModel->save(); return $resultSave; } /** * @param $id * @param $item * @return null|static */ public static function delete($id) { $manufacturerModel = ManufacturerModel::findOne($id); if (empty($manufacturerModel)) { return false; } if (isset($manufacturerModel->sys_user_id)) { SysUserModel::updateAll(["is_enable" => 0], ["id" => $manufacturerModel->sys_user_id]); // 删除登录用户 //SysUserProfileModel::deleteAll(["sys_user_id" => $manufacturerModel->sys_user_id]); // 删除登录用户 } return ManufacturerModel::updateAll(["is_delete" => 1], ["id" => $id]); } /** * 获取十六进制厂商编号 */ private static function getManufactureNo() { $findManufacturer = ManufacturerModel::find()->orderBy("id desc")->asArray()->one(); if (empty($findManufacturer)) { return "0001"; } $dataNo = hexdec($findManufacturer['manufacture_no']) + 1; $dataNo = sprintf('%04X', $dataNo); return strtoupper($dataNo); } /** * 获取登录账号名称 */ private static function getSysUserName() { $sysUserName = 'CS'.rand(10000000, 99999999); $sysUser = SysUserModel::find()->filterWhere(["like", "username", $sysUserName])->one(); if ($sysUser) { self::getSysUserName(); } return $sysUserName; } }