刘韬 5 years ago
parent
commit
dfa083d327

+ 33 - 0
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/controller/WxaUserApiController.java

@@ -72,6 +72,39 @@ public class WxaUserApiController extends WxaController {
 //		renderJson("sessionId", sessionId);
 	}
 	
+	public void loginBySession() {
+		IAccessTokenCache accessTokenCache = ApiConfigKit.getAccessTokenCache();
+		String sessionId = getHeader("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"));
+		Doctors doctors = Doctors.dao.findById(doctorsWechat.getDoctorId());
+		LoginBean loginBean = new LoginBean();
+		loginBean.setSessionId(sessionId);
+		loginBean.setDoctorBean(doctors);
+		renderJson(new ResultBean(loginBean));
+	}
+	
 	/**
 	 * 服务端解密用户信息接口
 	 * 获取unionId