From 2a3c3cdbf2398695d61633e072f98ee2757e9e27 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期二, 11 八月 2026 11:20:26 +0800
Subject: [PATCH] feat(appointment): 添加访客预约系统解除绑定功能
---
backend/src/main/java/com/sinata/appointment/controller/MiniAuthController.java | 40 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 38 insertions(+), 2 deletions(-)
diff --git a/backend/src/main/java/com/sinata/appointment/controller/MiniAuthController.java b/backend/src/main/java/com/sinata/appointment/controller/MiniAuthController.java
index 76c2b65..ec57064 100644
--- a/backend/src/main/java/com/sinata/appointment/controller/MiniAuthController.java
+++ b/backend/src/main/java/com/sinata/appointment/controller/MiniAuthController.java
@@ -3,6 +3,9 @@
import com.sinata.appointment.common.Result;
import com.sinata.appointment.common.ResultUtil;
import com.sinata.appointment.dto.MiniLoginResponse;
+import com.sinata.appointment.dto.MiniOfficialBindPhoneRequest;
+import com.sinata.appointment.dto.MiniOfficialLoginRequest;
+import com.sinata.appointment.dto.MiniOfficialLoginResponse;
import com.sinata.appointment.dto.MiniPhoneLoginRequest;
import com.sinata.appointment.dto.MiniProfileUpdateRequest;
import com.sinata.appointment.dto.MiniWxLoginRequest;
@@ -45,10 +48,35 @@
return ResultUtil.data(miniAuthApplicationService.loginByWx(request));
}
- @Operation(summary = "临时手机号登录(测试用)")
+ @Operation(summary = "临时手机号登录")
@PostMapping("/phone-login")
public Result<MiniLoginResponse> phoneLogin(@Valid @RequestBody MiniPhoneLoginRequest request) {
return ResultUtil.data(miniAuthApplicationService.loginByPhone(request.getMobile()));
+ }
+
+ @Operation(summary = "公众号静默授权地址")
+ @GetMapping("/official-oauth-url")
+ public Result<Map<String, String>> officialOAuthUrl(
+ @RequestParam("redirectUri") String redirectUri,
+ @RequestParam(value = "state", required = false) String state) {
+ return ResultUtil.data(
+ Map.of("url", miniAuthApplicationService.buildOfficialOAuthUrl(redirectUri, state)));
+ }
+
+ @Operation(summary = "公众号静默授权登录")
+ @PostMapping("/official-login")
+ public Result<MiniOfficialLoginResponse> officialLogin(
+ @Valid @RequestBody MiniOfficialLoginRequest request) {
+ return ResultUtil.data(miniAuthApplicationService.loginByOfficialCode(request.getCode()));
+ }
+
+ @Operation(summary = "公众号首次登录手机号绑定")
+ @PostMapping("/official-bind-phone")
+ public Result<MiniLoginResponse> officialBindPhone(
+ @Valid @RequestBody MiniOfficialBindPhoneRequest request) {
+ return ResultUtil.data(
+ miniAuthApplicationService.bindOfficialPhoneAndLogin(
+ request.getBindToken(), request.getMobile()));
}
@Operation(summary = "当前小程序用户")
@@ -77,6 +105,13 @@
return ResultUtil.success();
}
+ @Operation(summary = "解除当前小程序微信绑定")
+ @PostMapping("/unbind-openid")
+ public Result<Void> unbindOpenId() {
+ miniAuthApplicationService.unbindMiniOpenIdAndLogout();
+ return ResultUtil.success();
+ }
+
private Map<String, Object> buildMeResponse(MpUser u) {
Map<String, Object> m = new HashMap<>();
m.put("mpUserId", u.getId());
@@ -84,7 +119,7 @@
m.put("deptId", u.getDeptId());
SysDept dept = u.getDeptId() == null ? null : sysDeptMapper.selectById(u.getDeptId());
m.put("deptName", dept == null ? null : dept.getDeptName());
- m.put("deptLeaderFlag", Boolean.TRUE.equals(u.getDeptLeaderFlag()));
+ m.put("deptLeaderFlag", false);
m.put("nickName", u.getNickName());
m.put("avatarUrl", u.getAvatarUrl());
m.put("mobile", u.getMobile());
@@ -93,3 +128,4 @@
return m;
}
}
+
--
Gitblit v1.7.1