소스 검색

新增医生手机号关联

刘韬 5 년 전
부모
커밋
ae6440fb1b

+ 31 - 11
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/controller/WxaUserApiController.java

@@ -13,8 +13,11 @@ import com.jfinal.weixin.sdk.api.ApiResult;
 import com.jfinal.weixin.sdk.cache.IAccessTokenCache;
 import com.jfinal.wxaapp.api.WxaUserApi;
 import com.jfinal.wxaapp.jfinal.WxaController;
+import com.zskk.controller.bean.LoginBean;
 import com.zskk.controller.bean.ResultBean;
+import com.zskk.model.Doctors;
 import com.zskk.model.DoctorsWechat;
+import com.zskk.util.ErrorConstant;
 
 /**
  * 微信小程序用户api接口
@@ -29,7 +32,7 @@ public class WxaUserApiController extends WxaController {
 		if (StrKit.isBlank(jsCode)) {
 			Kv data = Kv.by("errcode", 500)
 					.set("errmsg", "code is blank");
-			renderJson(data);
+			renderJson(ErrorConstant.ERROR_WXA_CODE_BLANK);
 			return;
 		}
 		// 获取SessionKey
@@ -48,7 +51,7 @@ public class WxaUserApiController extends WxaController {
 		// 利用 appId 与 accessToken 建立关联,支持多账户
 		IAccessTokenCache accessTokenCache = ApiConfigKit.getAccessTokenCache();
 		String sessionId = StrKit.getRandomUUID();
-		DoctorsWechat doctorsWechatfind = DoctorsWechat.dao.findFirst("select * from doctors_wechat where wxa_openid=?",apiResult.getStr("openid"));
+		DoctorsWechat doctorsWechatfind = DoctorsWechat.dao.findFirst("select * from doctors_wechat where wxa_openid=?", apiResult.getStr("openid"));
 		if (doctorsWechatfind == null) {
 			DoctorsWechat doctorsWechat = new DoctorsWechat();
 			doctorsWechat.setWxaOpenid(apiResult.getStr("openid"));
@@ -62,11 +65,12 @@ public class WxaUserApiController extends WxaController {
 			doctorsWechatfind.setUpdateAt(new Date());
 			doctorsWechatfind.update();
 		}
-		
+		Doctors doctors = Doctors.dao.findById(doctorsWechatfind.getDoctorId());
 		accessTokenCache.set("wxa:session:" + sessionId, apiResult.getJson());
-		JSONObject object = new JSONObject();
-		object.put("sessionId", sessionId);
-		renderJson(new ResultBean(object));
+		LoginBean loginBean = new LoginBean();
+		loginBean.setSessionId(sessionId);
+		loginBean.setDoctorBean(doctors);
+		renderJson(new ResultBean(loginBean));
 //		renderJson("sessionId", sessionId);
 	}
 	
@@ -88,14 +92,14 @@ public class WxaUserApiController extends WxaController {
 		if (StrKit.isBlank(sessionId)) {
 			Kv data = Kv.by("errcode", 500)
 					.set("errmsg", "wxa_session Header is blank");
-			renderJson(data);
+			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(data);
+			renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
 			return;
 		}
 		ApiResult sessionResult = ApiResult.create(sessionJson);
@@ -104,7 +108,7 @@ public class WxaUserApiController extends WxaController {
 		if (StrKit.isBlank(sessionKey)) {
 			Kv data = Kv.by("errcode", 500)
 					.set("errmsg", "sessionKey is blank");
-			renderJson(data);
+			renderJson(ErrorConstant.ERROR_WXA_SESSION_BLANK);
 			return;
 		}
 		// 用户信息校验
@@ -113,13 +117,29 @@ public class WxaUserApiController extends WxaController {
 		if (!check) {
 			Kv data = Kv.by("errcode", 500)
 					.set("errmsg", "UserInfo check fail");
-			renderJson(data);
+			renderJson(ErrorConstant.ERROR_USERINFO_CHECK_FAIL);
 			return;
 		}
 		// 服务端解密用户信息
 		ApiResult apiResult = wxaUserApi.getUserInfo(sessionKey, encryptedData, iv);
 		if (!apiResult.isSucceed()) {
-			renderJson(apiResult.getJson());
+			String phone = apiResult.getStr("purePhoneNumber");
+			if (StrKit.isBlank(phone)) {
+				renderJson(ErrorConstant.ERROR_PHONE_BLANK);
+				return;
+			}
+			Doctors doctors = Doctors.dao.findFirst("select * from doctors where phone=?", phone);
+			if (doctors == null) {
+				renderJson(ErrorConstant.ERROR_DOCTOR_NOT_FIND);
+				return;
+			}
+			DoctorsWechat doctorsWechat = DoctorsWechat.dao.findFirst("select * from doctors_wechat where wxa_openid=?", sessionResult.get("openid"));
+			doctorsWechat.setDoctorId(doctors.getId());
+			doctorsWechat.update();
+			LoginBean loginBean = new LoginBean();
+			loginBean.setSessionId(sessionId);
+			loginBean.setDoctorBean(doctors);
+			renderJson(new ResultBean(loginBean));
 			return;
 		}
 		// 如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性

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

@@ -0,0 +1,33 @@
+package com.zskk.controller.bean;
+
+import java.security.Principal;
+import java.util.*;
+
+import com.zskk.model.Doctors;
+
+/**
+*用户登录信息
+*/
+
+public class LoginBean {
+
+	private String sessionId;
+	
+	public String getSessionId() {
+		return sessionId;
+	}
+
+	public void setSessionId(String sessionId) {
+		this.sessionId = sessionId;
+	}
+
+	public Doctors getDoctorBean() {
+		return DoctorBean;
+	}
+
+	public void setDoctorBean(Doctors doctorBean) {
+		DoctorBean = doctorBean;
+	}
+
+	private Doctors DoctorBean;
+}

