Explorar o código

新增解除绑定接口

刘韬 %!s(int64=3) %!d(string=hai) anos
pai
achega
4281eada7a

+ 39 - 2
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/controller/WxaUserApiController.java

@@ -41,7 +41,7 @@ import com.zskk.util.ErrorConstant;
  */
 public class WxaUserApiController extends WxaController {
 	/**
-	 * 登陆接口
+	 * 使用小程序端获取的code登陆接口
 	 */
 	public void login() {
 		String jsCode = getPara("code");
@@ -105,6 +105,9 @@ public class WxaUserApiController extends WxaController {
 		renderJson(new ResultBean(loginBean));
 	}
 
+	/**
+	 * 使用登陆成功后返回的session字段登陆获取用户信息
+	 */
 	public void loginBySession() {
 		IAccessTokenCache accessTokenCache = ApiConfigKit.getAccessTokenCache();
 //		String sessionId = getHeader("wxa-sessionid");
@@ -217,7 +220,7 @@ public class WxaUserApiController extends WxaController {
 	}
 
 	/**
-	 * 服务端解密用户信息接口 获取unionId
+	 * 通过小程序返回的加密信息获得手机号后进行登陆
 	 */
 	public void phoneLogin() {
 
@@ -356,5 +359,39 @@ public class WxaUserApiController extends WxaController {
 			renderJson(ErrorConstant.ERROR_DOCTOR_NOT_FIND);
 		}
 	}
+	
+	/**
+	 * 解除绑定接口
+	 */
+	public void unbind() {
+		IAccessTokenCache accessTokenCache = ApiConfigKit.getAccessTokenCache();
+//		String sessionId = getHeader("wxa-sessionid");
+		String sessionId = getPara("wxa-sessionid");
+		if (StrKit.isBlank(sessionId)) {
+			Kv data = Kv.by("errcode", 500).set("errmsg", "wxa_session Header is blank");
+			renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
+			return;
+		}
+		String sessionJson = accessTokenCache.get("wxa:session:" + sessionId);
+		if (StrKit.isBlank(sessionJson)) {
+			Kv data = Kv.by("errcode", 500).set("errmsg", "wxa_session sessionJson is blank");
+			renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
+			return;
+		}
+		ApiResult sessionResult = ApiResult.create(sessionJson);
+		// 获取sessionKey
+		String sessionKey = sessionResult.get("session_key");
+		if (StrKit.isBlank(sessionKey)) {
+			Kv data = Kv.by("errcode", 500).set("errmsg", "sessionKey is blank");
+			renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
+			return;
+		}
+		DoctorsWechat doctorsWechat = DoctorsWechat.dao.findFirst("select * from doctors_wechat where wxa_openid=?", sessionResult.get("openid"));
+		doctorsWechat.setDoctorId("");
+		doctorsWechat.setCreateAt(new Date());
+		doctorsWechat.update();
+		accessTokenCache.remove("wxa:session:" + sessionId);
+		renderJson(new ResultBean("Unbind Account Succeed"));
+	}
 
 }