import 'package:flutter/widgets.dart'; import 'package:get/get.dart'; import 'package:starcloud/sdk/entity/cloud_user_info.dart'; import 'package:starcloud/sdk/starcloud.dart'; import 'package:starwork_flutter/api/model/team/request/bind_team_star_cloud_account_request.dart'; import 'package:starwork_flutter/api/model/team/request/create_team_request.dart'; import 'package:starwork_flutter/api/model/team/response/scene_info_response.dart'; import 'package:starwork_flutter/api/service/team_api_service.dart'; import 'package:starwork_flutter/base/app_logger.dart'; import 'package:starwork_flutter/base/base_controller.dart'; class CreateTeamController extends BaseController { TextEditingController teamNameInputController = TextEditingController(); final teamApi = Get.find(); // 用于存储选中的使用场景 final selectedUseCase = Rx(null); // 用于存储场景列表 final useCases = [].obs; @override void onInit() { super.onInit(); requestAllSceneInfoList(); } /// 请求团队使用场景信息 void requestAllSceneInfoList() async { showLoading(); var sceneList = await teamApi.requestAllSceneInfoList(); if (sceneList.isSuccess) { // 使用场景列表 useCases.value = sceneList.data?.list ?? []; useCases.refresh(); } hideLoading(); } void requestCreateTeam() async { // 先注册星云用户 await StarCloudSDK.instance.createCloudUser( onSuccess: (CloudUserInfo userInfo) async { // 创建团队 var createTeamResponse = await teamApi.requestCreateTeam( request: CreateTeamRequest( teamName: teamNameInputController.text, scene: selectedUseCase.value?.id ?? 0, ), ); if (createTeamResponse.isSuccess) { var teamNo = createTeamResponse.data?.teamNo; var teamId = createTeamResponse.data?.teamId; var username = userInfo.username; var cloudUid = userInfo.uid; var password = userInfo.password; if (teamNo != null && teamId != null) { var bindTeamStarCloudAccountResponse = await teamApi.requestBindTeamStarCloudAccount( request: BindTeamStarCloudAccountRequest( teamId: teamId, teamNo: teamNo, username: username, cloudUid: cloudUid, password: password, ), ); AppLogger.highlight('bindTeamStarCloudAccountResponse:${bindTeamStarCloudAccountResponse.toString()}'); if (bindTeamStarCloudAccountResponse.isSuccess) { // 创建成功,使用 Get.back(result: true) 返回并传递结果 showSuccess(); // 返回添加成功结果 Get.back(result: {'created': true}); } } } else { // 创建失败 showError(message: createTeamResponse.errorMsg!); } }, onError: (err) {}, ); } }