+ 11 - 0
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/model/Doctors.java

@@ -0,0 +1,11 @@
+package com.zskk.model;
+
+import com.zskk.model.base.BaseDoctors;
+
+/**
+ * Generated by JFinal.
+ */
+@SuppressWarnings("serial")
+public class Doctors extends BaseDoctors<Doctors> {
+	public static final Doctors dao = new Doctors().dao();
+}

+ 1 - 0
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/model/_MappingKit.java

@@ -16,6 +16,7 @@ import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
 public class _MappingKit {
 	
 	public static void mapping(ActiveRecordPlugin arp) {
+		arp.addMapping("doctors", "id", Doctors.class);
 		arp.addMapping("doctors_wechat", "id", DoctorsWechat.class);
 	}
 }

+ 252 - 0
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/model/base/BaseDoctors.java

@@ -0,0 +1,252 @@
+package com.zskk.model.base;
+
+import com.jfinal.plugin.activerecord.Model;
+import com.jfinal.plugin.activerecord.IBean;
+
+/**
+ * Generated by JFinal, do not modify this file.
+ */
+@SuppressWarnings("serial")
+public abstract class BaseDoctors<M extends BaseDoctors<M>> extends Model<M> implements IBean {
+
+	public void setId(java.lang.String id) {
+		set("id", id);
+	}
+	
+	public java.lang.String getId() {
+		return getStr("id");
+	}
+
+	public void setUsername(java.lang.String username) {
+		set("username", username);
+	}
+	
+	public java.lang.String getUsername() {
+		return getStr("username");
+	}
+
+	public void setPassword(java.lang.String password) {
+		set("password", password);
+	}
+	
+	public java.lang.String getPassword() {
+		return getStr("password");
+	}
+
+	public void setRealname(java.lang.String realname) {
+		set("realname", realname);
+	}
+	
+	public java.lang.String getRealname() {
+		return getStr("realname");
+	}
+
+	public void setEmail(java.lang.String email) {
+		set("email", email);
+	}
+	
+	public java.lang.String getEmail() {
+		return getStr("email");
+	}
+
+	public void setLoginTime(java.util.Date loginTime) {
+		set("login_time", loginTime);
+	}
+	
+	public java.util.Date getLoginTime() {
+		return get("login_time");
+	}
+
+	public void setToken(java.lang.String token) {
+		set("token", token);
+	}
+	
+	public java.lang.String getToken() {
+		return getStr("token");
+	}
+
+	public void setPhone(java.lang.String phone) {
+		set("phone", phone);
+	}
+	
+	public java.lang.String getPhone() {
+		return getStr("phone");
+	}
+
+	public void setRemark(java.lang.String remark) {
+		set("remark", remark);
+	}
+	
+	public java.lang.String getRemark() {
+		return getStr("remark");
+	}
+
+	public void setDoctorTitle(java.lang.String doctorTitle) {
+		set("doctor_title", doctorTitle);
+	}
+	
+	public java.lang.String getDoctorTitle() {
+		return getStr("doctor_title");
+	}
+
+	public void setStatus(java.lang.String status) {
+		set("status", status);
+	}
+	
+	public java.lang.String getStatus() {
+		return getStr("status");
+	}
+
+	public void setAttachment(java.lang.String attachment) {
+		set("attachment", attachment);
+	}
+	
+	public java.lang.String getAttachment() {
+		return getStr("attachment");
+	}
+
+	public void setInstitutionId(java.lang.String institutionId) {
+		set("institution_id", institutionId);
+	}
+	
+	public java.lang.String getInstitutionId() {
+		return getStr("institution_id");
+	}
+
+	public void setDepartmentId(java.lang.String departmentId) {
+		set("department_id", departmentId);
+	}
+	
+	public java.lang.String getDepartmentId() {
+		return getStr("department_id");
+	}
+
+	public void setDoctorRole(java.lang.String doctorRole) {
+		set("doctor_role", doctorRole);
+	}
+	
+	public java.lang.String getDoctorRole() {
+		return getStr("doctor_role");
+	}
+
+	public void setLoginFailure(java.lang.Integer loginFailure) {
+		set("login_failure", loginFailure);
+	}
+	
+	public java.lang.Integer getLoginFailure() {
+		return getInt("login_failure");
+	}
+
+	public void setLoginIp(java.lang.String loginIp) {
+		set("login_ip", loginIp);
+	}
+	
+	public java.lang.String getLoginIp() {
+		return getStr("login_ip");
+	}
+
+	public void setLoginCode(java.lang.String loginCode) {
+		set("login_code", loginCode);
+	}
+	
+	public java.lang.String getLoginCode() {
+		return getStr("login_code");
+	}
+
+	public void setIsReport(java.lang.String isReport) {
+		set("is_report", isReport);
+	}
+	
+	public java.lang.String getIsReport() {
+		return getStr("is_report");
+	}
+
+	public void setExamClass(java.lang.String examClass) {
+		set("exam_class", examClass);
+	}
+	
+	public java.lang.String getExamClass() {
+		return getStr("exam_class");
+	}
+
+	public void setSendSms(java.lang.Integer sendSms) {
+		set("send_sms", sendSms);
+	}
+	
+	public java.lang.Integer getSendSms() {
+		return getInt("send_sms");
+	}
+
+	public void setMessagePush(java.lang.String messagePush) {
+		set("message_push", messagePush);
+	}
+	
+	public java.lang.String getMessagePush() {
+		return getStr("message_push");
+	}
+
+	public void setIsAdmin(java.lang.String isAdmin) {
+		set("is_admin", isAdmin);
+	}
+	
+	public java.lang.String getIsAdmin() {
+		return getStr("is_admin");
+	}
+
+	public void setIsSendMessage(java.lang.String isSendMessage) {
+		set("is_send_message", isSendMessage);
+	}
+	
+	public java.lang.String getIsSendMessage() {
+		return getStr("is_send_message");
+	}
+
+	public void setIsUseAutograph(java.lang.String isUseAutograph) {
+		set("is_use_autograph", isUseAutograph);
+	}
+	
+	public java.lang.String getIsUseAutograph() {
+		return getStr("is_use_autograph");
+	}
+
+	public void setAutograph(java.lang.String autograph) {
+		set("autograph", autograph);
+	}
+	
+	public java.lang.String getAutograph() {
+		return getStr("autograph");
+	}
+
+	public void setDeviceIds(java.lang.String deviceIds) {
+		set("device_ids", deviceIds);
+	}
+	
+	public java.lang.String getDeviceIds() {
+		return getStr("device_ids");
+	}
+
+	public void setIntroduce(java.lang.String introduce) {
+		set("introduce", introduce);
+	}
+	
+	public java.lang.String getIntroduce() {
+		return getStr("introduce");
+	}
+
+	public void setCreatedAt(java.util.Date createdAt) {
+		set("createdAt", createdAt);
+	}
+	
+	public java.util.Date getCreatedAt() {
+		return get("createdAt");
+	}
+
+	public void setUpdatedAt(java.util.Date updatedAt) {
+		set("updatedAt", updatedAt);
+	}
+	
+	public java.util.Date getUpdatedAt() {
+		return get("updatedAt");
+	}
+
+}

