85 lines
3.0 KiB
Dart
85 lines
3.0 KiB
Dart
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<TeamApiService>();
|
|
|
|
// 用于存储选中的使用场景
|
|
final selectedUseCase = Rx<SceneInfoResponse?>(null);
|
|
|
|
// 用于存储场景列表
|
|
final useCases = <SceneInfoResponse>[].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) {},
|
|
);
|
|
}
|
|
}
|