Browse Source

[new]增加账号注销功能

zk 1 year ago
parent
commit
c38d84240d

+ 3 - 0
assets/string/base/string.xml

@@ -86,4 +86,7 @@
     <string name="load_failed">加载失败</string>
     <string name="talk_analysis_success">谈话分析已完成</string>
     <string name="talk_analysis_success_btn_txt">查看</string>
+    <string name="account_logout_tips">确定要注销此账号吗?一旦注销,账号信息将永久消失,无法恢复。
+    </string>
+    <string name="account_logout_success">注销成功</string>
 </resources>

+ 3 - 0
lib/data/api/atmob_api.dart

@@ -127,6 +127,9 @@ abstract class AtmobApi {
   @POST("/project/secretary/v1/example/info")
   Future<BaseResponse<ExampleInfoResponse>> exampleInfo(
       @Body() AppBaseRequest request);
+
+  @POST("/project/secretary/v1/user/deprecate")
+  Future<BaseResponse> userDeprecate(@Body() AppBaseRequest request);
 }
 
 final atmobApi = AtmobApi(defaultDio, baseUrl: Constants.baseUrl);

+ 6 - 0
lib/data/repositories/account_repository.dart

@@ -60,6 +60,12 @@ class AccountRepository {
         .then(HttpHandler.handle(true));
   }
 
+  Future<void> userDeprecate() {
+    return atmobApi
+        .userDeprecate(AppBaseRequest())
+        .then(HttpHandler.handle(true));
+  }
+
   Future<void> updateUserInfo(String profession, String post) {
     return atmobApi
         .updateUserInfo(UserInfoUpdateRequest(profession, post))

+ 29 - 0
lib/module/main/drawer/controller.dart

@@ -1,9 +1,16 @@
 import 'package:electronic_assistant/base/base_controller.dart';
+import 'package:electronic_assistant/resource/colors.gen.dart';
+import 'package:electronic_assistant/utils/error_handler.dart';
+import 'package:electronic_assistant/utils/toast_util.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:get/get.dart';
 
 import '../../../data/repositories/account_repository.dart';
+import '../../../dialog/alert_dialog.dart';
 import '../../../resource/string.gen.dart';
 import '../../../utils/app_info_util.dart';
+import '../controller.dart';
 
 class MainDrawerController extends BaseController {
   String get versionName => "v${appInfoUtil.appVersionName}";
@@ -12,4 +19,26 @@ class MainDrawerController extends BaseController {
       accountRepository.getUserSubName(accountRepository.phone);
 
   String get electricityTxt => '${StringName.mainLoginChargeTips.tr}';
+
+  void accountLogout() {
+    EAAlertDialog.show(
+        contentWidget: Text(
+          StringName.accountLogoutTips.tr,
+          style: TextStyle(
+              fontSize: 15.sp,
+              color: ColorName.primaryTextColor,
+              fontWeight: FontWeight.bold),
+        ),
+        cancelText: StringName.cancel.tr,
+        confirmText: StringName.sure.tr,
+        confirmOnTap: () {
+          accountRepository.userDeprecate().then((data) {
+            Get.find<MainController>().closeDrawer();
+            accountRepository.logout();
+            ToastUtil.showToast(StringName.accountLogoutSuccess.tr);
+          }).catchError((error) {
+            ErrorHandler.toastError(error);
+          });
+        });
+  }
 }

+ 3 - 1
lib/module/main/drawer/view.dart

@@ -163,7 +163,9 @@ class MainDrawerView extends BasePage<MainDrawerController> {
           buildOperationItem(
             Assets.images.iconLogoff.image(),
             StringName.mainDrawerLogoff.tr,
-            () {},
+            () {
+              controller.accountLogout();
+            },
           ),
         ],
       ),

+ 0 - 1
lib/module/talk/summary/view.dart

@@ -92,7 +92,6 @@ class SummaryView extends BasePage<SummaryController> {
 
   Widget buildSummaryStatusView() {
     return Obx(() {
-      debugPrint('zk====${controller.summaryBean.value?.status.value}');
       if (controller.summaryBean.value?.status.value ==
           TalkStatus.analysisFail) {
         return getTalkFailView();