+ 8 - 0
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/model/base/BaseDoctorsWechat.java

@@ -41,6 +41,14 @@ public abstract class BaseDoctorsWechat<M extends BaseDoctorsWechat<M>> extends
 		return getStr("wxa_openid");
 	}
 
+	public void setDoctorId(java.lang.String doctorId) {
+		set("doctor_id", doctorId);
+	}
+	
+	public java.lang.String getDoctorId() {
+		return getStr("doctor_id");
+	}
+
 	public void setWxIcon(java.lang.String wxIcon) {
 		set("wx_icon", wxIcon);
 	}

+ 8 - 2
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/util/ErrorConstant.java

@@ -3,7 +3,13 @@ package com.zskk.util;
 import com.zskk.controller.bean.ResultBean;
 
 public class ErrorConstant {
-	public static final ResultBean ERROR_NOT_FOUND = new ResultBean(100, "未获取到影像");
-	public static final ResultBean ERROR_APPLYNO = new ResultBean(101, "申请单号错误");
+	public static final ResultBean ERROR_WXA_SESSION_BLANK = new ResultBean(500, "wxa_session Header is blank");
+	public static final ResultBean ERROR_WXA_CODE_BLANK = new ResultBean(500, "code is blank");
+	public static final ResultBean ERROR_USERINFO_CHECK_FAIL = new ResultBean(500, "UserInfo check fail");
+	public static final ResultBean ERROR_DOCTOR_NOT_FIND = new ResultBean(100, "用户手机号未找到");
+	public static final ResultBean ERROR_PHONE_BLANK = new ResultBean(101, "用户未绑定手机号");
+
+
+
 	
 }

+ 1 - 1
PacsOnline_Wechat_Doctor/src/main/java/com/zskk/util/_JFinalDemoGenerator.java

@@ -46,7 +46,7 @@ public class _JFinalDemoGenerator {
 		generator.setGenerateChainSetter(false);
 		
 		// 添加不需要生成的表名
-		generator.addExcludedTable("bbs","sys_logs","bodypart","constant","department","device","doctor_class","doctors","dr_cla_permission","exam_class","exam_project","exam_subclass","images","manager","menu","templates","studies","series","oss_callbacks","version","sys_menus","api","default_cost","every_studies","fa_admin","fa_admin_log","fa_area","fa_attachment","fa_auth_group","fa_auth_group_access","fa_auth_institution_access","fa_auth_rule","fa_category","fa_config","fa_ems","fa_sms","fa_test","fa_user","fa_user_group","fa_user_money_log","fa_user_rule","fa_user_score_log","fa_user_token","fa_version","lcoss_callbacks","log","patient_exam","register","remote_contact","remote_cost","remote_order","remote_water","remote_water_log","send_message","special_contact","special_remote","wechat_pay_log","wechat_refund_log","xz","user_bind","exams","institution","messages","open_application","operating","patient_infos","remote_application","report","report_record","user_wechat","wechat_bind");
+		generator.addExcludedTable("bbs","sys_logs","bodypart","constant","department","device","doctor_class","dr_cla_permission","exam_class","exam_project","exam_subclass","images","manager","menu","templates","studies","series","oss_callbacks","version","sys_menus","api","default_cost","every_studies","fa_admin","fa_admin_log","fa_area","fa_attachment","fa_auth_group","fa_auth_group_access","fa_auth_institution_access","fa_auth_rule","fa_category","fa_config","fa_ems","fa_sms","fa_test","fa_user","fa_user_group","fa_user_money_log","fa_user_rule","fa_user_score_log","fa_user_token","fa_version","lcoss_callbacks","log","patient_exam","register","remote_contact","remote_cost","remote_order","remote_water","remote_water_log","send_message","special_contact","special_remote","wechat_pay_log","wechat_refund_log","xz","user_bind","exams","institution","messages","open_application","operating","patient_infos","remote_application","report","report_record","user_wechat","wechat_bind");
 		
 		// 设置是否在 Model 中生成 dao 对象
 		generator.setGenerateDaoInModel(true);